资讯动态

linux系统编程(十六):常用Linux命令实用速查

发布时间:2026/10/20 19:52:31 来源:尧图企业网站定制
常用 Linux 命令实用速查 —— 系列收尾的一张大表系列前 14 篇都是 C 函数级的系统编程最后一篇换个角度日常运维 / 调试要用到的 shell 命令速查。按 “文件 / 文本 / 进程 / 网络 / 系统 / 调试 / 性能” 七大类汇总每条带最常用 flag 和典型用法。新手当入门老手当备忘。0. 引言服务挂了三十秒查到原因命令查什么topCPU 谁占满了free -h内存够吗df -h磁盘满了吗ss -tnlp端口监听情况journalctl -xe系统日志有错吗dmesg | tail内核有没有 OOM六行命令搞定第一轮排查。下面把每条都拆开讲。1. 文件操作命令用途常用例子ls列文件ls -lah详细 人类大小 隐藏cd切目录cd -回到上一个pwd显示当前路径—cp复制cp -a src dst保留属性mv移动 / 改名—rm删除rm -rf dir递归强制慎用mkdir建目录mkdir -p a/b/c递归建rmdir删空目录—ln链接ln -s target name软链接find递归查找见 §1.1locate查文件数据库updatedb后才有数据which找命令路径which gccfile看文件类型file binarystat看 inode / 时间戳stat foo.cdu目录大小du -sh *当前目录每项大小df磁盘空间df -h人类可读tar归档tar -czf x.tgz dir/zip/unzipzip 格式—1.1 find 进阶命令含义find . -name *.c按名字查find . -type f -mtime -11 天内修改的文件find . -type f -size 100M大于 100MB的文件find . -name *.log -delete找到就删find . -name *.c -exec grep TODO {} 找文件再grepfind . -name *.tmp | xargs rm找到管道删1.2 chmod / chown命令含义chmod 755 script.shrwxr-xr-xchmod x script.sh加可执行位chmod -R uw dir/递归给 owner 加写权限chown user:group file改属主chown -R user:group dir/递归改属主2. 文本处理命令用途常用例子cat全部输出cat fileless分页less file/keyword搜q退more老式分页—head头部head -n 20 filetail尾部tail -f log实时跟踪 ⭐wc计数wc -l file行数grep模式查找见 §2.1sed流编辑见 §2.2awk强大文本处理见 §2.3sort排序sort -n -k 2按第 2 列数值uniq去重要先 sortsort | uniq -c计数cut切列cut -d: -f1 /etc/passwdpaste拼列paste a.txt b.txttr字符替换tr a-z A-Z大小写转换xargs把输入变参数find ... | xargs greptee复制 stdout 到文件cmd | tee log2.1 grep 进阶命令含义grep -r pattern dir/递归grep -i pattern file忽略大小写grep -v pattern file反向不匹配grep -E a|b file扩展正则grep -P \d filePerl 正则grep -n pattern file显示行号grep -A 5 err file匹配后5 行grep -B 5 err file匹配前5 行grep -C 5 err file匹配前后5 行 ⭐grep -l err *.c只显示文件名grep --include*.c -r foo .只在.c文件里搜2.2 sed 进阶命令含义sed s/old/new/ file替换每行第一个sed s/old/new/g file全部替换sed -i s/old/new/g file直接改文件⭐sed -i.bak s/old/new/g file改前备份为.baksed -n 5,10p file只显示 5-10 行sed /pattern/d file删除匹配行2.3 awk 速查命令含义awk {print $1} file打印第 1 列awk -F: {print $1} /etc/passwd用:分隔awk $3 100 {print $1} file第 3 列 100 时打印第 1 列awk {sum $1} END {print sum}求和awk NR5 file第 5 行awk /pattern/ {print} file匹配行3. 进程相关命令用途常用例子ps列进程ps aux/ps -eftop实时进程按M按内存排P按 CPUhtop增强版 top颜色 树形kill发信号kill -9 PID强杀pkill按名字发信号pkill -9 firefoxkillall同上—pgrep按名字找 PIDpgrep nginxpidof按名字找 PIDpidof systemdnohup无视 SIGHUPnohup ./srv nice调优先级nice -n 10 cmdtime计时time makejobs看 shell 后台任务fg %1调到前台nprocCPU 数make -j$(nproc)3.1 ps 常见组合命令含义ps aux全部进程BSD 格式⭐ps -ef全部进程UNIX 格式ps aux --sort-%cpu | head按 CPU 排前 10ps aux --sort-%mem | head按内存排前 10ps -p PID -o pid,ppid,cmd看特定 PID 的指定字段ps -L -p PID看进程的所有线程3.2 信号速查命令含义kill -l列出所有信号kill -SIGTERM PID礼貌停默认kill -SIGKILL PID强杀kill -9kill -SIGSTOP PID暂停进程kill -SIGCONT PID继续运行kill -SIGHUP PID重读配置守护进程惯例4. 网络命令用途常用例子ip现代网络配置ip a看接口ifconfig老接口deprecatedsssocket 信息 ⭐ss -tnlp监听 TCPnetstat老的网络统计deprecatedpingICMP echoping baidu.comtraceroute路径跟踪—mtr实时路径—nslookup/digDNSdig short baidu.comcurlHTTP 客户端见 §4.2wget下载文件wget -c url续传ncnetcat 万能nc -lvp 8080监听tcpdump抓包tcpdump -i any port 80iptables防火墙root 用iperf带宽测试—route/ip route路由表—4.1 ss 常用命令含义ss -tnlpTCP 数字端口 监听 进程 ⭐ss -tnapTCP 全部 进程ss -unlpUDP 监听ss -s摘要统计ss -tiTCP 详细信息rtt 等4.2 curl 进阶命令含义curl http://x.comGETcurl -i http://x.com显示响应头 bodycurl -I http://x.com只看响应头HEADcurl -X POST -d a1b2 urlPOST 表单curl -X POST -H Content-Type: application/json -d {a:1} urlPOST JSONcurl -o file url保存到文件curl -L url跟随 301 / 302 重定向curl -u user:pass urlBasic authcurl --resolve x.com:80:1.2.3.4 http://x.com强制 DNS4.3 tcpdump 抓包命令含义tcpdump -i any port 80抓 80 端口tcpdump -i eth0 host 192.168.1.1抓特定主机tcpdump -A -i any port 8080ASCII 显示载荷tcpdump -w cap.pcap port 80写文件wireshark 看tcpdump -r cap.pcap读 pcap 文件5. 系统信息命令用途uname -a内核版本 / 主机名 / 架构hostname主机名whoami当前用户iduid / gidwho/w谁登录了last登录历史uptime开机时长 负载date当前时间cal日历env环境变量lsb_release -a发行版信息cat /etc/os-release同上更通用dmidecode硬件信息lspciPCI 设备lsusbUSB 设备lsblk块设备盘lscpuCPU 信息lsmod已加载内核模块5.1 内存 / 磁盘 / IO命令含义free -h内存使用人类可读free -m内存使用MBvmstat 1 5每秒一次共 5 次iostat -xz 1每秒磁盘 IOdf -h磁盘空间df -iinode 使用率du -sh *当前目录每项大小du -ah | sort -h | tail找最大的文件⭐6. 调试 / 跟踪命令用途strace跟踪系统调用ltrace跟踪库调用gdb调试器lsof列出打开的文件 / fdfuser谁在用这个文件pmap进程内存映射pstack/eu-stack进程调用栈objdump反汇编nm符号表ldd看动态库依赖readelfELF 文件信息addr2line地址转源代码行号6.1 strace 进阶 ⭐命令含义strace -p PID跟踪运行中的进程strace -e traceopen,read,write cmd只跟踪这几个 syscallstrace -f cmd跟踪 fork 出的子进程strace -c cmd统计 syscall 调用次数strace -o trace.log cmd输出到文件strace -tt cmd加时间戳strace -T cmd加每次调用耗时6.2 lsof 常用命令含义lsof -i :80谁在用 80 端口⭐lsof -i tcp所有 TCP 连接lsof -p PIDPID 打开了什么lsof -u user用户打开的 fdlsof file谁在用这个文件lsof | grep deleted已删除但仍打开磁盘满的元凶6.3 gdb 极简速查启动方式命令含义gdb ./prog启动gdb -p PIDattach 到运行中的进程gdb ./prog core看 core dumpgdb 内部命令命令含义b main在main设断点r [args]运行c继续n下一步不进函数s进函数bt调用栈 ⭐info threads看线程列表thread N切到线程 Np var打印变量q退出7. 性能分析命令用途top/htop实时进程 CPU / 内存vmstat系统层面 CPU / 内存 / IOiostat磁盘 IOmpstat每个 CPU 核pidstat每个进程的资源使用sar历史性能perf内核 用户态 profiler ⭐perf top实时热点函数perf record / report离线 profile7.1 perf 速用命令含义perf top实时热点perf record -g ./progprofile带调用栈perf report查看 profile 结果perf stat ./prog看 cache miss / IPC 等perf stat -e cycles,instructions ./prog指定事件计数7.2 vmstat 关键列vmstat1列含义r/b运行队列 / 阻塞队列长度us/sy/id/wa用户 / 内核 / 空闲 /等 IOCPU%si/soswap in / out 0 表示在用 swap性能差8. 实用组合场景命令找最大的 10 个文件du -ah / 2/dev/null | sort -h | tail -10看哪个进程在用某个文件fuser file或lsof file找占用磁盘的已删除但仍打开文件lsof | grep deleted | sort -k 7 -n -r | head解决重启对应进程跟踪一个进程的全部 fdls -l /proc/PID/fd/看进程的内存映射cat /proc/PID/maps或pmap -x PID看进程当前在干嘛卡住了strace -p PID/cat /proc/PID/wchan/cat /proc/PID/stack/gdb -p PID -batch -ex bt实时跟踪日志 过滤tail -f /var/log/syslog | grep -i errorsystemd 服务日志journalctl -fu nginx/journalctl --since 1 hour ago -p err临时压测一个端口服务端nc -lvp 8080客户端echo hello | nc localhost 8080找占用某端口的进程ss -tnlp | grep :80/lsof -i :80/fuser 80/tcp后台执行 完整日志nohup ./longrun out.log 21 disown9. 一页式速查最常用 30 条类最常用命令文件ls -lah/cd -/cp -a/rm -rf慎 /find . -name *.x文本grep -rn/tail -f/head -20/sed -i s/old/new/g/awk {print $1}进程ps aux/top/kill -9 PID/pgrep/pkill网络ss -tnlp/curl -i/tcpdump -i any port 80/ping/dig系统uname -a/uptime/free -h/df -h/du -sh *调试strace -p PID/lsof -i :80/gdb -p PID/pmap PID/cat /proc/PID/maps性能htop/iostat -xz 1/vmstat 1/perf top/perf record -g10. 收尾到这里Linux基础工具命令层就讲完了。下面进入C 库基础篇——写好的代码到底跑在什么内存上标准库到底有多少坑文件系统怎么操作这些是 Linux 下 C 开发的命脉。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑