简介:面向Linux初学者与运维入门者的命令速查手册,聚焦日常系统管理与文件操作场景,帮助读者摆脱对图形界面的依赖、建立命令行操作的基本功。资源为单个PDF文档,压缩包约130KB,篇幅精炼、便于随身查阅与打印。内容按功能模块组织,涵盖管理文件和目录、磁盘空间检查、文件备份与压缩、用户与权限设置、线上查询、文件阅读、网络操作、文件定位查找等十余类命令,并对pwd、cd、ls、cp、mv、rm、mount、df、du、fsck等常用命令的选项含义与典型用法逐一说明,配有直观示例。已有5598人学习下载,适合作为课堂笔记之外的案头参考,也可用于面试前快速回顾命令体系,帮助读者在实际操作中按场景检索、加深理解并逐步熟练。
1. 从一份命令速查表说起:为什么老手还在翻 PDF
刚接手一台陌生服务器,df -h一看根分区快满了,du -sh *逐层往下摸,最后find / -size +500M揪出个日志文件——这套动作熟手三分钟走完,新手可能连du和df谁管目录谁管分区都要愣一下。这份《最全Linux常用命令大全.pdf》干的就是把这类高频动作按场景归拢成一张速查表的事:文件与目录、磁盘空间、压缩备份、进程与关机、用户权限、在线查询、文件阅读、网络操作、定位查找、杂项,十个板块覆盖了日常运维和开发调试里八成以上的命令行操作。它适合两类人:一是刚接触 Linux、需要一份能随手翻的对照材料的新手;二是干了几年但某些冷门选项记不牢、想省去每次man翻半天的老手。下面不逐条复述 PDF 里的命令,而是把它当成一份可落地的操作手册,讲清楚哪些组合真能打、参数怎么调、哪里容易翻车。
2. 文件与目录操作:把 pwd、cd、ls 串成一条可复现的路径
2.1 先定位再动手:pwd 与 cd 的绝对/相对路径选择
任何一次文件操作前,先确认自己在哪,这是血泪经验。pwd打印当前工作目录,输出的是绝对路径,比如/home/user/project。cd的两种写法决定了后续命令能不能跑通:cd /usr是绝对路径,从根目录算起;cd test是相对路径,从当前目录往下找test子目录。cd ~回用户主目录,cd /回根目录,cd -回上一次所在目录——最后这个在两边目录来回切时特别省事。
新手最容易翻车的是在脚本里用相对路径。脚本执行时的当前目录不一定是脚本所在目录,cd test很可能报No such file or directory。稳妥做法是脚本开头先cd "$(dirname "$0")"切到脚本所在目录,再用相对路径。这个习惯我每次写部署脚本都强制走一遍。
2.2 ls 的选项组合:-l、-a、-h 怎么搭才看得懂
ls单独用只列文件名,信息量不够。实际排查时我一般用ls -lah:-l出详细信息(权限、所有者、组、大小、修改时间),-a把.开头的隐藏文件也带上,-h把字节数换成 K/M/G 人类可读。PDF 里还列了-r逆序、-R递归、-s按大小排序、-f显示文件类型,这几个按需叠加。
# 查看当前目录全部文件(含隐藏),人类可读大小,按修改时间倒序 ls -laht # 递归列出某目录下所有内容,只看文件名和类型 ls -Rf /var/log # 只看某个文件的详细属性 ls -l examples.doc-t按修改时间排序配合-h是查“最近谁动过文件”的常用组合;-R在目录层级深时会刷屏,建议配合| head -50截断。注意-s在部分发行版里是按块数排序而非字节,跨系统脚本里别依赖它的精确语义。
2.3 查看、创建、复制、移动、删除:cat/grep/touch/cp/mv/rm 的边界
cat显示整个文件内容,适合小文件;大文件用cat会刷屏,该换less。grep money test.txt在文件里找字符串,默认区分大小写,要忽略大小写加-i,要显示行号加-n,递归搜目录加-r。touch newfile建空文件,也能用来更新已有文件的时间戳。
cp和mv的-i交互确认、-r递归、-v显示进度这三个选项值得默认带上。cp -riv src/ dst/复制目录时逐个提示覆盖、打印每个文件,虽然啰嗦但能避免误覆盖。mv -f是强制覆盖不提示,属于危险选项,脚本里用之前先想清楚目标路径是否可能撞车。rm -rf更是老生常谈:路径里多一个空格、变量为空,rm -rf $DIR/就可能变成rm -rf /。我的习惯是删除前先echo $DIR确认,或者用rm -ri先过一遍。
# 安全复制:递归、交互确认、显示进度 cp -riv ./config/ /etc/myapp/ # 移动并显示过程,覆盖前提示 mv -iv old.log archive/old.log # 删除前先打印将要删除的路径(干跑) echo "will remove: $TARGET" rm -rf "$TARGET"rmdir只能删空目录,非空目录会报错,这是它和rm -r的本质区别。想删非空目录又不想用rm -rf,可以先find dir -type f -delete再rmdir,多一步但心里有底。
3. 磁盘、压缩与进程:df/du/mount 和 tar 的参数怎么设
3.1 df 与 du 的分工:一个看分区,一个看目录
df -h看各分区已用/可用空间,du -sh *看当前目录下每个子项占多少。两者数字对不上是常态:df统计的是文件系统块级使用,du统计的是文件实际大小,被删除但仍被进程占用的文件(lsof | grep deleted能查到)会让df偏高而du看不到。排查磁盘满时先df -h定位分区,再du -sh /* 2>/dev/null | sort -rh | head逐层下钻。
# 分区使用率,人类可读 df -h # 当前目录下各子项大小,从大到小排前 10 du -sh ./* 2>/dev/null | sort -rh | head -10 # 只看某个目录总和,不展开子目录 du -sh /var/logdu的-x只统计同一文件系统,跨挂载点时不串味;-a连文件级别都列出来,目录大时会很慢。df -i看 inode 使用率,小文件多的场景 inode 先满而空间还有富余,这个坑不少人第一次遇到会懵。
3.2 mount/umount 与 fsck:挂载参数和修复时机
mount -t iso9660 /dev/hdb /cdrom把设备按指定文件系统类型挂到目录。-r只读挂载、-w读写、-a挂/etc/fstab里全部条目。umount /cdrom卸载,卸载前确保没有进程占用该目录,否则报device is busy,用lsof +D /cdrom或fuser -m /cdrom找占用者。
fsck检查和修复文件系统,必须在分区未挂载时跑,对已挂载的根分区直接fsck可能造成数据损坏。常见做法是进单用户模式或从救援环境执行。fsck -a自动修复不询问,风险高;fsck -r交互式逐项确认更稳。PDF 里提到每次开机系统会做检查,但那只针对标记为需要检查的分区,别指望它兜底所有坏块。
3.3 tar 的 -c/-x/-t 与 -z/-j:打包和压缩别混为一谈
tar本身只打包不压缩,-z调 gzip、-j调 bzip2 才是压缩。四个高频组合记牢:tar -cvf out.tar dir/打包、tar -xvf out.tar解包、tar -tvf out.tar看内容、tar -czvf out.tgz dir/打包并 gzip 压缩。解压.tgz用tar -xzvf,解压.tbz用tar -xjvf。
# 打包并 gzip 压缩,显示进度 tar -czvf backup-$(date +%Y%m%d).tgz /home/user/project # 先看归档里有什么,再决定解到哪 tar -tzvf backup-20240101.tgz | head -20 # 解压到指定目录(-C 指定目标) tar -xzvf backup-20240101.tgz -C /tmp/restore/-f后面跟文件名,这个参数必须紧挨着文件名,写成tar -cvfz out.tgz会把z当成文件名的一部分。gzip filename压缩后原文件消失变成filename.gz,gunzip反过来;bzip2压缩率通常更高但更慢,大日志归档我一般用tar -cjvf。zip兼容 Windows,跨平台交付时用它更省事。
3.4 ps/top/kill:找进程、看资源、送信号
ps -ef列全部进程含完整命令行,ps aux按用户维度列资源占用。top动态刷新,按P按 CPU 排、按M按内存排,q退出。kill默认送 TERM(15) 让进程自行退出,kill -9送 KILL 强杀不给清理机会,能不用就不用——数据库进程被-9掉可能留下不一致状态。先ps -ef | grep 进程名拿 PID,再kill PID,等几秒不退再考虑-9。
# 找某个服务的进程 ps -ef | grep myapp | grep -v grep # 优雅终止,给 10 秒清理时间 kill -TERM 12345 sleep 10 ps -p 12345 > /dev/null && kill -9 12345shutdown -r now重启、shutdown -h now关机,reboot更快但不走完整关机流程,生产环境优先用shutdown让服务有序停止。
4. 权限、用户与查找:chmod 数字法和 find 的组合拳
4.1 chmod 的符号法与数字法:751 到底代表什么
权限三组:所有者 u、组 g、其他人 o,每组 r=4、w=2、x=1。chmod 751 file等价于chmod u=rwx,g=rx,o=x file:所有者读写执行、组读执行、其他人只执行。chmod a-rwx test.txt剥掉所有人全部权限。目录的x位代表能否进入,没有x的目录cd不进去,这是新手配权限时常见的“文件能读但目录进不去”。
# 脚本文件:所有者可读写执行,组和其他人只读执行 chmod 755 deploy.sh # 私钥文件:只有所有者可读写 chmod 600 ~/.ssh/id_rsa # 递归改目录权限(-R 慎用,会连文件一起改) chmod -R 750 /opt/myapp/chmod -R对目录和文件一视同仁,可能把普通文件也加上x位。更细的做法是find /opt/myapp -type d -exec chmod 750 {} \;和find /opt/myapp -type f -exec chmod 640 {} \;分开处理。
4.2 useradd/su/passwd:加用户和切身份的最小闭环
useradd 用户名建用户,之后passwd 用户名设密码。su - 用户名切换并加载目标用户环境变量,不带-只切身份不换环境,容易出PATH不对的怪问题。su -默认切 root,需要 root 密码。退出用exit。生产环境更推荐sudo做细粒度授权,su适合本地调试。
4.3 find 的表达式与动作:按名、按大小、按时间
find是这份 PDF 里最值得深挖的命令。基本结构find 起点 条件 动作,不写动作默认打印路径。常用条件:-name "*.log"按名、-size +500M大于 500M、-mtime -7七天内修改过、-type f只要普通文件。动作-exec cmd {} \;对每个结果执行命令,{}是占位符。
# 找 7 天内修改过的大于 100M 的日志文件 find /var/log -type f -name "*.log" -size +100M -mtime -7 # 找到后直接删除(先去掉 -delete 干跑确认列表) find /tmp -type f -name "*.tmp" -mtime +30 -print # 对每个结果执行 gzip 压缩 find /data -type f -name "*.log" -mtime +7 -exec gzip {} \;-exec结尾的\;是转义分号,漏了会报语法错;用+代替\;可以批量传参、少起进程,速度更快。locate走索引数据库快但查不到新建文件,updatedb重建索引;which找可执行文件在PATH里的位置,whereis找可执行文件、源码和 manpage。查命令位置用which,查全套资料用whereis,查任意文件用find或locate。
5. 避坑与排查:五条命令行翻车记录
5.1 rm -rf 变量为空导致误删
现象:脚本里rm -rf $TARGET/执行后整个目录被清空。原因:TARGET未赋值时展开为空,命令变成rm -rf /。解决:脚本开头set -u让未定义变量直接报错,删除前[ -n "$TARGET" ] || exit 1做非空校验,路径变量统一加引号rm -rf "$TARGET/"。
5.2 df 显示满但 du 找不到大文件
现象:df -h显示分区 100%,du -sh /*加起来远小于分区容量。原因:有进程持有已删除文件的句柄,空间未释放。解决:lsof | grep deleted找到持有进程,重启该进程或kill后空间回收;临时应急可> /proc/PID/fd/FD清空句柄对应内容。
5.3 tar 解压覆盖了现有文件
现象:tar -xvf解到当前目录,同名文件被静默覆盖。原因:tar默认覆盖不提示。解决:解压前tar -tvf看清单,用-C指定空目录解压,或先tar -xvf --keep-old-files保留已有文件、冲突时报错。
5.4 kill -9 后服务状态不一致
现象:数据库或消息队列被kill -9后重启报数据文件损坏。原因:SIGKILL不给进程清理和刷盘机会。解决:优先kill -TERM并等待退出,配置合理的TimeoutStopSec,只有进程彻底卡死才用-9,事后跑一致性检查。
5.5 chmod -R 把文件也加上执行位
现象:chmod -R 755后目录下所有普通文件都带x,部分程序拒绝加载或安全扫描告警。原因:递归不区分文件类型。解决:用find -type d和-type f分别设权限,目录 750、文件 640,脚本单独 755。
6. 把速查表变成肌肉记忆:我的日常验证习惯
PDF 这类速查表的价值不在读一遍,而在把它变成条件反射。我的做法是给每个板块挑两三个高频命令,写进自己的~/.bashrc别名或小脚本里,用的时候直接调。比如磁盘排查我固定一条alias disk='df -h && du -sh ./* 2>/dev/null | sort -rh | head -10',进程排查固定alias pg='ps -ef | grep -v grep | grep'。别名不是偷懒,是把容易记错的选项组合固化下来,减少现场拼参数出错。
再进一步是验证。命令跑完别只看有没有报错,要看结果对不对。cp完diff -r对比源和目标;tar打包完tar -tzf列一遍确认文件数;chmod改完ls -l核对权限位;find -delete之前一定先-print干跑。这套“改完必验”的动作,比背一百条命令都管用。
| 场景 | 验证命令 | 看什么 |
|---|---|---|
| 复制目录 | diff -r src/ dst/ | 无输出即一致 |
| 打包归档 | tar -tzf out.tgz | wc -l | 文件数与源目录比对 |
| 权限修改 | ls -l target | u/g/o 三位是否符合预期 |
| 批量删除 | 先find ... -print | 列表确认无误再换-delete |
| 磁盘释放 | df -h前后对比 | 可用空间是否真的涨了 |
这份 PDF 的十个板块里,真正天天用的大概就前六块,网络那部分ping -c 5、netstat -tunlp查端口占用也算高频,ftp/telnet/rlogin现在更多被ssh/scp/sftp替代,但老系统里还会遇到,知道怎么用不至于抓瞎。man永远是最权威的兜底,速查表负责让你快速想起命令名和常用选项,细节还得回man确认。从那以后我每次在生产环境敲rm -rf、chmod -R、kill -9之前,都强制先干跑或打印一遍目标,这个习惯救过我不止一次。希望这份拆解帮到你,把 PDF 里的命令真正用进日常操作里。
本文还有配套的精品资源,点击获取