3 Linux中的输入输出管理及如何获得帮助

1 理解什么是输出输入的定义

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

2)stdin
标准输入
编号为0
键盘 鼠标 打字机

3)stdout
标准正确输出
标号为1

4)stderr
标准错误输出
标号为2

2 如何管理输入

外界传递到程序中的信息
1)<            ##输入重定向
tr   ##转换 必须要通过指定的方式才能实现 (不具备读取文件的能力 所以不能直接加载)
tr 'a-z' 'A-Z' < test                  ##追加(使我们不具备读取文件的能力的程序,获得文件内容)  test文件中的内容定向到tr程序中
sh   (bash缩写 sh text 运行vim模式里的命令)
2)<<           ##多行录入
tr 'a-z' 'A-Z' <<EOF(字符任意)(可以进行非交互模式 'vim'不能进行非交互模式)
test                 ##此处的test不能表示为文件名称只表示test字符
test1
EOF    (当首字母再次出现表示录入结束)

3 如何管理系统输出

1)输出重定向

    >
   2>
   &>

find /etc -name passwd > westos.out       ##重定向正确输出
find /etc -name passwd 2> westos.err      ##重定向错误输出
find /etc -name passwd &> westos.all      ##重定向全部输出

注意:重定向管理输出后会覆盖原文件内容

2)追加

>>
2>>
&>>

find /etc -name passwd >> westos.out        ##追加正确输出
find /etc -name passwd 2>> westos.out       ##追加错误输出
find /etc -name passwd &>> westos.out       ##追加所有输出

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

[westos@westoslinux Desktop]$ touch westos
[westos@westoslinux Desktop]$ vim westos
[westos@westoslinux Desktop]$ find /etc/ -name passwd > westos  ##(覆盖原文件内容,不显示hello westos)
find: ‘/etc/pki/rsyslog’: Permission denied
find: ‘/etc/polkit-1/rules.d’: Permission denied
find: ‘/etc/polkit-1/localauthority’: 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/grub.d’: Permission denied
find: ‘/etc/nftables’: Permission denied
find: ‘/etc/sssd’: Permission denied
find: ‘/etc/firewalld’: Permission denied
find: ‘/etc/audit’: Permission denied
find: ‘/etc/sudoers.d’: Permission denied
find: ‘/etc/libvirt’: Permission denied
[westos@westoslinux Desktop]$ cat westos
/etc/passwd
/etc/pam.d/passwd
[westos@westoslinux Desktop]$ vim westos
[westos@westoslinux Desktop]$ find /etc/ -name passwd >> westos  ##(不覆盖原文件内容 显示hello westos)
find: ‘/etc/pki/rsyslog’: Permission denied
find: ‘/etc/polkit-1/rules.d’: Permission denied
find: ‘/etc/polkit-1/localauthority’: 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/grub.d’: Permission denied
find: ‘/etc/nftables’: Permission denied
find: ‘/etc/sssd’: Permission denied
find: ‘/etc/firewalld’: Permission denied
find: ‘/etc/audit’: Permission denied
find: ‘/etc/sudoers.d’: Permission denied
find: ‘/etc/libvirt’: Permission denied
[westos@westoslinux Desktop]$ cat westos
' hello westos
/etc/passwd
/etc/pam.d/passwd

3)管道 “|”

把前一条命令的输出变成输入传递到下一条命令进行操作
注意:
      *管道只处理正确输出
      *2>&1把编号为2的输入转换到编号为1的输出中
      *tee 复制输出到指定位置
      *管道在一条命令中可以使用多次

westos@westoslinux Desktop]$ touch westos{1..5}
[westos@westoslinux Desktop]$ ls   | wc -l       ##(管道控制输出变输入传到下一条命令)
5
[westos@westoslinux Desktop]$ ls /bin/ | tee westos | wc -l   ##(tee westos复制内容到westos)
1364
[westos@westoslinux Desktop]$ wc -l westos
1364 westos
[westos@westoslinux Desktop]$ rm -fr *


[westos@westoslinux Desktop]$ ls westos hello           ##(只显示以存在文件)
ls: cannot access 'hello': No such file or directory
westos
[westos@westoslinux Desktop]$ ls westos hello | wc -l   ##(输出的westos hello 由于hello不存在,管道不进行处理,所以对hello不进行显示)
ls: cannot access 'hello': No such file or directory
1
[westos@westoslinux Desktop]$ ls westos hello 2>&1 | wc -l  ##(输出的westos hello 由于hello不存在,管道不进行处理,所以用2>&1将2里的内容转换到1里去 从而进行显示)
2

############ 练习汇总 ##########################
在普通用户下执行命令完成下列操作:
1 查找/etc/下的passwd文件屏蔽错误输出
2 查找/etc/下的passwd文件正确输出保存到/tmp目录中的westos.out中,错误输出保存到/tmp/目录中的westos.err中
3 查找/etc/下的passwd文件保存所有输出到/tmp目录中的wadtos.all中并统计输入的行数
4 查找/etc/下的passwd文件统计输出行数并显示输出内容
5 转换/etc/目录中passwd文件中的所有字母为大写并统计文件行数
7 请用脚本非交互模式编写文件westos.file内容为:
  hello linux
  hello westos
  hello linux
  westos linux is very nice !!

[westos@westoslinux Desktop]$ find /etc/ -name passwd 2> /dev/null    ##/dev/null 无限空 扔进去会被自动删除
/etc/passwd
/etc/pam.d/passwd
[westos@westoslinux Desktop]$ find /etc/ -name passwd > /tmp/westos.out 2> /tmp/westos.err
[westos@westoslinux Desktop]$ find /etc/ -name passwd 2>&1 | tee /tmp/westos.all | wc -l 
16
[westos@westoslinux Desktop]$ ps          ##ps查看字符设备
    PID TTY          TIME CMD
  37056 pts/1    00:00:00 bash
  39496 pts/1    00:00:00 ps/dev/pts/1
[westos@westoslinux Desktop]$ find /etc/ -name passwd 2>&1 | tee /dev/pts/1 | wc -l ## /dev/pts/1字符设备
find: ‘/etc/pki/rsyslog’: Permission denied
/etc/passwd
find: ‘/etc/polkit-1/rules.d’: Permission denied
find: ‘/etc/polkit-1/localauthority’: 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/grub.d’: Permission denied
find: ‘/etc/nftables’: Permission denied
find: ‘/etc/sssd’: Permission denied
/etc/pam.d/passwd
find: ‘/etc/firewalld’: Permission denied
find: ‘/etc/audit’: Permission denied
find: ‘/etc/sudoers.d’: Permission denied
find: ‘/etc/libvirt’: Permission denied
16
[westos@westoslinux Desktop]$ tr 'a-z' 'A-Z' < /etc/passwd | tee /dev/pts/1 |wc -l
[westos@westoslinux Desktop]$ vim westos.sh
cat > westos.file <<EOF
hello linux
hello westos
hello linux
westos linux is very nice !!
EOF
[westos@westoslinux Desktop]$ sh westos.sh

命令行获得帮助

whatis rm                  ##查看命令的基本用途
                                   ##查看过程中出现: #rm:nothing appropriate
                                           #1 表示要查看内容没有帮助
                                           #2 系统帮助数域未更新用mandb命令更新
注意:当执行whatis命令出现 nothing appropriate 时大多数情况是因为:系统中的帮助数据库未更新,如何解决此问题,需要在root用户下执行mandb
mandb                      ##手动更新系统中的帮助数据库
rm --help                  ##查看命令的基本用法
[]                         ##内容可加可不加
...                        ##内容个数任意
<>                         ##必须在命令执行时加入的元素

man rm                     ##命令用法详解 man是manual的缩写
man -k passwd              ##passwd关键字有多少级别的man
                           ##man的级别
                           #1       命令
                           #2       系统调用
                           #3       函数库调用
                           #4       特殊文件 (设备文件等)
                           #5       文件
                           #6       游戏
                           #7       特殊的包
                           #8       系统管理命令
                           #9       内核信息规则
man -rm                    ##进入到rm命令的帮助
q                          ##退出
/关键字                     ##搜索关键字,n 向下匹配, N 向上匹配
G                          ##快速移动到man的最后
g                          ##表示快速移动到man的最前

################ TEST ################
1 显示2021-11-11是第多少天
2 显示83后是几月几号

[root@westoslinux Desktop]# cal -j 2011-11-11     ##cal (用来操作日历的) -j "day of year"一年中的某一天  
       November 2011       
Sun Mon Tue Wed Thu Fri Sat
        305 306 307 308 309
310 311 312 313 314 315 316
317 318 319 320 321 322 323
324 325 326 327 328 329 330
331 332 333 334            
                           
[root@westoslinux Desktop]# date -d 83day +%m/%d    ##date (操作时间) +%m/%d 某月某天
09/30

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值