SHELL基础工具

简介:

[toc]

一、文本处理工具

1.grep行过滤工具

语法:
`grep '关键字' filename
options:

-i #不区分大小写
-v #取反
-w #按单词搜索
-o #打印匹配关键字
-c #统计匹配到的行数
-n #显示原行号
-r #层级遍历目录查找
-A #显示匹配行及后面多少行
-B #显示匹配行及前面多少行
-C #显示匹配行前后多少行
-l #只列出匹配的文件名
-L #列出不匹配的文件名
-e #使用正则匹配
-E #使用扩展正则匹配
^  #以关键字开头
$  #以关键字结尾
^$ #匹配空行
--color=auto #关键字加上颜色

别名设置颜色显示

#临时设置
alias grep='grep --color=auto'

#永久设置
#全局:
vim /etc/bashrc
alias grep='grep --color=auto'
#source /etc/bashrc

#局部:
vim ~/.bashrc
alias grep='grep --color=auto'
#source ~/.bashrc

2.cut列截取工具

语法:
cut <option> filename
options:

-c #以字符为单位进行分割
-d #自定义分隔符,默认为制表符\t
-f #与-d一起使用,指定截取哪个区域

例子:

cut -d: -f1 1.txt      #以冒号为分隔符,截取第一列内容
cut -d: -f1,3,5    1.txt  #以冒号为分隔符,截取1,3,5列内容
cut -c1-5 1.txt           #截取文件中每行的1-5个字符
cut -c5- 1.txt            #截取第五个字符后面所有字符

例题:
用cut或grep过滤出当前系统的运行级别"runlevel"

runlevel | cut -d '' -f2

runlevel | cut -d ' ' -f2

grep -v '^#' /etc/inittab |cut -d: -f2

grep "initdefault:$" /etc/inittab|cut -c4

3.sort工具

sort工具用于排列,它将文件的每一行作为一个单位,从首字符向后,依次按ascii码进行比较,最后按升序输出

options:

-u #去除重复行
-r #降序排列
-o #将排列结果输出到文件,类似重定向>
-n #以数字排序,默认是按字符排序
-t #分隔符
-k #第N列
-b #忽略前导空格
-R #随机排序,每次运行的结果均不同

例子:

#按照用户的uid进行升序排列
sort -n -t: -k3 /etc/passwd

#按照用户的uid进行降序排列
sort -rn -t: -k3 /etc/passwd

#按照用户的uid进行降序排列并将结果输出到1.txt中
sort -rn -t: -k3 /etc/passwd -o 1.txt

4.uniq工具-去除连续的重复行

options:

-i #忽略大小写
-c #统计重复行此时
-d #只显示重复行

例子:

uniq -c 1.txt  
      2 hello world
      1 HELLO world
      1 hello WORLD
uniq -ci 1.txt 
      4 hello world

5.tee工具--从标准输入读取并写入标准输出和文件

options:

-a #双向追加重定向

例子:

[test@lfs ~]$ echo hello world|tee 1.txt    
hello world
[test@lfs ~]$ cat 1.txt 
hello world
[test@lfs ~]$ echo hello world|tee -a 1.txt 
hello world
[test@lfs ~]$ cat 1.txt                     
hello world
hello world

6.diff工具-逐行比较文件的不同

\#diff描述两个文件不同的方式是告诉我们“怎样改变第一个文件之后,与第二个文件匹配”
语法:
diff <option> file1 file2
options:

-b #不检查空格
-B #不检查空白行
-i #不检查大小写
-w #忽略所有的空格
--normal #正常格式显示
-c #上下文格式显示
-u #合并格式显示

例子:
\#比较两个普通文件的异同

#文件准备
[test@lfs ~]$ cat file1
hello world
123456
123123
aaa
[test@lfs ~]$ cat file2
HELLO WOLRD
AAA
123123
12345
bbb

(1)正常显示

diff file1 file2
#diff(目的) file1 {如何改变才能和} file2 {匹配}

(2)上下文格式显示

#前两行主要列出需要比较的文件名和文件的时间戳
目录
相关文章
|
6月前
|
Linux Shell C语言
【Shell 命令集合 磁盘维护 】Linux 分区管理的工具 sfdisk命令使用教程
【Shell 命令集合 磁盘维护 】Linux 分区管理的工具 sfdisk命令使用教程
73 1
|
6月前
|
存储 Shell Linux
【Shell 命令集合 系统设置 】Linux 软件包管理工具 rpm命令 使用指南
【Shell 命令集合 系统设置 】Linux 软件包管理工具 rpm命令 使用指南
127 0
|
6月前
|
运维 网络协议 安全
【Shell 命令集合 网络通讯 】Linux 网络抓包工具 tcpdump命令 使用指南
【Shell 命令集合 网络通讯 】Linux 网络抓包工具 tcpdump命令 使用指南
181 0
|
6月前
|
缓存 Shell Linux
【Shell 命令集合 链接器(linker)工具】Linux ld命令 将目标文件与库链接为可执行文件或库文件
【Shell 命令集合 链接器(linker)工具】Linux ld命令 将目标文件与库链接为可执行文件或库文件
206 0
|
6月前
|
存储 算法 Shell
【Shell 命令集合 备份压缩 】⭐⭐Linux 压缩和归档工具 zip命令 使用指南
【Shell 命令集合 备份压缩 】⭐⭐Linux 压缩和归档工具 zip命令 使用指南
89 0
|
6月前
|
存储 算法 Shell
【Shell 命令集合 备份压缩 】⭐⭐⭐Linux 解压缩gz工具 gzip命令 使用指南
【Shell 命令集合 备份压缩 】⭐⭐⭐Linux 解压缩gz工具 gzip命令 使用指南
79 0
|
6月前
|
算法 Shell Linux
【Shell 命令集合 备份压缩 】⭐⭐Linux gz文件压缩解压工具 gunzip命令 使用指南
【Shell 命令集合 备份压缩 】⭐⭐Linux gz文件压缩解压工具 gunzip命令 使用指南
91 0
|
2月前
|
人工智能 监控 Shell
常用的 55 个 Linux Shell 脚本(包括基础案例、文件操作、实用工具、图形化、sed、gawk)
这篇文章提供了55个常用的Linux Shell脚本实例,涵盖基础案例、文件操作、实用工具、图形化界面及sed、gawk的使用。
467 2
|
3月前
|
Shell Linux 数据处理
Shell文本处理秘籍:掌握这11种工具,让数据处理如虎添翼!
在Linux信息环境,文本数据处理是一项基础而重要的技能。对于广大Linux用户而言,掌握Shell环境下的文本处理工具不仅能提高工作效率,还能在面对复杂数据时游刃有余。 本文将介绍,那些在文本处理中不可或缺的`11`种命令工具,让数据处理技能更上一层楼。
|
4月前
|
Shell Linux C语言