Shell 应用技巧
目录
1. 命令别名
2. 输入/输出重定向
3. 管道
4. 命令连接符
5. 命令替换符
1. 命令别名
alias 定义别名
命令别名: alias
命令别名定义:
范例: alias copy=cp
alias xrm="rm -r" 命令是一个组合,记得用引号括起来。
查看别名信息: alias
删除别名: unalias copy
2. 输入/输出重定向
同标准I/O一样,Shell对于每一个进程预先定义3个文件描述字(0、1、2)。分别对应于:
0 (STDIN) 标准输入;
1 (STDOUT) 标准输出;
2 (STDERR) 标准错误输出。
标准输入:指键盘输入
标准输出:屏幕输出
标准错误输出:一般也是屏幕输出
输入/输出重定向:指非标准状态,如直接写入文件。
输出重定向
范例: ls -l /tmp > /tmp.msg 命令执行结果,写入tmp.msg文件 ( > 或 0>)
date >> /tmp.msg 命令执行结果,追加到tmp.msg文件 ( >> 或 0>>)
输入重定向
范例: wall < /etc/motd 命令执行结果,从写好的motd文件中,重定向输入( < 或 1< )
错误输出重定向
范例: cp -R /usr /backup/usr.bak 2> /bak.error
命令执行结果,运行语句如果报错,错误信息写入bak.error文件中( 2> )
3. 管道
管道:将一个命令的输出传送给另一个命令,作为另一个命令的输入。
使用方法:
命令1|命令2|命令3……|命令n
范例:
# ls -l /etc | more
# ls -l /etc | grep init
# ls -l /etc | grep init | wc -l (wc -l 统计一个文件有多少行)
4. 命令连接符
;
用; 间隔的各命令按顺序依次执行
command1 ; command2 ; command3
&&
前后命令的执行存在逻辑与关系,只有&&前面的命令执行成功后,它后面的命令才被执行。
command1 && command2
成功 执行
失败 不执行
||
前后命令的执行存在逻辑或关系,只有||前面的命令执行失败后,它后面的命令才被执行。
范例:
# pwd ; ls ; date
# write Mary < /home/samlee/love.txt $$ rm /home/samlee/love.txt
# lskkk && pwd
# write Mary < /home/samlee/love.txt || mail Mary < /home/samlee/love.txt
# lskkk || pwd
5. 命令替换符
命令替换:将一个命令的输出作为另一个命令的参数。(通俗的讲就是,``中间的代码是可执行的)
格式为: 命令1 `命令2` (` 键盘数字1旁边的符号)
范例:
# ls -l `which touch`