条件判断:expression为文件操作
-b 是否块文件 -p 文件是否为一个命名管道
-c 是否字符文件 -r 文件是否可读
-d 是否一个目录 -s 文件的长度是否不为零
-e 文件是否存在 -S 是否为套接字文件
-f 是否普通文件 -x 文件是否可执行,则为真
-g 是否设置了文件的 SGID 位 -u 是否设置了文件的 SUID 位
-G 文件是否存在且归该组所有 -w 文件是否可写,则为真
-k 文件是否设置了的粘贴位 -t fd fd 是否是一个与终端相连的打开的文件描述符(fd 默认为 1)
-O 文件是否存在且归该用户所有
Shell变量的分类
v 环境变量
v 预定义变量
v 位置变量
v 用户自定义变量(本地变量)
常用环境变量echo $USER 表示当前用户的登录名称,值与whoami命令的结果一致
echo $UID 表示当前用户的用户名,该变量的值与”id-u”命令的结果一致
echo $SHEL 表示当前用户的登录Shell,值与”passwd”文件中的Shell字段一致
echo $HOME 表示当前用户的登录目录(宿主目录),值与”psaawd”文件中home字段一致
echo $PWD 表示用户当前所在的目录,值与pwd命令的结果一致
echo $PATH 表示当前用户的命令搜索路径,即用户不指定全路径名执行命令时,Shell程
序将在哪些目录以及按照何种顺序进行命令的搜索
echo $PS1 和echo $PS2
环境变量配置文件 /etc/bashrc 系统中用户登陆是默认加载的变量
/etc/profile
/home/~/.bash_profile 用户个人环境变量 为隐藏文件位于属主目录下
/home/~/.bashrc
用户自定义变量自定义变量的设置
$ DAY=Sunday 自定义变量 自定义的变量一定要大写
$ echo $DAY 自定义变量的查看与引用
$ export DAY 自定义变量的输出
$ unset DAY 自定义变量的清除
使用Tab键可以补全命令名 或文件名和文件夹名
使用上下方向键浏览已输入命令(历史命令)
$ history 历史命令的查看
属主目录/.bash_history 用户命令历史保存文件
$ history -c 命令历史的清除
$ alias 显示已定义的别名
$ alias lujing='pwd' 命令别名的定义 把pwd 定义为lujing
$ alias lujing 取消lujing的别名定义
$ unalias -a 取消所有定义的别名
系统别名定义配置文件在 /etc/profile.d/ 目录的中
输入输出文件 文件编号 默认设备
标准输入 0 键盘
标准输出 1 显示器
标准错误输出 2 显示器
输入重定向
$ wc < test 把test重定向到wc统计“字数 单词数 行数”
输出重定向
$ ls /etc/ > etcdir 将标准输出重定向到etcdir文件
$ ls /etc/sysconfig/ >> etcdir 将标准输出重定向追加到etcdir文件 >>代表追加
$ nocmd 2> errfile 将错误输出重定向到errfile文件
$ ls afile bfile &> errfile 将标准输出和错误输出重定向到errfile文件
管道 cat 123 | head -5 把第一个处理结果交给|以后的参数处理
shell脚本概念:类似与dos批处理、以文本方式保存、执行是不用编译、具有可执行(x)属性
/etc/init.d/ 下存在这很多系统服务的脚本
vi hello.sh 建立并编辑脚本 hello
输入 echo hi,magic 保存并用chmod 设置可执行权限
$ bash hello.sh 使用Shell命令程序执行脚本程序
$ . hello.sh 使用“.”命令执行脚本程序
$ ./hello.sh 直接执行具有执行属性的脚本程序 (必须具有可执行权限)
转自:http://blog.csdn.net/jamex/article/details/7565315