news 2026/10/22 1:34:03

Linux常用命令大全怎么用?从man手册到实战排查的进阶路线

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux常用命令大全怎么用?从man手册到实战排查的进阶路线

简介:这是一份汇聚 Linux 常用命令的 PDF 速查手册,面向刚接触 Linux 的初学者、日常需要命令行操作的开发与运维人员,帮助读者快速定位文件管理、磁盘空间、备份压缩、用户权限、网络操作、查找定位等高频场景的具体命令。资源共 1 个 PDF 文件,压缩包约 130KB,轻量易用,可随时打开查阅。目前已有 5583 人学习下载,是不少入门者案头常备的参考材料。内容覆盖 pwd、cd、ls、cat、grep、touch、cp、mv、rm、rmdir 等文件与目录命令,也包含 mount、umount、df、du、fsck 等磁盘管理命令,以及 gzip、bzip2、zip 等压缩工具和网络、查询、权限相关命令;每个命令均配有功能说明和典型示例,部分还给出选项含义,便于对照练习。无论是日常文件操作还是系统维护排错,都能从中快速找到需要的命令与用法。

1. “最全Linux常用命令大全”到底解决什么问题

很多人下载《最全Linux常用命令大全.pdf》后,第一件事就是翻目录找参数,然后逐条抄。我见过不少同事把它当词典用,可真到生产环境排查时,还是会栽在权限、路径、管道这些“常识”上。原因很简单:这类PDF解决的是“不知道有哪些命令”的问题,但它代替不了你理解命令背后的执行逻辑。把它当成一张覆盖全貌的地图,再配合 man 帮助系统验证细节,价值才会翻倍。它适合刚入门想建立命令体系的新手、需要维护服务器的运维初级岗,以及面试前想快速过一遍常用命令的求职者。

2. 读懂一份命令大全:从目录到实操的映射方法

2.1 为什么先看分类而不是背参数

命令大全通常会把命令按文件操作、文本处理、进程管理、网络工具、权限管理、磁盘管理这几个大类排列。这个顺序不是随便排的,它对应着排查问题的基本路径:先看文件在哪,再看进程占多少资源,然后看网络通不通,最后看权限够不够。你先记住这个大分类,遇到问题就能预判该去哪一部分找答案,而不是在白底黑字里乱翻。

我一般建议新手不要把精力平均分配到每个命令上,而是先把每个分类下最核心的两三个命令摘出来,理解它们解决了哪类问题。比如文本处理这一节,先搞懂grep、sort、awk就够了,剩下那些cut、tr、uniq等真正遇到需求再查。分类的价值是让你在需要时能说出来“我这是文件查找问题,应该去文件操作那部分”,同时避免被“最全”两个字带着走上背命令的弯路。

如果你非要从头到尾背,大概率一个星期后只剩文件名。更合理的做法是:把 PDF 的目录当作索引,先画一张你自己的“命令地图”,把每个分类和常见问题连接起来。比如“磁盘满了”对应df、du;“端口被占”对应ss、lsof;“找不到配置”对应find、grep。这种地图一旦建好,后续每学一个新命令,都可以挂到已有的分类节点上,而不是和旧知识挤在一起。

2.2 我筛选“常用”命令的三个标准

命令大全里动辄几百个命令,但能进入“常用清单”的没那么多。我筛选时会用三个标准,缺一不可:

标准判断方式例子
高频出现每周至少会碰一次,否则不投入记忆成本ls、cd、grep
参数可复现在同一发行版的大部分机器上结果一致find、tar
能解决一类问题能覆盖一类场景,而不是单一任务ss、ps

第一条很好理解,用得少的命令记了也容易忘,不如用到时再查。第二条容易被忽略:有些命令在旧系统和新系统上参数差异很大,比如ifconfig,你背下的网段配置参数在现代化系统上可能已经被ip命令取代,记了旧参数反而制造误解。第三条能帮你批量理解命令:比如学会了find的-name、-mtime、-exec,你就能处理绝大多数文件查找和批量操作需求,比单独背一个locate更踏实。

用这三个标准,你可以再回看那份 PDF,哪些章节值得精读、哪些章节只用扫一眼,心里就有数了。比如alias本身不是一类问题,它只是把命令组合绑个名字,那就没必要高亮成重点;而find和xargs能组合成批量删除、批量移动的框架,值得多花时间。所谓“最全”永远是一个相对概念,真正可靠的是你按自己的使用频率和场景筛选出的子集。

2.3 把PDF当目录,把man当正文

“大全”的价值在于覆盖面广,但覆盖面广也意味着每个命令的展开必然不够细。所以我的习惯是:PDF只用来确认“这个命令存在”以及它的基本用途;真正要落地时,一定用系统自带的帮助系统。

例如你从PDF里看到ls可以和-l、-h组合,但不确定--time-style怎么控制时间格式,那就直接在终端查:

ls --help | grep time-style
man ls | grep -A 2 "time-style"

第一条命令先看缩写帮助里有没有这个选项,第二条从完整手册里截取相关段落。这里用到了管道和grep,这恰好是命令大全里最值得掌握的“组合拳”:把帮助输出当作文本流,用grep过滤出关心的参数。相比于翻PDF的静态目录,这种方式能直接看到当前系统的真实语法,不会因为文档版本老旧而踩坑。

也可以把帮助内容导出成自己的速查文件,长期使用:

man ls | col -b > ~/notes/ls.man.txt

这条命令把格式化的手册内容转成纯文本,保存在用户目录下。col -b去掉分页控制字符,保存的文件就可以用grep快速检索。这告诉你一个道理:任何命令大全都会被新版本抛在身后,但 man、help、info 这三个系统自带文档才是永不落伍的“真命令大全”。

另外,如果你对某个命令的细节特别感兴趣,info系统也值得注意。GNU 工具链里不少命令的帮助信息在man里只保留精简版,展开的文档放在info中。例如:

info coreutils

coreutils包含 ls、cp、mv 等基础命令的完整说明,打开后是带章节结构的电子书,可以逐页阅读。还可以看包自带的例子:

ls /usr/share/doc/tar/

这个目录下通常有示例配置或变更说明。命令大全给你的是静态快照,这些本地文档才是与当前系统严格一致的活资料。遇到“为什么这版参数不对”的疑问时,优先翻这些本地资料。

3. 高频命令四件套:文件、进程、网络、权限的落地参数

虽然命令大全分类多,但我日常维护中真正高频命中的就四类:文件、进程、网络、权限。把这四类的核心组合理解透,遇到大多数故障都能先定位再解决。下面每个小节给出我最常用的一组命令,并解释参数为什么这么写。

3.1 文件操作:ls、find、tar 的高频参数组合

ls -lah --time-style=long-iso /data

-l长格式,-a显示隐藏文件,-h把文件大小转成 K/M/G,--time-style=long-iso让时间显示成2026-01-01 08:30这种可排序格式。很多人用ls只看文件名,真正排查问题时,文件大小、修改时间、权限列才是判断依据。比如发现磁盘占用异常,先ls -lah看一眼哪个文件体积异常,再决定用du深挖。

find /data -name "*.log" -mtime +7 -size +100M -delete

这是“删除7天前修改、且超过100MB的日志”的经典组合。-name匹配文件名,-mtime +7表示修改时间在7天以前,-size +100M过滤大小,-delete直接删除。注意,我几乎从不让-delete第一次就出现,而是先跑一遍不带它的版本:

find /data -name "*.log" -mtime +7 -size +100M | wc -l

先统计数量,再手动抽查,最后才加-delete。这是防止误删的最后一道防线,命令大全不会教你这一步,但生产环境缺了它很容易出事。

tar czf /backup/data_$(date +%F).tgz /data

c创建归档,z用 gzip 压缩,f指定输出文件,$(date +%F)自动生成当天的日期,避免覆盖旧备份。解压到指定目录用:

tar xzf /backup/data_2026-01-01.tgz -C /target

-C指定解压目标。要留意的是,tar 归档会把路径层级也压进去,解压后是否落在目标目录下要看包内路径;所以拿到备份先tar tzf 包名 | head看结构再解压,能省掉不少恢复时的麻烦。

3.2 进程与资源:ps、top、kill 的配合用法

ps aux --sort=-%cpu | head -n 10

a显示所有用户的进程,u输出用户和资源信息,x包含没有终端控制的进程,--sort=-%cpu按 CPU 使用率降序排列,head -n 10取前十条。这是定位“哪几个进程把机器跑满”的起手式。想按内存排序,把-%cpu换成-%mem即可。

top -b -n 1 -o %MEM | head -n 20

-b是批处理模式,适合把 top 的输出交给管道或保存文件;-n 1只执行一次;-o %MEM按内存占用排序。交互模式下,我会先按P看 CPU,按M看内存,按k输入 PID 杀进程。但在脚本里,top -b -n 1更好用,它不会因为终端变化而输出乱码。

pgrep -f "uwsgi"

先确认进程,返回 PID 列表。确认无误后用:

pkill -HUP -f "uwsgi"

向匹配到的进程发送 HUP 信号。pkill比kill更适合按命令行匹配场景,但要注意-f会匹配完整命令行,容易误伤,所以先pgrep -f看一眼再动手。对 nginx、uwsgi 这类守护进程,用 HUP 而不是 KILL 能实现平滑重载,避免直接杀进程导致服务中断。

3.3 网络排查:ss、curl、ping 的边界与替代

ss -tlnp | grep :80

-t只看 TCP,-l只看监听端口,-n端口用数字显示,-p显示占用进程的 PID 和名称。这是替代netstat的现代方案,输出速度快,信息也更全。当你看到 80 端口被占用但不知道是谁,ss -tlnp是第一个要敲的命令。

curl -I -m 5 https://example.com

-I只请求响应头,-m 5设置最大超时时间。用它检查服务是否返回 HTTP 200,而不是“ping 通”就草率下结论。很多命令大全把ping放在网络类第一个,但ping只能证明主机可达,证明不了端口开放,更证明不了业务正常。真正排查接口问题时,我一般会连用:

curl -s -o /dev/null -w "%{http_code} %{time_total}\n" https://example.com/api/health

-s静默,-o /dev/null丢掉响应体,-w输出指定的状态码和总耗时。这一行命令能告诉你“接口通不通”和“接口快不快”,比单纯ping有用得多。

ping -c 4 -i 0.2 10.0.0.1

-c 4发四个包,-i 0.2每 0.2 秒一个。ping 不通时,我会先确认目标机器是否禁了 ICMP,再看防火墙规则,而不是直接判定网络中断。这就是边界:ping 只覆盖三层连通性,TCP 端口和业务状态要交给nc或curl去验证。

3.4 权限与用户:chmod、chown、sudo 的三个易错点

chmod -R u+rwX,g+rX,o-rwx /data/shared

-R递归,u+rwX中的大写X很关键:它只对目录增加执行权限,对普通文件不增加执行权限。这样可以让目录可进入,同时不会给一堆脚本意外加执行位。g+rX给组用户同样的读/进权限,o-rwx取消其他人的所有权限。这套写法适合目录分享场景。

chown -R deploy:deploy /data/app

-R递归修改所有者和组。易错点在于符号链接:chown -R默认会跟随链接,如果/data/app下有一个指向/etc的链接,递归修改可能波及系统文件。更安全的做法是先find /data/app -type l列出所有链接,再用chown -h只改链接本身。

sudo -u www-data /usr/local/bin/start.sh

用-u指定执行用户,而不是用sudo执行后靠脚本内部切换。这样配置文件里~等路径会按 www-data 的用户目录解析,不会因为 root 身份导致路径偏差。易错点还有环境变量:sudo 默认清理环境,如果脚本依赖某些自定义变量,加sudo -E保留当前环境,但要确认脚本来源可靠,否则等于把环境注入到特权进程里。

4. 命令大全避坑指南:5个最容易翻车的真实场景

命令大全不是不好,而是它没法覆盖每个系统版本、每个环境的差异。下面五个场景,是我用这类文档时踩过或看别人踩过的坑,按现象、原因、解决的顺序写出来,方便你对照。

4.1 场景一:命令明明存在,却提示 command not found

现象:在某台新机器上执行ifconfig,终端提示command not found,但 PDF 里分明写了这个命令。

原因:命令包没有安装,或者命令不在当前用户的PATH变量中。新版系统里ifconfig属于net-tools包,默认可能没有安装,而ip命令来自iproute2,基本都预装。

解决:先执行type -a ifconfig判断是不是别名或外部命令;再用command -v ip看看替代命令是否可用;最后用echo $PATH检查当前环境路径,别急着认定系统缺东西。

4.2 场景二:管道后命令无效,原来是缓冲和退出码的问题

现象:grep ERROR app.log | sort | wc -l输出是 0,但单独执行grep ERROR app.log明明有一堆结果。

原因:日志里 ERROR 可能被大小写过滤,或者前面的命令把错误输出写到了 stderr,而管道只接 stdout。更隐蔽的是,管道中某个中间命令失败,但最后的wc -l退出码仍是 0,问题被吞掉了。

解决:第一步先去掉管道,逐段执行,确认每段输出都符合预期;第二步把2>&1加进第一个命令,把 stdout 和 stderr 合并到一起观察;第三步在脚本开头加上set -o pipefail,让管道里任何命令失败都直接暴露退出码。

4.3 场景三:rm -rf 删不掉,权限和挂载点没搞清

现象:root 用户执行rm -rf /data/file,系统仍然提示不允许删除。

原因:文件所在目录是只读挂载,或者文件带有chattr +i的不可变属性,也可能是 SELinux 策略拦截。命令大全只告诉你怎么删,没告诉你什么时候删不掉。

解决:先用mount | grep /data看挂载选项是否包含ro;再用lsattr /data/file查看属性,如果有i,先chattr -i /data/file再删。删除前务必确认路径,不要用变量未定义的rm -rf $dir/*,这是最容易手滑的翻车点。命令大全不会教你的,是删除命令要带上白名单确认。

4.4 场景四:ifconfig vs ip,命令大全过时的根源

现象:照着 PDF 用ifconfig eth0 192.168.1.10 netmask 255.255.255.0配置地址,当时看着生效了,重启网络后地址消失。

原因:ifconfig这类命令只做临时配置,不写入网络配置文件。新发行版推荐用ip命令,而持久化配置必须改文件,例如/etc/network/interfaces或 NetworkManager 配置。

解决:临时调试用ip addr add 192.168.1.10/24 dev eth0,改回去用ip addr del同格式;持久化配置按发行版自己查文档,别指望 PDF 里的静态命令能应对所有环境。这份命令大全不是错,只是它的快照时间早于你的系统。

4.5 场景五:crontab 不执行,环境变量成了黑匣子

现象:脚本在终端里手动执行一切正常,加入crontab后不执行,或执行后报“找不到命令”。

原因:cron 的任务环境是精简的,PATH只包含系统默认路径,不包含你登录 shell 里/usr/local/bin等目录。脚本里如果写的是python3,而它实际在/usr/local/bin/python3,cron 就找不到。

解决:在脚本开头显式声明环境:

#!/bin/bash export PATH="/usr/local/bin:/usr/bin:/bin:$PATH"

并在 crontab 里加日志重定向,让失败可见:

*/5 * * * * /usr/bin/python3 /opt/test.py >> /var/log/test.log 2>&1

这样既保底了路径,又能通过日志看到真实报错,而不是让 crontab 变成黑匣子。

回头看这五个现象,共同点都是“命令本身与运行环境之间出现了断层”:PATH 变了、退出码被吞、挂载只读、版本更迭、环境变量被裁剪。记住这一层抽象,比单独记五个坑更重要,以后再遇到新的“不可用”时,你会下意识先查环境,而不是怀疑自己的眼睛。

5. 进阶——把静态PDF变成动态手册

5.1 用 type 和 which 判断命令来源

当你发现一份 PDF 里的命令在当前系统表现不一致时,第一件事不是去查网,而是先搞清这个命令到底是什么类型。type和which就是干这个的。

type -a ls

输出可能会同时出现ls is aliased to 'ls --color=auto'和/usr/bin/ls两行。type -a把所有可能的来源都列出来,包括别名、内建命令、外部命令。which ls只能告诉你 PATH 里能找到的那个路径,对内建命令往往没什么帮助。所以更推荐的判断方式是:

command -v ls

command -v是 POSIX 标准写法,既能识别别名,也能识别外部命令,在脚本里比which更可靠。命令大全里的命令到了实际机器上,到底以哪种身份存在,决定了它行为和参数是否和文档一致。调试时先花十秒type -a,能省下后面半小时的排错。

5.2 用 man 和 help 快速查参数:不靠PDF也能随时“查字典”

再“全”的PDF也比不上当前系统自带的手册,因为后者和你的软件版本严格同步。我遇到陌生的命令,第一动作是man,第二动作是--help,PDF只用来回忆有哪些类别。

man -k "copy file"

man -k按关键词在手册简介里搜索,能快速找到相关命令。比如你只记得“复制文件”这个场景,不记得命令名,输出会给你cp、rsync、install等候选,然后你再去man cp看细节。对 shell 内建命令,比如cd,用man查不到,要用内建的 help:

help cd
help trap | less

help是 bash 提供的命令,专门解释语法和参数,还能通过管道分页阅读。养成“先 help 后 man,再不行才查PDF”的习惯,你会发现自己对参数的记忆比死背更持久。

在 man 页面内部,输入/time-style可以向下搜索关键词,按n跳到下一个匹配,这是我在长手册里定位参数最常用的技巧。它比把整个手册屏幕翻一遍快得多。

5.3 用 alias 和 shell 函数固化自己的高频组合

PDF里的命令是死的,你的使用习惯是活的。我会把高频组合沉淀到 shell 配置里,下次敲一个短词就能触发整串命令。

# 在 ~/.bashrc 中追加 mkcd() { mkdir -p "$1" && cd "$1"; } topcpu() { ps aux --sort=-%cpu | head -n "${1:-10}"; } alias lh='ls -lah --time-style=long-iso'

函数mkcd先创建目录再进入,"$1"表示传入参数,必须用双引号包住,防止目录名带空格。topcpu的"${1:-10}"意思是参数存在就取参数值,不存在就用默认值 10。alias 适合无参数的固定组合,函数适合需要接受参数的可复用场景。

把这些写进配置后,执行source ~/.bashrc生效。如果你在写脚本时也想用 alias,需要在脚本里加上shopt -s expand_aliases,因为非交互 shell 默认不展开别名。这个细节命令大全不会提,却决定了你配置的边界。

5.4 从 shell 历史中反向提炼自己的常用命令

不必只依赖PDF,你自己的历史命令是最真实的高频清单。用history或fc -l查看最近命令,统计哪个命令出现次数最多:

history | awk '{print $2}' | sort | uniq -c | sort -rn | head -n 20

这条命令统计历史记录里最常用的前20个命令。history输出第一列是编号,第二列是命令名,awk '{print $2}'取出命令字段,sort | uniq -c去重并计数,最后按次数排序。统计结果往往和PDF里的“常用”不完全一样,它才是你个人维度的命令大全。

然后把统计出的高频命令与PDF目录对照,重点补强那些你用得最多但还不太熟的参数。这个方法能反向验证一份“最全”的PDF是否真的覆盖了你的日常。坚持一个月做一次,会比任何攻略都更贴合自己的操作习惯。

6. 验证——用三个自测方法确认你真正掌握了这些命令

6.1 自测一:不看PDF,在10分钟内重建一张速查表

打开一个空白文件,凭记忆把常用命令按分类写出来,每个命令只写最核心的参数组合。写不出来的,就是你还没真正吸收的部分。这个过程不需要发到任何平台,只给自己看,它最能暴露记忆死角。

6.2 自测二:用一个组合任务模拟一次真实排查

给自己出一个能串起多个命令的小任务,例如:找出/data下修改时间在7天以内且大于500MB的日志文件,压缩后移动到/archive,并输出执行结果。这个任务会用到find的-mtime、-size、tar或mv,以及一个简单的脚本控制。能完整跑通,说明你不是只会敲单个命令,而是理解了命令之间怎么协作。

6.3 自测三:只靠 man 和 --help 完成一个陌生命令

随机挑一个你几乎没用过的命令,比如du,然后只借助man du和du --help,找到“显示当前目录下每个子目录的大小并排序”的正确写法。这个测试检验的是查文档的能力,它比记忆力更重要,因为真实环境里你永远会碰到命令大全没覆盖的细节。

我自己带过不少人,最深的教训是:背命令不如会查命令,会查命令不如会组合命令。一张“最全”的PDF只是起点,你在终端里反复敲出的肌肉记忆,才是真正能带走的积累。希望帮到你。

本文还有配套的精品资源,点击获取

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/13 9:26:48

免费开源:三角铁--AI广告视频生成系统

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/21 3:05:44

Directus 换掉 GPL 之后,Node.js CMS 到底怎么选?(二)

正篇(一)讲了怎么判断一个 CMS 能不能放心商用,把主流的六个 headless CMS 说完。这篇说国产的。 先回答一个绕不开的问题:国产 Node.js CMS 到底有多少?为什么这么少? 先纠正一个常见印象:国产…

作者头像 李华
网站建设 2026/10/19 1:35:35

极简命令行助手pi:4个核心工具与oh-my-pi全家桶实战

1. 从"工具焦虑"说起:为什么我最终只留了4个工具做开发这些年,我装过的命令行工具没有一百也有八十。每次看到新出的效率神器,第一反应就是"装一个试试",结果就是配置文件越堆越厚,快捷键记了一堆…

作者头像 李华
网站建设 2026/10/15 22:09:40

32万条全国旅游景点数据:SQL底表导入与文旅分析实战

简介:这份资源是面向旅游信息化开发、地理数据研究及LBS应用搭建者的全国景点SQL数据包,可直接导入MySQL等数据库,用于景点检索、地图标注、区域统计与POI分析等场景。压缩包内共1个文件,为单个sql脚本,整体约11.01MB&…

作者头像 李华