無欲則無求 Linux常用命令 29 管道符

2021-10-07 16:07:16 字數 1935 閱讀 1219

管道符|,也是shell命令。

管道符的作用是鏈結多個命令,把命令1的結果作為命令2的操作物件。

命令格式:命令1 | 命令2

命令1的正確輸出作為命令2的操作物件

(1)例子1:

舉個例子,我們經常需要使用「ll」命令檢視檔案的長格式,不過在有些目錄中檔案眾多,比如/etc/目錄,使用「ll」命令顯示的內容就會非常多,只能看到最後的內容,而不能看到前面輸出的內容。

這時我們馬上想到more命令可以分屏顯示檔案內容,可是怎麼讓more命令分屏顯示命令的輸出呢?

注意:more命令是分屏顯示檔案中的資料,是顯示字串。而ll命令是輸出的是命令的結果(也就是輸出的是檔名)。

我想到了一種笨辦法:

#用輸出重定向,把ll命令的輸出儲存到/root/testfile檔案中

[root@localhost ~ ]

#ll -a /etc/ >> /root/testfile

#既然testfile是檔案,當然可以用more命合分屏顯示了

[root@localhost ~]

# more /root/testfile

總用量1784

drwxr-xr-x.105 root root 12288 10月 21 12:49.

dr-xr-xr-x.26 root root 4096 6月 5 19:06..

.…首路部分輸出…

-rwxr-xr-x.1 root root 687 6月22 2012 auto.smb

--more--(7%)

可是這樣操作實在不方便,這時就可以利用管道符了。命令如下:

[root@localhost ~ ]

#ll -a /etc/ | more

因為管道符是文字流操作,管道符把前邊ll命令的結果轉換成文字,然後供more命令分屏顯示。

(2)例子2:

通過ll命令,在顯示/etc/資料夾裡檔案的結果中,搜尋yum的檔名,應該使用find命令?還是grep命令?

通過上邊的提示,find命令是搜尋檔名,grep命令是搜尋文字內容的,管道符是文字流操作,之後都是文字結果(也就是字串),所以需要用grep命令。還有就是find命令也不支援管道符操作。

[root@localhost ~ ]

#ll -a /etc/ | grep yum

(3)例子3:

netstat 命令(centos7中,需要安裝net-snmp.x86_64,net-tools.x86_64兩個包才有此命令。7.5系統中已經自動安裝)格式如下:

netstat 命令是乙個非常重要和常見的查詢網路狀態的網路命令。

命令格式:

[root@localhost ~]

# netstat [選項]

選項:-a:列出所有網路狀態,包括 socket程式

-c秒數:指定每隔幾秒重新整理一次網路狀態

-p:顯示pid和程式名

-t:顯示使用tcp協議埠的連線狀況-u:顯示使用udp協議埠的連線狀況

-1:僅顯示監聽狀態的連線

-r:顯示路由表

常用需求

# 需求:檢視當前遠端登陸有多少人

[root@localhost ~ ]

#netstat -an | grep "established" | wc -l

網路中為established狀態的,表示是遠端鏈結。

wc -l :統計有多少行。

# 查詢系統中所有開啟的埠。

[root@devops ~]

# netstat -tuln

linux常用命令2

linux 啟動到文字介面 不啟動xwindows 介面vi etc inittab 在下面一行 id 5 initdefault 一行中的5改為 3啟動xwindows是5 文字介面是 3最後一次系統引導時間 who b 非正常關機的自動磁碟修復 etc sysconfig 裡增加乙個檔案 aut...

Linux常用命令(2)

壓縮命令 常用壓縮格式 zip gz bz2 tar.gz tar.bz2 zip格式 zip格式壓縮 注意 這裡的.zip格式和windows中的zip格式是一樣的,該格式檔案在兩個系統中是通用的 zip 壓縮檔案名 原始檔 壓縮檔案 zip r 壓縮檔案名 原始檔 壓縮目錄 zip格式解壓縮 u...

linux常用命令2

在linux環境下,壓縮檔案的副檔名通常為 tar tar.gz tgz gz bz2。而不同字尾名的檔案,則需要使用不同的命令處理。gz gzip命令壓縮的檔案 bz2 bzip2命令壓縮的檔案 tar tar命令打包的檔案 tar.gz tar打包後,再經過gzip壓縮的檔案 tar.bz2 t...