跳转至

Linux 常用命令速查

按使用场景分类的日常命令清单,只收录高频用法。文本处理三剑客单独整理在这里。持续更新。

文件与目录

命令 说明 / 示例
ls -lah 人性化单位显示全部文件(含隐藏文件)
cd - 回到上一个目录
pwd 当前路径
cp -a src/ dst/ 递归复制并保留属性(备份目录首选)
mv a b 移动 / 重命名
rm -rf dir/ 递归强制删除(用前先 ls 一眼)
mkdir -p a/b/c 递归建目录
ln -s target link 创建软链接
tree -L 2 -a 树状查看两层目录

查找文件

# 按名字找(推荐 fd:更快的现代替代品)
find . -name "*.cpp" -not -path "*/build/*"
find / -type f -size +100M 2>/dev/null     # 找出大于 100M 的文件

# 按内容找(grep 递归)
grep -rn "TODO" --include="*.cpp" .

# 最近修改的文件
find . -mmin -30 -type f

查看文件

命令 说明 / 示例
cat / less / head / tail less 用 q 退出、/xx 搜索、G 到末尾
tail -f app.log 跟踪日志滚动输出(tail -f 常驻看日志首选)
tail -n 100 app.log 看最后 100 行
wc -l file 统计行数
file x.bin 判断文件真实类型
stat file 看详细属性(大小/权限/时间戳)
du -sh dir/ 看目录总大小;du -h --max-depth=1 \| sort -rh 找大头

进程与作业

ps aux | grep nginx         # 找进程
pgrep -a nginx              # 同上,更直接

kill -TERM <pid>            # 优雅退出(默认)
kill -9 <pid>               # 强杀(先试 TERM 再用 9)
killall / pkill <name>      # 按名字杀

top / htop                  # 动态监控(htop 更好用)
uptime                      # 负载概览
lsof -i:8080                # 谁占用了 8080 端口

前后台作业

操作 效果
Ctrl+Z 挂起当前前台进程
bg / fg 让挂起的进程在后台 / 前台继续
jobs 列出当前会话作业
nohup cmd & 挂断不退出,输出进 nohup.out
disown -h %1 把已运行作业从会话剥离

systemd 服务管理

systemctl start / stop / restart / status nginx
systemctl enable --now nginx        # 设为开机自启并立刻启动
systemctl list-units --failed       # 挂掉的服务
journalctl -u nginx -f              # 跟踪服务日志
journalctl -u nginx --since today

网络

ip a                       # 网卡与 IP(替代 ifconfig)
ip route                   # 路由表
ss -tlnp                   # 监听端口与进程(替代 netstat)

ping -c 4 baidu.com
curl -I https://example.com          # 只看响应头
curl -o file.tar.gz -L url           # 下载(跟随重定向)
wget -c url                          # 断点续传

dig +short example.com     # DNS 解析
tracepath example.com      # 路由追踪(无特权版 traceroute)

# SSH 相关
ssh user@host -p 2222
scp file user@host:/path/
rsync -avzP src/ user@host:dst/     # 增量同步,大文件传输首选

局域网扫描

nmap -sn 192.168.1.0/24 扫活主机;arp-scan --localnet 也可以。nmap 需要安装。

磁盘

命令 说明 / 示例
df -h 各挂载点容量
lsblk 块设备树(看磁盘/分区一目了然)
mount / umount 挂载 / 卸载;mount -a 按 fstab 重挂
blkid 查看 UUID(写 fstab 用)
ncdu /path 交互式磁盘占用分析(需安装,查「磁盘去哪了」神器)

用户与权限

sudo -i                        # 切到 root(比 su 更可控)
sudo -l                        # 看当前用户能执行哪些 sudo 命令

chmod 755 file                 # rwx r-x r-x
chmod +x script.sh             # 加可执行位
chmod -R a+rX dir/             # 递归:目录可进入,文件只读
chown user:group file
chown -R www-data: /var/www

useradd -m -s /bin/bash name   # 建用户并建家目录
passwd name                    # 改密码
id name                        # 查 uid/gid/组

权限数字

r=4, w=2, x=1,三组依次为 属主 / 属组 / 其他。755 = 属主全权,其余读 + 执行;600 = 仅属主可读写(密钥文件必须是这个)。

打包与压缩

# tar:记住 c 创建 / x 解开 / t 列表,z 表示 gzip
tar -czvf archive.tar.gz dir/        # 打包 + gzip
tar -xzvf archive.tar.gz             # 解压
tar -xzvf archive.tar.gz -C /tmp     # 解压到指定目录
tar -tf  archive.tar.gz | head       # 不解压先看内容

zip -r archive.zip dir/
unzip archive.zip -d /tmp

gzip -k file                         # 压缩(-k 保留原文件)
gunzip file.gz

系统信息

uname -a                # 内核版本
hostnamectl             # 发行版 + 内核 + 主机名
lscpu                   # CPU
free -h                 # 内存
lsblk / lsusb / lspci   # 设备
dmesg -T | tail -50     # 内核日志(硬件问题排查)
cat /etc/os-release     # 发行版信息(脚本里判断发行版用它)

Shell 效率技巧

按键 / 命令 效果
Ctrl+R 反向搜索历史命令(再按继续向上找)
Ctrl+A / Ctrl+E 光标到行首 / 行尾
Ctrl+U / Ctrl+K 删到行首 / 删到行尾
Ctrl+W 删前一个单词
Ctrl+L 清屏
!! 上一条命令(sudo !! 补 sudo)
!$ 上一条命令的最后一个参数
Alt+. 插入上一条命令最后参数(可连按)
command1 && command2 前者成功才执行后者
cmd > out.log 2>&1 stdout + stderr 都重定向进文件
cmd 2>/dev/null 丢弃错误输出
# 常用管道组合
dmesg | grep -i usb                    # 过滤
ps aux | grep nginx | grep -v grep     # 排除 grep 自身
history | awk '{print $2}' | sort | uniq -c | sort -rn | head   # 最常用命令 Top10

评论