Linux视频学习笔记(十六)--Shell编程(二)

声明:本系列文章是博主根据 “兄弟连新版Linux****”做的笔记和视频截图,只为学习和教学使用,不适用任何商业用途。

PS:文章基于Linux版本CentOS6.9,如果对Linux感兴趣,建议去看《细说Linux》,沈超老师和李明老师的教学风格我很喜欢:)

 

视频11.3 字符处理命令

1.排序命令sort

Linux视频学习笔记(十六)--Shell编程(二)

 

Linux视频学习笔记(十六)--Shell编程(二)

 

Linux视频学习笔记(十六)--Shell编程(二)

 

2.统计命令wc

Linux视频学习笔记(十六)--Shell编程(二)

 

视频11.4 条件判断

1.按文件类型判断

Linux视频学习笔记(十六)--Shell编程(二)

标蓝的为常用判断选项

 

Linux视频学习笔记(十六)--Shell编程(二)

注意:

        命令 [ -e /root/install.log ] 中中括号[]与命令间必须有空格。

 

栗子:

        使用test –e命令分别测试两个文件是否存在,使用echo $?查看最后一次命令执行的结果是否正确,0代表正确,非0代表不正确。(见预定义变量)

Linux视频学习笔记(十六)--Shell编程(二)

Linux视频学习笔记(十六)--Shell编程(二)

 

Linux视频学习笔记(十六)--Shell编程(二)

 

2.按文件权限进行判断

Linux视频学习笔记(十六)--Shell编程(二)

标蓝为常用权限判断

 

Linux视频学习笔记(十六)--Shell编程(二)

 

3.两个文件进行比较

Linux视频学习笔记(十六)--Shell编程(二)

 

例子:

Linux视频学习笔记(十六)--Shell编程(二)

 

4.两个整数进行比较

Linux视频学习笔记(十六)--Shell编程(二)

 

5.字符串的判断

Linux视频学习笔记(十六)--Shell编程(二)

 

Linux视频学习笔记(十六)--Shell编程(二)

 

注意:字串与符号之间存在空格!

Linux视频学习笔记(十六)--Shell编程(二)

 

6.多重条件判断

Linux视频学习笔记(十六)--Shell编程(二)

 

例子:

Linux视频学习笔记(十六)--Shell编程(二)

11.5 流程控制

视频11.5.1 if语句

1.单分支if条件语句

Linux视频学习笔记(十六)--Shell编程(二)

 

Linux视频学习笔记(十六)--Shell编程(二)

 

Linux视频学习笔记(十六)--Shell编程(二)

 

2.双分支if条件语句

Linux视频学习笔记(十六)--Shell编程(二)

 

 

Linux视频学习笔记(十六)--Shell编程(二)

Linux视频学习笔记(十六)--Shell编程(二)

 

注:

        ntpdate asia.pool.ntp.org 同步系统时间,该命令需要联网才能执行。

 

例子:备份/etc目录,此目录为系统配置文件目录,理应每天备份

Linux视频学习笔记(十六)--Shell编程(二)

chmod 755 backup_etc.sh

Linux视频学习笔记(十六)--Shell编程(二)

Linux视频学习笔记(十六)--Shell编程(二)

 

 

Linux视频学习笔记(十六)--Shell编程(二)

 

判断一个服务有没有启动,有多种方法,比如判断Apache服务是否启动:

  1. 命令ps aux|grep httpd

但是这种方式并不准确,有可能服务启动了,但是不能正常使用。

Linux视频学习笔记(十六)--Shell编程(二)

 

  1. 命令netstat –tlun查看80端口有没有启用,如果有,说明Apache服务已经启动:

但是同样的用来判断服务是否正常启动并不准确:

Linux视频学习笔记(十六)--Shell编程(二)

 

  1. 命令nmap [选项] ip是一个远程扫描命令,用它来连接本机ip如果返回open状态,则说明Apache是正常启动状态,这种方法比较准确:

首次需要安装此命令:yum –y install nmap

Linux视频学习笔记(十六)--Shell编程(二)

 

Linux视频学习笔记(十六)--Shell编程(二)

Linux视频学习笔记(十六)--Shell编程(二)

Linux视频学习笔记(十六)--Shell编程(二)

 

3.多分支if条件句

Linux视频学习笔记(十六)--Shell编程(二)

 

Linux视频学习笔记(十六)--Shell编程(二)

Linux视频学习笔记(十六)--Shell编程(二)

 

例子:

Linux视频学习笔记(十六)--Shell编程(二)

 

执行结果:

Linux视频学习笔记(十六)--Shell编程(二)

 

视频11.5.2 case语句

Linux视频学习笔记(十六)--Shell编程(二)

 

Linux视频学习笔记(十六)--Shell编程(二)

 

Linux视频学习笔记(十六)--Shell编程(二)

 

例子:vi case_test.sh

read –p “info” –t n 命令的-t选项是输入超时时间

Linux视频学习笔记(十六)--Shell编程(二)

结果:

Linux视频学习笔记(十六)--Shell编程(二)

 

 

Linux视频学习笔记(十六)--Shell编程(二)

 

视频11.5.3 for循环

1.语法一

Linux视频学习笔记(十六)--Shell编程(二)

 

例子:

Linux视频学习笔记(十六)--Shell编程(二)

 

结果:

Linux视频学习笔记(十六)--Shell编程(二)

 

例子:批量解压缩

Linux视频学习笔记(十六)--Shell编程(二)

Linux视频学习笔记(十六)--Shell编程(二)

结果:

Linux视频学习笔记(十六)--Shell编程(二)

 

2.语法二

Linux视频学习笔记(十六)--Shell编程(二)

 

例子1:

Linux视频学习笔记(十六)--Shell编程(二)

 

例子2:

Linux视频学习笔记(十六)--Shell编程(二)

 

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 ,批量更改密码的几种方式

 

例子:

Linux视频学习笔记(十六)--Shell编程(二)

结果:

Linux视频学习笔记(十六)--Shell编程(二)

Linux视频学习笔记(十六)--Shell编程(二)

视频11.5.4 while循环与until循环

  1. while循环

Linux视频学习笔记(十六)--Shell编程(二)

 

Linux视频学习笔记(十六)--Shell编程(二)

例子:

Linux视频学习笔记(十六)--Shell编程(二)

 

Linux视频学习笔记(十六)--Shell编程(二)

Linux视频学习笔记(十六)--Shell编程(二)

 

  1. until循环

Linux视频学习笔记(十六)--Shell编程(二)

 

例子:

Linux视频学习笔记(十六)--Shell编程(二)

Linux视频学习笔记(十六)--Shell编程(二)