1、shell基础
显示当前使用的那种shell
#echo $SHELL
转换使用别的shell,bash是linux默认使用的shell
#shell-name
2、shell特殊字符
2.1、通配符
* | 代表任何字符,长度是0或多个 |
? | 代表任何单个字符 |
[] | 代表指定的一个字符范围 |
例:
[ab-dm]* | 所有以a、b、c、d、m开头的字符串 |
[ab-dm]? | 所有以a、b、c、d、m开头且后面只跟一个字符的字符串 |
注:连接符“-”仅在方括号内有效,表示字符范围,在方括号外为普通字符。*和?只在方括号外是通配符,在方括号内是普通字符。
2.2、引号
2.2.1、单引号
在单引号扩起来的字符都做为普通字符出现
例:
#string='$PATH'
#echo $string
#$PATH
2.2.2、双引号
双引号括起来的字符,除$、/和'这3个字符仍然是特殊字符并保留其特殊功能外,其余字符仍做为普通字符对待。
2.2.3、反引号`
反引号括起来的字符串被shell解释为命令行。
2.3、输入重定向
#wc
wc等待用户告诉它统计什么,这是shell就像死机一样,从键盘键入的所有文字都会出现在屏幕上,并没有什么结果,直到按下,wc才将命令结果写在屏幕上。
#wc /etc/passwd
统计/etc/passwd文档中的行数,单词数和字符数。
注:看看执行 #wc < /etc/passwd是什么结果
#wc << eof
wc等待用户输入,直到用户输入eof 时结束,统计用户输入的行数,单词数和字符数。
2.4、输出重定向
#ls > directory.out
如果>符号后面指定的文档已经存在,则这个文档将被重写。
#ls >> directory.out
如果>>符号后面指定的文档已经存在,则在这个文档后面追加内容。
注释:
可以使用2>(或者2>>)对错误输出设备重定向。例:#ls /usr/tmp 2> err.file
可以使用&>将标准输出和错误输出同时送到同一文档中。
2.5、管道
将一个程序或命令的输出作为另一个程序或命令的输入。使用”|”来建立一个管道。
例:
#ls /usr/bin | wc –w
#cat err.file | grep "error" | wc -l
2.6、命令替换
将一个命令的输出做为另外一个命令的参数
#cd `pwd`
2.7、前台和后台
一个新产生的进程可以通过命令后面的符号“;”和“&”来区别以前台和后台的方式来执行。
#command &
产生一个后台的进程,此进程在后台运行的同时,可以输入其它的命令。