第一课
- 什么是shell
Shell是一个命令解释器,它在操作系统的最外层,负责直接与用户对话,把用户的输入解释给操作系统,并处理各种各样的操作系统的输出结果,输出到屏幕返回给用户。
2.示例 清除/var/log下的messages日志文件的简单命令脚本
#把所有命令放在一个文件里堆积起来就形成了脚本,下面就是一个最简单的命令堆积形成的shell脚本。
#要使用root身份来运行这个脚本。
#清除日志脚本,版本1.
cd /var/log
cat /dev/null > messages
echo “Logs cleaned up.”
#提示:/var/log/messages是系统的日志文件,很重要,不要随便清空。
这个脚本有什么缺陷?
(1)不是root执行不了。
(2)没有流程控制,没有逻辑。
清除/var/log下的messages日志文件的简单命令脚本,版本2:
#!/bin/bash
#清除日志脚本,版本2
LOG_DIR=/var/log
ROOT_UID=0 # $UID为0的时候,用户才具有root用户权限。
# 要使用root用户来运行。
If [“$UID” –ne “$ROOT_UID”]
Then
echo “Must be root to run this script.”
exit 1
fi
cd $LOG_DIR || {
# 只有一个命令时,用花括号包起来就不会执行花括号中的命令,两条以上的命令才用花括号包起来。
echo “Cannot change to necessary directory.” >&2
exit 1
}
cat /dev/null > messages.
echo “Logs cleaned up.”
exit 0
# 退出之前返回0 表示成功,返回1 表示失败。
知识点:
(1)命令用&& 相连,表示第一个命令执行成功后执行第二个命令。
(2)命令用||相连,表示第一个命令执行不成功才执行第二个命令,若第一个命令执行成功则不执行第二个命令。
例如:make && make install
3.清空日志的3中方法(应用于保留文件清空内容的场合)
(1)# echo >test.log
(2)#>test.log
(3)#cat /dev/null > test.log