10 Shell 应用技巧
10.1 bash应用技巧
命令补齐
命令补齐 允许用户输入文件名的起始的若干字母后,按 Tab 补齐文件名
历史命令
允许用户浏览先前输入的命令并重新调用它们。用history 命令可以显示命令列表,按方向键可以查找以前执行的命令,或输入 !+命令行号,来执行该命令。
快捷键
clear ( ctrl+l ) 清屏幕
ctrl+u 删除光标前的所有字母
10.2 命令别名
命令别名定义:
范例: alias copy=cp
alias xrm=“rm -r”
查看别名信息 : alias
删除别名 : unalias copy
10.3 输入/输出重定向
Shell 对每个进程预先定义的3个文件描述字(0,1,2).分别对应于:
0 (STDIN) 标准输入 键盘;
1 (STDOUT) 标准输出 屏幕;
2 (STDERR) 标准错误输出 屏幕;
范例: ls -l /tmp > tmp.msg %将 “ls -l /tmp ”的输出结果写入 tmp.msg 文件里 (输出重定向)
date >> tmp.msg %将 date的输出结果添加到 tmp.msg文件中 (输出重定向)
wall < /etc/motd % 将 /etc/motd 的文件内容广播出去。可以用于自动发送文件,先将内容写好文件里,到时将该文件自动广播出去即可,实现自动化 (输入重定向)
cp -R /usr /backup/usr.bak 2> /bak.err % 执行“cp -R /usr /backup/usr.bak”命令,如出错,这将错误结果写入 /bak.err中。
cp -R /usr /backup/usr.bak 2>> /bak.err % 执行“cp -R /usr /backup/usr.bak”命令,如出错,这将错误结果添加到 /bak.err中。
10.4 管道
管道:将一个命令的输出 传送给 另一个命令,作为另一个命令的输入。
使用方法:
命令1|命令2|命令3|......|命令n
范例: ls -l /etc | more
ls -l /etc | grep init | wc -l
wc -l (统计文件有多少行)
10.5 命令连接符
; 间隔的命令按顺序执行
&& 命令的执行存在逻辑与的关系,只有&&前面的命令执行成功,后面的命令才会执行。
|| 命令的执行存在逻辑或的关系,只有&&前面的命令执行失败,后面的命令才会执行。
10.6 命令替换符
命令替换: 将一个命令的输出作为另一个命令的参数。
格式: 命令1·命令2· 将命令2的输出作为命令1的操作对象。
范例: ls -l `which touch`