news 2026/5/28 20:21:22

linux基础随心记三-四剑客

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
linux基础随心记三-四剑客

一、正则表达式

1、特殊符号

引号
单引号内容原封不动的输出
双引号会解析一些特殊符号,但对于{}(通配符)没有解析
不加引号和双引号类似,额外支持通配符 *.log {1…10}
反引号优先执行反引号内的命令
重定向
>标准正确输出,先清空后写入
>>追加
2>标准错误输出
2>&1 &>xxx.logecho xkm >>xkm.log 2>&1
echo xkm &>>xkm.log
<标准输入
<<cat xxx.txt <<EOF
xxxx
EOF
通配符用于批量处理文件
*所有
{}输出序列
[]
?任意一个字符

2、正则表达式

配合三剑客使用正则对字符进行过滤
正则表达式在线测试

基础正则
^xxx以xxx开头
xxx$以xxx结尾 cat -A 显示文件中隐藏的特殊符号
^$空行
.任意一个字符
\转义字符 ‘\.$’ 以.结尾
x*前一个字符连续出现0次或0次以上
.*所有
[]匹配任意一个字符 [abc] a或者b或者c
不需要转义,与+搭配较多
[^]取反 [^abc] 匹配任意一个字母,除了abc
扩展正则egrep 或 grep -E
sed -r
awk默认支持
+前一个字符连续出现1次或1次以上
[0-9]+ 取出所有的数字
[a-Z]+ 取出所有的单词
|或者
()表示一个整体
或在sed中实现后向引用(反向引用sed)
{}a{n,m} 前一个字符连续出现至少n次,最多m次
a{n} 前一个字符连续出现n次
a{n,} 前一个字符连续出现至少n次
a{,m}前一个字符连续出现最多m次
前一个字符出现0次或1次
perl正则grep -P
\d[0-9]
\s匹配的空字符 空格 tab \ \t \r \n \f
\w[0-9a-zA-Z_]
\D[^0-9]
\s非空字符
\W[^0-9a-zA-Z_]

二、gerp

  • 擅长过滤,过滤速度最快,会把匹配到的行显示出来
选项说明
-n显示行号
-i不区分大小写
-v排除
# 显示/etc/下面一层中以.conf结尾的文件ls/etc/|grep'\.conf$'find/etc/-maxdepth1-typef-name'*.conf'# 使用grep取出/etc/passwd第一列的数据egrep-o'^[^:]+'/etc/passwd

三、sed

  • 擅长取行,过滤,增删查改(替换修改文件内容)
  • 后向引用(截取)
-n取消默认输出,有p输出时要加上-n,不然会全部输出
-r支持扩展正则
-i修改文件内容,这个选项要放在最后
-i.bak先进行备份,然后修改文件内容,这个选项要放在最后

1、查找

  • 精确查找 类似于grep的过滤,但是可以指定行号
  • 模糊查找
# 取出文件的第三行sed-n'3p'/etc/passwd# 取出文件的第2到5行sed-n'2,5p'/etc/passwd# 取出文件的第2行和第5行sed-n'2p;5p'/etc/passwd# 取出文件的最后一行sed-n'$p'/etc/passwd# 过滤出包含root的行sed-n'/root/p'/etc/passwd# 获取范围内的日志sed-n'/11:00:00/,/24:00:00/p'/var/text.log

2、替换

格式: sed ‘s#找谁#替换成什么#g’ 文件名 输出文件内容
sed -i ‘s#找谁#替换成什么#g’ 文件名 修改文件内容
s:substitute 替换
g:global 全局替换,把一行中所有匹配到的内容都进行替换,否则只替换每一行第1个匹配到的内容

3、替换进阶-后向引用

适用于sed命令处理/提取一行中的某一部分,配合正则灵活取列

# \+数字 调用前面的组echo1234567|sed-r's#(1)(.*)(7)#\1<\2>\3#g'1<23456>7# 调换/etc/passwd第一列和最后一列的内容sed-r's#(^.*)(:x.*:)(.*$)#\3\2\1#g'/etc/passwdsed-r's#([a-zA-Z0-9_-]+)(.*:)(.*$)#\3\2\1#g'/etc/passwd# 提取网卡ipipa s eth0|sed-nr'3 s#(^[a-z]+ )(.*)(/.*)#\2#g p'

4、删除

d 删除以为单位
sed ‘3d’ xkm.log
删除空行或带#的行
sed -r ‘/^$|#/d’ xkm.log

5、增加

  • cai
    a:append 在指定行后面追加内容
    i:insert 在指定行上面插入一行
    c:replace 替换指定行的内容,取代

sed ‘3a xxx’ xkm.log

四、awk

是一个单行脚本
取行、取列、混合取行与列、统计功能、判断与循环、数组
擅长取列
‘条件{动作}’

1、取行

# 取出第一行awk'NR==1{print $0}'/etc/passwdawk'NR==1'/etc/passwd# NR Number of Record 记录号,行号# 取出第2到5行awk'NR>=2 && NR<=5'/etc/passwd# 过滤出包含root或nobody的行awk'/root|nobody/'/etc/passwd# 过滤出包含从root到nobody的行awk'/root/,/nobody/'/etc/passwd

2、取列

$数字 表示取列,$1第一列,$0表示这一行
$NF 最后一列 Number of Field
$(NF-1) 倒数第二列
column -t 对齐
-F 指定分隔符 -F:
$4 ~ /^[01]/ 第4列包含0或1开头( ~ 对某列进行过滤)

# 取出ls -lh的size列和最后一列ls-lh|awk'{print $5,$NF}'# 指定复杂分隔符取ipipa s eth0|awk-F'[ /]+''NR==3{print $3}'# 判断第三列大于1000,取出第一列,第三列和最后一列awk-F:'$3>1000{print $1,$3,$NF}'/etc/passwd# 过滤出/etc/passwd第4列的数字是以0或1开头的行,输出第一列,第三列awk-F:'$4 ~ /^[01]/ {print $1,$3}'/etc/passwd

3、统计与计算

  1. 类似wc -l
awk'{i++} END{print i}'/etc/passwd
  1. 进行累加求和
awk'{i=i+$1} END{print i}'/etc/passwd

五、find

擅长在指定目录中查找文件

选项说明
-type什么类型的文件 f表示文件 d表示目录
-name要查找的文件的名称
-size根据大小查找文件 +表示大于 -表示小于
-mtime根据修改时间查找文件,+ 或 - 表示在指定天数内或后
-user根据所属用户
-maxdepth指定深度,写在最前面
# 对查找到的每个文件执行指定的命令find/var/log/app-name'*.log'-matime+7-execrm-f{}\;# 将查找到的所有文件作为参数传递给指定的命令,而不是逐个执行find/var/log/app-name'*.log'-matime-7-exectarzcf /var/log/app.tar.gz{}+
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/28 20:21:16

模型调参实战:优化Lemone-Router超参数的完整指南

模型调参实战&#xff1a;优化Lemone-Router超参数的完整指南 【免费下载链接】lemone-router-m 项目地址: https://ai.gitcode.com/hf_mirrors/Rose/lemone-router-m Lemone-Router是一款针对法国税收问题和文档的分类模型&#xff0c;通过合理的超参数调优可以显著提…

作者头像 李华
网站建设 2026/5/28 20:19:29

3步掌握三星固件下载:Bifrost跨平台工具完整指南

3步掌握三星固件下载&#xff1a;Bifrost跨平台工具完整指南 【免费下载链接】Bifrost Cross-platform tool for downloading Samsung mobile device firmware. 项目地址: https://gitcode.com/gh_mirrors/sa/Bifrost 你是否曾经因为三星设备刷机而四处寻找固件&#xf…

作者头像 李华
网站建设 2026/5/28 20:17:53

5个简单步骤掌握Windows自动化:Pulover‘s Macro Creator终极指南

5个简单步骤掌握Windows自动化&#xff1a;Pulovers Macro Creator终极指南 【免费下载链接】PuloversMacroCreator Automation Utility - Recorder & Script Generator 项目地址: https://gitcode.com/gh_mirrors/pu/PuloversMacroCreator 你是否每天重复着相同的电…

作者头像 李华
网站建设 2026/5/28 20:12:44

告别轮询!用STM32G070+STM32CubeMX实现串口命令解析器(中断+DMA+状态机)

STM32G070高效串口通信框架设计&#xff1a;DMA状态机实战解析在智能硬件开发中&#xff0c;稳定可靠的串口通信往往是连接嵌入式设备与上位机的关键桥梁。传统轮询方式不仅占用CPU资源&#xff0c;面对复杂协议时更显得力不从心。本文将基于STM32G070微控制器&#xff0c;通过…

作者头像 李华