← 返回画廊

Linux/命令行常用命令速查卡

贴在手边的快速参考。按场景分组,每条命令给用途、最常用例子。


1. 文件与目录

命令用途常用例子
ls列出目录内容ls -lah 详细显示所有文件含隐藏
ls -lR递归列出所有子目录ls -lR /path 树形显示所有文件
cd切换目录cd ~ 回家目录;cd - 回上次目录
pwd显示当前目录完整路径pwd
mkdir创建目录mkdir -p a/b/c 递归创建多层目录
cp复制文件或目录cp -r src/ dest/ 递归复制整个目录
mv移动或重命名mv old.txt new.txt 重命名;mv file /path 移动
rm删除文件或目录rm -rf dir/ 递归删除目录及内容(谨慎!)
rmdir删除空目录rmdir empty_dir
touch创建空文件或更新时间戳touch file.txt
find按条件查找文件find . -name "*.log" -type f 找所有log文件
find 按修改时间查找指定天数内修改过的文件find . -mtime -7 找7天内修改过的文件
find 按大小查找指定大小的文件find . -size +100M 找超过100MB的文件
tree树形显示目录结构tree -L 2 显示2层深度;tree -I 'node_modules' 忽略某目录
ln -s创建软链接(快捷方式)ln -s /path/to/file link_name
ln创建硬链接(实际副本)ln /path/to/file link_name

2. 查看与编辑

命令用途常用例子
cat显示文件全部内容cat file.txt
cat file1 file2合并多个文件输出cat a.txt b.txt > c.txt
less分页查看大文件less large_file.log;按 q 退出,/ 搜索
more分页查看(比 less 功能少)more file.txt
head显示文件前10行head -n 20 file.txt 显示前20行
tail显示文件最后10行tail -f app.log 实时跟踪日志
tail -n +N从第N行开始显示tail -n +50 file.txt 显示从第50行开始的内容
wc统计行数、单词数、字节数wc -l file.txt 统计行数
grep按模式搜索文本grep "error" app.log 找包含error的行
grep -r递归搜索目录grep -r "TODO" src/ 在整个src目录找TODO
grep -v反向匹配(排除)grep -v "^#" config.sh 排除注释行
grep -i不区分大小写grep -i "error" log
sed流编辑(替换、删除等)sed 's/old/new/g' file.txt 替换所有old为new
sed 删除行删除匹配的行sed '/pattern/d' file.txt 删除包含pattern的行
sed -i直接修改文件sed -i 's/foo/bar/g' file.txt 修改文件本身
awk 打印列提取指定列awk '{print $1, $3}' file.txt 打印第1、3列
awk 按分隔符用不同分隔符分割awk -F: '{print $1}' /etc/passwd 用冒号分割打印第1列
awk 条件输出输出符合条件的行awk '$1 > 100' file.txt 第1列大于100的行
awk 统计计数、求和awk '{sum+=$1} END {print sum}' nums.txt 求和

3. 权限与用户

命令用途常用例子
chmod修改文件权限chmod 755 script.sh rwxr-xr-x
chmod +x添加执行权限chmod +x install.sh
chmod -r+X递归给目录和脚本加执行权chmod -R +x ./scripts/
chown修改文件所有者chown user:group file.txt
chown -R递归修改所有者chown -R www-data:www-data /var/www/
sudo以超级用户权限运行sudo apt update
whoami显示当前用户名whoami
id显示用户ID和所属组id
groups显示用户所属的组groups username
useradd添加用户sudo useradd -m -s /bin/bash newuser
userdel删除用户sudo userdel -r username 连同home删除
passwd修改用户密码passwd 修改当前用户密码

4. 进程与资源

命令用途常用例子
ps显示进程列表ps aux 显示所有进程详情
ps -ef显示完整格式的进程ps -ef \| grep python 找python进程
pgrep按名称查找进程PIDpgrep -f "node app.js"
top动态监控进程(按CPU使用率排序)topq 退出
htop比top更友好的进程监控htop 彩色、可交互
kill终止进程kill 1234 优雅关闭;kill -9 1234 强制杀死
killall按进程名杀死所有进程killall python
lsof查看进程打开的文件lsof -p 1234 显示进程1234打开的文件
lsof -i查看网络连接lsof -i :8080 查看占用8080端口的进程
netstat显示网络统计信息netstat -tuln 显示所有监听端口
ssnetstat的更快替代品ss -tuln 显示所有TCP/UDP监听
df显示磁盘使用情况df -h 人类可读格式
du显示目录大小du -sh /var/log/ 显示目录总大小
du -sh *显示当前目录各项大小du -sh ~/.* 显示隐藏目录
free显示内存使用情况free -h 人类可读格式
vmstat虚拟内存统计vmstat 1 5 每秒采集5次
iostat磁盘I/O统计iostat -x 1 显示详细I/O信息

5. 网络

命令用途常用例子
curl发送HTTP请求curl https://api.example.com/users
curl -X POST发送POST请求curl -X POST -d '{"key":"value"}' https://api.com/data
curl -H添加请求头curl -H "Authorization: Bearer token" https://api.com
curl -o下载文件curl -o myfile.zip https://example.com/file.zip
curl -L跟随重定向curl -L https://short.url
wget下载文件(支持续传)wget https://example.com/large_file.tar.gz
wget -c断点续传wget -c https://example.com/file.iso
ping测试网络连接ping -c 5 google.com 发送5个包
traceroute跟踪网络路由traceroute google.com
ifconfigip显示网络接口信息ip addr showifconfig
netstat -tuln显示监听的端口netstat -tuln \| grep LISTEN
ss -tuln快速显示监听端口ss -tuln \| grep LISTEN
ssh远程连接ssh user@hostssh -i key.pem user@host
scp远程复制文件scp file.txt user@host:/path/ 上传
scp 下载从远程下载scp user@host:/path/file.txt ./
dig查询DNS记录dig example.com
nslookupDNS查询工具nslookup example.com
whois查询域名信息whois example.com

6. 压缩打包

命令用途常用例子
tar -cvf打包(不压缩)tar -cvf archive.tar dir/
tar -czf打包+gzip压缩tar -czf archive.tar.gz dir/
tar -cjf打包+bzip2压缩tar -cjf archive.tar.bz2 dir/
tar -xvf解包(自动识别)tar -xvf archive.tar
tar -xzf解包gziptar -xzf archive.tar.gz
tar -xjf解包bzip2tar -xjf archive.tar.bz2
tar -tzf查看tar.gz内容tar -tzf archive.tar.gz \| head
gzip压缩单个文件gzip file.txt 生成file.txt.gz
gunzip解压gzip文件gunzip file.txt.gz
zip打包并压缩(Windows兼容)zip -r archive.zip dir/
unzip解压zip文件unzip archive.zip
unzip -l查看zip内容unzip -l archive.zip
bzip2bzip2压缩bzip2 file.txt
bunzip2解压bzip2bunzip2 file.txt.bz2

常用组合速查


7. 管道与重定向

概念用途常用例子
\|管道(前一命令输出作为后一命令输入)cat log.txt \| grep "error"
>重定向输出到文件(覆盖)echo "hello" > file.txt
>>重定向输出到文件(追加)echo "world" >> file.txt
2>重定向错误输出command 2> error.log
2>&1将错误输出合并到标准输出command 2>&1 \| tee output.log
<重定向输入mysql < dump.sql
xargs将前一命令输出作为参数find . -name "*.log" \| xargs rm 删除所有log
xargs -0处理含空格的文件名find . -print0 \| xargs -0 rm
tee既输出到屏幕也保存到文件command \| tee output.txt

常用管道套路

# 查找最大的文件
find . -type f -exec ls -lh {} \; | sort -k5 -rh | head -5

# 统计出现最多的词
cat file.txt | tr ' ' '\n' | sort | uniq -c | sort -rn | head

# 查找占用磁盘最多的目录
du -sh */ | sort -rh | head -10

# 提取日志中的错误并计数
grep "ERROR" app.log | awk '{print $NF}' | sort | uniq -c | sort -rn

# 在所有PHP文件中查找并替换
find . -name "*.php" -type f | xargs sed -i 's/old/new/g'

8. 快捷键与技巧

命令行快捷键

快捷键功能
Ctrl+R反向搜索历史命令(再按继续搜索);按 Ctrl+G 取消搜索
Ctrl+A光标移到行首
Ctrl+E光标移到行尾
Ctrl+L清屏(等同 clear
Ctrl+U删除光标前的所有字符
Ctrl+K删除光标后的所有字符
Ctrl+W删除光标前一个单词
Alt+D删除光标后一个单词
Ctrl+Y恢复刚才删除的内容
Tab自动补全文件名或命令
Tab Tab显示所有可能的补全
!!重新运行上一条命令
!$使用上一条命令的最后一个参数

逻辑操作符

操作符用途例子
&&逻辑与(前一条成功才运行后一条)npm test && npm build
\|\|逻辑或(前一条失败才运行后一条)npm test \|\| echo "Test failed"
;顺序执行(不管前一条成功否)cd dir; ls; pwd

后台运行

用法说明例子
command &在后台运行命令python train.py &
nohup后台运行且不被hangup中断nohup python train.py > train.log 2>&1 &
Ctrl+Z挂起当前前台进程运行中按Ctrl+Z
bg将挂起的进程转为后台先Ctrl+Z,再输入 bg
fg将后台进程转为前台fg %1fg
jobs显示后台任务列表jobs
disown %1从shell中脱离进程(不会被关闭)disown %1

常用技巧

# 查看命令历史并运行第N条
history
!100  # 运行第100条命令

# 查看上次命令的执行时间和返回码
time command
echo $?  # 显示上一条命令的返回码

# 在多个命令间编辑并运行
^old^new  # 替换上一条命令中的old为new并运行

# 查看上一条命令的完整信息
history 1

# 快速切换目录
cd -  # 回到上一次的目录
pushd /path  # 将当前目录压入栈
popd  # 返回栈顶目录

# 查找并运行历史命令
Ctrl+R  # 进入搜索模式,输入关键字搜索

# 显示执行时间较长的命令
history | awk '{cmd=$2; count[cmd]++} END {for (c in count) print c, count[c]}' | sort -k2 -rn | head

9. 文件查找与替换速查

场景命令
找文件名包含 "test" 的所有文件find . -name "*test*"
找超过100MB的文件find . -size +100M
找7天内修改过的文件find . -mtime -7
找所有权限为777的文件find . -perm 777
在所有文件中查找 "error" 字符串grep -r "error" .
在特定文件类型中查找find . -name "*.js" -type f -exec grep "TODO" {} \;
替换所有 "old" 为 "new"find . -type f -name "*.txt" \| xargs sed -i 's/old/new/g'
删除所有临时文件find . -name "*.tmp" -delete
找重复的文件(按内容)find . -type f -exec md5sum {} \; \| sort \| uniq -d -w 32

10. 系统信息与监控

命令用途例子
uname -a显示系统信息uname -a
lsb_release -a显示Linux发行版信息lsb_release -a
cat /proc/cpuinfo显示CPU信息cat /proc/cpuinfo \| grep processor \| wc -l 显示CPU核数
uptime显示系统运行时间uptime
dmesg显示系统启动日志dmesg \| tail -20
systemctl管理系统服务systemctl status nginx
journalctl查看系统日志journalctl -u nginx -n 20 查看nginx最后20条日志
crontab -e编辑定时任务crontab -e
crontab -l查看定时任务crontab -l

快速参考:最常用的20条

ls -lah                    # 详细列表含隐藏
cd ~; pwd                  # 回家目录、显示路径
find . -name "*.txt"       # 查找文件
grep -r "pattern" .        # 递归查找内容
cat file.txt               # 显示文件
sed 's/old/new/g' file     # 替换内容
chmod +x script.sh         # 加执行权
ps aux | grep process      # 查找进程
kill -9 PID                # 杀死进程
top                        # 监控CPU/内存
df -h; du -sh /path        # 磁盘使用
ssh user@host              # 远程连接
scp file user@host:/path   # 远程复制
curl https://api.url       # 发送HTTP请求
tar -czf backup.tar.gz dir # 打包压缩
history | grep command     # 查找历史
Ctrl+R                     # 搜索历史命令
cmd1 && cmd2               # 条件执行
nohup cmd > log.txt 2>&1 & # 后台运行
echo $?                    # 查看返回码

更新时间: 2025年2月 适用范围: Linux, macOS, WSL, 其他兼容POSIX的系统