Linux有大量的命令行工具,從每天都會使用的ls、cd以及ps這些工具,到您可能還沒有使用過,或者甚至沒有聽說過的不常見的工具。
我們將看一下五個不常見,但可以讓您的使用更輕松的工具。我們會簡單地看看每一個命令及其標志和參數,但請不要忘了對每一個命令使用man命令,去獲取所有可能的標志和參數信息。
logsave
我們將查看的第一個工具是logsave。logsave命令可以將一個命令的輸出保存到一個日志文件中:
$ logsave /var/log/partsize df –h
這里,logsave命令將df命令的輸出保存到/var/log/partsize文件中,同時會添加一個時間戳并將命令的執行結果輸出到標準輸出。
聽起來并不是那么的有趣,是嗎?logsave特殊的魔力在于,如果文件,在這個例子中是/var/log/partsize,并不存在,那么
logsave會在內存中將數據進行排隊,等待該文件的產生。對于在啟動過程中,當您在對一個還沒有掛載上的分區進行寫操作時,用logsave去跟蹤命
令的執行輸出是非常有用的。為了保存可能會丟失的命令行輸出,我經常在自動配置和引導過程中,使用logsave。
diff3
下一個工具是diff3命令。您可能已經使用過diff命令去生成文件之間的差異。相對于diff的兩個文件,diff3可以對三個文件執行同樣的功
能,但包括diff中的一些更復雜的選項。讓我們看一個簡單的例子。我們有三個文件:cat、dog以及mouse,它們各自包含一個字符串。我們可以用
diff3對所有的三個文件進行比較:
$ diff3 dog cat mouse
====
1:1c
This is a dog
2:1c
This is a cat
3:1c
This is a mouse
diff3命令顯示了三個文件中不同的字符串。您也可以用“-”標記代表一個文件。這將會把標準輸入和其他文件進行比較。
您也可以使用-A標記,在所有的文件里面,去合并不同,并對任何沖突之處進行高亮顯示。
$ diff3 -A dog cat mouse
1a
||||||| cat
This is a cat
=======
This is a mouse
>>>>>>> mouse
.
0a
<<<<<<< dog
.
pstree
您可能已經在您的主機上,使用過ps去列出所有的進程。但您可能還沒有聽說過pstree——一個用于以樹的形式顯示您的進程的命令。一個進程或者從
init進程,從一個您可以指定的PID(進程ID)分支出來,或者從一個您可以指定的用戶分支出來。每一個進程及其子進程如下所示:

pstree命令也包括一些您可以使用的命令行標志。比如-a標志會顯示進程所使用的命令行,而-p標志會在樹中添加進程的進程ID。
nl
nl命令很少有人知道,但卻可以執行一個很漂亮的小功能——它在輸出中添加行號。讓我們看一個簡單的例子,對一個叫做dog的文件執行nl命令。
$ nl dog
1 This is a dog
2 This is not a dog
您可以看到nl獲取了dog文件的內容,并在輸出中添加了行號。然后,您可以將這些輸出通過管道放到一個新文件中。
$ nl dog > dog_numbered
然后,我們就可以顯示這個帶有新的行號內容的文件:
$ cat dog_numbered
1 This is a dog
2 This is not a dog
split
我們要看的最后一個命令是split。split命令通常基于尺寸將文件分割為多個片段。我使用這個命令,去將大的日志文件分割為更好管理的日志片段,例如:
$ split --bytes=1m /tmp/largelogfile /tmp/smallerfile
split命令有根據字節數和行數對文件進行分割的參數。這里,我們通過指定--bytes=1m參數,將大的日志文件分割為1M字節的塊(您可以指定b去代表字節,k代表千字節,g代表十億字節)。
我們可以像這樣根據行數對文件進行分割:
$ split --lines=1000 /tmp/largelogfile /tmp/smallerfile
這里,文件會被分為多個1000行的塊。
在我們的例子中,會將每個塊都存在/tmp目錄下,其文件名會包含一個前綴smallerfile。第一個文件為smallerfileaa,第二個是
smallerfileab等等。您也可以使用-d標記,去使用數字而不是通過字母的增長來對塊進行計數。最后,除了可以指定一個文件,您也可以使用
“-”去讓split命令以標準輸入為輸入,并分割為獨立的文件。
from:
http://www.searchsv.com.cn/showcontent_31396.htm
posted on 2010-03-06 11:26
chatler 閱讀(334)
評論(0) 編輯 收藏 引用 所屬分類:
Shell