1. 程式人生 > >管道,輸出,管道,重定向,grep

管道,輸出,管道,重定向,grep

opera -i 執行 tor 小於號 a-z passwd tail operator

輸出:
大於號:將一條命令執行結果(標準輸出,或者錯誤輸出,本來都要打印到屏幕上面的)重定向其它輸出設備(文件,打開文件操作符,或打印機等等)
> 是覆蓋原有內容
>> 是追加內容

2> 是錯誤內容覆蓋
>> 是錯誤內容追加重定向
[[email protected] ~]$ sdfsdfsdf > a.txt
bash: sdfsdfsdf: 未找到命令...
[[email protected] ~]$ sdfsdfsdf 2>a.txt

[[email protected] ~]$ echo ‘123‘ > ture.txt

&> 是錯誤(正確)都可以內容覆蓋
&>> 是錯誤(正確)都可以內容追加重定向

正確與錯誤的內容分別添加到不同文件
[[email protected] ~]$ date 2>err.txt >ture.txt
[[email protected] ~]$ cat err.txt
[[email protected] ~]$ cat ture.txt
2017年 06月 12日 星期一 15:48:13 CST


輸入:
小於號:命令默認從鍵盤獲得的輸入,改成從文件,或者其它打開文件以及設備輸入

[[email protected]

/* */ ~]$ cat err.txt
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
[[email protected] ~]$ tr ‘a-z‘ ‘A-Z‘ <err.txt #把err.txt的內容輸入轉換為大寫
127.0.0.1 LOCALHOST LOCALHOST.LOCALDOMAIN LOCALHOST4 LOCALHOST4.LOCALDOMAIN4
::1 LOCALHOST LOCALHOST.LOCALDOMAIN LOCALHOST6 LOCALHOST6.LOCALDOMAIN6
[[email protected]
/* */ ~]$


grep:

#在passwd中含有passwd的行全部過濾出來
[[email protected] ~]$ cp /etc/passwd .
[[email protected] ~]$ grep root passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[[email protected] ~]$ grep -n root passwd
1:root:x:0:0:root:/root:/bin/bash
10:operator:x:11:0:operator:/root:/sbin/nologin
[[email protected] ~]$ grep ^root passwd
root:x:0:0:root:/root:/bin/bash

#在passwd中含有yuq的行全部過濾出來
[[email protected] ~]$ grep yuq passwd
yuq:x:1000:1000:yuq:/home/yuq:/bin/bash
#在passwd中含有yuq(包括大小寫)的行全部過濾出來
[[email protected] ~]$ grep -i yuq passwd
yuq:x:1000:1000:yuq:/home/yuq:/bin/bash
Yuq:x:1000:

#在passwd中含有yuq(包括大小寫)的行全部反向過濾出來
[[email protected] ~]$ grep -inv yuq passwd

#找到關鍵字的下面三行
[[email protected] ~]$ grep -n -A3 root passwd

#找到關鍵字的上面三行
[[email protected] ~]$ grep -n -B3 yuq passwd

#找到關鍵字的上面三行和下面三行
grep -n -C3 yuq passwd

grep還可用正則表達式


管道:
把前一條命令的結果當成一個命令輸入
[[email protected] ~]$ ls -a |grep *.txt
a.txt
結合本例就是先顯示所有的文件,然後再用grep命令在ls的結果中查找包含*.txt的文件。

先把一個命令結果寫入一個文件,再從文件中過濾
[[email protected] ~]$ ifconfig lo > a.txt
[[email protected] ~]$ grep ‘inet ‘ a.txt
inet 127.0.0.1 netmask 255.0.0.0

#用管道實現
[[email protected] ~]$ ifconfig lo | grep -n ‘inet ‘
2: inet 127.0.0.1 netmask 255.0.0.0

# tee把前面命令的結果寫入a.txt(覆蓋)
ifconfig lo | tee a.txt |grep ‘inet‘

# 查看/etc/passwrod的11~15行
[[email protected] ~]$ head -14 /etc/passwd | tail -5
[[email protected] ~]$ cat -n /etc/passwd |head -15|tail -5

管道,輸出,管道,重定向,grep