一、shell
1.1 什么是shell
● 用户与Linux的接口
● 命令解释器
● 支持多用户
● 支持复杂的编程语言
● Shell有很多种,如:csh,tcsh,pdksh,ash,sash,zsh,bash等。Linux的缺省Shell为bash(Bourne Again Shell)。
Shell是用户和操作系统之间最主要接口。通过Shell,可以同时在后台运行多个应用程序,并且在把需要与用户交互的程序放在前台运行。
通过在多条命令的序列中使用变量和流程控制,Shell可以作为一名复杂的编程语言。
1.2 转义字符和通配字符
● 转义字符(metacharacters)指的是在Shell中有特殊含义的字符。
例如:< > | ; ! ? * [ ] $ / " ' ` ~ ( ) { } ^
#ls file[1-10].c
#count=`ls –l | grep '^d'| wc –l`
● 通配字符(wildcards)是转义字符的子集,用来查找匹配文件名
例如:? * [] [-] [!]
● 使用<Tab>键,可以自动补齐。
通配一个字符:"?"
通配多个字符:"*"
1.3 输入输出重定向
● 系统定义三个标准文件:标准输入(stdin)、标准输出(stdout)、标准错误输入(stderr)
● 管道符:"|",将前一个命令的输出转成下一个命令的输入。
● 过滤器(filters):用来接收标准输入,经过一定的转化,再写到标准输出。所以,过滤器一般放在管道符中间。
每个程序起动时,就有三个文件描述:STDIN (0),STDOUT(1),STDERR(2)。用"<"改变输入,用">"改变输出,用"2>"改变错误输出,用"》"来追加到已有的文件中。
常用的过滤器如下:expand,sed,awk,fmt,tac,tr,grep,nl,pr.
多条命令可以输入到一行中,并用";"字符分隔。在一行命令后加"/"表示另起一行继续输入,下一行的提示符变为">"
printf("/t");
1.4 Shell变量
● Shell变量(Variables)是程序用来保存数据用的。
● Shell特殊变量:系统定义了一些特殊的变量。如$HOME等。使用set命令查看当时系统中定义的变量。
系统定义的特殊变量有:$TERM(当前终端类型),$PATH(命令的搜索路径),$MANPATH(手册页存放的目录),$HOME(用户主目录),$LANG(当前使用语言),$PS1,$PS2(命令提示符),$SHELL(当前Shell名)。
在命令行上打入:变量名=变量值,可以定义变量。使用 echo $变量名查看变量值。使用 unset 取消对变量的定义。
#hello="123"
单引号表示忽略其中所有的转义字符,双引号表示忽略其中除了 $ ` / 以外的其他的转义字符。反斜线(/)表示忽略下一个转义字符。
多条命令可以输入到一行中,并用";"字符分隔。在一行命令后加"/"表示另起一行继续输入,下一行的提示符变为">"
● Shell系统变量
(责任编辑:武林网)
新闻热点
疑难解答