Linux之重定向输入&输出

一、基础知识的了解

1、Linux的标准输入和输出

linux标准输入设备指的是键盘,标准输出设备指的是显示器,标准错误输出指的是显示器。

设备	设备名	文件描述符	类型
键盘	/dev/stdin	0	标准输入
显示器	/dev/stdout	1	标准输出
显示器	/dev/stderr	2	标准错误输出

2、Linux 文件描述符

文件描述符可以理解为 Linux 系统为文件分配的一个数字,范围是 0-3 ,用户也可以自定义文件描述符,但是自定文件描述符不在这里的讨论范围

一般情况下,每个 Unix/Linux 命令运行时都会打开三个文件:

标准输入文件(stdin):stdin的文件描述符为0。
 标准输出文件(stdout):stdout 的文件描述符为1。
标准错误文件(stderr):stderr的文件描述符为2。

3、什么是输入重定向

输入重定向:是指不使用系统提供的标准输入端口,而进行重新的指定。换言之,输入重定向就是不使用标准输入端口输入文件,而是使用指定的文件作为标准输入设备。(重定向简单理解就是使用 “<”符来修改标准输入设备)

比如,默认情况下,cat命令会接受默认标准输入设备键盘的输入,并显示到控制台,但是可以通过“<”符号修改标准输入设备,指定文件作为标准输入设备,那么cat命令将指定的文件作为输入设备,并将文件中的内容读取并显示到控制台。

输入重定向
类型	符号(语法)	功能
标准输入	命令<文件1	命令把文件1的内容作为标准输入设备
标识符限定输入	命令<<
标识符	命令把标准输入中读入内容,直到遇到“标识符”分解符为止
输入输出重定向(同时使用)	命令< 文件1 >文件2	命令把文件1的内容作为标准输入,把文件2作为标准输出。


#cat  /etc/passwd 它是以键盘作为标准输入设备,并将文件内容显示到控制台

语法1: # cat < /etc/passwd     而输入重定向,cat < /etc/passwd ,它是将passwd文件指定为输入设备,并将内容显示到控制台。

二、输入输出命令符号

1.  	> 标准正确重定向输出
2.     2> 标准错误重定向输出
3.     &> 标准输出 所有重定向输出

eg:
 ** 注意:这个项目试验必须在普通用户下运行**
命令:find /etc/ -name passwd      ##在/etc/目录下找到passwd

实验代码部分:

[student@workstation Desktop]$ find /etc/ -name passwd
find: ‘/etc/pki/rsyslog’: Permission denied
find: ‘/etc/dhcp’: Permission denied
/etc/pam.d/passwd
/etc/passwd
find: ‘/etc/polkit-1/rules.d’: Permission denied
find: ‘/etc/polkit-1/localauthority’: Permission denied
find: ‘/etc/sssd’: Permission denied
find: ‘/etc/grub.d’: Permission denied
find: ‘/etc/audit’: Permission denied
find: ‘/etc/firewalld’: Permission denied
find: ‘/etc/sudoers.d’: Permission denied
find: ‘/etc/lvm/archive’: Permission denied
find: ‘/etc/lvm/backup’: Permission denied
find: ‘/etc/lvm/cache’: Permission denied
find: ‘/etc/libvirt’: Permission denied
find: ‘/etc/cups/ssl’: Permission denied

输出的保存方法

find /etc/ -name passwd >westos.out             ##正确定向输出保存在westos.out 
find /etc/ -name passwd 2> westos.err		 ##错误定向输出保存在    westos.err
find /etc/ -name passwd &> westos.all		 ##所有定向输出保存在westos.all

三、定向输出的追加

注意:

    追加内容不会覆盖源文件的内容,追加内容会直接加在源文件的后边

步骤

1 、[student@workstation Desktop]$ echo hello westos > westos  ##生成一个有内容的文件
2、[student@workstation Desktop]$ cat westos		    ## 查看文件
hello westos
 
3、追加的三类
正确的追加给 westos 
[student@workstation Desktop]$ find /etc/ -name passwd >> westos
错误的追加给 westos  
[student@workstation Desktop]$ find /etc/ -name passwd 2>> westos
正确的&错误的同时追加给 westos     
[student@workstation Desktop]$ find /etc/ -name passwd &>> westos

四、管道

**实验操作步骤:**
  文件的统计
[student@workstation Desktop]$ ls /bin | wc -l      统计/bin 有多少文件
[student@workstation Desktop]$ find /etc/ -name passwd | wc -l 默认只有正确文件以通过管道
[student@workstation Desktop]$ find /etc/ -name passwd 2>&1 | wc -l 将错误的输出定向到正确输出的位置
[student@workstation Desktop]$ find /etc/ -name passwd 2>&1 |tee file | wc -l 复制文件到file 在统计

五、输入重定向

**注意:输入重定向需要在超级用户下进行操作**

[root@workstation Desktop]# ecoh westos WESTOS >westos          ## 建立一个内容为 westos WESTOS 的文件夹
tr 'a-z' 'A-Z' < westos		    ## 单行内容重定向
WESTOS WESTOS			    ## 重定向后显示的内容

vim westos.sh			    ## 建立一个文件
cat westos.sh			    ##查看文件内容
passwd <<EOF
wang
wang
EOF

cat westos.sh | tr 'a-z' 'A-Z'      ##进行多行重定向输入并显示内容
PASSWD <<EOF			    
WANG
WANG
EOF

总结

输出在普通用户下进行;输入必须在超级用户下进行。
追加的内容不会覆盖原文件,会加在原文件的后边。
牢记所有的命令,需要多次的练习。
练习中出错需要学会如何去找错误的点,并能够自己解决错误

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值