shell 脚本基础
shell :命令行解释器
硬件 内核 shell 用户
# cat /etc/shells
/bin/sh
/bin/bash默认shell (支持快捷键,历史命令,命令别名,兼容性好 管道 重定向
/sbin/nologin非交互式shell
/bin/tcsh
/bin/csh
/bin/ksh
vim /etc/profile 修改历史命令条数 搜 1000 修改 重启 source /etc/profile 不会产生新的shell进程
输出变量的值:echo $HISTSIZE
# echo $HISTSIZE
1000
history –w 覆盖存
别名 alias
系统级别 /etc/bashrc
用户级别~/.bashrc
alias grep=’grep --color’ 创建别名
unalias grep删除别名
重定向输出 >覆盖输出
>>追加输出
ping -c 3 1.1.1.1 > /dev/null
重定向输入<
<<
Mail –s “first” root < /etc/hosts
/dev/null黑洞设配
只重定向错误信息
2>覆盖输出
2>>追加输出
#cd /asb 2> /tmp/err.txt
# cat /tmp/err/txt
cat: /tmp/err/txt: 没有那个文件或目录
&>重定向正确和错误的输出信息
Shell里的特殊符号
;顺序执行命令 # ls;pwd 不管前面的命令成不成功都会执行后面的命令
&&逻辑与# ping -c 3 localhost &> /dev/null && echo "OK"
OK
前面的命令执行成功了才执行后面的命令
||逻辑或前面的命令执行失败了才执行后面的命令
# piong -c 1.1.1.1 &> /dev/null ||echo "pc not online ok"
pc not online ok
``
# echo `date`
2013年 09月 30日 星期一 19:30:57 CST
# echo `date +%F`
2013-09-30
# tar cvf all-`date +%F`.tar a*.txt –remove 备份文件时用系统时间给备份文件命名
| 管道符号把前面命令的输出作为后面命令的输入
二、shell 变量的应用