Linux命令三剑客

Linux下一切皆文件,对Linux的操作就是对文件的处理,grep擅长查找功能,sed擅长取行和替换,awk擅长取列。

一.grep命令
1.强大的文本搜索工具,可以使用正则表达式搜索文本,并将匹配的行打印出来,grep更适合单纯的查找或匹配文件
2.grep的输入不一定都是文件,它也常常从管道读取输入,结合ls一起使用,ls的输出通过管道传给grep,可以选出满足正则表达式的所有目录
3.命令格式 grep [选项] ‘要查找的字符串对应的正则表达式’ 文件名
[1] -c 仅列出文件中包含模式的行数
[2] -i 忽略模式中的字母大小写
[3] -l 列出带有匹配行的文件名
[4] -n 显示匹配内容的所在文件中的行数
[5] -v 反向选择,也就是显示出没有某个字符串的行
4.实例
[1]ps -ef | grep svn 查找指定进程
[2]ps -ef | grep svn -c 查找指定进程个数
[3]grep -E ‘ed|at’ 文件名 显示包含ed或at字符的内容行

二.sed命令
1.对文件中的内容按行进行替换,删除,增加,选取等,可以执行与vi相同的编辑任务,不会修改原文件,更适合编辑匹配到的文本
2.sed命令的语法格式
[1] sed的命令格式 sed [选项] ‘sed command’ 文件名
[2] sed的脚本格式 sed [选项] -f ‘sed script’ 文件名
3.选项
[1] -n 只打印模式匹配的行
[2] -e 直接在命令行模式上进行sed动作编辑
[3] -f 将sed的动作写在一个文件内,用-f 文件名执行文件内的sed动作
[4] -i 直接修改文件内容
[5] -r 支持扩展模式
4.sed 在文件中查询文本的方式
[1]使用行号,可以是一个简单的数字或是一个行号范围
1) x x为行号
2)x,y 表示行号从x到y
3)/pattern 查询包含模式的行
4)/pattern /pattern 查询包含两个模式的行
5)pattern/,x 在给定行号上查询包含模式的行
6)x,/pattern/ 通过行号和模式查询匹配的行
7)x,y! 查询不包含指定行号x和y的行
5.sed的编辑命令
[1] p 打印匹配行(和-n选项一起合用)
[2] = 显示文件行号
[3] a\ 在定位行号后附加新文本信息
[4] i\ 在定位行号插入新文本信息
[5] d 删除定位行
[6] c\ 用新文本替换定位文本
[7] w 文件名 写文本到一个文件
[8] r 文件名 从另一个文件中读文本
6.实例
[1] sed -n ‘2p’ data 使用-n选项表示只打印匹配的行
[2] sed -n ‘1,3p’ data 表示打印文件中的第一行到第三行
[4] sed -n '/first/,4p data 打印文件中从匹配first的行到第4行
[5] sed -n ‘/data/,/last/p’ data 打印既匹配data字符的行,也打印匹配last字符的行
7.支持对单个文件实现不同的操作,每个操作用-e参数

三.awk命令
1.以字段为单位进行处理,也就是把一行的数据分割,然后进行处理,更适合格式化文本,对文本继续宁较复杂格式处理
2.命令格式 awk ‘条件1{命令1} 条件2{命令2}’ 文件名
3.awk内置变量
[1] ARGC 命令行参数个数
[2]ARGV 命令行参数排列
[3]FNR 浏览文件的记录数
[4]NF 浏览记录的域的个数
[5]NR 已读的记录数
[6]OFS 输出域分隔符
[7]ORS 输出记录分隔符
[8]RS 控制记录分隔符
[9]FS 设置输入域分隔符,等价于命令行 -F选项
$0指的是整条记录 $1表示的是当前行的第一个域 $2表示当前行的第二个域
$NF表示最后一列的信息
4.实例
[1]统计文件的文件名,每行的行号,每行的列数,对应的完整行内容
awk -F ‘:’ ‘{print “filename:” FILENAME “,linenumber:” NR “,columns:” NF “,linecontent:”$0}’ /etc/passwd
[2]打印文件第2行的信息
awk -F: ‘NR==2{print "filename: "FILENAME, $0}’ /etc/passwd
[3] 过滤
ls -lF | awk ‘/^d/’
[4] 指定特征的分隔符,查询第一列
awk -F “:” ‘{print $1}’ /etc/passwd
[5]指定特定的分隔符,查询倒数第2列
awk -F “:” ‘{print $NF-1}’ /etc/passwd
[3]获取第12到31行的第一列的信息
awk -F “:” ‘{if(NR<31 && NR >12) print $1}’ /etc/passwd

四.其他常见命令
1.cat 主要有三大功能
[1] cat 文件名 一次显示整个文件
[2] cat > 文件名 从键盘创建一个文件
[3] cat file1 file2 > file 将几个文件合并为一个文件

2.more 可以按页显示文件内容,最基本的指令就是按空白键显示下一页,按b(back)键显示上一页,q退出more命令
[1] more +3 文件名 显示文件中从第3行起的内容
[2] ls -l | more -5 在所列文件目录详细信息,借助管道每次显示5行

3.less 可以随意浏览文件,在查看文件之前不会加载整个文件
[1]ps -aux | less -N ps查看进程信息并通过less分页
[2]less 文件名1 文件名2 查看多个文件

4.head 默认打印文件的开头10行
[1] head -n 20 文件名 显示文件的前20行
[2] head -c 20 文件名 显示文件的前20字节
[3] head -n -10 文件名 显示文件的最后10行

5.tail 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理,常用于查看日志文件
[1] -f 循环读取,常用于查看递增的日志文件
[2] tail -f 文件名

6.which 在PATH指定的路径中,搜索某个系统命令的位置,并返回第一个搜索结果
[1]which ls 查看ls命令是否存在,执行的是哪个

7.查看当前PATH配置
echo $PATH

8.whereis 用于程序名的搜索,只能搜索二进制文件,说明文件和源代码文件
[1] -b 定位可执行文件
[2] -s 定位源代码文件

9.find 在文件树中查找文件,并作出相应的处理
[1]find -atime -2 查找48小时内修改过的文件
[2]find ./ -name ‘*.log’ 在当前目录中查找以.log结尾的文件 .表示当前目录
[3]find /opt -perm 777 查找/opt目录下权限为777的文件
[4]find -size 1000c 查找等于1000字符的文件

10.chmod 用于改变系统文件或目录的访问权限,一种是包含字母和操作符表达式的文字设定法,另一种是包含数字的数字设定法
[1] chmod a+x 文件名 增加该文件的所有用户可执行权限
[2] chmod u=r 文件名 -c 撤销原来所有的权限,然后使拥有者具有可读权限,并输出处理信息(-c)
[3] chmod 751 文件名 -c 给文件所有者,所在组,其他用户分别分配权限

11.chown 命令 将指定文件的拥有者改为指定的用户或组
[1] chown -c 拥有者 : 群组 文件名 改变拥有者和群组,并显示改变信息
[2] chown -c : 群组 文件名 改变文件群组

12.df命令 显示磁盘空间的使用情况
[1] df -haT 以易读的方式列出所有文件系统及其类型

13.ps 用来查看当前运行的进程状态,一次性查看,如果需要动态连续结果则使用top
[1] ps -aux | grep python 查找python相关的进程

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Re:《文本处理 awk sed grep ”三剑客”》 ============================================================== 本人在教学和实战过程中发现,即便是有一定运维经验的人,可能已经能够搭建一定复杂度的Linux架构,但是在来来回回的具体操作中,还是体现出CLI(命令界面)功底不够扎实,甚至操作的非常‘拙’、处处露‘怯’。 对一个士兵来说,枪就是他的武器,对于一个程序员来说,各种library(工具库)就是他的武器;而对于Linux运维人员来说,无疑命令行工具CLI(命令界面)就是他们的武器;高手和小白之间的差距往往就体现在对于这些“武器”的掌握和熟练程度上。有时候一个参数就能够解决的事情,小白们可能要写一个复杂的Shell脚本才能搞定,这就是对CLI(命令界面)没有理解参悟透彻导致。 研磨每一个命令就是擦拭手中的作战武器,平时不保养不理解,等到作战的时候,一定不能够将手中的武器发挥到极致,所以我们要平心、静气和专注,甘坐冷板凳一段时间,才能练就一身非凡的内功! 本教程从实战出发,结合当下流行或最新的Linux(v6/7/8 版本)同时演示,将命令行结合到解决企业实战问题中来,体现出教学注重实战的务实精神,希望从事或未来从事运维的同学,能够认真仔细的学完Linux核心命令的整套课程。 本课程系列将逐步推出,看看我教学的进度和您学习的步伐,孰占鳌头! 注:关于教学环境搭建,可以参考本人其它课程系列,本教学中就不再赘述! 《参透 VMware 桌面级虚拟化》 《在虚拟机中安装模版机(包括应用软件等)》 《SecureCRT 连接 GNS3/Linux 的安全精密工具》---------------------------------------         

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值