资讯动态

Linux常用命令实战指南:文件、进程、日志与权限管理

发布时间:2026/9/19 3:34:23 来源:尧图企业网站定制
简介这份Linux系统常用命令速查文档面向运维工程师、技术支持人员以及希望系统掌握Shell命令的初学者聚焦文件目录管理、系统状态查看、进程控制、网络配置等高频场景解决日常终端操作中“记不住、查不全”的问题。资源为单个docx文档压缩包大小仅18KB内容精炼、便于随时查阅目前已有319人学习。文档按功能分类整理命令覆盖文件创建/删除/复制/移动、权限修改与属主调整、磁盘与内存占用查看、进程监控与结束、压缩解压、网络连通性测试等操作每条命令均配有具体用法示例如find指定路径查找文件、grep过滤文本内容、wc统计行数字数、ln创建硬链接或符号链接、tar配合gzip打包解压等。同时补充了重定向、管道符及常用快捷键Tab自动补全、CtrlR搜索历史、CtrlC停止进程、CtrlL清屏并对u/g/o/a身份与r/w/x权限位做了简要说明能够帮助读者快速定位并完成实际任务也为编写复杂Shell脚本打下基础。1. 遇到问题先开终端Linux 常用命令不是背出来的晚上十点线上服务器磁盘告警df -h一看根分区用了 98%du -sh *秒级定位到日志目录tail -f盯住写入速度十几分钟把问题收敛。这是 Linux 常用命令最典型的用武之地——它不要求你把每一条都背下来而是按场景抽调工具文件和目录怎么建、进程怎么查怎么杀、日志怎么盯、权限怎么给、包怎么打。这篇文章按这几条主线把命令串起来每条都给出实际执行时的参数和注意点适合需要频繁登录 Linux 终端做运维部署的工程师也适合刚接触 Shell、想按逻辑记住命令而不是零散抄命令的学习者。2. 文件与目录操作从路径到链接2.1 定位与创建pwd、cd、mkdir、touch文件操作的第一步是确定自己在哪、想去哪。pwd输出当前工作目录的绝对路径cd /home切换工作目录这两个命令是后续所有操作的前提。创建目录用mkdir创建空文件用touch它们的组合使用频率比想象中高得多。pwd cd /home mkdir testdir mkdir -p dir1/dir2/dir3 touch 1.txt上面这段是文件操作里最基本的四个动作pwd打印当前路径避免在脚本或手动操作时搞不清位置cd /home的/home是绝对路径也可以写cd ../这种相对路径mkdir testdir只创建一层目录touch 1.txt的核心作用是创建空文件但更实用的场景是更新已有文件的时间戳。注意mkdir的-p参数——mkdir -p dir1/dir2/dir3会递归创建中间层级如果dir1不存在也会一并创建。很多新手在这里踩坑直接mkdir dir1/dir2/dir3会报No such file or directory因为父目录还没建出来。写脚本时我习惯无脑加-p它不会因为目录已存在而报错是幂等操作适合放在部署脚本里反复执行。2.2 复制、移动与删除cp、mv、rm 的边界cp、mv、rm是最容易造成事故的三个命令。它们的共同点是都支持递归参数-r区别在于cp保留源文件、mv不保留、rm直接毁掉目标。理解这个边界比记住参数更重要。cp 1.txt 2.txt cp -r dir1 dir2 mv dir1 dir2 rm -rf dir1 rm -i 1.txtcp 1.txt 2.txt把文件复制一份源文件还在cp -r dir1 dir2递归复制整个目录-r是 copy 目录时的必备参数不加会直接报错。mv dir1 dir2的语义是把 dir1 移动到 dir2如果dir2不存在它就变成了重命名——这是 mv 最常见的双重用途。rm -rf dir1是强制递归删除-f忽略不存在的文件和确认提示-r递归处理目录。我一般会在交互式环境里用rm -i代替裸rm它会在删除前逐条确认防止手滑。生产服务器上删除前建议先mv到一个trash/目录保留几天确认业务无影响再清代价远低于误删后做数据恢复。下面这张表把三个命令的参数边界列清楚命令递归参数确认提示典型误用cp-r复制目录默认覆盖不提示复制目录忘加-rmv不需要默认覆盖不提示目标存在时直接覆盖文件rm-r删除目录-i开启确认裸rm -rf删错路径2.3 链接的本质ln 与 ln -s 的 inode 差异链接是 Linux 文件系统里一个容易绕晕的点。ln建立的是硬链接ln -s建立的是符号链接虽然命令只差一个-s底层原理完全不同。硬链接本质上是同一个 inode 的多个目录项符号链接则是一个独立文件内容指向另一个路径。ln 1.txt 1_hard.txt ln -s 1.txt 1_soft.txt ls -li 1.txt 1_hard.txt 1_soft.txtls -li输出里的第一列是 inode 编号。执行后能看到1.txt和1_hard.txt的 inode 相同说明它们指向同一份数据块删除任何一个另一个仍然可读因为链接计数减一后还有引用。而1_soft.txt的 inode 不同它存的是1.txt这个路径字符串。实际使用中符号链接用得远多于硬链接原因有三个硬链接不能跨文件系统不同分区 inode 不互通、不能链接目录、目标文件删除后硬链接依然指向旧数据容易造成删了还在的误判。ln -s常用于给可执行文件、日志目录、配置文件做快捷入口比如ln -s /data/app/logs /var/log/app方便统一查看。需要留意的是符号链接一旦源文件被删除就会变成死链ls会显示红色或broken symlink这是排查问题时的重要信号。3. 系统资源与进程排查先看状态再动手3.1 先看家底date、hostname、free、df、du处理系统问题前先花十秒把整体状态摸一遍。date看时间hostname看主机名free看内存df -h看磁盘分区使用率du -sh *看当前目录下每一项的占用。这几条命令都不修改系统状态可以放心执行。date hostname free -h df -h du -sh *free -h以人类可读格式输出内存和交换分区使用情况注意第一行的available才是真正可用的内存它包含了可回收的缓存比free列更接近实际df -h显示的是每个挂载点的使用率排查磁盘满第一时间看它du -sh *里的-s表示只输出总计-h人类可读*是通配符展开为当前目录下所有条目。df和du的区别是新手最容易混淆的df从文件系统层面统计整个分区删除文件后空间不一定立即释放因为还有进程持有文件句柄du从目录树层面累加文件大小。排查磁盘满了但 du 找不到大文件时十有八九是有进程在持续写一个已删除文件用lsof | grep deleted能揪出它这也是运维面试题里常出现的组合。3.2 进程画像与精准击杀ps、top、kill进程排查的核心是先看清再动手。ps -ef全格式显示所有进程ps -a显示所有用户的所有进程top实时刷新当前系统里资源消耗最高的进程。三者分工不同ps是一次性快照适合配合grep定位特定进程top是持续视图适合观察 CPU 和内存的波动。ps -ef | grep nginx ps -a top -d 1 kill -15 7321 kill -9 7321ps -ef输出的第二列是 PID第八列是命令路径排障时ps -ef | grep nginx能马上看到 nginx 的 master 和 worker 进程是否在跑top -d 1表示每 1 秒刷新一次默认 3 秒-d参数调短有助于捕捉瞬时 CPU 飙升的进程。kill的梯度和很多人理解的不一样kill -15是给进程发 SIGTERM请求它优雅退出给它时间清理资源kill -9是 SIGKILL内核直接回收进程没机会做任何清理。线上优先用-15观察几秒没退出再用-9一上来就-9可能导致配置文件写一半、数据库 binlog 没刷盘。批量操作时可以ps -ef | grep java | awk {print $2}提取 PID再交给kill但用前一定确认 grep 条件不会误伤其他进程。命令数据形态适用场景ps -ef一次性快照配合 grep 查特定进程状态ps -a全部用户进程确认多用户环境下的进程归属top动态刷新定位 CPU/内存瞬时占用高的进程3.3 网络连通与电源管理ifconfig、ping、shutdown网络排查是系统管理的日常操作。ifconfig查看网卡和 IP 配置ping测试连通性shutdown管理电源状态。这三条命令组合起来可以覆盖网络通不通、IP 配没配、机器要不要重启三类问题。ifconfig eth0 ping -c 4 目标主机 shutdown -r now shutdown -h now halt rebootifconfig不带参数列出所有网卡带网卡名只看指定网卡输出里的inet字段就是 IPv4 地址排查 IP 配置错误先看它ping -c 4指定发送 4 个包后自动退出不加-c会一直发下去直到 CtrlC 手动终止——脚本里必须加次数限制避免卡死。生产环境最常见的用法是ping -c 4网关 IP网关通则基础网络没问题再从本机 ping 对端内网 IP一层层缩小故障范围。shutdown -r now是先关机再重启-h是关机后不重启两条命令在远程操作时都要小心now表示立即执行halt的传统语义是关机后关闭电源reboot重启。远程执行重启前建议先用uptime确认负载不高、没有在执行中的关键任务否则机器起不来又是一场事故。4. 文本查看与过滤cat、head、tail、grep、find 的正确用法4.1 按需读取head、tail 与 tail -f 动态跟踪查看文件内容最容易犯的错误是一条cat到底。日志文件几 GB 时cat会把整个文件灌进终端直接拖垮 SSH 会话。正确做法是按需读取head -20看开头、tail -20看结尾、tail -f动态跟踪。head -20 1.txt tail -20 1.txt tail -f /var/log/app.loghead -20只读取文件前 20 行适合快速确认文件格式和表头tail -20读取最后 20 行排查程序刚崩了这类问题比 head 有用得多因为错误信息通常在日志尾部tail -f进入持续跟踪模式文件有新内容就马上滚出来CtrlC 退出。tail -f是排障时使用频率最高的命令之一但要注意两点第一它默认从文件末尾开始跟如果日志已写满磁盘且文件很大需要先tail -n 200看最近记录再-f第二日志被 logrotate 轮转后普通tail -f会跟丢需要加-F参数大写它会在文件被重命名后重新打开新文件。这个区别在排查日志突然不输出了时非常关键。4.2 分页查看与全文匹配cat、more、less、grep文件不大但要翻着看用more和less文件里找特定内容用grep。cat适合小白文件和小片段拼接more是分页器less是它的增强版。实际工作中less和grep是日志分析的两大主力。cat 1.txt more 1.txt less 1.txt grep aaa 1.txtcat 1.txt显示全部内容适合确认 1.txt 这种小文件的整体面貌more 1.txt分页显示空格翻页、q 退出但它的短板是不支持向上翻页查看较长的部署日志时会很别扭less 1.txt支持方向键上下翻、/输入关键字搜索、n跳转到下一处匹配几乎完全替代 more。grep 在这个场景里做的是文本筛选grep aaa 1.txt输出所有包含aaa的行常用于在日志里捞 ERROR、异常堆栈等关键字。grep 有几个高频参数值得刻意练习-i忽略大小写、-n显示行号、-v反向匹配排除某些行、-E启用扩展正则。排查线上问题时我一般会组合用grep -nE ERROR|Exception app.log | tail -50先缩小到异常段落再配合less看上下文。注意 grep 匹配的是行内子串不是精确等于想匹配完整单词要加-w。4.3 精确计数与全盘查找wc、findwc的三件套是-l行数、-w字数、-m字符数find按条件查找文件。前者教给你文件里有多少东西后者解决文件在系统哪里。wc -l 1.txt wc -w 1.txt wc -m 1.txt find / -name 1.txt 2/dev/nullwc -l 1.txt统计行数在验证接口处理的请求是否完整落盘时很有用比如对比前后两次的日志行数变化wc -w统计单词数按空格分隔wc -m统计字符数注意中文环境下和字节数不同。三个参数可以合并写wc -lwm 1.txt一次输出。find / -name 1.txt从根目录全盘搜索2/dev/null把权限不足的报错丢弃。全盘 find 在生产环境可能很慢更高效的做法是指定范围比如find /home /var /opt -name *.log -mtime -1。下表总结了 wc 参数统计单位的差异参数统计单位典型用途-l换行符数量统计日志行数、代码行数-w空格分隔的单词数估算文本规模-m字符数核对文件字符级长度5. 权限模型与压缩打包chmod、chown、tar、gzip5.1 权限位模型chmod 的字符法与数字法Linux 的权限模型是三组三段u当前用户、g同组用户、o其他用户每组有 r可读、w可写、x可执行三种权限。chmod负责调整这些位ls -l第一列就是权限的直观表示。ls -l 1.txt chmod ur 1.txt chmod -R ur dir1 chmod 755 script.shls -l 1.txt输出的-rw-r--r--第一位是文件类型后面每三位一组对应 u/g/o 的 rwx。chmod ur 1.txt给文件属主加读权限其他位不动这是字符法的增量修改chmod -R ur dir1递归修改目录及子文件-R是递归改权限时的必备参数。数字法是生产环境更常用的方式r4、w2、x1三者求和得到一组权限三位数字分别对应 u/g/o。常见做法是755用于脚本和可执行程序属主全权限组和其他用户可读可执行、644用于普通配置文件属主可读写其他人只读、600用于密钥和密码文件。用chmod 755 script.sh一条命令完成设置比逐位字符修改更高效。字符法适合单独微调某个权限位数字法适合整体重置掌握两者能应对大多数权限问题。5.2 属主与属组调整chown 的递归用法权限位之外文件还有一个归属问题它属于哪个用户、哪个组。chown修改这个归属格式是用户:组两个部分都可以单独指定。chown user1:group1 1.txt chown -R user1:group1 dir1 chown user1 1.txt chown :group1 1.txtchown user1:group1 1.txt同时把属主改为 user1、属组改为 group1chown -R user1:group1 dir1递归改目录下所有文件和子目录部署新应用时经常把整个目录一次性交给某个服务账号。chown user1 1.txt只改属主chown :group1 1.txt只改属组冒号前留空和冒号后留空分别表示忽略对应字段。这里有个细节容易忽略chown user1:group1里的用户和组必须已经存在于系统中否则报invalid user。批量修改时先用id user1确认账号存在和所属组再执行 chown。另外普通用户不能 chown 别人的文件只有 root 能随意改归属所以这条命令基本都在 sudo 或 root 会话下执行。5.3 打包与压缩tar、gzip 的分工tar 和 gzip 是两件事tar负责把多个文件和目录打包成一个文件gzip负责对单个文件压缩。实际使用时几乎总是一条命令组合完成tar -zcvf打包并压缩tar -zxvf解压并展开。gzip 1.txt gzip -d 1.txt.gz tar -cvf 1.tar 1.txt tar -xvf 1.tar tar -zcvf 1.tar.gz 1.txt tar -zxvf 1.tar.gzgzip 1.txt压缩后生成 1.txt.gz原文件被替换掉gzip -d 1.txt.gz解压还原-d是 decompress。tar -cvf 1.tar 1.txt的-c创建归档、-v显示过程、-f指定归档文件名这个组合里没有-z只打包不压缩tar -xvf 1.tar的-x解开归档。线上分发部署包的标准动作是tar -zcvf app.tar.gz app/一条命令完成打包和 gzip 压缩其中-z表示管道交给 gzip。解压时tar -zxvf app.tar.gz-z告诉 tar 先解压再解开。注意-f必须放在参数最后一位因为-f后面紧跟的是文件名——写错顺序 tar 会把文件名当成参数解析导致报错。判断一个压缩包是纯 tar 还是 tar.gz可以用file app.tar.gz查看实际格式避免-z加错白折腾。6. 终端效率快捷键、重定向与管道联动6.1 终端快捷键从 ctrlc 到 ctrlr终端操作里手指不离开键盘比鼠标点击快得多。ctrlc停止当前进程ctrll清屏ctrlr反向搜索历史命令ctrlq在大多数终端模拟器里恢复被暂停的输出tab自动补全路径和命令。这五个键组合在一起能省掉大量重复输入。# 终端内直接按键不是命令 # ctrlr输入关键字搜历史命令 # ctrll清屏等价于 clear # tab命令和路径补全按两次列出所有可选ctrlr按下去会进入reverse-i-search输入tar -zcv就能翻出之前打过的打包命令比 up 键逐条翻历史快得多再按一次继续往前匹配tab补全不仅能补命令名还能补文件路径路径中间有空格或特殊字符时它会自动转义比手写引号安全。6.2 重定向、管道与通配符的联动重定向、管道、通配符合起来是 Shell 最强大的组合拳重定向控制数据流向文件管道把一个命令的输出喂给另一个命令通配符批量匹配文件名。三者配合能写出几行就完成手工要半小时的操作。echo haha 1.txt echo lala 1.txt cat 1.txt | grep hello tail -f app.log | grep ERROR cp *.log /backup/覆盖写入echo haha 1.txt先清空 1.txt 再写入追加写入echo lala 1.txt在文件末尾新增一行这个区别在收集日志时非常关键误用会直接清掉原文件。cat 1.txt | grep hello是管道的基本形态|把 cat 的输出变成 grep 的输入实际排查中我一般会组合成tail -f app.log | grep ERROR实时滚动只显示异常行避免日志刷屏。*.log是通配符最常见的用法它会展开为当前目录下所有以.log结尾的文件。通配符是由 Shell 在命令执行前展开的所以cp *.log /backup/实际执行的是cp app.log web.log /backup/。注意通配符和正则不是一回事通配符的*匹配任意字符正则的*表示重复前一个字符写 grep 正则时不要混用否则匹配结果会和你预想的差很远。本文还有配套的精品资源点击获取

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

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

免费获取报价