CentOS中文网

CentOS下shell基本命令

CentOS中文网 https://www.centos.net.cn 2016-06-28 00:56 出处:网络 编辑:@iCMS
1.shell的正则表达式: 举几个例子,方便大家理解: grep“a*”test.txt 即匹配所有内容,包括空白行

1.shell的正则表达式:

CentOS下shell基本命令


举几个例子,方便大家理解:


grep “a*” test.txt


即匹配所有内容,包括空白行


grep “aa*” test.txt


即匹配至少包含有一个a的行


grep “s.*d” test.txt


匹配在s和d字母之间的任意字符


grep “^[^a-z]” test.txt


匹配不用小写字母开头的行

2.cut “切”命令

名字我自己取的,但是很形象,这是一个截取的命令


cut 选项 文件名( 不识别 空格 )


-f 列号提取第几行


-d 分隔符按指定分割符分割列


如: cut -d “:” -f 1 /etc/passwd

3.print命令

CentOS下shell基本命令


输出格式:


a:输出警告声音


b:输出退格键,也就是backspace键


f:清除屏幕


n:换行


r:回车,也就是enter键


t:水平输出退格键,也就是tab键


v:垂直输出退格键,也就是tab键


!多个输出类型时,要用单引号或者双引号括起来,才可以正常输出


!要在print输出命令,要用$()括起来


其实print/printf远不止此,笔者也正在学习

4.awk 符截取命令

awk ‘条件1 {动作1} 条件2 {动作2}……’ 文件名


条件可以加一些判断语句


美元符由于编辑时有问题,所以只能打文字


例子:df -h | awk ‘print 美元符1 “t” 美元符3 ‘


上面这个例子中,美元符1美元符3是指截取第几字段,t为制表符


BEGIN命令 先执行


FS内置变量 像cut -d一样,可提取分隔符


例子:awd ‘BEGIN {FS= “:”} {printf $2 “t”} ’ 文件名


END命令 后执行,和BEGIN一样,不一定放最后,位置不重要

5.sed 流编辑器

sed 选项 ‘动作’ 文件名


选项:


-n只把sed处理的行输出


-e允许对输出的数据应用多条sed命令编辑


-i将sed修改结果直接修改文件(不推荐)


动作:ps. 是多行操作


a :追加 sed ‘2a hello’ test.txt (2a 是第二行之后加的意思)


c :行替换 sed ‘2c hello’ test.txt


i :插入 sed ‘2i hello’ test.txt (2i 是第二行之前加的意思)


d删除 sed ‘2,4d’ test.txt


p打印 sed (-n) ‘2p’ test.txt


s字符替换 格式: (数字)s/旧字串/新字串/g


sed -e ‘ s/test//g ; s/tset//g ’ test.txt


-e 为多条数据 s为全文执行,因为没写数字 //g替换为空

要是windows脚本移动到linux里,先用cat -A 文件名,看下是否为dos格式,若为dos格式,则用dos2unix + 文件名转换成linux格式,若是没有这个命令,就用yum装一下吧,当然了也有unix2dos

shell编程就算是基础,也是需要很多练习,而且小知识点更是多而杂,需要用心去学习

0

精彩评论

暂无评论...
验证码 换一张
取 消