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 变量的应用