1. Linux第五天学习路线规划
作为一名从Windows转战Linux的老用户,我清楚地记得自己第五天学习时的迷茫与突破。这个阶段通常处于"新手甜蜜期"的末尾,已经掌握了基础命令但还无法灵活组合运用。根据我的教学经验,第五天的学习应该聚焦三个核心目标:文件权限的深度理解、文本处理三剑客(grep/awk/sed)的入门,以及系统进程管理的实操。
重要提示:这个阶段切忌贪多求快,把每个命令的常用参数和组合用法吃透,比浅尝辄止地学几十个命令更有价值。
我建议的当日学习路线如下:
- 上午:通过实际案例理解Linux权限体系(用户/组/其他)
- 下午:掌握grep基础搜索和awk/sed的简单文本处理
- 晚上:用top/ps命令监控系统进程,理解PID和资源占用
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 文件权限的深度解析
2.1 权限表示法的两种形态
Linux权限系统远比表面看到的复杂。当我们执行ls -l时看到的-rwxr-xr--这样的字符串,其实包含四部分信息:
code复制类型 所有者权限 组权限 其他用户权限
- rwx r-x r--
其中第一位表示文件类型:
-普通文件d目录l符号链接c字符设备文件b块设备文件
后9位每3位一组,分别代表所有者(u)、所属组(g)和其他用户(o)的权限。每个权限组的r/w/x分别对应:
- r (read):读取权限(对目录是列出内容)
- w (write):写入权限
- x (execute):执行权限(对目录是进入权限)
2.2 数字权限表示法的原理
我们常用chmod 755这样的数字表示法,其计算方式其实很简单:
- r=4
- w=2
- x=1
将每组权限对应的数字相加即可。例如:
- rwx = 4+2+1 = 7
- r-x = 4+0+1 = 5
- r-- = 4+0+0 = 4
所以常见的权限组合:
- 755:所有者rwx,组和其他r-x
- 644:所有者rw-,组和其他r--
- 777:所有用户完全权限(慎用!)
2.3 特殊权限位详解
除了基本的rwx,Linux还有三个特殊权限位:
-
SUID(Set User ID):用
s表示,出现在所有者x位置- 典型应用:/usr/bin/passwd
- 作用:执行时以文件所有者身份运行
- 设置方法:
chmod u+s file或chmod 4755 file
-
SGID(Set Group ID):用
s表示,出现在组x位置- 典型应用:目录共享场景
- 作用:新建文件自动继承目录的组
- 设置方法:
chmod g+s dir或chmod 2755 dir
-
Sticky Bit:用
t表示,出现在其他用户x位置- 典型应用:/tmp目录
- 作用:只有文件所有者能删除自己的文件
- 设置方法:
chmod o+t dir或chmod 1777 dir
3. 文本处理三剑客实战
3.1 grep的精准搜索技巧
grep是Linux下最常用的文本搜索工具,但大多数人只用了它10%的功能。以下是我总结的高效用法:
基础搜索:
bash复制grep "error" /var/log/syslog # 搜索包含error的行
grep -i "warning" file.log # 忽略大小写
grep -v "success" data.txt # 反向搜索(不包含success的行)
高级技巧:
bash复制grep -E "error|warning" file # 同时匹配多个模式(扩展正则)
grep -A 3 -B 2 "panic" log # 显示匹配行前后内容
grep -r "function" ~/code/ # 递归搜索目录
grep -n --color=auto "TODO" *.py # 显示行号并高亮
实用技巧:将常用grep选项写入alias,比如在~/.bashrc中添加:
alias grep='grep --color=auto -n'
3.2 sed的流编辑魔法
sed是流编辑器,特别适合批量文本替换。掌握这几个核心用法就能应对80%的场景:
基本替换:
bash复制sed 's/old/new/' file.txt # 每行第一个old替换为new
sed 's/old/new/g' file.txt # 全局替换
sed -i.bak 's/foo/bar/' file # 直接修改文件(保留备份)
高级操作:
bash复制sed '/^#/d' config.conf # 删除所有注释行
sed -n '5,10p' data.txt # 只打印5-10行
sed '/start/,/end/d' file # 删除start到end之间的所有行
3.3 awk的字段处理艺术
awk特别适合处理结构化文本(如日志、CSV)。它的核心概念是"字段"和"模式-动作":
基本用法:
bash复制awk '{print $1}' access.log # 打印每行第一个字段
awk -F: '{print $1,$6}' /etc/passwd # 指定冒号为分隔符
awk '$3 > 100 {print $0}' data.txt # 第三个字段大于100的行
统计计算:
bash复制awk '{sum+=$3} END {print sum}' sales.csv # 第三列求和
awk '{count[$1]++} END {for(i in count) print i,count[i]}' log # 统计第一列出现次数
4. 进程管理核心技能
4.1 ps命令的实用参数组合
ps能显示进程信息,但参数体系复杂(BSD风格和UNIX风格混用)。记住这几个黄金组合:
bash复制ps aux # 查看所有用户的所有进程(BSD风格)
ps -ef # 完整格式列表(UNIX风格)
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head # 按内存排序
ps -p 1234 -o lstart # 查看进程启动时间
4.2 top的交互式操作技巧
top是动态进程查看器,交互模式下这些快捷键最实用:
M:按内存使用排序P:按CPU使用排序1:展开多核CPU显示k:终止进程(输入PID)q:退出
性能分析技巧:运行
top -d 1 -b -n 3 > top.log可将三次快照保存到文件
4.3 进程优先级调整
Linux进程的nice值范围是-20(最高)到19(最低)。普通用户只能调低优先级:
bash复制nice -n 10 ./script.sh # 以较低优先级启动
renice 15 -p 1234 # 调整运行中进程的优先级
5. 常见问题排错指南
5.1 权限拒绝问题的排查流程
遇到"Permission denied"时,按这个顺序检查:
ls -l查看文件权限id确认当前用户和组- 检查文件所在目录的x权限(目录需要x权限才能访问)
- 检查SELinux状态:
getenforce和ls -Z
5.2 文本处理常见陷阱
- 编码问题:用
file -i检查文件编码,处理前可转UTF-8:bash复制
iconv -f GBK -t UTF-8 file.txt > newfile.txt - 行尾符差异:Windows文件在Linux下可能有
^M,用dos2unix转换 - 大文件处理:对于GB级文件,避免用vim直接打开,改用:
bash复制less huge.log # 分页查看 tail -f live.log # 实时追踪
5.3 进程管理疑难解答
进程卡死的处理步骤:
top找到异常进程的PIDstrace -p PID查看系统调用lsof -p PID查看打开的文件- 必要时用
kill -9 PID强制终止
后台进程管理技巧:
bash复制./server.sh & # 后台运行
jobs # 查看后台作业
fg %1 # 调回前台
disown -h %1 # 脱离终端继续运行
6. 学习资源与进阶路线
6.1 推荐练习项目
- 编写一个日志分析脚本,使用grep/sed/awk提取错误信息并统计
- 创建一个共享目录,设置SGID权限让团队成员协作
- 用ps和top监控系统,找出资源占用最高的进程
6.2 必备参考文档
man hier:了解Linux文件系统结构man bash:Bash shell的完整手册man proc:/proc文件系统说明
6.3 后续学习建议
第五天之后,建议转向这些方向:
- Shell脚本编程自动化任务
- 软件包管理和服务配置
- 网络工具的使用(netstat/ss/curl等)
- 系统日志分析和故障排查
学习Linux就像学乐器,前五天能弹出简单旋律,但要成为高手需要持续练习。我个人的经验是:每天解决一个实际问题,三个月后你会惊讶于自己的进步。
