shell基础(一)

shell基础(一)

* 代表零个或者多个任意字符

代表一个任意字符

# 注释符号,注释说明的意思,即#后面的内容Linux忽略掉,或者是在shell脚本中作解释符号、解释说明用,用在需要说明注释的文字行首

\ 脱意字符,将后面的特殊符号(例如*)还原为普通字符,例子如下:

#ls -d test\*

无法访问test*:没有那个文件或目录

| 管道符,将前面的命令的结果丢给符号后面的命令。

需要注意的是:后面的命令,并非所有命令都可以,一般针对文档操作的命令比较常用,例如

cat,less,head,tail,grep,cut,sort,wc,uniq,tee,tr,split,sed,awk等等。

其中grep,sed,awk 为正则表达式必须掌握的工具。

例子:#cat testb.txt |wc -l

0

wc -l 用来计算一个文档有多少行。

$ 特殊符号

用于变量前面的标识符号,$PATH $HOME

和!一起使用,#!$ 上条命令中最后一个参数,就是上条命令中最后出现的东西如路径、文件名等等。

特殊符号

可以在一行运行多条命令

#ls -d test*; touch test111; ls-d test*

test1 test2

test1 test2 test111

~ 特殊符号

用户的家目录,如果是root则是/root,普通用户/home/username

特殊符号

把命令放到后台执行,需要加上这个符号。通常用于命令运行时间比较长的情况。

#sleep 30 &

[1] 3260

#jobs

[1]+ running sleep 30 &

> >> 2> 2>> < 重定向符号

> 重定向

>> 追加重定向

2> 错误重定向

2>> 错误追加重定向

< 反向重定向

反向重定向,会将右边的文档的内容,重定向给左边的这个命令,比如 # wc -l < 1.txt

当运行一条命令报错时,报错信息会输入到当前屏幕,如果想重定向到一个文本里,则要用2>和2>>。

#ls aaa

没有那个文件或目录

#ls aaa 2>/tmp/error

#cat /tmp/error

没有那个文件或目录

[ ] 中括号

中间为字符组合,代表中间字符中的任意一个。括号内只能是完全匹配,不可以使用*

#ls -d test*

test1 test2 test3 testa testb testc

#ls -d test[1-3]

test1 test2 test3

#ls -d test[1a3]

test1 test3 testa

#ls -d test[0-9]

test1 test2 test3

#ls -d test[0-9a-z]

test1 test2 test3 testa testb testc




     本文转自品鉴初心51CTO博客,原文链接:http://blog.51cto.com/wutengfei/1908043,如需转载请自行联系原作者




上一篇:05.Beetl标签函数以及定界符、占位符介绍---《Beetl视频课程》


下一篇:当阿里云工程师回到了家乡......