面向运维和开发者的 Linux 命令快速参考,覆盖日常操作、文本处理、网络排查、系统诊断等常见场景。
一、 文件与目录操作
命令 说明 常用示例 ls列出目录内容 ls -l (详细信息), ls -lh (人类可读), ls -a (含隐藏文件), ls -lt (按时间排序)cd切换目录 cd /opt, cd .., cd ~, cd - (回到上一个目录)pwd显示当前路径 pwdmkdir创建目录 mkdir test, mkdir -p a/b/c (递归创建)rm删除文件或目录 rm file, rm -rf dir (慎用 ), rm -i file (删除前确认)cp复制 cp a b, cp -r dir1 dir2, cp -p file1 file2 (保留属性)mv移动或重命名 mv old new, mv file /tmp/touch创建空文件或更新时间戳 touch test.logln创建链接 ln -s /src /link (软链接), ln /src /link (硬链接)stat查看文件详细元信息 stat file.txt (显示 inode、权限、时间戳等)realpath解析文件真实路径 realpath script.sh (显示绝对路径)rename批量重命名 rename 's/\.txt$/\.md/' *.txt (Perl 风格)
二、 文件内容查看与编辑
命令 说明 常用示例 cat查看文件全部内容 cat /etc/hosts, cat file1 file2 > mergedtac反向查看(从最后一行开始) tac file.logless分页查看大文件 less /var/log/syslog (/ 搜索, q 退出, g 到开头, G 到末尾)more分页查看(较老) more file (空格翻页, 回车下一行)head查看文件开头 head -n 20 file.log, head -c 100 file (前100字节)tail查看文件末尾 tail -f app.log (实时追踪), tail -n 30 file, tail -f --pid=12345 (进程退出后停止)grep文本搜索 grep "error" app.log, grep -i "warning" app.log (忽略大小写), grep -r "TODO" src/ (递归), grep -v "^#" file (排除注释)wc统计行数、字数、字节数 wc -l file (行数), wc -c file (字节数)diff比较文件差异 diff file1 file2, diff -u file1 file2 (统一格式, 更易读)vim文本编辑器 vim file.conf (i 插入, Esc + :wq 保存退出, :q! 不保存退出, :%s/old/new/g 全文替换)
三、 查找与搜索
命令 说明 常用示例 find按条件查找文件 find /var/log -name "*.log" -mtime -7 (7天内修改), find . -size +100M (大于100MB), find . -type f -exec chmod 644 {} \; (批量改权限)which查找可执行命令路径 which nginx, which -a java (显示所有匹配路径)whereis查找二进制、源码和手册路径 whereis nginxlocate按数据库快速查找(需更新) locate nginx.conf, updatedb (更新数据库)type显示命令类型(内建/别名/外部) type cd, type llapropos搜索 man 手册页描述 apropos "compress" (查找与压缩相关的命令)
四、 权限与用户管理
命令 说明 常用示例 chmod修改文件权限 chmod 755 script.sh, chmod +x script.sh, chmod -R 644 dir/ (递归)chown修改文件所有者 chown www:www file, chown -R www:www /var/www/htmlchattr修改文件扩展属性(不可变等) chattr +i file (禁止任何修改包括 root), lsattr file (查看)umask设置默认创建权限掩码 umask 022 (文件默认 644, 目录默认 755)useradd添加新用户 useradd -m -s /bin/bash newuser, useradd -r -s /sbin/nologin appuser (系统用户)usermod修改用户属性 usermod -aG docker newuser (附加到组), usermod -L user (锁定用户)passwd修改用户密码 passwd newuser, passwd -l user (锁定)userdel删除用户 userdel -r newuser (同时删除家目录和邮件池)groupadd添加组 groupadd dockerid显示用户和组 ID 信息 id, id wwwwho / w显示当前登录用户 who -b (上次启动时间), w (详细进程信息)last显示最近登录记录 last -n 10, last reboot (重启记录)su / sudo切换用户 / 提权 su - user, sudo -u user command, sudo -l (查看可用权限)
五、 进程管理
命令 说明 常用示例 ps显示进程快照 ps aux, ps -ef, ps aux --sort=-%mem (按内存降序)pstree以树形显示进程关系 pstree -p (显示 PID)top实时进程监控 top (按 M 按内存排序, 按 P 按 CPU 排序, 按 1 显示每个核心)htop增强版 top(需安装) htop (交互式, F5 树形, F9 发送信号)kill终止进程 kill -15 PID (优雅终止), kill -9 PID (强制终止, 慎用 ), kill -HUP PID (重载配置)killall按名称终止进程 killall nginx, killall -9 javapgrep按名称查找进程 PID pgrep -f "java.*app.jar" (匹配完整命令行)pkill按名称发送信号 pkill -f "app.jar"nohup忽略 HUP 信号运行命令 nohup ./start.sh > output.log 2>&1 &screen终端复用器 screen -S session_name, Ctrl+A D (分离), screen -r (重新连接)tmux现代终端复用器 tmux new -s name, Ctrl+B d (分离), tmux attach -t namesystemctlsystemd 服务管理 systemctl status/start/stop/restart/reload nginx, systemctl enable --now nginx
六、 系统状态与监控
命令 说明 常用示例 df查看磁盘空间 df -h (人类可读), df -i (inode 使用情况)du估算文件和目录的磁盘使用量 du -sh /var/log, du -sh * | sort -rh (按大小降序)free显示内存使用情况 free -h, free -h -t (含总计)uptime系统运行时间与平均负载 uptime (load average 1/5/15分钟)uname显示系统信息 uname -a (全部), uname -r (内核版本)lscpu显示 CPU 架构信息 lscpu (型号、核心数、频率、缓存)lsblk显示块设备信息 lsblk, lsblk -f (含文件系统), lsblk -o NAME,SIZE,TYPE,MOUNTPOINTdmesg查看内核环形缓冲区消息 dmesg | tail -20, dmesg -w (实时追踪)iostatCPU 和 I/O 统计 iostat -xz 1 (1秒间隔, 含扩展统计), iostat -x (按设备)vmstat虚拟内存统计 vmstat 1, vmstat -s (事件计数器)sar系统活动报告(历史回顾利器) sar -u 1 3 (CPU), sar -r (内存), sar -b (IO), sar -n DEV (网络)lsof列出打开的文件 lsof -i :80 (谁在占 80 端口), lsof /var/log/syslog, lsof -u www (某用户)strace追踪系统调用和信号 strace -p PID, strace -f -e trace=network command (只看网络调用)dd低层级数据复制和转换 dd if=/dev/zero of=test bs=1M count=100 (IO 基准测试)
七、 网络命令
命令 说明 常用示例 ip网络配置(替代 ifconfig) ip a (地址), ip r (路由表), ip neigh (ARP 表)ss套接字统计(替代 netstat) ss -tuln (TCP/UDP 监听), ss -tan | grep :80 | wc -l (连接数), ss -o state established (已建立连接)ping网络连通性测试 ping -c 4 8.8.8.8, ping -I eth0 10.0.0.1 (指定网卡)curlURL 数据传输 curl -I http://example.com (HTTP 头部), curl -v https://api.example.com, curl -o output http://...wget网络文件下载 wget http://example.com/file.tar.gz, wget -c http://... (断点续传)nc网络瑞士军刀 nc -zv ip port (端口连通性), nc -lvp 8080 (监听), nc file 设备传输traceroute路由追踪 traceroute 8.8.8.8, mtr 8.8.8.8 (增强版, 实时显示)digDNS 查询 dig example.com, dig @8.8.8.8 example.com +short, dig -x 8.8.8.8 (反向解析)nslookupDNS 查询(较老的交互式工具) nslookup example.com, nslookup 回车进入交互模式host简化的 DNS 查询 host example.com, host -a example.com (全量记录)ethtool网卡参数查看与配置 ethtool eth0 (速度/双工), ethtool -S eth0 (统计计数器)tcpdump网络抓包 tcpdump -i eth0 port 80 -w capture.pcap, tcpdump -i any -c 100 -nn (不解析 DNS)
八、 服务管理 (Systemd)
命令 说明 常用示例 systemctl管理 systemd 服务 systemctl status/start/stop/restart/reload nginx, systemctl enable --now nginx, systemctl list-units --type=service --state=runningjournalctl查看 systemd 日志 journalctl -u nginx -f (实时), journalctl -u nginx --since "1 hour ago", journalctl -p err -b (当前启动的错误日志)systemd-analyze分析启动性能 systemd-analyze blame (各服务启动耗时排序), systemd-analyze critical-chain
九、 压缩与解压
命令 说明 常用示例 tar归档压缩工具 tar -czvf archive.tar.gz dir/ (压缩), tar -xzvf archive.tar.gz (解压), tar -tf archive.tar.gz (列出内容); tar cvf archive.tar dir/ (压缩), tar xvf archive.tar (解压)gzip / gunzip.gz 格式gzip file, gunzip file.gz, zcat file.gz (查看内容)bzip2 / bunzip2.bz2 格式(压缩率更高)bzip2 file, bunzip2 file.bz2, bzcat file.bz2xz / unxz.xz 格式(高压缩率)xz file, unxz file.xz, xzcat file.xzzip / unzip.zip 格式zip -r archive.zip dir/, unzip archive.zip, unzip -l archive.zip (查看内容)7z / 7za7-Zip 格式 7z a archive.7z dir/, 7z x archive.7z
十、 软件包管理
发行版 命令 说明 常用示例 Ubuntu/Debian apt高级包管理 apt update, apt upgrade -y, apt install nginx -y, apt remove nginx, apt autoremoveUbuntu/Debian dpkg底层包管理 dpkg -i package.deb, dpkg -l | grep nginx, dpkg -L nginx (查看安装路径)CentOS/RHEL dnf / yum包管理器 dnf install nginx -y, dnf update -y, dnf remove nginx, dnf list installedCentOS/RHEL rpm底层包管理 rpm -ivh package.rpm, rpm -qa | grep nginx, rpm -ql nginx (查看安装路径)ELF 兼容 snap / flatpak沙盒包管理 snap install lxd, flatpak install flathub org.vim.Vim
提示 :CentOS 建议先安装 EPEL (dnf install epel-release),否则很多包找不到。
十一、 文本处理
命令 说明 常用示例 awk模式扫描和处理语言 awk '{print $1, $NF}' file.log, awk -F: '{print $1}' /etc/passwd, awk '/error/ {sum++} END {print sum}' filesed流编辑器 sed -i 's/old/new/g' file, sed -n '10,20p' file (打印10-20行), sed '/^#/d' file (删除注释行)sort排序 sort file, sort -n (数字排序), sort -k 2 (按第二列), sort -u (去重)uniq去重与计数(需先排序) uniq -c | sort -rn (统计各条出现次数并降序)cut按列截取文本 cut -d: -f1,3 /etc/passwd, cut -c1-80 file (每行前80字符)tr字符替换或删除 tr '[:upper:]' '[:lower:]' < input > output (大写转小写), tr -d '\r' < win.txt > linux.txt (删除 Windows 换行符)xargs构建和执行命令行参数 find . -name "*.tmp" | xargs rm -f, cat urls.txt | xargs -P 4 -I {} curl -O {} (并发下载)tee同时输出到文件和标准输出 echo "config" | sudo tee -a /etc/hosts (追加写入, 保留 sudo)paste按列合并文件 paste file1 file2join按共有字段关联文件 join -t, -1 2 -2 1 file1 file2
十二、 定时任务
命令 说明 常用示例 crontab管理用户定时任务 crontab -e (编辑), crontab -l (查看), crontab -r (删除)systemd-timersystemd 定时器(替代 cron 的现代方案) 创建 .timer + .service 文件, systemctl start/stop/enable myapp.timer
crontab 格式 :分 时 日 月 周 命令
# 每天凌晨 3 点执行日志清理
0 3 * * * /usr/local/bin/cleanup.sh >/dev/null 2>&1
# 每 10 分钟检查服务健康
*/10 * * * * /usr/local/bin/healthcheck.sh
十三、 安全与证书
命令 说明 常用示例 opensslSSL/TLS 工具包 openssl s_client -connect example.com:443 (查看证书详情), openssl x509 -in cert.pem -text -noout, openssl genrsa -out key.pem 2048 (生成密钥)ssh-keygenSSH 密钥对生成 ssh-keygen -t ed25519 -C "comment" (推荐 Ed25519), ssh-keygen -y -f id_ed25519 (导出公钥)ssh-copy-id将公钥复制到远程服务器 ssh-copy-id -i ~/.ssh/id_ed25519.pub user@hostmd5sum计算 MD5 哈希 md5sum file.iso, md5sum --check file.md5 (校验)sha256sum计算 SHA-256 哈希 sha256sum file, sha256sum -c file.sha256
十四、 Shell 实用技巧
功能 说明 示例 alias设置命令别名 alias ll='ls -lh', alias grep='grep --color=auto'history查看命令历史 history, !100 (执行第 100 条), !! (执行上一条), !$ (上一个命令的最后一个参数)export设置环境变量 export PATH=$PATH:/usr/local/bin, export LANG=zh_CN.UTF-8source / .在当前 shell 执行脚本 source ~/.bashrc, . env/bin/activateset -e脚本中出错即退出 放在 bash 脚本开头, 避免错误继续执行 \命令换行 长命令用 \ 拆行提高可读性 &后台运行 ./script.sh &, command & disown (后台并脱离终端)
十五、 实用排查技巧
1. 看端口被谁占用
ss -tuln | grep 80
lsof -i :80
2. 看磁盘空间
df -h
du -sh * | sort -rh | head -10
3. 看内存和 CPU
free -h
top # 按 M 按内存排序, 按 P 按 CPU 排序
ps aux --sort=-%mem | head -10
4. 看日志
journalctl -u nginx -f --since "10 min ago"
tail -f /var/log/nginx/access.log
5. 看内核和系统消息
dmesg -T | tail -20 # -T 显示人类可读时间
uptime # 平均负载
6. 文件传输
scp file user@host:/path/
rsync -avz dir/ user@host:/backup/dir/
7. 使用 .d 配置模式
# 将独立配置文件放入对应目录,主配置 include 该目录
/etc/nginx/conf.d/*.conf
/etc/sudoers.d/*
/etc/systemd/system/*.service
原创文章,如需转载,请注明出处。
Post Views: 12