Linux shell

Posted _在远方

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux shell相关的知识,希望对你有一定的参考价值。

1.免交互处理

在免交互输出处理中可以使用重定向将输出内容输入到黑洞文件/dev/null中。

[root@localhost ~]# echo password | passwd --stdin user &> /dev/null

 

 

 

2.I/O交互
标准输入:从此设备接收用户输入数据
标准输出:通过此设备向用户报告正常的命令输出结果
标准错误输出:通过此设备向用户报告命令执行过程中出现的报错信息

 

 

 

3.顺序分隔
使用分号依次执行,只有先后顺序,没有逻辑关系。

[root@localhost ~]# mkdir /xxx ; cd /xxx

逻辑“与”分隔
命令1&&命令2&&命令3&&命令4,逻辑关系为且(and),期望所有命令执行成功,一旦某个命令执行失败,不执行后续命令,如下:

[root@localhost ~]# ls -l && cat 1 && cat anaconda-ks.cfg | wc -l
total 4
-rw-------. 1 root root 1805 May 10 17:59 anaconda-ks.cfg
cat: 1: No such file or directory

逻辑“或”分隔
命令1||命令2||命令3||命令4,逻辑关系为或(or),任何一条命令执行成功都符合期望,且只在前面命令执行失败时执行后续命令。

[root@localhost ~]# cd aaa || mkdir aaa || ls -l aaa
-bash: cd: aaa: No such file or directory

组合逻辑分隔
(1)与命令前的命令执行失败,与命令后的命令忽略,执行或命令后的命令。

[root@localhost ~]# ls
anaconda-ks.cfg
[root@localhost ~]# cd aaa && mkdir aaa || pwd
-bash: cd: aaa: No such file or directory
/root
[root@localhost ~]# ls
anaconda-ks.cfg

(2)与命令前的命令执行成功,执行与命令后的命令,忽略或命令后的命令。

 

[root@localhost ~]# ls
aaa  anaconda-ks.cfg
[root@localhost ~]# cd aaa && mkdir a || ls
[root@localhost aaa]# ls
a

(3)或命令前的命令执行失败,执行或命令后的命令和与命令后的命令。

[root@localhost ~]# ls
anaconda-ks.cfg
[root@localhost ~]# cd aaa || mkdir aaa && ls
-bash: cd: aaa: No such file or directory
aaa  anaconda-ks.cfg

(4)或命令前的命令执行成功,忽略或命令后的命令,执行与命令后的命令。

[root@localhost ~]# ls
anaconda-ks.cfg
[root@localhost ~]# mkdir aaa || cd aaa && pwd
/root
[root@localhost ~]# ls
aaa  anaconda-ks.cfg

 

 

以上是关于Linux shell的主要内容,如果未能解决你的问题,请参考以下文章

20155201 李卓雯 《网络对抗技术》实验一 逆向及Bof基础

逆向及Bof基础实践

Linux shell中运行命令后加上字符“&”的作用

shell学习四十九天----进程建立

用于确保在任何给定时间仅运行一个 shell 脚本的 shell 片段 [重复]

shell 脚本 片段