linux第一本书第三章 输入输出

 find 命令的使用

[kiosk@foundation51 Desktop]$ find /etc/ -name passwd

##在etc里查找名字是passwd的文件

1.字符设备

字符设备就是显示字符到屏幕上的设备文件
ll /proc/2281/fd/0
ll /proc/2281/fd/1 2
0 输入
1 正确输出
2 错误输出

2.标准输入与输出

1)stdin 标准输入 编号为0 键盘 鼠标 打字机
2)stdout 标准正确输出 标号为1
3)stderr 标准错误输出 标号为2

显示所有进程,查看进程号

application-system monitor

3.输出重定向

“>” 定向1文件干预
“2>” 定向2文件干预
“&>” 定向1和2文件干预

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

find /etc/ -name passwd > westos.out ##正确输出被定向到指定的文件中
find /etc/ -name passwd 2> westos.err ##错误输出被定向到指定文件中
find /etc/ -name passwd &> westos.all ##所有输出被定向到指定文件中

追加:重定向时不覆盖指向,使用追加(保留源文件,不会覆盖掉)

find /etc/ -name passwd >> westos.out ##正确输出被定向到指定的文件中
find /etc/ -name passwd 2>> westos.err ##错误输出被定向到指定文件中
find /etc/ -name passwd &>> westos.all ##所有输出被定向到指定文件中

管道 “|”

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

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

    ##将一条程序的行号输入定向到0文件中
    ##管道只处理1中内容 (先将2中内容搬到1中,才能将1和2内容都传送过去)

    ls /bin/ | wc -l ##管道 /bin/ data 2>&1 | wc -l
 

以本章测试题为例

(1)屏蔽错误输出  (把错误输出重定向到普通文件,没有字符设备的功能,无法显示)

find /etc/ -name passwd 2>errorfile 

(2)查找/etc/下的passwd文件正确输出保存到/tmp目录中的westos.out中,错误输出保存到/tmp/目录中

find /etc/ -name passwd >westos.out 2>westos.err

(3).查找/etc/下的passwd文件保存所有输出到/tmp目录中的westos.all中并统计输入的行数

[kiosk@foundation51 tmp]$ find /etc/ -name passwd &>/tmp/westos.all
[kiosk@foundation51 tmp]$ wc -l /tmp/westos.all
find /etc/ -name passwd 2>&1 | tee /tmp/westos.all | wc -l

(4).查找/etc/下的passwd文件统计输出行数并显示输出内容

find /etc/ -name passwd 2>&1 | tee /dev/pts/0 | wc -l

2.如何管理输入

外界传递到程序中的信息

输入重定向

1)< #输入重定向
##tr 替换字符
tr 'a-z' 'A-Z' </etc/passwd ##/etc/passwd将文件内容放置到tr的0文件中

相当于给他放到字符设备中显示出来了

 如cat 3 |tr 'c' 'p'  把文件3中的c换成p并显示 ,单独用tr不能读取

多行录入:shell脚本

脚本内容:date           cal

注:bash是非交互,sh是交互

多行录入:修改用户密码

脚本内容:

date
passwd kiosk<<EOF
westos
westos
EOF
cal
   

以本章测试题为例

5.转换/etc/目录中passwd文件中的所有字母为大写并统计文件行数

tr ‘a-z’ ‘A-Z’ < /etc/passwd | cat -b


7.请用脚本非交互模式编写文件westos.file内容为:

vim westos.sh

cat > westos.file <<EOF
hello linux
hello westos
hello linux westos
linux is very nice !!
EOF

4.命令行获得帮助

whatis  ***   如whatis rm ##查看命令的基本用途

若查看过程中出现 “rm:nothing' appropriatre'  ”   用mandb 命令更新数据库

rm --help      ##查看命令的基本用法 
[]     ##内容可加可不加 
...   ##内容个数任意
 <>    ##必须在命令执行时加入的元素

 

man

man rm ##命令用法详解 man是manual的缩写

  • man -k passwd ##passwd关键字有多少级别的man

##man的级别
##1 命令
##2 系统调用
##3 函数库调用
##4 特殊文件(设备文件等)
##5 文件
##6 游戏
##7 特殊的包
##8 系统管理命令
##9 内核信息规则

q ##退出
/关键字 ##搜索关键字,n向下匹配,N向上匹配
G ##快速移动到man的最后
g ##表示快速移动到man的最前 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值