梦回Linux | 7、阅读后的操作

讲个故事

小L自从学会了怎么读书之后,那么接下来怎么把读到的东西运用起来,使自己更加方便!那接下来介绍下阅读后除了看里边的内容,内容怎么使用起来呢?

1、标准输入、输出和错误

用到的许多程序都会产生某种输出。
这种输出,经常由两种类型组成。
第一,程序运行结果;这是说,程序要完成的功能。
第二,我们得到状态和错误信息,这些告诉我们程序进展。

那么什么是标准输入、输出和错误呢?
以ls为例
标准输入(stdin):默认情况下,标准输入接入到键盘
标准输出(stdout):默认情况下,标准输出接入到屏幕 
标准错误(stderr):当执行后发现有错误,会进行存放到一个叫做标准错误文件。

说了这么多,你来感受下…

# 输入cat, 这时你会发现往下没有执行什么东西
[minL@localhost ~]# cat

# 这时你尝试输入一句话,发现会打印俩条
hello world
hello world
# 为什么会打印俩条呢?
# 其实第一条是  你输入的内容 即:标准输入
#    第二条是   屏幕打印的内容 即:标准输出

2、重定向

都说了是默认的输入和输出,则么改变自定义的方式呢?

如果分不清箭头是>还是<,那么你可以把>比作箭(射箭的箭),它毕竟是个箭头啊!

2.1、标准输入重定向(<)

# 通过文件内容进行标准输入
cat < lazy_dog.txt

2.2、重定向标准输出(>)

# 读取当前列表重定向到文件中
[root@localhost ~]# ll > curr.txt
[root@localhost ~]# cat curr.txt
total 28l
rwxrwxrwx    1 root     root             2 Dec  2  2020 aa2 -> aad
rwxr-xr-x    2 root     root            37 Dec  2  2020 bb
-rw-r--r--    2 root     root          3884 Dec  4  2020 cc
-rw-r--r--    2 root     root          3884 Dec  4  2020 cc2
-rw-r--r--    1 root     root             0 Dec  4  2020 curr.txt
drwxr-xr-x    3 root     root           163 Aug 21  2011 dos
-rw-r--r--    1 root     root           242 Jul 15  2017 hello.c
-rw-r--r--    1 root     root            63 Jan 30  2020 hello.js

2.3、双向重定向到文件中(>>)

为什么会有这个双向重定向呢?
标准重定向>: 重定向到已经有的文件中,没有则报错,而且每次重定向都会先清空指定文件的内容,之后从头开始写入。
双向重定向>>:重定向的文件没有,则进行创建。之前有的内容,则从尾部开始追加。

2.4、标准错误重定向(2>)

为什么会有个2呢?
这是因为0、1、2分别代表
0:标准输入
1:标准输出
2:标准错误
所以错误重定向前有个2!

# 没有这个文件,屏幕打印报错
[root@localhost ~]# ls meiyou
ls: meiyou: No such file or directory
# 重定向错误到文件err
[root@localhost ~]# ls meiyou 2> err
# 查看重定向后的文件内容
[root@localhost ~]# cat err
ls: meiyou: No such file or directory

2.5、同时重定向标准输出和错误输出(&>)

# 标准输出和错误输出都重定向到文件中
[root@localhost ~]# ls -l /bin/usr &> ls-output.txt

2.6、重定向到黑洞(/dev/null)

特殊目录/dev/null,得到的内容不进行处理。

[root@localhost ~]# ll > /dev/null

3、管道线(|)

| :竖线 你可以看作是管道,从上到下的。
作用:把标准输出 转换成 标准输入

[root@localhost ~]# ls | less

4、过滤器

在我们通过输入–>输出的这一个过程,如果中间想调整或者筛选数据,怎么做呢?

4.1、sort(数据排序)

# 试验的过滤器是 sort。想象一下,我们想把目录/bin 和/usr/bin 中的可执行程序都联合在一起,再把它们排序
[root@localhost ~]# ls /bin /usr/bin | sort | less

4.2、uniq(去重)

# 去除重复数据行  
[root@localhost ~]# ls /bin /usr/bin | sort | uniq | less

4.3、grep(打印匹配行)

grep 是个很强大的程序,用来找到文件中的匹配文本。

grep pattern [file...]

当 grep 遇到一个文件中的匹配”模式”,它会打印出包含这个类型的行。grep 能够匹配的模式可以很复杂,但是现在我们把注意力集中在简单文本匹配上面。

[root@localhost ~]#  ls /bin /usr/bin | sort | uniq | grep zip
bunzip2
bzip2
gunzip
...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值