news 2026/10/21 19:21:24

Unix/Linux基础实战:从文件系统到进程管理的核心命令与避坑指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Unix/Linux基础实战:从文件系统到进程管理的核心命令与避坑指南

简介:这份《Unix/Linux基础讲义》面向计算机专业学生、运维初学者及准备系统学习类Unix操作系统的开发者,帮助读者建立从操作系统定位到Unix/Linux家族演进的完整知识框架。压缩包内共1个doc文档,约13.46MB,内容以讲义形式系统梳理了操作系统承上启下的地位、Unix从MULTICS到UNICS再到BSD与System Ⅲ的发展脉络、Linux由Minix到Linus Torvalds内核的诞生过程,以及GNU计划、POSIX标准与互联网这五大支柱。讲义还涵盖Linux内核与发行版区别、X Window图形系统特点、两类用户及开发应用领域等模块,目录层次清晰,便于按章节查阅与课堂对照。目前已有324人学习下载,适合作为高校课程配套资料或自学入门参考,帮助读者快速理清Unix与Linux的联系与差异,为后续命令行操作、系统管理与服务配置打下概念基础。

1. 从一份 .doc 讲义说起:Unix/Linux 基础到底该练什么

很多人第一次拿到「Unix/Linux基础讲义.doc」这类资料,第一反应是把它当文档读,结果读完还是不会用。问题不在资料,而在学习路径:Unix/Linux 基础不是知识点的集合,而是一组能在终端里反复验证的动作。你真正要练的是四件事——文件系统怎么组织、权限怎么算、进程怎么管、文本怎么处理。这四件事撑起了后面所有运维、后端、嵌入式、数据处理的活。这份讲义适合两类人:刚接触命令行的新手,以及用了几年 Linux 却只会cd、ls、vim的熟手。前者需要一条能照着敲的路径,后者需要把零散经验补成体系。下面我按自己带人时最有效的顺序,把这份讲义拆成可复现的步骤,顺带把参数和坑讲清楚。

2. 文件系统与路径:把「目录树」变成肌肉记忆

2.1 为什么先练路径而不是先背命令

Unix/Linux 的一切都挂在单棵目录树上,/是根,没有盘符概念。新手最容易翻车的地方不是命令记不住,而是不知道当前在哪、目标在哪。我一般要求先练三个动作:看当前位置、看目标属性、看路径构成。pwd看当前位置,ls -l看目标属性,realpath看路径展开后的真实位置。这三个动作练熟,后面cp、mv、rm才不会误伤。

pwd # 打印当前工作目录,确认自己在哪 ls -l /etc/hosts # 长格式列出目标,看权限、属主、大小、时间 realpath ../logs/app.log # 把相对路径展开成绝对路径,避免歧义

逻辑说明:pwd不带参数,输出当前 shell 的工作目录;ls -l的-l表示长格式,会显示权限位、硬链接数、属主、属组、字节大小、修改时间和文件名;realpath会把..、.和符号链接解析掉,输出规范绝对路径。参数上,ls常配-a看隐藏文件、-h让大小可读、-t按时间排序。注意ls -l显示的大小对目录来说只是目录项本身,不是目录内容总和,别拿它判断目录占用。

2.2 目录操作的最小命令集与参数

讲义里通常会列mkdir、rmdir、cp、mv、rm,但真正要记的是参数组合。mkdir -p一次建多层,cp -a保留权限和时间戳,mv在同一文件系统内是改名,跨文件系统才是复制加删除。rm -rf是后悔药的反面,敲之前先用ls确认目标。

mkdir -p /tmp/demo/{conf,logs,data} # 一次建三层目录,已存在不报错 cp -a /etc/skel /tmp/demo/conf/ # 归档复制,保留权限、属主、时间戳 mv /tmp/demo/logs/app.log /tmp/demo/logs/app.log.bak # 同目录改名 rm -rf /tmp/demo/data # 递归强制删除,确认路径后再执行

逻辑说明:mkdir -p的-p表示 parents,父目录不存在就一起建,且目标已存在时不报错;cp -a等价于-dR --preserve=all,适合备份配置目录;mv在同分区内只改目录项,速度快,跨分区会退化成复制加删除;rm -rf的-r递归、-f强制,不提示。参数上,cp常用-i覆盖前询问、-u只复制更新的文件。注意rm -rf后面如果跟了变量且变量为空,会变成删当前目录,脚本里务必先判断变量非空。

2.3 用 find 和通配符做批量定位

讲义里讲文件查找往往只提find,但真正干活时是find加通配符加-exec。比如找出三天内修改过的日志、找出大于 100M 的文件、按权限找可写文件。

find /var/log -type f -name "*.log" -mtime -3 # 三天内修改过的日志 find /tmp/demo -type f -size +100M # 大于 100M 的文件 find /etc -type f -perm -o+w # 其他用户可写的文件 find /tmp/demo -type f -name "*.tmp" -exec rm {} \; # 找到后逐个删除

逻辑说明:-type f限定普通文件,-name按文件名匹配,-mtime -3表示修改时间在 3 天以内,-size +100M表示大于 100M,-perm -o+w表示其他用户有写权限。-exec后面跟命令,{}代表找到的文件,\;表示命令结束。参数上,-mtime用+n表示 n 天以前,-size用+和-表示大于和小于。注意-exec对每个文件启动一次进程,文件多时慢,可以改用-exec ... +或xargs。

3. 权限与用户:把 rwx 和数字算清楚

3.1 权限位的读法与 chmod 的两种写法

ls -l第一列那串-rwxr-xr--是权限位,第一位是文件类型,后面九位分三组:属主、属组、其他。每组三位是读、写、执行。数字写法里 r=4、w=2、x=1,三组相加就是chmod的数字参数。比如755是属主读写执行、属组和其他读执行。

chmod 644 /tmp/demo/conf/app.conf # 属主读写,属组和其他只读 chmod u+x /tmp/demo/run.sh # 给属主加执行权限 chmod -R g-w /tmp/demo/data # 递归去掉属组的写权限

逻辑说明:chmod 644中 6=4+2 表示读写,4 表示只读,4 表示只读;u+x中 u 是属主,+x 是加执行;-R递归,g-w是属组减写。参数上,chmod支持u、g、o、a和+、-、=。注意目录的执行权限x表示能进入,没有x就cd不进去,读权限r表示能列出目录项,两者要分清。

3.2 属主、属组与 umask 的关系

新建文件的默认权限不是 777,而是被umask削掉一部分。umask是权限掩码,常见 022 表示新建文件 644、新建目录 755。chown改属主和属组,chgrp只改属组。

umask # 查看当前掩码,常见输出 0022 umask 027 # 设置掩码,新建文件 640,新建目录 750 chown app:app /tmp/demo/conf/app.conf # 同时改属主和属组 chgrp dev /tmp/demo/data # 只改属组

逻辑说明:umask输出四位八进制,后三位是实际掩码;umask 027表示属组去掉写、其他去掉读写执行;chown的用户:组格式同时改属主和属组,只写用户则只改属主;chgrp只改属组。参数上,chown -R递归,chown --reference=文件参照另一个文件的属主属组。注意umask只影响当前 shell 及其子进程,写进/etc/profile或~/.bashrc才对登录会话生效。

3.3 sudo 与最小权限的边界

讲义里常提sudo,但真正要练的是「什么时候不用 root」。日常操作尽量用普通用户,需要提权时用sudo单条命令,而不是sudo su进 root shell。sudo -l看当前用户能执行哪些命令,visudo改配置。

sudo -l # 列出当前用户可执行的 sudo 命令 sudo systemctl restart nginx # 单条命令提权,不切换 shell sudo -u app /tmp/demo/run.sh # 以 app 用户身份执行脚本

逻辑说明:sudo -l输出当前用户的 sudo 权限规则;sudo systemctl restart nginx只对这一条命令提权;sudo -u app指定以哪个用户身份执行。参数上,sudo -i进登录 shell,sudo -s进非登录 shell,两者都等于切 root,能不用就不用。注意sudo默认缓存凭据几分钟,共享终端上用完记得sudo -k清掉。

4. 进程与文本处理:把管道和重定向用顺

4.1 进程查看与信号发送

进程管理的最小动作是看、找、发信号。ps aux看全量,ps -ef看全量带父进程,pgrep按名字找,kill发信号。kill -15是优雅终止,kill -9是强杀,先 15 后 9 是血泪经验。

ps aux | grep app # 看所有进程,过滤 app pgrep -af app # 按名字找进程,显示完整命令行 kill -15 12345 # 发 SIGTERM,让进程自己清理 kill -9 12345 # 发 SIGKILL,强杀,进程无法清理

逻辑说明:ps aux的a显示所有终端进程,u显示用户格式,x显示无终端进程;pgrep -af的-a显示完整命令行,-f匹配完整命令行;kill -15是 SIGTERM,进程可捕获并做清理;kill -9是 SIGKILL,进程无法捕获。参数上,pgrep常配-u限定用户、-c只输出数量。注意kill -9后进程可能留下临时文件或锁,能用 15 就别用 9。

4.2 管道、重定向与 tee 的组合

管道|把前一个命令的标准输出接到后一个命令的标准输入,重定向>覆盖写文件、>>追加写文件、2>重定向标准错误、&>同时重定向标准输出和标准错误。tee一边写文件一边输出到终端。

ps aux | grep app | awk '{print $2}' # 管道串联,取进程号 ./run.sh > /tmp/demo/logs/out.log 2>&1 # 标准输出和标准错误都写文件 ./run.sh 2>&1 | tee /tmp/demo/logs/out.log # 同时写文件和终端

逻辑说明:awk '{print $2}'取第二列,ps aux的第二列是进程号;> ... 2>&1先把标准输出重定向到文件,再把标准错误重定向到标准输出,顺序不能反;tee从标准输入读,写文件同时写标准输出。参数上,tee -a追加,tee后跟多个文件可同时写多份。注意2>&1写在>后面才有效,写前面会先重定向标准错误到旧的标准输出。

4.3 grep、sed、awk 的最小可用集

文本处理三件套里,grep找行,sed改行,awk按列处理。讲义里往往讲得很全,但日常八成场景只用几个参数。

grep -n "error" /tmp/demo/logs/app.log # 找含 error 的行,带行号 sed -i 's/old/new/g' /tmp/demo/conf/app.conf # 原地替换所有 old 为 new awk -F: '{print $1, $3}' /etc/passwd # 按冒号分列,打印第一和第三列

逻辑说明:grep -n显示行号,-i忽略大小写,-r递归目录;sed -i原地修改文件,s/old/new/g全局替换;awk -F:指定冒号为分隔符,$1第一列,$3第三列。参数上,grep -v反向匹配,sed -n '1,10p'只打印前 10 行,awk的NR是行号、NF是列数。注意sed -i在部分系统上需要跟备份后缀,比如sed -i.bak,否则报错。

5. 避坑与排查:新手最常翻车的 5 个点

5.1 现象:rm -rf删错目录,恢复不了

原因:路径拼写错误或变量为空,rm -rf $DIR/在DIR为空时变成rm -rf /。解决:脚本里先判断变量非空,[ -n "$DIR" ] || exit 1,再用ls确认目标,最后才rm。交互式操作时先敲ls再敲rm,别嫌麻烦。

5.2 现象:chmod -R 777后服务起不来

原因:权限放太开,服务检测到配置文件或密钥文件权限过松,直接拒绝启动。解决:按最小权限恢复,配置文件 644,可执行文件 755,密钥文件 600,属主属组按服务要求设置。别用 777 当万能药。

5.3 现象:kill -9后进程还在

原因:进程处于不可中断睡眠D状态,通常在等 IO,信号无法立即处理。解决:先看ps -o stat确认状态,D状态只能等 IO 完成或重启系统,强杀无效。排查 IO 用iostat或dstat。

5.4 现象:管道后grep没输出,但文件里明明有

原因:前一个命令把内容写到了标准错误,而管道只接标准输出。解决:用2>&1把标准错误并到标准输出,再进管道。比如./run.sh 2>&1 | grep error。

5.5 现象:find -exec报Argument list too long

原因:-exec ... +或xargs一次传太多参数,超过系统限制。解决:改用-exec ... \;逐个处理,或用xargs -n 100分批。文件极多时优先find ... -print0 | xargs -0,用空字符分隔避免文件名带空格出错。

6. 把讲义变成可复现的练习清单

6.1 用一份脚本自检基础动作

学完上面这些,别急着往下翻讲义。我一般会写一个自检脚本,把路径、权限、进程、文本处理各练一遍,跑通说明基础动作过关。

#!/bin/bash set -euo pipefail BASE=/tmp/demo/selfcheck mkdir -p "$BASE"/{conf,logs,data} echo "hello" > "$BASE/conf/app.conf" chmod 644 "$BASE/conf/app.conf" cp -a "$BASE/conf" "$BASE/conf.bak" find "$BASE" -type f -name "*.conf" -exec ls -l {} \; ps aux | grep -c "[s]elfcheck" || true awk -F: '{print $1}' /etc/passwd | head -3 echo "selfcheck done"

逻辑说明:set -euo pipefail让脚本遇错退出、未定义变量报错、管道任一环失败即失败;mkdir -p建目录;echo写文件;chmod 644设权限;cp -a归档复制;find -exec逐个列出;grep -c "[s]elfcheck"用方括号避免匹配到 grep 自身;awk取第一列。参数上,set -u对未定义变量报错,set -o pipefail让管道整体失败可捕获。注意set -e对|| true后面的命令不生效,这是有意为之。

6.2 用 man 和 --help 建立查参数的习惯

讲义不可能覆盖所有参数,真正可靠的是man和--help。man分章节,1 是用户命令,5 是文件格式,8 是管理命令。man -k按关键字搜,man -f看命令属于哪一章。

man 1 ls # 看 ls 的用户命令手册 man 5 passwd # 看 passwd 文件格式 man -k "copy file" # 按关键字搜手册 ls --help # 快速看常用参数

逻辑说明:man 1 ls指定第 1 章,避免同名不同章混淆;man 5 passwd看文件格式而不是命令;man -k等价于apropos,按关键字搜所有手册;--help是命令自带的简要说明。参数上,man里按/搜索、n下一个、q退出。注意不是所有命令都有--help,但man基本都有。

6.3 一个具体技巧:用history和Ctrl+R减少重复输入

最后落一个我每天都在用的技巧。history看历史命令,!n执行第 n 条,!!执行上一条,Ctrl+R反向搜索历史。配合HISTTIMEFORMAT还能看时间。

export HISTTIMEFORMAT="%F %T " # 历史命令带时间戳 history | tail -20 # 看最近 20 条 # Ctrl+R 后输入关键字,回车执行,再按 Ctrl+R 继续往前搜

逻辑说明:HISTTIMEFORMAT设置历史命令的时间格式,%F是日期,%T是时间;history | tail -20看最近 20 条;Ctrl+R是 readline 的反向搜索,输入关键字后按回车执行,按Ctrl+R继续搜更早的。参数上,HISTSIZE控制内存中历史条数,HISTFILESIZE控制历史文件条数。注意HISTTIMEFORMAT要在当前 shell 或~/.bashrc里设置,只对设置之后的命令生效。

我带人时最常说的一句话是:讲义是地图,终端是路。地图看得再熟,不走路还是不会走。上面这些动作,每个都亲手敲三遍,比读十遍讲义管用。希望帮到你。

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

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

ISO 3691-4表1解读:PL等级如何落地为安全回路设计

简介:本资源是ISO 3691-4:2020国际标准中核心安全条款——表1“安全回路PL要求”的专业中文翻译,面向工业自动化工程师、叉车AGV系统安全设计人员、功能安全(IEC 62061/ISO 13849)实践者及PL验证技术人员。内容完整覆盖刹车系统&a…

作者头像 李华
网站建设 2026/10/18 17:34:46

HCIA-AI V3.5模拟题库:昇腾AI全栈工具链压力测试指南

简介:本资源是专为备考HCIA-AI V3.5华为认证人工智能工程师的考生设计的高质量模拟考试题库,面向AI初学者、高校学生及转岗技术人员,聚焦机器学习、深度学习、自然语言处理、计算机视觉等核心知识点的实战检验,有效解决考前刷题不…

作者头像 李华
网站建设 2026/10/21 9:01:57

从 TPOT 188ms 到 22ms:大模型多机分布式部署的并行策略实测

先说结论:普通网络上 PP 赢,开了 eRDMA 之后 TP 赢,而且赢很多。 下面是三轮压测的完整过程和踩坑记录。 为什么多机在所难免 今年上半年我们接到的模型规格越来越夸张:Qwen3.8-2.4T-A95B 的模型文件有 4.9TB,Kimi K…

作者头像 李华
网站建设 2026/10/18 18:30:19

HHS医疗AI战略计划解读:从政策PDF到落地技术路线图

简介:美国卫生与公众服务部(HHS)2025年1月发布的《医疗卫生人工智能战略计划》官方PDF,面向公共卫生政策研究者、医疗机构管理者及AI医疗从业者,系统制定AI在健康、人类服务和公共卫生领域的战略路线图。文件完整涵盖医…

作者头像 李华
网站建设 2026/10/19 13:42:48

IEC 61508-1功能安全入门:安全生命周期、SIL选型与文档追溯落地指南

简介:IEC 61508-1:2010 是功能安全领域的基础性国际标准,面向从事电气/电子/可编程电子(E/E/PE)安全相关系统设计、开发与认证的工程师、功能安全评估人员及汽车电子从业者。该标准作为基本安全出版物,系统规定了风险评…

作者头像 李华
网站建设 2026/10/19 10:41:31

aixingpan.cn API开发文档:natalshuom接口指南

aixingpan.cn API开发文档:natalshuom接口指南 1. 引言 本文档详细介绍了占星系统的natalshuom接口的使用方法,包括请求参数详解、响应数据结构、错误处理机制以及最佳实践建议。 2. 接口基础信息 接口名称: natalshuom 请求方式: POSTContent-Type: app…

作者头像 李华