Linux 常用命令大全

涵盖目录、文件、压缩、编辑、查找、进程、网络、用户、磁盘、软件包等十五大类,共 100+ 条命令。适合初/中级用户收藏查阅。

@TOC

一、目录操作

命令 说明 示例
pwd 显示当前所在目录 pwd
ls -lah 列出目录内容(含隐藏文件、权限、大小) ls -lah /etc
cd 切换目录;cd -回到上次目录 cd /var/log
mkdir -p 递归创建多级目录 mkdir -p app/logs/nginx
rmdir 删除空目录 rmdir old_dir
tree 以树形结构显示目录(需安装) tree -L 2
du -sh 查看目录占用空间 du -sh /var/log/*

二、文件查看

命令 说明 示例
cat 输出文件全部内容;-n显示行号 cat -n app.log
less 分页查看(可上下翻页,推荐替代 more) less +G app.log
more 分页查看(只能向下翻) more catalina.out
head -n 查看文件开头 N 行 head -n 20 access.log
tail -n 查看文件末尾 N 行 tail -n 100 app.log
tail -f 实时追踪日志(运维必备 tail -f app.log
wc -l 统计文件行数/字符数/单词数 wc -l app.log
diff 对比两个文件差异 diff file1.txt file2.txt

bash

复制

# 实时过滤错误日志(常用组合)tail -f app.log | grep "ERROR"# 查看大文件(less 快捷键:G 跳末尾,gg 跳开头,/keyword 搜索,q 退出)less +G bigfile.log

三、复制与移动

命令 说明 示例
cp -iv 复制(询问确认+显示过程,推荐 cp -iv src.conf src.conf.bak
cp -r 递归复制目录 cp -r project project_bak
mv -i 移动/重命名(覆盖前确认) mv -i old.txt new.txt
rsync -avz 增量同步/远程传输(生产推荐 rsync -avz src/ user@host:/dst/

四、打包压缩

命令 说明 示例
tar -czvf 打包并用 gzip 压缩为 .tar.gz tar -czvf logs.tar.gz logs/
tar -xzvf 解压 .tar.gz tar -xzvf logs.tar.gz
tar -cjvf 打包并用 bzip2 压缩(压缩率更高) tar -cjvf pkg.tar.bz2 dir/
zip -r 压缩为 .zip(兼容 Windows) zip -r out.zip dir/
unzip 解压 .zip 文件 unzip out.zip -d /tmp/
gzip / gunzip 压缩/解压单个文件 gzip app.log

bash

复制

# 参数速记:c=创建 x=解压 z=gzip j=bzip2 v=显示 f=文件名tar -czvf backup.tar.gz /var/www/html/tar -xzvf backup.tar.gz -C /tmp/ # -C 指定解压目录

五、文本编辑(vim)

操作 命令/快捷键 说明
进入插入模式 i/a/o 光标前/后/下一行插入
退出模式 Esc 回到普通模式
保存退出 :wq 写入并退出
强制退出 :q! 不保存退出(卡住时用)
只保存 :w 写入不退出
删除当前行 dd 普通模式下
复制/粘贴 yy/p 复制整行/粘贴
撤销/重做 u/Ctrl+r 普通模式下
查找 /keywordn 向下查找下一个
全局替换 :%s/old/new/g 替换文件中所有 old→new
跳到行首/行尾 0/$ 普通模式下
跳到文件末尾 G 大写 G
显示行号 :set nu 命令模式下

💡提示:卡住了?先按Esc,再输:q!强制退出。编辑完记得:wq保存。

六、查找搜索

命令 说明 示例
find 按文件名/类型/大小/时间查找 find /etc -name "*.conf"
grep 按内容搜索(支持正则) grep -rn "ERROR" logs/
locate 快速文件名搜索(需 updatedb) locate nginx.conf

bash

复制

find . -name ".log" find . -type f -size +100M find . -mtime -7 find . -name ".tmp" -delete grep -n "Exception" app.log grep -i "error" app.log grep -v "DEBUG" app.log grep -rn "TODO" src/

Image 1

七、系统信息

命令 说明 示例
uname -a 查看系统内核版本信息 uname -a
cat /etc/os-release 查看 Linux 发行版信息 cat /etc/os-release
hostname 查看/设置主机名 hostname -I
uptime 系统运行时长 + 平均负载 uptime
date 查看/设置系统时间 date "+%Y-%m-%d %H:%M:%S"
free -h 查看内存使用情况(常用 free -h
top 实时系统资源监控(交互式) top
htop 增强版 top(需安装) htop
lscpu 查看 CPU 信息 lscpu
env 查看所有环境变量 `env grep PATH`

bash

复制

# 一键查看系统概况echo "=== 系统信息 ===" && uname -aecho "=== 内存使用 ===" && free -hecho "=== 磁盘使用 ===" && df -hecho "=== 系统负载 ===" && uptime

八、进程管理

命令 说明 示例
ps aux 查看所有进程(快照,常用 `ps aux grep java`
ps -ef 查看完整命令的进程列表 `ps -ef grep nginx`
kill PID 向进程发送信号(默认 SIGTERM) kill 1234
kill -9 PID 强制终止进程(慎用 kill -9 1234
killall 按进程名终止所有同名进程 killall nginx
nohup & 后台运行,退出终端后继续 nohup java -jar app.jar &
jobs 查看当前终端后台任务 jobs -l
lsof -i :端口 查看端口被哪个进程占用(常用 lsof -i :8080

bash

复制

# 查找并杀死占用8080端口的进程lsof -i :8080kill -9 $(lsof -t -i :8080)# 查找Java进程ps aux | grep java# 后台运行Spring Boot项目nohup java -jar app.jar > app.log 2>&1 &echo $! # 打印PID,记录下来方便后续 kill

Image 2

九、网络命令

命令 说明 示例
ip addr 查看网络接口和 IP(替代 ifconfig) ip addr show eth0
ifconfig 查看网络配置(逐渐被 ip 替代) ifconfig
ping 测试网络连通性 ping -c 4 baidu.com
curl 发送 HTTP 请求/下载文件(必备 curl -Ohttps://example.com/file
wget 下载文件(支持断点续传) wget -chttps://example.com/big.tar.gz
ss -tlnp 查看监听端口(替代 netstat) `ss -tlnp grep 8080`
netstat -tlnp 查看端口占用(旧版) `netstat -tlnp grep 80`
traceroute 追踪数据包路由路径 traceroute baidu.com
scp 跨服务器安全复制文件 scp file.txt user@host:/path/
ssh 远程登录服务器 sshuser@192.168.1.100

bash

复制

# curl 常用技巧curl -I https://example.com # 只看响应头curl -X POST -H "Content-Type: application/json" -d '{"key":"val"}' http://api/endpoint# 查看所有监听端口ss -tlnp# scp 上传本地文件到服务器scp -r ./dist/ user@192.168.1.10:/var/www/html/

Image 3

十、用户与权限管理

命令 说明 示例
whoami 查看当前登录用户 whoami
id 查看用户 uid/gid/所属组 id username
sudo 以超级用户权限执行命令 sudo apt update
su - 切换到 root 用户 su - root
useradd 创建新用户 useradd -m -s /bin/bash tom
passwd 修改用户密码 passwd tom
userdel 删除用户 userdel -r tom
chmod 修改文件权限(常用 chmod 755 script.sh
chown 修改文件所有者 chown www:www -R /var/www/
visudo 编辑 sudo 权限配置(安全) visudo

bash

复制

# chmod 数字权限速记:r=4 w=2 x=1# 755 = rwxr-xr-x(拥有者全权,其他人读+执行)# 644 = rw-r--r--(拥有者读写,其他人只读)chmod 755 deploy.shchmod -R 644 /var/www/html/# 批量修改目录权限find /var/www -type d -exec chmod 755 {} ;find /var/www -type f -exec chmod 644 {} ;

十一、磁盘管理

命令 说明 示例
df -h 查看磁盘分区使用率(常用 df -h
du -sh * 查看当前目录各子目录大小 du -sh /var/log/*
lsblk 列出所有块设备(磁盘/分区) lsblk
fdisk -l 查看磁盘分区表 sudo fdisk -l
mount / umount 挂载/卸载文件系统 mount /dev/sdb1 /mnt/data
iostat 查看磁盘 I/O 性能(需安装 sysstat) iostat -x 1 3

⚠️注意:磁盘占满时优先用du -sh /var/log/*排查日志,再用find / -size +1G找大文件。切勿盲目删除!

十二、软件包管理

操作 Debian/Ubuntu (apt) CentOS/RHEL (yum/dnf)
更新索引 apt update yum check-update
安装软件 apt install -y vim yum install -y vim
卸载软件 apt remove vim yum remove vim
搜索软件 apt search keyword yum search keyword
升级所有包 apt upgrade -y yum update -y
查看已安装 `dpkg -l grep vim` `rpm -qa grep vim`

bash

复制

# Ubuntu 一次安装多个常用工具sudo apt update && sudo apt install -y vim curl wget git htop tree unzip net-tools lsof# CentOS 7 安装 EPEL 源后安装更多工具sudo yum install -y epel-releasesudo yum install -y vim curl wget git htop tree

十三、链接与特殊文件操作

命令 说明 示例
ln -s 创建软链接/符号链接(常用 ln -s /usr/local/jdk/bin/java /usr/bin/java
ln 创建硬链接 ln file.txt hardlink.txt
readlink -f 解析软链接真实路径 readlink -f /usr/bin/python3
touch 创建空文件/更新时间戳 touch newfile.txt
file 检测文件类型 file unknown.bin
stat 查看文件详细属性(时间/权限/inode) stat app.log

十四、时间与定时任务

命令 说明 示例
date 查看/格式化当前时间 date "+%Y-%m-%d %H:%M:%S"
timedatectl 查看/设置时区(systemd 系统) timedatectl set-timezone Asia/Shanghai
crontab -e 编辑当前用户定时任务(常用 crontab -e
crontab -l 查看当前定时任务列表 crontab -l
at 一次性定时执行命令 at 22:00 <<< "backup.sh"

bash

复制

# crontab 格式: 分 时 日 月 周 命令# 每天凌晨2点执行备份# 每周一早上8点# 每5分钟执行一次/5 * /scripts/check-service.sh

十五、实用命令组合技巧

日志排查

bash

复制

tail -f app.log | grep --color "ERROR|WARN"grep "ERROR" app.log | awk '{print $6}' | sort | uniq -c | sort -rngrep -rl "NullPointerException" /var/log/

系统排障

bash

复制

# 查看哪个进程占用CPU最高(按CPU降序)ps aux | sort -k3rn | head -10# 查看哪个进程占用内存最高ps aux | sort -k4rn | head -10# 磁盘空间告警时,找出占空间最大的目录du -sh /* 2>/dev/null | sort -rh | head -10# 端口被占用时ss -tlnp | grep :8080

Image 4

管道符和重定向

bash

复制

ls -lh | grep ".log" | wc -l command > file.txt command >> file.txt command 2>&1 | tee out.txt command 2>/dev/null find . -name "*.log" | xargs rm

Image 5
  • ⚡ 最高频命令速查卡(建议收藏)

    场景 命令
    查看目录详情 ls -lah
    跳回上次目录 cd -
    实时追踪日志 tail -f app.log
    递归搜索关键字 grep -rn "key" .
    查找Java进程 `ps aux grep java`
    强制结束进程 kill -9 PID
    查看端口占用 lsof -i :8080
    查看磁盘用量 df -h
    查看内存用量 free -h
    压缩打包目录 tar -czvf bak.tar.gz dir/
    添加执行权限 chmod 755 script.sh
    传文件到服务器 scp file user@host:/path
    后台运行程序 nohup java -jar app.jar &
    修改前备份配置 cp -iv conf conf.bak
    清理30天前日志 find . -name "*.log" -mtime +30 -delete
    vim 保存/强退 :wq/:q!

    本文自 CSDN 转载,原文链接:https://blog.csdn.net/weixin_43202444/article/details/161659971

    Leave A Comment

    Recommended Posts