三、Linux中的输入输出管理

三、Linux中的输入输出管理

1.理解输入输出的定义

1)字符设备

字符设备就是显示字符到屏幕上的设备文件

2)stdin

标准输入 标号为0
键盘 鼠标 打字机

3)stdout

标准正确输出 标号为1

4)stderr

标准错误输出 标号为2

2. 如何管理输入

外界传递到程序中的信息

1)< #输入重定向
tr 'a-z' 'A-Z' < test  #把test文件中的内容重定向到 tr 程序中

重定向

2)<< #多行录入
tr 'a-z' 'A-Z' << END(字符任意)
test #此处test只表示字符不表示test文件
END

多行录入

3.如何管理系统输出

1)输出重定向
> #重定向正确输出
2> #重定向错误输出
&> #重定向所有输出
[jiangjiang@localhost Desktop]$ find /etc -name passwd > westos.out
[jiangjiang@localhost Desktop]$ find /etc -name passwd 2> westos.out
[jiangjiang@localhost Desktop]$ find /etc -name passwd &> westos.out

重定向正确输出
重定向错误输出
重定向所有输出

2)追加
>> #追加正确输出
2>> #追加错误输出
&>> #追加所有输出
[jiangjiang@localhost Desktop]$ find /etc -name passwd >> westos.out
[jiangjiang@localhost Desktop]$ find /etc -name passwd 2>> westos.out
[jiangjiang@localhost Desktop]$ find /etc -name passwd &>> westos.out

追加和重定向功能类似,但是不会覆盖原文件内容

3)管道

把前一条命令的输出变成输入传递到下一条命令进行操作

注意:

  • 管道只处理正确输出
  • 2>&1把编号为2的输入转换到编号为1的输入中
  • tee 复制输出到指定位置
  • 管道在一条命令中可以使用多次

练习

习题

  • 1
[jiangjiang@localhost Desktop]$ find /etc -name passwd 2> /dev/null
/etc/pam.d/passwd
/etc/passwd
  • 2
[jiangjiang@localhost Desktop]$ find /etc -name passwd > /tmp/westos.out
[jiangjiang@localhost Desktop]$ find /etc -name passwd 2> /tmp/westos.err

2结果

  • 3

[jiangjiang@localhost tmp]$ find /etc -name passwd 2>&1 | tee /tmp/westos.all | wc -l
16
  • 4
[jiangjiang@localhost Desktop]$ find /etc -name passwd 2>&1 | tee /dev/pts/0 | wc -l
find:/etc/pki/rsyslog’: Permission denied
find:/etc/lvm/archive’: Permission denied
find:/etc/lvm/backup’: Permission denied
find:/etc/lvm/cache’: Permission denied
find:/etc/dhcp’: Permission denied
find:/etc/cups/ssl’: Permission denied
/etc/pam.d/passwd
/etc/passwd
find:/etc/grub.d’: Permission denied
find:/etc/sssd’: Permission denied
find:/etc/polkit-1/rules.d’: Permission denied
find:/etc/polkit-1/localauthority’: Permission denied
find:/etc/audit’: Permission denied
find:/etc/libvirt’: Permission denied
find:/etc/firewalld’: Permission denied
find:/etc/sudoers.d’: Permission denied
16
  • 5
[jiangjiang@localhost Desktop]$ tr 'a-z' 'A-Z' < /etc/passwd |cat -b 
     1	ROOT:X:0:0:ROOT:/ROOT:/BIN/BASH
     2	BIN:X:1:1:BIN:/BIN:/SBIN/NOLOGIN
     3	DAEMON:X:2:2:DAEMON:/SBIN:/SBIN/NOLOGIN
     4	ADM:X:3:4:ADM:/VAR/ADM:/SBIN/NOLOGIN
     5	LP:X:4:7:LP:/VAR/SPOOL/LPD:/SBIN/NOLOGIN
     6	SYNC:X:5:0:SYNC:/SBIN:/BIN/SYNC
     7	SHUTDOWN:X:6:0:SHUTDOWN:/SBIN:/SBIN/SHUTDOWN
     8	HALT:X:7:0:HALT:/SBIN:/SBIN/HALT
     9	MAIL:X:8:12:MAIL:/VAR/SPOOL/MAIL:/SBIN/NOLOGIN
    10	OPERATOR:X:11:0:OPERATOR:/ROOT:/SBIN/NOLOGIN
    11	GAMES:X:12:100:GAMES:/USR/GAMES:/SBIN/NOLOGIN
    12	FTP:X:14:50:FTP USER:/VAR/FTP:/SBIN/NOLOGIN
    13	NOBODY:X:65534:65534:KERNEL OVERFLOW USER:/:/SBIN/NOLOGIN
    14	DBUS:X:81:81:SYSTEM MESSAGE BUS:/:/SBIN/NOLOGIN
    15	SYSTEMD-COREDUMP:X:999:997:SYSTEMD CORE DUMPER:/:/SBIN/NOLOGIN
    16	SYSTEMD-RESOLVE:X:193:193:SYSTEMD RESOLVER:/:/SBIN/NOLOGIN
    17	TSS:X:59:59:ACCOUNT USED BY THE TROUSERS PACKAGE TO SANDBOX THE TCSD DAEMON:/DEV/NULL:/SBIN/NOLOGIN
    18	POLKITD:X:998:996:USER FOR POLKITD:/:/SBIN/NOLOGIN
    19	GEOCLUE:X:997:994:USER FOR GEOCLUE:/VAR/LIB/GEOCLUE:/SBIN/NOLOGIN
    20	GLUSTER:X:996:993:GLUSTERFS DAEMONS:/RUN/GLUSTER:/SBIN/NOLOGIN
    21	RTKIT:X:172:172:REALTIMEKIT:/PROC:/SBIN/NOLOGIN
    22	PULSE:X:171:171:PULSEAUDIO SYSTEM DAEMON:/VAR/RUN/PULSE:/SBIN/NOLOGIN
    23	QEMU:X:107:107:QEMU USER:/:/SBIN/NOLOGIN
    24	USBMUXD:X:113:113:USBMUXD USER:/:/SBIN/NOLOGIN
    25	RPC:X:32:32:RPCBIND DAEMON:/VAR/LIB/RPCBIND:/SBIN/NOLOGIN
    26	UNBOUND:X:995:990:UNBOUND DNS RESOLVER:/ETC/UNBOUND:/SBIN/NOLOGIN
    27	CHRONY:X:994:989::/VAR/LIB/CHRONY:/SBIN/NOLOGIN
    28	PIPEWIRE:X:993:987:PIPEWIRE SYSTEM DAEMON:/VAR/RUN/PIPEWIRE:/SBIN/NOLOGIN
    29	LIBSTORAGEMGMT:X:992:986:DAEMON ACCOUNT FOR LIBSTORAGEMGMT:/VAR/RUN/LSM:/SBIN/NOLOGIN
    30	SETROUBLESHOOT:X:991:985::/VAR/LIB/SETROUBLESHOOT:/SBIN/NOLOGIN
    31	SASLAUTH:X:990:76:SASLAUTHD USER:/RUN/SASLAUTHD:/SBIN/NOLOGIN
    32	DNSMASQ:X:983:983:DNSMASQ DHCP AND DNS SERVER:/VAR/LIB/DNSMASQ:/SBIN/NOLOGIN
    33	RADVD:X:75:75:RADVD USER:/:/SBIN/NOLOGIN
    34	ABRT:X:173:173::/ETC/ABRT:/SBIN/NOLOGIN
    35	CLEVIS:X:982:981:CLEVIS DECRYPTION FRAMEWORK UNPRIVILEGED USER:/VAR/CACHE/CLEVIS:/SBIN/NOLOGIN
    36	COCKPIT-WS:X:981:979:USER FOR COCKPIT-WS:/:/SBIN/NOLOGIN
    37	SSSD:X:980:978:USER FOR SSSD:/:/SBIN/NOLOGIN
    38	COLORD:X:979:977:USER FOR COLORD:/VAR/LIB/COLORD:/SBIN/NOLOGIN
    39	GDM:X:42:42::/VAR/LIB/GDM:/SBIN/NOLOGIN
    40	RPCUSER:X:29:29:RPC SERVICE USER:/VAR/LIB/NFS:/SBIN/NOLOGIN
    41	GNOME-INITIAL-SETUP:X:978:976::/RUN/GNOME-INITIAL-SETUP/:/SBIN/NOLOGIN
    42	SSHD:X:74:74:PRIVILEGE-SEPARATED SSH:/VAR/EMPTY/SSHD:/SBIN/NOLOGIN
    43	INSIGHTS:X:977:975:RED HAT INSIGHTS:/VAR/LIB/INSIGHTS:/SBIN/NOLOGIN
    44	AVAHI:X:70:70:AVAHI MDNS/DNS-SD STACK:/VAR/RUN/AVAHI-DAEMON:/SBIN/NOLOGIN
    45	TCPDUMP:X:72:72::/:/SBIN/NOLOGIN
    46	JIANGJIANG:X:1000:1000:JIANGJIANG,,,,:/HOME/JIANGJIANG:/BIN/BASH
  • 7
[jiangjiang@localhost Desktop]$ vim westos.sh
[jiangjiang@localhost Desktop]$ sh westos.sh 
[jiangjiang@localhost Desktop]$ cat westos.file
hello linux
hello westos
hello linux
westos linux is very nice!!
## vim westos.sh
cat > westos.file <<END  ##将westos.file的文件传到cat
hello linux
hello westos
hello linux
westos linux is very nice!!
END
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值