shell脚本编写day03

一、命令组合运用

        1、顺序分割

        分号:命令1;命令2;命令3;

        各个命令依次执行,只有先后,没有逻辑

eg:

systemctl stop firewalld ; systemctl start firewalld

 [root@localhost ~]# systemctl iptables stop ; systemctl iptables start
[root@localhost ~]# 

        2、逻辑“与” 分隔

        使用&&

        命令1 && 命令2 &&命令3

        逻辑关系为与,期望所有的命令都能执行成功

        一旦执行失败,后续命令将不再执行

systemctl start firewall && systemctl stop firewalld

[root@localhost ~]# systemctl start firewall && systemctl stop firewalld
Failed to start firewall.service: Unit firewall.service not found.
[root@localhost ~]# 
 

         3、逻辑“或”分割

        使用 ||

        命令1 || 命令2 || 命令3

        逻辑关系或,任何一条命令执行成功都复核期望

        只有前一条命令执行失败时,才会执行后一条命令

        eg:使用ip命令检查用户是否存在,如果存在该用户,就回显用户标记,不存在则创建该用户

id first || useradd first

[root@localhost ~]#  id first || useradd first
uid=1000(first) gid=1000(first) groups=1000(first)
[root@localhost ~]#

        4、|| 、&& 的组合应用

          查询指定路径下是否有指定文件,有,则输出YES,无则输出NO

cat /root/qwe 2> /dev/null && echo YES || echo NO

 [root@localhost ~]# cat /root/qwe 2> /dev/null && echo YES || echo NO
NO
[root@localhost ~]#

        5、管道操作

        管道的作用:将命令的屏幕输出交给另一端的命令处理

        命令1 | 命令2 | 命令3

        后续命令要能正确处理传来的文本,否则无意义

        ip addr | less 分页查看 ip addr 输出的结果

       

计算  /etc目录西包含多少个普通文件

        命令1 :使用find 命令在 /etc目录下递归查找。列出所有普通文件

        命令2:将查询结果通过管道符交给wc命令统计行数

        find /etc -type f | wc -l

[root@localhost ~]# find /etc -type f | wc -l
401
[root@localhost ~]# 

统计正在处于监听状态的tcp端口数

        1、使用netstat 命令列出如有TCP的链接信息

        2、将查找的数据通过管道符交给grep命令过滤,计算出状态为LISTEN的连接数

[root@localhost ~]# netstat -anp | grep -c "LISTEN"
10
 

二、标准的输入和输出

        对于linux,unix来说,一切皆是文件

        linux的I/O交互

        标准输入:从该设备中接受用户输入的数据

        标准输出:通过该设备向用户回显输出正常的结果

        标准错误::通过该设备报告执行中的错误信息

类型       设备文件 文件描述告默认设备
标准输入/dev/stdin0键盘
标准输出/dev/stdout1显示器
标准错误/dev/stderr2显示器

三、重定向

根据I/O方向和类别区分
类型操作符号功能
重定向输入<将文本输入来源有键盘指定为文件
重定向输出>将命令行的正确执行结果输出保存到文件,会覆盖源文件内容
>>将命令的输出结果追加到指定文件的末尾,不会覆盖源文件内容
重定向错误       2>将命令执行的错误信息保存到指定文件,会覆盖源文件       
2>>      将命令执行的错误信息追加保存到指定文件,不会覆盖源文件
混合重定向       &>

相当于 >和2>会覆盖源文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值