(课堂笔记)Linux 进阶:管道、权限、权限位、定时任务、网络运维、三剑客等

本文总结了Linux进阶操作的核心知识点:

  1. 管道与批量处理(xargs、sort、uniq等命令组合使用);

  2. 文件权限管理(chmod数字表示法及chown命令);

  3. 定时任务配置(crontab时间格式与示例);

  4. 常用运维命令(网络、进程、磁盘等);

  5. 文本处理三剑客(awk列处理、sed行编辑、grep过滤);

  6. 实战练习(考试成绩分析、日志处理、销售数据分析)。


重点包括权限数字计算(如765=rwxrw-r-x)、sed的-i原地修改特性、awk按列处理数据等实用技巧,并提供了典型场景的解决方案。


Linux 中换行符 = 命令结束,xargs 防止意外执行的机制,不支持标准输入的命令,-i 在各个命令中的真实含义


🐧 Linux 课堂笔记(进阶篇)


一、管道与批量处理(|xargs

1. xargs:将输出结果转为单行(空格分隔)

bash

复制代码
# 示例:将多行结果合并为一行
cat aaa | xargs

2. |:前一个命令的输出作为后一个命令的输入

bash

复制代码
# 获取文件的第5行
head -5 aaa | tail -1

# 查找所有数字命名的文件并压缩
find . -name "[0-9]" | xargs tar -zcvf num.tar.gz

# 查找7天外的tar.gz包并删除
find . -name "*.tar.gz" -mtime +7 | xargs rm -rf

3. sort:排序

bash

复制代码
# 数值降序排序
cat aaa | sort -rn   # r:降序 n:按数值

4. uniq:去重(相邻行去重)

bash

复制代码
cat aaa | sort -n | uniq   # 先排序再去重

5. wc -l:统计行数

bash

复制代码
wc -l aaa
find . -name "[0-9]" | wc -l   # 统计数字文件个数

二、文件权限管理

ls -l 输出详解

bash

复制代码
-rw-rw-r-- 1 hadoop hadoop 29 5月 14 11:13 aaa
字段 含义
- 文件类型(-文件,d目录)
rw- 属主权限(读写)
rw- 属组权限(读写)
r-- 其他用户权限(只读)
1 子目录个数(含...
hadoop 属主
hadoop 属组
29 文件大小(字节)
5月 14 11:13 最后修改时间
aaa 文件名

权限数字表示法

权限 数字
r(读) 4
w(写) 2
x(执行) 1

权限修改命令

bash

复制代码
# 修改权限(递归)
chmod -R 760 aaa   # 结果:-rwxrw---

# 修改属主/属组(需root)
chown -R omm:dbgrp aaa

练习题chmod 765 file 的含义?

✅ 属主:rwx(7),属组:rw-(6),其他:r-x(5)


三、定时任务 crontab

基本命令

bash

复制代码
crontab -e   # 编辑定时任务
crontab -l   # 列出所有定时任务
crontab -r   # 删除定时任务

时间格式:分 时 日 月 周

位置 含义 范围
第1个* 分钟 0-59
第2个* 小时 0-23
第3个* 1-31
第4个* 1-12
第5个* 0-6

周 (0-6)中的 0 表示 周日中午 12点00分


周 (0-6)和 天(0-31) 一般不会同时定义

示例

bash

复制代码
# 每分钟执行
* * * * * echo hello >> /home/hadoop/2608/test/1

# 每天凌晨1点执行
0 1 * * * echo 123 >> /home/hadoop/2608/test/1

# 每年4月3日2:01执行
1 2 3 4 * echo 123 >> /home/hadoop/2608/test/1

# 每月1号1:00执行脚本
0 1 1 * * /path/to/script.sh

四、Linux 网络与运维命令

命令 作用 示例
ifconfig 查看IP地址 ifconfig
ping 测试网络连通性 ping 192.168.5.100
netstat -apn 查看端口占用 `netstat -apn
su - 用户名 切换用户(环境变量生效) su - root
free -m 查看内存(MB) free -m
df -h 查看磁盘使用情况 df -h
du -sh 查看文件/目录大小 du -sh /home
top 实时查看进程资源 top
kill -9 PID 强制结束进程 kill -9 12345
`ps -ef grep 服务` 查看服务是否启动
wget 下载网络资源 wget http://xxx.com/file
rz -E 上传文件(Windows→Linux) rz -E
sz 文件名 下载文件(Linux→Windows) sz aaa

常见服务端口

服务 端口
Oracle 1521
MySQL 3306
Tomcat 8080
SSH 22
SVN 8443/443
HDFS 9870

五、Linux 三剑客(文本处理)

1. awk:按列拆分

bash

复制代码
# 语法
awk -F "分隔符" '{print $N}' 文件名

# 示例:输出emp文件的第3列(岗位)
awk -F "\t" '{print $3}' emp | sort | uniq

# 示例:输出最高薪资
awk -F "\t" '{print $6}' emp | sort -rn | head -1

# 示例:统计部门个数
awk -F "\t" '{print $8}' emp | sort -rn | uniq | wc -l

2. sed:按行处理

bash

复制代码
# 输出第2-4行
sed -n '2,4p' user.log

# 删除第3行
sed -i '3d' user.log

# 替换(全局)
sed -i 's/101/zhangsan/g' user.log

核心sed -i-i = in-place(原地修改),文件内容直接改变,不输出到屏幕。


sql 复制代码
# ❌ 不加 -i:只输出到屏幕,原文件不变
sed 's/old/new/' file.txt

# ✅ 加 -i:直接修改原文件
sed -i 's/old/new/' file.txt

# 备份 + 修改
sed -i.bak 's/old/new/' file.txt  # 生成 file.txt.bak 备份

3. grep:筛选

bash

复制代码
# 筛选包含"SALESMAN"的行
grep "SALESMAN" emp

# 筛选不包含"1981"的行
grep -v "1981" emp

# 管道中使用
ps -ef | grep mysql

六、课堂练习与参考答案

练习1:score 文件

文件内容

text

复制代码
zhangsan,yuwen,98
lisi,yuwen,79
wangwu,yuwen,76
xiongda,yuwen,100
xionger,yuwen,88

Q1:多少人参加考试?

bash

复制代码
awk -F "," '{print $1}' score | wc -l

Q2:最高分是多少?

bash

复制代码
awk -F "," '{print $3}' score | sort -n | tail -1

Q3:最高分的学生姓名?

bash

复制代码
awk -F "," '{print $1,$3}' score | sort -rnk 2 | head -1 | awk -F " " '{print $1}'

练习2:user.log 文件

文件内容

text

复制代码
20260101-101-login
20260101-102-login
20260101-101-shoucang
20260101-101-logout
20260101-102-pay
20260101-102-logout

Q1:输出第2-4行

bash

复制代码
sed -n '2,4p' user.log

Q2:删除第3行

bash

复制代码
sed -i '3d' user.log

Q3:将所有101替换为zhangsan

bash

复制代码
sed -i 's/101/zhangsan/g' user.log

Q4:输出emp表薪资第2~5名的员工姓名

bash

复制代码
awk -F "\t" '{print $2,$6}' emp | sort -rnk 2 | sed -n '2,5p' | awk -F " " '{print $1}'

练习3:sales 文件

文件内容

text

复制代码
202001-apple-8765
202001-pear-8888
202001-banana-7777
202002-apple-3232
202002-pear-34534
202002-banana-23212
202003-apple-46546
202003-pear-7666
202003-banana-323

Q1:pear哪个月份卖得最好?

bash

复制代码
grep "pear" sales | awk -F "-" '{print $1,$3}' | sort -rnk 2 | head -1 | awk -F " " '{print $1}'
# 答案:202002

Q2:202003月卖得最好的产品?

bash

复制代码
grep "202003" sales | awk -F "-" '{print $2,$3}' | sort -rnk 2 | head -1 | awk -F " " '{print $1}'
# 答案:apple

Q3:哪个产品历史销量最少?最少是多少?

bash

复制代码
awk -F "-" '{print $2,$3}' sales | sort -rnk 2 | tail -1
# 答案:banana 323

七、小贴士

  • Ctrl + C / Ctrl + Z:终止当前命令

  • 管道 | 可以串联多个命令

  • xargs 将标准输入转为参数

  • -i 参数会直接修改文件(sed/rm等)

  • sort -rnk 2:按第2列数值降序排序

相关推荐
Mortalbreeze1 小时前
深度理解进程 ---- 进程创建、进程终止、进程等待、进程替换 -> Shell的底层原理
linux·运维·服务器
Bert.Cai1 小时前
Linux expr命令详解
linux·运维·服务器
彩色的黑'''12 小时前
[root@localhost ~]#,Linux系统的命令提示符为啥现在变成-bash-4.2#了,哪里设置的
linux·运维·bash
源远流长jerry12 小时前
Linux 网络发送机制深度解析:从应用到网线
linux·服务器·网络·网络协议·tcp/ip
南境十里·墨染春水12 小时前
linux学习进展 shell编程
linux·运维·学习
goyeer13 小时前
【ITIL4】32服务实践 - 问题管理(Problem Management)
linux·运维·服务器·企业数字化·it管理·itil·it治理
怀旧,13 小时前
【Linux网络编程】8. 网络层协议 IP
linux·网络·tcp/ip
RH23121114 小时前
2026.5.12 Linux
java·linux·数据结构
cen__y14 小时前
Linux11(网络编程)
linux·运维·服务器·c语言·网络·网络协议·tcp/ip