我們將對 /usr/bin 進行深入探索,并發掘一些更加有趣的寶藏。盡管看起來可能有些過時,但我們將探索一些獨特有趣的程序,它們在當今仍然非常實用。
讓我們重上探險之路,繼續發現 linux 為我們提供的更多精彩之處。
1、fold
我們擁有一個非常實用的小工具,可以幫助您按照指定的長度將輸入行進行換行。您可以通過指定字節數或空格數來定義長度。使用 fold 工具,您可以快速處理具有不同長度的文件。
例如,假設我們有一行輸入,長度為六個字符。我們希望將每行限制為只有五個字符,并將剩余部分換行。使用 fold,我們可以使用以下命令實現:
┌──(linuxmi?linuxmi)-[~/www.linuxmi.com]└─$ echo "12345678" | fold -w 7
相應的輸出應為:
12345678
現在我們可以快速將一些文本符合我們的長度限制。這在長文本流分解或對代碼或其他配置文件施加行長度限制時非常有用。
詳細了解使用 fold 的更多細節,請查看維基頁面。
2、column
這是另一個非常有用的格式化工具。您可以通過命令行使用column工具來創建列,甚至生成整個表格,以方便文本輸出。
雖然使用awk等工具也可以實現相同的功能,但 column工具專為此特定用途而設計,因此使用起來非常簡單,而且記住其語法也很容易。
如果我們想根據幾行輸入構建一個簡單的表格,可以執行以下命令:
┌──(linuxmi?linuxmi)-[~/www.linuxmi.com]└─$ echo -e "one two threen1 2 3n93139 777777 999999" | column -t
該命令的輸出應如下所示:
onetwo three12 393139777777999999
正如您所見,輸出被自動格式化為整齊對齊的列。一個小表格會在輸出中形成,根據每行輸入的長度自動調整其大小。
如果您在命令行上處理稍長的非結構化數據集,并希望快速創建一些表格形式,這個工具將會幫上大忙。
column 的?維基提供了更多用法細節和處理不同輸入的獨特方法。
3、sg
您可能聽說過 newgrp 命令。有一種更簡便的工具能夠達到相同的效果,它不需要用其他組的身份來執行命令。sg 實用程序允許您使用指定的另一個組的權限直接執行命令。只要指定一個組和一個命令,就不用使用管道或更改現有的 Shell 組。
要使用 sudo 組的權限執行 ls 命令,可以輸入以下命令:
┌──(linuxmi?linuxmi)-[~/www.linuxmi.com]└─$ sg sudo ls
這將切換 ls 命令以使用 sudo 組的權限運行。一旦命令執行完畢,您將返回到執行前的正常組權限。
sg 命令對于測試新的組權限或快速切換上下文以從另一個組運行程序非常有幫助。
詳細了解使用信息,請參閱?維基。
4、xxd
xxd 實用程序是在 Linux 上執行十六進制轉儲的眾多方法之一。有許多具有類似功能的實用程序,但 xxd 程序略有不同。您可以使用這個實用程序來進行十六進制的轉儲和還原,其額外的優勢在于此。還有許多可配置的標志,您還可以對二進制文件執行修補操作。
假設我們想對以下名為 linuxmi? 的文件進行十六進制轉儲:
linuxmi
我們只需提供輸入,xxd 將自動將文件編碼到 stdout(對于較短的輸入文件,這是一個很方便的默認功能):
┌──(linuxmi?linuxmi)-[~/www.linuxmi.com]└─$ xxd linuxmi00000000: 6c69 6e75 786d 690a
您還可以通過傳遞一個額外的文件名參數來直接將輸出發送到轉儲文件:
xxd linuxmi 93139
這將將十六進制轉儲發送到名為 93139 的文件中。
xxd 的 man 頁面可以在維基找到。
5、pwdx
這個實用的小程序源于廣為人知、備受喜愛的古老 PS 實用程序家族。pwdx 實用程序可以讓您獲取運行中進程的當前工作目錄。只要您提供進程的 PID,它就能告訴您該進程的工作目錄所在位置。
假設我們想找出 cron 進程在我們的機器上的工作目錄。我們可以通過使用 ps 命令搜索并獲取其 PID,示例如下:
┌──(linuxmi?linuxmi)-[~/www.linuxmi.com]└─$ ps aux | grep cron
在這里,我們可以看到cron的PID是612。這時,我們只需將該進程的PID傳遞給pwdx,就能確定它的工作目錄
┌──(linuxmi?linuxmi)-[~/www.linuxmi.com]└─$ sudo pwdx 691
如下圖:
To access information about cron, you need to use sudo as it is a system process.。我們成功獲取了cron的當前工作目錄,即 /var/spool/cron,在命令執行完成后。當您需要跟蹤目錄范圍問題時,這將是一個非常有價值的故障排除工具。您可以使用 pwdx 快速檢查確定一個進程認為其應從哪個位置運行,以達到準確的目的。
在維基查看 pwdx 的 man 頁面。
6、write
這個強大的小程序可能不會像您一開始想的那樣執行某個特定任務。這個存在于Linux中已經有幾十年了,可以追溯到1975年Unix的第6版。
The write utility actually allows you to send messages to other users on the same system.。您可以針對任何其他登錄的用戶發送消息。輸入您的用戶名,然后您可以進入一個交互式shell,用來書寫任何您想要的文本。您鍵入的所有內容(包括換行符)都將出現在目標用戶的控制臺上。
這里是一個快速示例:
write
這將使您進入一個交互式控制臺,以向相應的用戶發送消息。請記住,這是一種相當侵入性的與其他用戶通信的方式。這將使他們的終端顯示您輸入的文本,而無需任何警告或提示。對他們來說,這將出現在他們的終端上,就像自動出現的信息一樣。由于這是單向通信,他們也無法回復。
雖然目前有更優秀的處理用戶間消息傳遞的方法,但這仍然是計算歷史的一部分。我相信今天仍然可以有一些創造性的用途。
在維基查看官方的 man 頁面。