1、Linux重定向php
重定向可以實現Linux命令的輸入輸出與文件之間重定向,以及實現將多個命令組合起來實現更增強大的命令。這部分涉及到的比較多的命令主要有:正則表達式
涉及到的比較多的命令主要有:shell
1.重定向標準輸出ubuntu
使用>能夠將原本出如今屏幕的標準輸出信息重定向到一個文件中。bash
用>>能夠在實現重定向時不覆蓋原有內容,而是在文件末尾追加內容.spa
2.重定向標準錯誤信息到文件3d
沒有單純的一個操做符能夠將標準錯誤信息重定向到文件中。要實現這一點有兩種辦法。第一種使用文件描述符,在shell中,默認用數字0,1,2分別表明標準輸入、標準輸出、標準錯誤。日誌
3.屏蔽不想看到的信息code
Linux中有一個特殊的文件/dev/null,這個文件叫作bit bucket,能夠接受輸入信息可是什麼都不作。所以要抑制命令的輸出信息,只須要以下操做:排序
ls
/usr/
>
/dev/null
4.重定向標準輸入
cat命令能夠接受一組文件爲參數,將這些文件複製到標準輸出。咱們前面的例子中已經屢次使用到cat命令來將文本文件的內容讀取到屏幕上。
cat還有一個很重要的功能:接受一組文件,而後經過重定向將他們從新組合到一個文件中。咱們看一個例子:
jerry@ubuntu:~$
cat
ls1
aaaaaaaaaaaaaaaaaaaaaaaa
jerry@ubuntu:~$
cat
ls2
bbbbbbbbbbbbbbbbbbbbbbbb
jerry@ubuntu:~$
cat
ls1 ls2 >
ls
jerry@ubuntu:~$
cat
ls
aaaaaaaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbbbbbbbb
其它實例:
ls -l /usr/tmp >dir 重定向
ls -l /usr/tmp >>dir 追加劇定向
ls /usr/tmp 2>err.file 錯誤輸出到err.file
ls /usr/tmp >output.file 2>&1 錯誤和輸出重定向到output
ls /usr/tmp 2>&1 >output.file 錯誤到標準輸出,其餘輸到output
wc </etc/passwd
標準的輸入,輸出和錯誤輸出分別表示爲STDIN,STDOUT,STDERR,也能夠用0,1,2來表示
2、管道
aaaaaaaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbbbbbbbb
aaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbbbbbbbb
咱們還能夠對uniq命令加上-d選項來查看重複的行,以下:
[root@test]#cat ls |sort|uniq -d
aaaaaaaaaaaaaaaaaaaaaaaa
使用wc命令能夠統計文本的行數、單詞書和字節數。能夠和例如ls命令的輸出一塊兒組成管道命令:
[root@test]#ls
/bin
/usr/bin/
|
sort
|
uniq
|
wc
若是僅僅想要統計行數,只須要在wc命令後面添加-l選項便可。wc命令經常使用來統計代碼的行數。
[root@test]#find
cn/ -name
"*.php"
|
xargs
cat
|
wc
-l
上面這個例子統計了cn目錄下全部php文件的行數之和。
grep命令用來查找匹配的模式,而且打印包含該模式的行。舉個例子:
[root@test]#ls
/bin
/usr/bin/
|
sort
|
uniq
|
grep
zip
在這個例子中,zip就是一個模式,表示包含字符串zip。咱們在/bin和/usr/bin目錄下找出名字帶有zip的程序,而且打印這些程序的名字。grep命令可使用正則表達式,功能也很是強大,這裏咱們不側重介紹。
head和tail命令也經常用於組成管道命令。head能夠查看文件或者文本的前面部分。tail查看文件或者文本的末尾部分。兩者均可以接收-n選項,表示顯示的行數。
看例子:
[root@test]#ls
/bin/
|
head
-n 5
tail還有一個重要的用處,就是實時顯示某些程序的日誌文件。tail能接受一個選項-f,實時顯示出新添加到文件末尾的行數。這樣一旦有新的行追加到日誌文件的末尾,就會被實時顯示在後面。
[root@test]#
tail
-f
/var/log/messages