点击左侧跳转分类;点击命令或示例即可复制。

文件与目录
命令说明示例
pwd 显示当前工作目录 pwd
ls -lah 详细列出文件(含隐藏、人类可读大小) ls -lah /var/log
cd /path 切换目录;cd - 回上一目录;cd ~ 回首页 cd /etc/nginx
mkdir -p a/b/c 递归创建目录 mkdir -p logs/app
touch file 创建空文件或更新时间戳 touch .env
cp -a src dest 复制文件/目录(保留属性) cp -a conf conf.bak
mv old new 移动或重命名 mv a.log a.log.bak
rm -rf dir 强制递归删除(慎用) rm -rf /tmp/build
ln -s target link 创建软链接 ln -s /opt/app/bin/app /usr/local/bin/app
realpath . 解析绝对路径 realpath ./config
查看文件
命令说明示例
cat file 一次性输出全部内容 cat /etc/hosts
less file 分页查看(方向键/搜索 /) less app.log
head -n 50 file 看文件前 N 行 head -n 20 error.log
tail -n 100 file 看文件后 N 行 tail -n 50 access.log
tail -f file 实时跟踪日志输出 tail -f /var/log/nginx/error.log
wc -l file 统计行数(-w 词数 -c 字节) wc -l *.log
file path 判断文件类型 file ./a.out
stat file 查看大小、权限、时间等元信息 stat package.json
diff a b 对比两个文件差异 diff conf.conf conf.conf.bak
xxd file | head 十六进制查看(排障二进制) xxd dump.bin | head
压缩与打包
命令说明示例
tar -czvf a.tar.gz dir 打包并 gzip 压缩 tar -czvf release.tar.gz dist/
tar -xzvf a.tar.gz 解压 .tar.gz tar -xzvf release.tar.gz -C /opt/
tar -tzvf a.tar.gz 只查看压缩包内容 tar -tzvf release.tar.gz | head
tar -cjvf a.tar.bz2 dir bzip2 压缩(更小更慢) tar -cjvf data.tar.bz2 data/
gzip file 压缩为 .gz(原文件被替换) gzip big.log
gunzip file.gz 解压 .gz gunzip big.log.gz
zip -r a.zip dir 打 zip 包 zip -r dist.zip dist/
unzip a.zip 解压 zip unzip dist.zip -d /tmp/
unzip -l a.zip 列出 zip 内容 unzip -l dist.zip
zcat file.gz | less 不解压查看 gzip 文本 zcat access.log.gz | less
查找与过滤
命令说明示例
find . -name '*.log' 按名查找文件 find /var/log -name '*.log'
find . -type f -mtime -1 查找 1 天内修改的文件 find . -type f -mtime -1
find . -type f -size +100M 查找大于 100M 的文件 find / -type f -size +100M 2>/dev/null
grep -Rni 'error' . 递归搜索关键字(忽略大小写) grep -Rni 'Exception' src/
grep -v '^#' file 排除匹配行(如注释) grep -v '^#' .env
which cmd 查看命令所在路径 which java
whereis cmd 查二进制/手册/源码路径 whereis nginx
locate name 快速按名定位(需 updatedb) locate nginx.conf
history | grep ssh 在历史命令中搜索 history | grep ssh
type cmd 判断命令是别名/函数/二进制 type ll
文本处理
命令说明示例
sort file 排序;sort -u 排序并去重 sort -u ids.txt
uniq -c 相邻去重并计数(常先 sort) sort a.txt | uniq -c | sort -nr
cut -d: -f1 file 按分隔符取字段 cut -d',' -f1 data.csv
awk '{print $1}' file 按列处理文本 awk '{print $1,$NF}' access.log
sed -n '10,20p' file 打印指定行范围 sed -n '1,30p' README.md
sed -i 's/old/new/g' file 原地替换(先备份再改) sed -i.bak 's/8080/9090/g' app.yml
tr 'a-z' 'A-Z' 字符转换/删除 echo hello | tr 'a-z' 'A-Z'
xargs -I{} cmd {} 把标准输入转成命令参数 cat list.txt | xargs -I{} cp {} /tmp/
column -t file 对齐显示成列 mount | column -t
jq . file.json 格式化/查询 JSON(需安装 jq) curl -s api | jq '.data'
权限与用户
命令说明示例
chmod 755 file 改权限;目录常用 755,脚本 755 chmod +x deploy.sh
chmod -R u+rwX dir 递归给所有者读写/可进入 chmod -R u+rwX project/
chown user:group file 改所有者 chown -R www-data:www-data /var/www
sudo cmd 以管理员权限执行 sudo systemctl restart nginx
sudo -i 切换到 root 登录 shell sudo -i
su - user 切换用户 su - deploy
whoami 当前用户名 whoami
id 查看 uid/gid/组 id
groups 当前用户所属组 groups
passwd 修改当前用户密码 passwd
进程管理
命令说明示例
ps aux | grep name 查找进程 ps aux | grep java
ps -ef 完整进程列表 ps -ef | head
top 实时查看 CPU/内存占用 top
htop 更友好的进程监视(需安装) htop
kill PID 结束进程;杀不掉用 kill -9 PID kill 12345
killall name 按进程名结束 killall node
pkill -f pattern 按命令行模式杀进程 pkill -f 'spring-boot'
nohup cmd & 后台运行,退出终端不中断 nohup java -jar app.jar >app.log 2>&1 &
jobs / fg / bg 查看/前台/后台作业 jobs
systemctl status svc 查看服务状态(systemd) systemctl status nginx
磁盘与内存
命令说明示例
df -h 查看磁盘分区用量 df -h
du -sh * 当前目录各子项占用 du -sh /var/log/*
du -ah . | sort -rh | head 找出最大文件 du -ah /var | sort -rh | head -20
free -h 查看内存与交换分区 free -h
lsblk 列出块设备与挂载 lsblk
mount | column -t 查看挂载点 mount | column -t
lsof -i :8080 查看占用端口的进程 lsof -i :3306
lsof +D dir 查看目录被谁占用(卸载失败时) lsof +D /mnt/data
ncdu / 交互式看目录占用(需安装) ncdu /var
iotop 查看磁盘 IO 占用(需安装) sudo iotop
网络诊断
命令说明示例
ping -c 4 host 连通性探测 ping -c 4 8.8.8.8
curl -I url 只看响应头 curl -I https://example.com
curl -v url 详细请求过程(排障) curl -v http://127.0.0.1:8080/health
curl -X POST -H 'Content-Type: application/json' -d '{}' url 发 JSON POST curl -X POST -H 'Content-Type: application/json' -d '{"a":1}' http://127.0.0.1:8080/api
wget -O file url 下载文件到指定名 wget -O app.tgz https://example.com/a.tgz
ss -lntp 查看监听端口(替代 netstat) ss -lntp | grep 8080
ip a 查看网卡与 IP ip a
ip r 查看路由表 ip r
dig +short domain DNS 解析查询 dig +short www.example.com
traceroute host 路由追踪 traceroute 1.1.1.1
SSH 与传输
命令说明示例
ssh user@host 登录远程主机 ssh root@192.168.1.10
ssh -p 2222 user@host 指定 SSH 端口 ssh -p 2222 deploy@app1
ssh-copy-id user@host 上传公钥实现免密登录 ssh-copy-id deploy@app1
scp file user@host:/path 安全复制文件到远程 scp app.jar deploy@app1:/opt/app/
scp -r dir user@host:/path 递归复制目录 scp -r dist/ deploy@app1:/var/www/
rsync -avz src/ user@host:dst/ 增量同步(常用部署) rsync -avz --delete dist/ deploy@app1:/var/www/
rsync -avz -e 'ssh -p 2222' src/ host:dst/ 指定 SSH 端口同步 rsync -avz -e 'ssh -p 2222' ./ deploy@app1:/opt/app/
ssh user@host 'cmd' 远程执行一条命令 ssh deploy@app1 'df -h'
tar czf - dir | ssh user@host 'tar xzf - -C /path' 打包管道传到远程并解压 tar czf - dist | ssh deploy@app1 'tar xzf - -C /var/www'
sftp user@host 交互式安全文件传输 sftp deploy@app1
管道与重定向
命令说明示例
cmd1 | cmd2 管道:前输出作后输入 ps aux | grep nginx
cmd > file 覆盖写入标准输出 echo ok > status.txt
cmd >> file 追加写入 date >> run.log
cmd 2> err.log 只重定向标准错误 java -jar app.jar 2> err.log
cmd >out.log 2>&1 标准输出和错误都写入文件 npm run build >build.log 2>&1
cmd &> file 同上(bash) ./run.sh &> all.log
cmd1 && cmd2 前成功才执行后 mvn test && mvn package
cmd1 || cmd2 前失败才执行后 ping -c1 a || echo fail
cmd & 后台执行 ./server &
tee file 一边显示一边写入文件 npm run build | tee build.log
系统信息
命令说明示例
uname -a 内核与系统信息 uname -a
hostnamectl 主机名与系统概览 hostnamectl
uptime 运行时长与负载 uptime
date 当前时间;date +%F_%T 格式化 date '+%Y-%m-%d %H:%M:%S'
timedatectl 时区与时间同步状态 timedatectl
env 查看环境变量 env | grep PATH
echo $PATH 查看 PATH echo $PATH
export VAR=value 设置当前会话环境变量 export JAVA_HOME=/usr/lib/jvm/java-17
history 历史命令;!! 重跑上一条 history | tail -20
clear 清屏 clear
包管理
命令说明示例
apt update && apt install pkg Debian/Ubuntu 安装包 sudo apt update && sudo apt install -y curl
apt search keyword 搜索软件包 apt search nginx
apt remove pkg 卸载软件包 sudo apt remove -y vim
yum install pkg CentOS/RHEL 7 安装 sudo yum install -y git
dnf install pkg Fedora/RHEL 8+ 安装 sudo dnf install -y htop
rpm -qa | grep name 已安装 rpm 包查询 rpm -qa | grep nginx
dpkg -l | grep name 已安装 deb 包查询 dpkg -l | grep nginx
snap install pkg Snap 安装(部分发行版) sudo snap install code --classic
服务与日志
命令说明示例
systemctl start/stop/restart svc 启停/重启服务 sudo systemctl restart nginx
systemctl enable/disable svc 开机自启/取消 sudo systemctl enable nginx
systemctl status svc 服务状态与最近日志 systemctl status nginx
systemctl daemon-reload 重载 unit 配置 sudo systemctl daemon-reload
journalctl -u svc -f 跟踪某服务日志 journalctl -u nginx -f
journalctl -xe 最近错误与详细日志 journalctl -xe
journalctl --since '1 hour ago' 按时间查看日志 journalctl --since today
dmesg | tail 内核环形缓冲区(硬件/驱动) dmesg | tail -50

文档说明

本页整理开发日常最常用的 Linux / Shell 命令,按场景分类,便于快速查阅。命令以「能解决实际问题」为准,避免冷门参数堆砌。

使用建议

1. 先用左侧导航跳到目标分类,再点命令复制粘贴微调。

2. rm -rfkill -9 等破坏性操作执行前先确认路径与目标。

3. 不同发行版包管理命令不同:Debian/Ubuntu 用 apt,RHEL/CentOS 用 yum/dnf。