Linux命令手册:按场景分类的高频命令与避坑指南

Linux命令手册:按场景分类的高频命令与避坑指南 简介一份系统整理 Linux 常用命令的 PDF 速查手册面向刚入门 Linux 的初学者、日常使用命令行的运维人员以及备考计算机相关认证的读者。该手册按文件管理、磁盘管理、文件权限、打印管理、用户管理和软件管理等模块分类编排每个命令均列出具体用法、常用参数及功能注解覆盖 ls、pwd、find、chmod、chown、fdisk、mount、useradd、rpm 等高频操作可帮助使用者快速定位并掌握对应命令的实际用法。资源共 1 个文件文件类型为 PDF压缩包整体大小约 110KB体积小巧、便于收藏和按需查阅。目前已有 742 人学习/下载。对于需要在 Linux 系统中高效完成文件操作、权限维护、磁盘分区和软件安装的读者来说这是一份实用且便于随身查阅的指令速查工具。1. 从零梳理一份能救命的Linux命令手册做了这么多年运维和开发我太清楚新手拿到Linux时的第一反应了满屏的字符不知道从哪下手敲一个命令报一个错好不容易跑通了又记不住。于是很多人会去下载各种“Linux常用命令大全”但下载完就吃灰因为那些手册往往是命令的堆砌没有场景、没有优先级、没有避坑提示。这份“完整版Linux常用命令手册大全”的思路不太一样。它要解决的不是“命令多不多”而是“命令怎么用才不踩坑”的问题——哪些命令在日常工作中出现频率最高哪些参数最容易救急哪些坑最容易被新手踩。往下拆解的时候我会按照实际操作场景来组织命令而不是简单按字母表罗列这样当你遇到实际问题时翻到对应章节就能直接照做。这份手册的内容覆盖了文件操作、文本处理、权限管理、进程监控、网络排查、磁盘管理、压缩归档、软件安装和vim编辑器等模块基本能覆盖日常运维和开发所需的90%以上操作场景。无论是刚入门的学生、转行运维的新人还是被频繁调到服务器上排查问题的开发都能从里面找到自己需要的部分。2. 手册的整体设计与命令体系分类思路2.1 为什么要按功能场景分类而不是按字母排序我见过不少命令手册是按字母排序的看起来工整实际用起来非常痛苦。当我忘了某个命令的名字时按字母翻手册等于大海捞针。而按功能场景组织比如“我想看磁盘空间”“我想查端口占用”“我想改文件权限”直接定位到对应那个分类就行这才符合真实的使用逻辑。另一个原因是命令之间有很强的联动性。比如排查服务起不来的问题会同时用到systemctl查服务状态、journalctl看日志、ss查端口、ps查进程这些命令放在同一个“服务与进程管理”的章节里排查的时候就能一气呵成不用跨好几个板块来回翻。完整版手册的目录就是按这种“有问题直接翻对应章节”的思路来编排的。2.2 命令选取的三条标准高频、实用、不可替代市面上的命令大全动辄几百条但很多命令一个人一年都用不上一次。这份手册在选取命令时定了三条标准宁可少收也不凑数。第一条是高频日常工作里几乎天天碰到的命令必须收全比如ls、cd、cat、grep、ps这些。第二条是实用有些命令平时用不上但一旦遇到特定场景就能救命比如磁盘满的时候要用du定位大文件系统变慢的时候要看top或vmstat这类命令占了手册里很大的篇幅。第三条是不可替代有些操作没有替代方案比如改文件所有者只能用chown、修改用户组只能用chgrp这类命令必须单独整理清楚。2.3 从入门到精进的三个梯度划分完整版手册把命令分成了三个梯度这样不同基础的人可以按需取用。第一个梯度是“必会命令”大概60条左右对应的是能独立完成日常文件管理和系统查看的水平。比如ls的各种参数-l看详情、-a看隐藏文件、-h显示人性化大小、cd的快捷方式~回家目录、-回上一个目录、cp和mv的常用组合-r递归、-i覆盖前提示。第二个梯度是“进阶命令”适合需要排查问题的运维和开发比如find的各种查找条件、grep的正则匹配、sed的增删改替换。第三个梯度是“高手命令”包括awk处理复杂文本、rsync增量同步、strace跟踪系统调用等这些是深入排查问题时才需要用的。3. 文件与文本操作使用频率最高的命令群3.1 文件查看的三件套ls、cat、lessls是绝大多数人进入Linux碰到的第一个命令但很多人的用法停留在ls和ls -l。实际工作中ls -lh更常用因为-h能把文件大小显示成人类好读的K、M、G不用自己在脑子里换算。ls -lt按修改时间倒序排列排查“哪个日志文件最近写过”的时候特别好用。ls -la在查看隐藏配置文件时是必备操作像.bashrc、.gitconfig这类点开头的文件不带-a是看不到的。cat适合查看小文件但一旦文件超过几百行刷屏刷得你想砸键盘。这时请用less它可以翻页、可以搜索、可以随时按q退出。less的搜索功能经常被忽略输入/关键词回车就能向下搜索按n跳转到下一个匹配项查日志的时候依赖这个功能可以说效率翻倍。tail -f是另一个高频操作实时跟踪日志输出的时候就靠它加个-n 50可以先看最后50行再进入跟踪模式。3.2 文本处理三剑客grep、sed、awkgrep的定位是“找”在文件或命令输出里找匹配的行。最常用的是grep 关键词 文件但有几个参数必须记得。grep -i忽略大小写grep -v反向匹配grep -r递归搜索目录。排查日志时grep -i error app.log | head -30比直接打开日志文件高效得多。grep -E支持扩展正则一次匹配多个关键词比如grep -E error|exception|failed。sed的定位是“改”按行处理文本。第一个高频场景是替换文本命令格式是sed s/旧文本/新文本/g 文件注意最后的g表示全局替换不加的话每行只替换第一个匹配到的地方。第二个高频场景是删除指定行sed 5d删除第5行sed 10,20d删除第10到20行。第三个场景是打印指定范围sed -n 30,50p配合-n参数只输出30到50行查看大文件的中间部分比cat舒服。awk要复杂一些它的强项是处理“有规律的列”比如以空格或逗号分隔的表格数据。awk {print $1, $3}打印每行的第1列和第3列awk -F: {print $1} /etc/passwd用冒号做分隔符提取用户名。再配合一些内置变量能实现更实用的功能例如awk {sum $1} END {print sum}对第一列求和统计日志里的访问量就靠这个。新手不用一上来就把awk的语法啃完记住几个固定套路遇到具体需求再查完整手册里的awk规则就行。3.3 文件查找find 的高效使用方式很多新人习惯用find / -name xxx全盘搜索结果卡半天还把磁盘I/O拉满。正确姿势是先缩小搜索范围比如明确文件在/home还是/opt下。find /home/user -name *.log指定目录和文件名模式效率比全盘搜索高出几个数量级。find不只能按名字搜按时间查找是排查问题时的高频场景。find /var/log -mtime -1查找最近一天内修改过的文件find /var/log -mmin -30查找最近30分钟内改过的日志文件轮转判断、临时文件清理都能用到。按大小搜也很实用find / -size 1G找出所有超过1G的文件磁盘满的时候用这招定位大文件比一个个进目录执行du快得多。3.4 文件传输与归档从本机到服务器把本地文件传到服务器或者从服务器下载文件我首选scp。命令格式是scp 本地文件 用户名服务器IP:/目标路径反过来下载就是scp 用户名服务器IP:/文件路径 本地目录。加上-r参数可以传整个目录。scp走的是SSH协议所以端口不是默认22时要加-P 端口号大写的P小写的p在scp里有别的含义。做文件备份和归档tar是绕不开的工具。压缩打包一条命令搞定tar -czvf backup.tar.gz /home/user/data其中c代表创建压缩包z代表用gzip压缩v显示过程f指定包名。解压的时候把c换成xtar -xzvf backup.tar.gz。记住这几个字母参数的组合备份和解压就够用一辈子了。4. 权限、进程与用户管理系统稳定的基石4.1 权限模型的理解与 chmod 实战Linux的权限模型用九位字符表示比如rwxr-xr--分成三组分别对应文件所有者、用户组、其他人的权限。r是读4w是写2x是执行1数字权限就是把这些值相加。chmod 755 文件的意思是所有者有完整权限4217组用户和其他用户有读和执行权限415。这个数字记法一定要熟练掌握部署脚本、上传网站文件的时候天天要用。实际工作中最常用的几个权限设置chmod 600用于私钥等敏感文件只有所有者能读能写chmod 644是大多数普通文件的默认权限所有者可读写其他人只读chmod 755用于脚本和目录需要执行权限的场景必备chmod 777要谨慎使用任何人都能做任何操作安全隐患极大除非在很紧急的临时场景下否则不建议用。4.2 用户与用户组useradd、usermod、passwd创建用户的命令是useradd但有几个参数必须搭配使用。useradd -m -s /bin/bash 用户名中的-m会在/home下创建用户主目录不加的话用户没有自己的目录会很别扭-s指定登录shell一般都用/bin/bash不指定的话可能给个/bin/sh用起来缺一堆功能。用户创建后第一件事是设密码passwd 用户名按提示输入两次密码就行。修改用户信息用usermod比如把用户加到sudo用户组usermod -aG sudo 用户名这里的-a表示追加-G指定用户组。不加-a直接-G会把用户从原来的所有组里移除这也是个新手容易踩的坑。删除用户用userdel -r 用户名-r参数会同时删除用户的主目录和邮件目录不加的话系统里会残留垃圾数据。4.3 进程管理ps、top、kill 的使用技巧进程查看最常用的命令是ps -ef输出内容包含PID进程ID、PPID父进程ID、CPU和内存占用等信息。结合grep可以快速找特定进程ps -ef | grep nginx。系统负载过高时用top查看实时进程列表按P按CPU排序按M按内存排序这两个快捷键排查性能问题时几乎必按。top界面里按c可以显示完整的命令行参数很多进程只看名字看不出来是什么加上参数就一目了然了。进程杀不掉是高频问题。kill 1234是温和地请求进程退出但如果进程没响应就需要kill -9 1234强制杀死。-9是非常暴力的手段进程没机会保存状态或清理临时数据非必要不要轻易用。建议的顺序是先kill等两秒用ps确认是否还在还在再考虑kill -9。批量杀进程可以用pkill比如pkill -f node app.js-f匹配完整命令行。4.4 服务管理systemctl 日常操作在主流的Linux系统上管理服务基本都用systemctl。启动服务是systemctl start 服务名停止是systemctl stop 服务名重启是systemctl restart 服务名查看状态是systemctl status 服务名全部是固定套路没有太多记忆负担。关键是要搞清楚几个状态类型enable表示开机自启disable表示禁用自启active表示正在运行。新装的服务经常忘了设置开机自启然后服务器重启后服务起不来排查半天发现是这个问题。systemctl enable --now 服务名可以一条命令同时设置开机自启并立即启动。5. 网络排查必会从ping到curl5.1 连通性检查 与 DNS 解析排查网络不通时第一件事就是ping。ping -c 4 www.baidu.com发送4个ICMP请求-c参数控制数量不指定的话会一直ping下去按CtrlC才会停。如果ping不通可能是网络不通也可能是域名解析失败这时候用nslookup 域名查看DNS解析结果或者用dig 域名获取更多的解析信息。这两条命令在排查域名问题时互相配合基本能定位80%的DNS类故障。5.2 端口监听与连接状态ss 替代 netstat较新版本的系统推荐使用ss命令替代老旧的netstat。查看端口监听状态用ss -tlnp其中-t只显示TCP连接-l只显示监听中的端口-n不解析服务名直接用端口号显示-p显示占用端口的进程号。这组参数是排查“端口被谁占了”的核心命令。比如执行ss -tlnp | grep 8080立刻能看到PID和进程名直接定位占用端口的元凶。查看所有连接状态可以用ss -an统计不同状态的连接数用ss -s。当服务出现大量TIME_WAIT或CLOSE_WAIT连接时通过ss -an | awk {print $1} | sort | uniq -c可以看到各种连接状态的数量分布这为分析连接泄漏和性能瓶颈提供了关键线索。5.3 接口测试利器curl 的常用参数curl是做接口调试和下载文件的神器。最基础的用法是curl 网址直接把返回内容输出到终端。调试接口时结合几个参数非常实用curl -I只显示响应头curl -X POST指定请求方法curl -d 参数发送POST数据curl -H Content-Type: application/json设置请求头。排查接口问题时curl -v可以输出整个请求和响应过程的详细信息包括TLS握手、请求头发送定位问题比看应用日志还快。下载文件用curl -O URL-O会保留远程文件名curl -o 文件名 URL可以自定义保存的文件名。加上-L参数自动跟随重定向很多下载地址是跳转的不加-L可能只能下载到一个很小跳转页面。6. 磁盘与系统资源查空间与看负载6.1 磁盘空间使用率df 和 du 的区别df -h查看磁盘分区整体使用情况-h人性化显示大小。输出里重点关注Use%列超过85%就该考虑清理了。这个命令适合回答“磁盘是不是满了”的问题。du -sh则是看特定目录占用了多少空间du -sh /var/log显示整个日志目录的总大小du -h --max-depth1列出当前目录下每个子目录的大小磁盘满的时候配合du一层层往下钻很快就能定位到大文件在哪个目录。6.2 内存与CPUfree、top、vmstat 组合观察查看内存用free -h重点看available这一列这才是应用程序实际可用的内存量而不是看free这一列。free列数值很小不代表内存不够因为Linux会尽量把空闲内存用作缓存应用需要时会自动释放这是正常行为。top适合实时观察但要记录历史趋势或者快速定位瓶颈vmstat更好用。执行vmstat 1 5每1秒刷新一次共输出5次关注r列等待运行的进程数和si、so列换入换出大小。r持续大于CPU核心数说明CPU忙不过来si和so持续大于0说明物理内存不够在频繁使用交换分区这些都是系统性能调优的重要线索。6.3 历史负载复盘uptime 与 /proc/loadavg想知道系统最近一段时间的负载情况uptime是最快的命令输出最后三个数字分别对应1分钟、5分钟、15分钟的平均负载。三个数字都高说明持续高负载只有1分钟数值高说明是瞬时冲击。cat /proc/loadavg可以看到更详细的内容。结合top里的负载数值能判断服务器是持续瓶颈还是偶发抖动。7. 软件安装与网络工具补充7.1 包管理器的核心套路apt 与 yum不同Linux发行版用的包管理器不同Debian系Ubuntu、Debian用aptRedHat系CentOS、Rocky用yum。更新软件源用apt update或yum makecache安装软件用apt install 软件名或yum install 软件名卸载用apt remove或yum remove。搜索软件能否安装用apt search或yum search。一个实用的小技巧Ubuntu下安装Python开发依赖时apt build-dep python3自动安装编译Python所需的所有依赖包比手动逐个安装快得多。使用yum时yum provides 文件名可以反查某个文件属于哪个软件包这对于“命令找不到但不知道装什么包”的场景非常有效。7.2 进程端口联动排查lsoflsof是排查“文件到底被谁占用”的利器最经典的用法是lsof -i:8080查看哪个进程占用了8080端口。它还能查看某个文件被哪些进程打开这在清理临时文件或卸载磁盘时经常用到。lsof | grep deleted结合删除但未被释放的文件磁盘空间明明删了文件却一直没有释放多半是这个原因找到对应的PID重启那个进程就能释放空间。7.3 一行命令组合拳管道与重定向管道符号|把前一个命令的输出作为后一个命令的输入这是Linux命令的高阶玩法。比如ps -ef | grep java | grep -v grep过滤出Java进程最后那个grep -v grep是为了排除掉grep命令自身。cat access.log | awk {print $1} | sort | uniq -c | sort -rn | head -10统计访问量最高的10个IP整个命令链通过管道协作一行搞定复杂的统计需求。重定向也很重要。command file把输出覆盖写入文件command file追加写入command 21把错误输出也重定向到标准输出。写脚本调试时经常需要把日志同时输出到终端和文件command 21 | tee log.txt同时实现两个效果。8. vim 与 bash 技巧编辑器与Shell的进阶操作8.1 vim 三模式与高频操作vim有命令模式、插入模式、底行模式三个状态记忆重点是“Esc回到命令模式i进入插入模式:进入底行模式”。新手最容易卡在不知道怎么退出vim上记住Esc确保回到命令模式然后输入:q退出、:wq保存退出、:q!不保存强制退出。日常操作里命令模式下dd删除当前行yy复制当前行p粘贴/关键词搜索。跳到文件末尾按G跳到文件开头按gg。底行模式下:set nu显示行号:s/旧/新/g替换:20直接跳到第20行。配合前面讲过的sed语法在vim里做批量替换时思路是完全一致的命令模式学一遍两边都受益。8.2 bash 快捷操作与history大法bash默认支持快捷键CtrlA跳到行首、CtrlE跳到行尾、CtrlU删除光标前的内容、CtrlK删除光标后的内容、CtrlR反向搜索历史命令。其中CtrlR是效率提升最大的快捷键输入几个关键词就能搜到之前敲过的长命令不用再重新打一遍。history命令查看历史记录配合!编号可以快速重跑某条命令。比如history显示第100条是docker start nginx直接输入!100回车就执行了。history | grep 关键词从历史里找命令也特别实用。把常用命令改成别名可以大幅提升效率在~/.bashrc里写一行alias llls -alh重载配置后ll就等价于完整命令。8.3 发现“命令不存在”的排查路径在Linux里敲某个命令提示command not found首先得区分是命令没安装还是安装位置不在PATH里。用which 命令名看是否能找到可执行文件路径找不到的话用包管理器搜索相关软件包比如apt search 命令名或yum search 命令名。如果是源码编译安装的软件可执行文件通常在/usr/local/bin下如果没加到PATH里可以用绝对路径执行或者重新切换到软件的bin目录运行。9. 实战案例复盘一次服务器异常的完整排查记录某个周一下午线上的应用突然响应缓慢。我先用uptime看了负载1分钟负载比5分钟高出不少说明是突发问题。然后top查看CPU占用发现一个php-fpm进程CPU接近100%。接着ss -tlnp确认了端口连接数特别高再用ps -ef | grep php-fpm发现进程数量远超之前的配置。按顺序执行journalctl -u php-fpm --since 30 minutes ago查服务日志看到大量超时记录。进一步排查时用df -h发现磁盘使用率92%日志文件非常大磁盘I/O成了瓶颈。最后清理了旧日志重启php-fpm服务系统恢复平稳。整个排查过程离不开前面章节提到的命令组合这就是命令手册的价值——不是背命令而是知道在什么场景该用什么命令按什么顺序去查。10. 常见问题速查与避坑指南问题现象排查命令常见原因与处理思路磁盘空间满df -h查看分区du -sh *定位大目录日志文件过大用truncate -s 0 文件名清空而不是直接删端口被占用ss -tlnp | grep 端口号找到PID后用ps -ef确认是什么进程再决定是否处理系统负载飙高top按CPU排序vmstat 1 5看等待队列先区分CPU瓶颈还是I/O瓶颈再排查具体进程删除文件空间未释放lsof | grep deleted文件被进程占用需重启相关进程或服务命令找不到which 命令名apt search 或 yum search区分是未安装还是PATH问题权限拒绝ls -l检查权限id查看当前用户用chmod或chown调整必要时切换sudoSSH连接慢ss -tlnp看22端口uptime看负载可能是DNS反向解析问题或系统负载过高这里插两条实际经验。第一rm -rf是危险系数最高的命令在任何生产环境执行前务必确认当前目录路径用pwd看一下再用ls确认目录内容。我见过有人把rm -rf /home/user/data打成rm -rf /home/user /data空格位置错了把用户目录一起删了。第二执行完删除操作后马上用df -h确认空间是否真的释放如果没释放多半是文件还被进程占用用lsof | grep deleted找到进程处理。最后再分享一条快速记忆命令的小技巧不用背直接敲。准备一台虚拟机把手册里的必会命令挨个敲一遍观察输出结果。命令的规律其实很明显比如ls相关的参数都和显示相关-l看详情-a看隐藏文件-h人性化大小-t按时间排序-r逆序。多敲几次形成肌肉记忆比反复背参数列表管用得多。遇到记不清参数的时候man 命令名永远是最后的权威文档手册是帮你看懂主线的索引而man手册才是真正的字典。本文还有配套的精品资源点击获取