第一课
学习Bash需要:
1. 熟练掌握vim/vi,搞清楚.vimrc配置。
2. 了解100多个命令基础。
3. 知道基础和高级网络服务,如:nfs / rsync / inotify / lanmp / sersync / ssh key批量分发管理。
第二课
1. 什么是Shell?
Shell是一个命令解释器,它在操作系统的最外层,负责直接与用户对话,把用户的输入解释给操作系统,并处理各种各样的操作系统的输出结果,输出到屏幕返回给用户。这种对话方式可以是交互的方式(从键盘输入命令,可以立即得到Shell的回应),或非交互(脚本的方式)。
2. 什么是Shell脚本?
当命令或语句不在命令行执行,而是通过一个程序文件执行时,该程序就被称为Shell脚本或Shell程序,Shell程序类似DOS系统下的批处理程序(*.bat)。用户可以在Shell脚本中敲入一系列的命令或命令语句。这些命令、变量和流程控制语句等有机的结合起来就形成了一个功能强大的Shell脚本。
3. 一个简单的清空日志的脚本:(该日志文件是被保留的)
====================================================================
#!/bin/bash
cd /var/log
car /dev/null > messages
echo "Logs are cleaned up."
====================================================================
提示:/var/log/messages是系统的日志文件,很重要。
这个脚本有两个缺点:
A. 没有root,该脚本无法执行,不友好。
B. 没有流程控制,就是没有逻辑性。
如下是一个改良版的脚本:
====================================================================
#!/bin/bash
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 "Can't change to necessary directory." >&2
exit 1
}
cat /dev/null > messages
echo "Logs are cleaned up."
exit 0
# 退出之前返回0表示成功,返回1表示失败。
====================================================================
4. make && make install # make执行成功,然后执行make install
make || make install #make执行失败,然后执行make install
5. 清空日志的三种方法:
A. echo " " > test.log
B. > a.log
c. cat /dev/null > test.log
第三课
1. Bash Shell是一种弱语言,不会要求严格的语法,不需要预定义才可赋值。
2. Php是针对于Web设计的语言;Perl强于Bash Shell,但是语法复杂,不容易读,团队协作因此就差了;Python最近很火,很强大,值得学习。
3. Shell Bash的优点在于处理OS底层业务,有大量的Linux命令可以使用,如强大的grep / awk / sed,对于一键安装和报警脚本的支持较好;Php对于Web的支持很好;Perl和Python适用于制作运维工具或者Web开发。
4. 查看当前的SHELL:
A. echo $SHELL
B. grep root /etc/passwd #查看root使用什么Shell
第四课
1. Bash Shell的第一行开头总是#!/bin/bash。
2. tac就是和cat差不多,tac是倒过来显示,cat是正序显示。
3. sh其实就是bash,只不过是一个软链接。
4. 在Centos和RHEL中的脚本,不加开头,照样会以Bash Shell形式执行因为它们的默认Shell就是Bash。所以对于一个脚本,不写开头就要写解释器,如python file;如果写了开头开头,就可以./filename执行了。
5. 记住要多写注释,这样不会容易遗忘这个脚本的具体步骤和作用。
第五课
阅读(2669) | 评论(0) | 转发(0) |