
简介《最全Linux常用命令大全.pdf》是一份面向Linux初学者、运维人员及备考者的命令速查手册按功能模块梳理了文件与目录管理、磁盘空间查看、文件备份与压缩、用户权限设置、线上查询、文件阅读、网络操作、定位查找等十大类常用命令基本覆盖日常终端操作场景。资源仅含1个PDF文件体积约130KB体积小巧却信息密度高适合作为随时翻阅的桌面参考。文档对pwd、cd、ls、cat、grep、touch、cp、mv、rm、rmdir、mount、umount、df、du、fsck等高频命令逐一解析列出命令格式和常用选项并通过示例演示了绝对/相对路径切换、目录列举、文件查看与搜索、复制移动删除的交互/强制/递归选项、磁盘空间统计、文件系统挂载与卸载等用法。每个命令均配有“选项—含义”对照表如ls的-a、-l、-r、-Rcp的-i、-r、-vrm的-i、-f、-r等便于边查边用。还涵盖gzip、bzip2、zip等压缩备份工具。已有5585人学习下载实用性和覆盖面得到认可无论是系统学习还是应急检索这份命令大全都能提供清晰可靠的参考。1. 一份《Linux常用命令大全》PDF为什么我不建议你从头开始背“最全Linux常用命令大全.pdf”这个文件几乎每个接触服务器的人都存过。有的版本上百页从ls到iptables按字母序排得整整齐齐。可你真到服务器上排查问题时比如磁盘明明没满却写入失败或者进程杀不掉翻完整个PDF也找不到那条能救命的命令。我的建议是别再把这类PDF当教材从头读而把它当一份按场景打好的素材库。你需要的是分类、检索和验证的方法不是把上万条命令背下来。这篇笔记适合刚入门、想建立命令体系的人也适合老手查漏补缺——我会按自己实际排障的习惯把命令大全拆成高频场景讲清楚怎么查、怎么用、怎么避坑。2. 把命令大全按场景拆开六大高频场景先吃透PDF只当字典大多数命令大全PDF都是按字母序排列的这种排版适合检索不适合学习。我自己的习惯是先把命令归类到“我真正会遇到的故障场景”里每个场景抓一组核心命令再回PDF里找扩展参数。下面这六个场景是我用过多年服务器后觉得最该先掌握的。2.1 文件与目录操作ls、cd、cp、mv、rm 的用法边界文件操作是每天输入最多的命令。ls看列表cd换目录cp、mv、rm做文件操作。看起来简单但参数用不对照样翻车。命令常见参数用途注意点ls-l长列表-a显示隐藏-h人类可读查看目录内容不看-a会漏掉.env这类隐藏文件cp-r递归目录-p保留属性复制不带-r复制目录会报错mv无特殊参数移动/重命名跨文件系统移动会先复制再删慢且风险大rm-r递归-f强制删除最好先ls确认再删find-name、-type、-mtime找文件注意配合-exec时用{}和\;这里最容易翻车的组合是rm -rf后面跟了空变量。我之前见过有人在脚本里写rm -rf $DIR/*当$DIR没赋值时变成rm -rf /*后果可想而知。所以我的习惯是在删除命令前先加一行echo $DIR/*确认展开结果再执行。另外cp -r复制目录到已有目录时目标路径下的同名目录行为会因环境不同而不同最好先用ls看清楚目标结构。PDF里一般只给命令和参数但不会告诉你这些边界条件只有踩过才记得住。2.2 权限与用户管理chmod、chown、useradd、sudo 的配合多用户服务器上权限问题几乎天天遇到。chmod改权限位chown改属主属组useradd建用户sudo提权执行。命令大全里会把它们分开列但实际使用时必须串起来。命令常用参数用途易错点chmodu/g/o/a/-r/w/x或数字755修改权限递归时忘了加-Rchown用户:组修改属主不加-R只改目录本身useradd-m建家目录-s指定shell创建用户不加-m可能没有可登录的家目录sudo-u指定用户执行提权重定向问题见避坑章权限数字三位其实是八进制位755表示属主读写执行、属组读执行、其他人读执行。很多初学者死记这个数字却不明白为什么644是文件常见权限。如果你只想给当前用户加执行权限chmod ux file比chmod 755 file更安全因为不会动到组和其他人的权限。另外sudo在执行某些带管道的命令时整个命令可能只是部分提权比如sudo cat a.txt | grep x中只有cat是rootgrep仍然是普通用户这个我在避坑章会再强调。2.3 文本处理grep、sed、awk 是怎么分工的日志分析是Linux排障的核心场景文本处理三件套是日志排查的利器。grep负责过滤sed负责替换和流编辑awk负责按列处理。PDF里往往分开列但实际场景经常要组合用。命令核心功能参数示例注意点grep匹配行grep -i忽略大小写-v反向-E扩展正则在管道中若无匹配则返回非零退出码后面的脚本可能中断sed行编辑sed s/old/new/g-i原地修改原文件备份-i.bakawk列处理awk {print $1}-F指定分隔符注意$1是列不是变量我处理某个模拟项目的Java日志时经常用grep Exception service.log | awk {print $1, $2}提取前两列时间戳再用sed把时间格式统一最后排序。这种组合看起来简单但每一步的输出是什么、分隔符是什么必须心里有数。比如awk默认按空格分割如果日志里有连续空格$1可能不是你想的那一列这时用-F\\[指定多字符分隔符更可靠。2.4 进程与资源ps、top、kill、df、du 怎么配合定位问题服务器变慢或者应用无响应第一件事就是看进程和资源。ps静态看快照top动态看实时kill发信号df/du看磁盘。PDF里这几个命令通常分散在不同章节但排障时是一套组合拳。命令常用参数用途注意点ps-ef全格式auxBSD风格-C按名字查进程不同参数风格输出列排序不同top交互命令P按CPU排M按内存排实时监控该非交互模式时用-bkill-9强杀-15优雅终止发信号先查PID再杀别杀错父进程df-h人类可读-i看inode查分区占用inode耗尽时df -h还显示有空间du-sh汇总目录大小--max-depth查目录占用大目录遍历慢要耐心我一般会先用top看哪个进程CPU高用ps -ef | grep java拿PID再用kill -15先给优雅停止的机会等10秒没退出再kill -9。直接kill -9会导致很多文件句柄没释放、子进程变孤儿这在生产环境是翻车操作。另外df -i这个参数很容易被忽略很多“磁盘满但df -h仍然有剩余”的问题其实是inode耗尽了这个问题我在第5章避坑里详细说。2.5 网络与端口ss、netstat、ping、curl 的定位顺序网络连接不上时命令大全一般会告诉你ping测连通netstat查端口。但新版系统里netstat不一定装了ss才是推荐命令。我的排查顺序是先ping测主机可达再telnet或nc测端口然后用ss -tlnp看本机监听最后用curl测HTTP接口。命令常用参数用途注意点ping-c次数-W超时测连通不要长ping会占用资源ss-ttcp-l监听-n数字端口-p显示进程查套接字比netstat快且能显示PIDnetstat-tulnp旧版查端口新系统可能没有需要安装curl-I请求头-v详细-o输出文件测HTTP注意-L跟随重定向这里尤其注意ss和netstat的差异如果命令大全PDF比较老里面全是netstat -tulnp但某些最小化安装的服务器上可能没有 net-tools 包只有iproute2的ss。与其去装包不如直接把ss这套记熟输出结构上ss -tlnp和netstat -tulnp的列基本能对应上。2.6 磁盘与存储mount、umount 与文件系统检查磁盘与存储这块mount挂载、umount卸载、df看容量是不可或缺的三板斧。命令大全里会给一堆分区工具参数但实际生产环境很少人天天分区更多是看挂载和容量。命令常用参数用途注意点mount-t文件系统-o选项挂载分区忘记umount直接拔盘会丢数据umount-l懒卸载卸载有进程占用时直接卸载会报 busydf-hT显示类型和大小看分区inode耗尽时用-idu-sh统计目录找大文件在超大目录上运行很慢有个坑是umount提示设备忙因为你可能正cd在挂载点目录里或者有进程在用。解决方式是lsof D 挂载点或fuser -m 挂载点找出占用进程而不是盲目umount -l。命令大全里一般不会讲这些上下文所以只背命令是解决不了实际问题的。3. 让命令大全上的命令真正“上线”查、用、固化的三步法拿到一份PDF第一反应不应该是从头看到尾而是把上面说的高频场景里每条命令拿到终端里过一遍。这一章我讲怎么把PDF里的静态命令变成自己顺手就能调出来的技能分三步查原始文档、做别名、存历史脚本。3.1 先学会查原始文档man、命令 --help 和 tldr 的互补PDF里的命令参数可能错漏或过时尤其是网络相关命令很多新参数是老版本没有的。所以我很少完全相信PDF遇到拿不准的参数先去查本地的原始文档。man是系统自带的离线手册比如man ls会列出所有参数。在 man 页面里按/输入关键字可以搜索按n跳到下一个匹配按q退出。如果你只是想知道某个参数能不能用更快的是命令自带的--help比如ls --help会输出精简的用法不需要翻页。tldr是一个社区维护的命令示例集它不说教直接给你几个最常用的场景。比如tldr tar会告诉你如何压缩、解压、查看 tar 包非常适合新手。但它不是系统自带的需要手动安装而且部分发行版没有收录到官方源里。我的习惯是--help先看man做深度查询tldr补场景。PDF则作为离线兜底在没网的环境里翻。3.2 把高频命令包成 alias 和函数把每天都要敲的复杂命令缩成一个短词可以大幅减少记忆负担。常见做法是把这些别名写进~/.bashrc或~/.zshrc交互式终端每次打开都会加载。# 常见 alias 示例追加到 ~/.bashrc 后生效 alias llls -lh alias lals -A alias grepgrep --colorauto alias dfhdf -hT # 避免 rm 误删先做个软保护用 -i 确认提示 alias rmrm -i这段配置里ll和la是给ls加默认参数grep加上颜色高亮dfh直接看人类可读的磁盘类型。最后把rm覆盖成交互确认虽然会多敲一次确认但在生产环境里能拦住不少手滑。注意alias 在非交互 shell 和脚本里默认不展开所以不要指望写脚本时这些别名生效如果你确实需要在脚本里用shopt -s expand_aliases或者直接写完整命令。比 alias 更灵活的一次打包多个命令的函数。比如我要备份某个文件会在~/.bashrc里加一个函数# 备份文件自动追加日期bk /etc/nginx/nginx.conf bk() { cp $1 $1.$(date %F).bak }这个函数接受一个文件路径复制一份并加上今天日期。相比在PDF里找cp然后手动拼日期这种“自己的命令”才是真正长在手上的工具。函数体里$1是第一个参数$(date %F)是命令替换会先执行date %F得到2025-01-01这样的日期。写完后记得执行source ~/.bashrc让配置生效。3.3 用 history 和脚本固化自己的命令手册终端里有一条命令叫history它记录了你敲过的所有命令。很多人在PDF上花几小时查命令其实自己的历史记录里就有现成的解决方案。交互式终端按CtrlR可以反向搜索历史输入几个关键字就能找回之前用过的长命令比翻PDF快得多。更进一步我会把一条复杂的排障链路写成一个小脚本放到~/bin目录直接通过文件名调用。比如这个检查端口监听的小脚本#!/bin/bash # 用法./portcheck.sh 8080 if [ -z $1 ]; then echo 请传入端口号 exit 1 fi ss -tlnp | grep :$1这个脚本先检查有没有传入参数没有就提示用法并退出有就用ss -tlnp列出所有监听端口再grep过滤出指定端口。把脚本chmod x后放到~/bin以后输入portcheck 8080就能定位到占用进程的PID了。这类脚本攒多了你就不需要依赖PDF里那些永远记不住的冷门细节。4. 命令记不住参数拆解与组合逻辑才是底层能力很多人背了一堆命令却用不出来因为只记住孤立的命令没理解参数和管道是怎么串成一条完整命令的。这一章把命令的通用结构讲透然后给你几条“最小可用组合”最后教你怎么用PDF的目录做反查。4.1 命令的通用骨架命令名、选项、参数、管道与重定向任何一条Linux命令都可以拆成四部分命令名、选项、参数、以及连接符。比如grep -i error /var/log/app.log中grep是命令名-i是选项error和/var/log/app.log是参数。选项通常以-开头短选项可以合并比如-lah等价于-l -a -h长选项以--开头比如--color。管道|把前一条命令的标准输出接到后一条命令的标准输入这是Linux最强大的设计。比如ls -lh | sort -k5 -h先列出文件再按第5列文件大小用-h识别K/M/G单位排序。重定向则是把输出写到文件覆盖、追加、2把错误输出单独保存。这里的坑在于会立刻清空目标文件如果你把右边写错原文件内容就没了而且没有后悔药。所以我在需要覆盖重定向之前都会先确认目标文件是不是真的要清空。另外命令参数里还有一个容易被忽略的--它的作用是终止选项解析。比如你有一个文件名本来就是-v直接cat -v会被解释成选项写成cat -- -v才能当文件名处理。这类细节PDF里很少讲但一旦遇到半天查不出原因。4.2 每条命令先记“最小可用组合”再扩展参数与其背一百个孤零零的参数不如先记住几个能解决实际问题的组合。下面是排障最高频的四条先把这四条敲熟再回PDF里扩展。静态查进程ps -ef | grep 进程名或精确匹配pgrep -f 进程名动态看CPU与内存top进入后按P按CPU排序按M按内存排序找占用磁盘的大文件find / -xdev -type f -size 1G 2/dev/null实时跟日志并过滤tail -f app.log | grep ERROR拿第三条展开说find /从根目录开始-xdev不跨越文件系统避免去扫描/proc、/sys等虚拟目录-type f只要普通文件-size 1G找大于1G的2/dev/null把没有权限访问的目录错误丢到黑洞。这条组合在PDF里分散在find和重定向两个地方很少有人把它串起来讲。你先记住“找大文件用这条”然后再去理解每个片段的含义比先背所有find参数再组合要快得多。再补充两条高频组合查某个端口被谁占用用ss -tlnp | grep :8080批量统计当前目录下每个子目录的大小用du -sh * | sort -h。这些都是我在服务器上重复过无数次的命令每条都比PDF里的单命令直接带出完整场景。4.3 用PDF的目录索引反查先学会“查”命令一份上百页的命令大全PDF最值钱的不是正文而是它的目录和书签。打开PDF后先看目录有哪些章节脑子里建立起“文件、权限、文本、进程、网络、磁盘”这几个大分类。遇到问题时先想属于哪个分类再去对应章节里找命令名最后用PDF阅读器的搜索功能定位到具体参数说明。这里有个版本意识很多命令大全PDF是多年以前整理的里面的ifconfig、netstat、iptables在新系统里多数被ip、ss、nftables取代或增强。当你在PDF里看到一个命令在老系统上才能跑通要先在终端里command -v确认装了没有再决定要不要按它的写法执行。PDF可以作为历史参考但不能作为唯一标准。如果你习惯在终端里工作还可以用pdftotext这类工具把PDF提取成纯文本写一个简单的grep命令做全文检索。比如pdftotext Linux命令大全.pdf - | grep -A2 inode这样不用鼠标翻页就能定位到所有出现过“inode”的段落比阅读器自带的搜索更顺手也方便把摘录复制到自己的笔记里。命令行检索和图形界面搜索正好互补两者都试一下选你顺手的。5. 避坑命令大全里那些容易教人翻车的细节下面这五条是我见过、踩过的高频坑每一条都按“现象→原因→解决”写清楚。希望你看完能把它们变成自己的肌肉记忆而不是等翻车后才去翻PDF。5.1 现象rm -rf $DIR/*执行时报错甚至开始删自己不想删的目录原因脚本里的$DIR变量没有赋值或为空导致命令展开成rm -rf / *根目录下的所有文件都被放进删除列表。这种事故在生产环境中并不罕见大部分是因为脚本缺少set -u或前置检查。解决在任何删除命令前先echo变量展开结果确认无误再执行脚本开头加set -u让未定义变量直接报错而不是传空值。另外删除前用find代替rm -rf能提供更多控制比如find $DIR -type f -delete至少它不会因为空路径而删除根目录。5.2 现象find . -name *.log | xargs rm在日志名带空格时提示找不到文件或误删原因xargs默认把输入按空格、制表符拆分成多个词文件名里有空格就会被拆成两个词导致rm拿到错误的路径。解决用-0让find和xargs之间以\0分隔命令写作find . -name *.log -print0 | xargs -0 rm。更省事的是直接让find自己删find . -name *.log -delete。如果一定要用xargs一定要记住-0这个参数PDF里很多老例子没写它。5.3 现象sudo cat /sys/... /tmp/out提示权限不足但明明用了sudo原因重定向是当前 shell 执行的sudo只作用于catshell 以普通用户身份打开/tmp/out权限不足。这个坑在写系统配置时太常见了。解决把整个重定向交给sudo执行的进程用echo 1 | sudo tee /sys/...。tee会打开并写入目标文件而它是在 root 权限下运行的。想禁止输出到屏幕就加/dev/nullecho 1 | sudo tee /sys/... /dev/null。5.4 现象用grep ERROR service.log明明有 ERROR却一条都不输出原因可能是shell把引号里的正则符号吃了更常见的是文件不是纯文本比如日志里包含\r回车符或文件本身是 UTF-16 编码grep默认按行匹配时\r成为行尾的一部分导致匹配失败也可能是ERROR大小写不一致。解决先用file service.log查看文件类型。如果是二进制或带换行符异常用grep -a按文本处理如果想忽略大小写加-i如果是固定字符串而不是正则加-F。比如grep -aF ERROR service.log一条命令解决三个问题。5.5 现象df -h显示还有20G写文件却提示 No space left on device原因磁盘分区还有空闲但文件系统的 inode 用完了。inode 用于存储文件元数据每个文件至少占一个 inode当小文件数量极多时inode 会先于磁盘容量耗尽。df -h只看容量不会显示 inode 占用。解决用df -i查看 inode 使用率如果/dev/sda1的 IUsed 达到100%就用find / -xdev -type f | wc -l统计文件数量找出类似/tmp、/var/spool下堆积的小文件并清理。之后可以规划用更大的 inode 密度重新格式化分区但那要停机不是第一选择。6. 把PDF变成你自己的速查手册一条命令检索你的命令笔记走到这一步你不再需要反复打开那几百页的PDF。我的习惯是每学到一条好用的命令就追加到自己的速查文件里最终用 fzf 或 grep 一键检索变成私人的命令手册。建立一个纯文本文件~/.cmd_notes.txt按自己的分类写。比如# 更新速查笔记的快捷方式 echo ## 找大文件 find / -xdev -type f -size 1G 2/dev/null ~/.cmd_notes.txt之后想查时用grep按关键字过滤grep -A2 大文件 ~/.cmd_notes.txt如果安装了 fzf可以交互式检索cat ~/.cmd_notes.txt | fzf上下移动、回车即把选中的命令拷贝到命令行体验比翻PDF好得多。你还可以把fzf的搜索结果绑定成别名你熟悉的终端环境不同我就不写死配置了。这里的核心不是推荐某个工具而是建立“自己养命令”的习惯。我以前也收藏过十余份命令大全PDF真正在故障现场救我的是自己亲手验证过的几十条笔记。一份再全的PDF也比不上你用自己的终端跑过、改过、最后存下来的命令清单。希望这个习惯能帮到你也帮你自己少踩几个坑。本文还有配套的精品资源点击获取