Linux教程之文件描述符、重定向、管道符、tee命令(2)

    改用重定向输入将可以忽略交互式的过程.而自动完成密码设置  (结合—stdin 选项来识别标准的输入)

   使用非交互式的去执行设置密码:

 

Linux教程之文件描述符、重定向、管道符、tee命令

 

[root@xiaolyu ~]# touch passwd.txt
[root@xiaolyu ~]# vim passwd.txt
[root@xiaolyu ~]# useradd zhangsan
useradd: user 'zhangsan' already exists
[root@xiaolyu ~]# useradd lisi
[root@xiaolyu ~]# passwd --stdin lisi < passwd.txt

Changing password for user lisi.

passwd: all authentication tokens updated successfully.

  重定向输入就是通过文件中的内容作为输入的数据

错误重定向:

   将命令执行过程中出现的错误信息 (选项或参数错误) 保存到指定的文件,而不是直接显示到显示器

   错误信息保存到文件

   操作符: 使用2>

   2指的是错误文件的编号 (在使用标准的输入和输出省略了1 0 编号)

在实际应用中,错误重定向可以用来收集执行的错误信息.为排错提供依据;

 对于shell脚本还可以将无关紧要的错误信息重定向到空文件/dev/null中 以保持脚本输出的简洁

eg: 使用tar命令进行备份的时候出新的错误信息保存到err.log文件中

 

Linux教程之文件描述符、重定向、管道符、tee命令

把/dev/null看作"黑洞". 它非常等价于一个只写文件. 所有写入它的内容都会永远丢失. 而尝试从它那儿读取内容则什么也读不到. 然而, /dev/null对命令行和脚本都非常的有用.

 

Linux教程之文件描述符、重定向、管道符、tee命令

echo $?   表示最近一次操作是否成功 。 0 成功  非零不成功

 正确的写到一个文件,错误的在写到一个文件

[root@xiaolyu ~]#  ls /tmp/ /nginx  1> a.txt 2>b.txt

Linux教程之文件描述符、重定向、管道符、tee命令

保存到一张图片比较清爽:

Linux教程之文件描述符、重定向、管道符、tee命令

输出到同一个文件中:

[root@xiaolyu ~]#  ls   /tmp/  /nginx/  1>a.txt  2>&1 

Linux教程之文件描述符、重定向、管道符、tee命令

或者以下这种写法 ,重定向到文件的1可以省略,因为默认就是1.

[root@xiaolyu ~]#  ls /tmp/ /nginx/ >a.txt 2>&1

Linux教程之文件描述符、重定向、管道符、tee命令

&> 混合输出

不分正确的还是错误的

[root@xiaolyu ~]# ls /opt/  /MySQL &> a.txt

Linux教程之文件描述符、重定向、管道符、tee命令

 3. 管道符    这里只提管道符,关于管道有专门创建管道的函数,以及有名管道和无名管道,以及管道之间的通信,我放在IPC通信中阐述。 管道符,可以把两条命令连起来,前面一条命令的输出当成后面一条命令的输入。

  eg: 查看nginx的进程。

[root@xiaolyu ~]# ps -aux | grep nginx 

  eg: 查看某个进程的端口:

Linux教程之文件描述符、重定向、管道符、tee命令

4. tree命令。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/13706.html