Linux视频学习笔记(十六)--Shell编程(二)
声明:本系列文章是博主根据 “兄弟连新版Linux****”做的笔记和视频截图,只为学习和教学使用,不适用任何商业用途。
PS:文章基于Linux版本CentOS6.9,如果对Linux感兴趣,建议去看《细说Linux》,沈超老师和李明老师的教学风格我很喜欢:)
视频11.3 字符处理命令
1.排序命令sort
2.统计命令wc
视频11.4 条件判断
1.按文件类型判断
标蓝的为常用判断选项
注意:
命令 [ -e /root/install.log ] 中中括号[]与命令间必须有空格。
栗子:
使用test –e命令分别测试两个文件是否存在,使用echo $?查看最后一次命令执行的结果是否正确,0代表正确,非0代表不正确。(见预定义变量)
2.按文件权限进行判断
标蓝为常用权限判断
3.两个文件进行比较
例子:
4.两个整数进行比较
5.字符串的判断
注意:字串与符号之间存在空格!
6.多重条件判断
例子:
11.5 流程控制
视频11.5.1 if语句
1.单分支if条件语句
2.双分支if条件语句
注:
ntpdate asia.pool.ntp.org 同步系统时间,该命令需要联网才能执行。
例子:备份/etc目录,此目录为系统配置文件目录,理应每天备份
chmod 755 backup_etc.sh
判断一个服务有没有启动,有多种方法,比如判断Apache服务是否启动:
- 命令ps aux|grep httpd
但是这种方式并不准确,有可能服务启动了,但是不能正常使用。
- 命令netstat –tlun查看80端口有没有启用,如果有,说明Apache服务已经启动:
但是同样的用来判断服务是否正常启动并不准确:
- 命令nmap [选项] ip是一个远程扫描命令,用它来连接本机ip如果返回open状态,则说明Apache是正常启动状态,这种方法比较准确:
首次需要安装此命令:yum –y install nmap
3.多分支if条件句
例子:
执行结果:
视频11.5.2 case语句
例子:vi case_test.sh
read –p “info” –t n 命令的-t选项是输入超时时间
结果:
视频11.5.3 for循环
1.语法一
例子:
结果:
例子:批量解压缩
结果:
2.语法二
例子1:
例子2:
sed ‘s/[0-9]//g’过滤数字,可以改为以数字开头(^)以数字结尾($):???可以吗
sed ‘s/^[0-9]*$//g’
echo “a09fd”|sed ‘s/[0-9]//g’ 是获取去除数字的字串
echo “str”|passwd –stdin username 命令是从标准输入中读取密码,但是有些Linux版本不支持—stdin选项,如debian、suse,而且不能在输入字符串中包含特殊字符如单引号双引号同时出现的情况。
详见https://blog.****.net/xuwuhao/article/details/46618913 ,批量更改密码的几种方式
例子:
结果:
视频11.5.4 while循环与until循环
- while循环
例子:
- until循环
例子: