> CentOS > CentOS入门 >

CentOS下shell基本命令

1.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命令

 

 
输出格式: 
\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编程就算是基础,也是需要很多练习,而且小知识点更是多而杂,需要用心去学习



(责任编辑:IT)