shell脚本学习笔记1-常用命令
一、shell脚本是什么?
通过shell语言将完成一个任务的所有代码写入一个文件,并给予执行权限,这个文件就叫shell脚本。
二、shell脚本常用命令
1、grep:行检索命令
grep options 'keys' filename
OPTIONS:这里列举几个常用的
-i:不区分大小写
-v:查找不包括的内容,即反向选择
-w:按单词搜索(完全匹配)
-n:显示行号
-A:显示匹配行及后面指定行数 -A 5
-B:显示匹配行及前面指定行数
-r:递归查找
-e:使用正则表达式
^key:以关键字开头(一个字符,多个字符需要括号括起来)
key$:以关键字结尾
几个例子:
grep -i root passwd 忽略大小写匹配包含root的行
grep -w root passwd 精确匹配root的行
grep -i ^root passwd 忽略大小写匹配以root开头的行
2、cut:数据截取
命令选项:
-c:以字符为单位进行分割
-d:自定义分隔符,默认为\t
-f:与-d一起使用,指定显示那个区域(按列分)
例子:
以“:”为分隔符,显示第一列


3、tr:字符替换、删除
替换:将输入中的string1替换为string2
command | tr 'string1' 'string2'
tr 'string1' 'string2' < filename
删除:删除输入中的string1
tr options 'string1' < filename(<为将文件中的内容作为tr命令的输入)
OPTIONS:
-d:删除所有输入中的string1
-s:删除所有重复出现的字符,只保留第一个;即将重复出现的字符串压缩为一个字符串
例子:
删除:tr -d :/ < passwd

替换:tr :/ @ < passwd

4、sort:排序
将文件的每一行作为一个单位,从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。
语法:sort options filename
OPTIONS:
-u:去除重复行
-r:降序排列,默认是升序
-o:将排序结果输出到文件
-n:以数字排序,默认是字符
-t:分隔符,指定分隔符后指配合-k指定第几列
-k:第N列,按第N列进行排序
-R:随机排序
-b:忽略前导空格
例子:
sort -n -t: -k3 -r passwd 按照用户的uid进行降序排列

5、uniq:去除连续的重复行(去重前先使用sort进行排序)
语法:
uniq options filename
OPTIONS:
-i:忽略大小写
-c:统计重复次数
-d:只显示重复行
6、tee:双向输出
语法:
command | tee options filename
OPTIONS:
-a:追加输入
例子:
echo hello,world | tee -a file1 将echo打印的内容追加输入到file1文件中

7、paste:合并文件行输出到屏幕,不会改动源文件
OPTIONS:
-d:自定义分隔符
-s:将每个文件中的内容按照一行输出,文件中的行与行已TAB间隔
例子:
paste 1.txt 2.txt

paste -d @ 2.txt 1.txt

8、xargs:上一个命令的输出作为下一个命令的命令行参数
语法:
''[somecommand]|[filename]'' |xargs -item command

视频教程:https://www.bilibili.com/video/BV1j541157Sr?p=36
视频中的笔记:https://www.zutuanxue.com/home/4/6_8

浙公网安备 33010602011771号