Linux中國

十個鮮為人知的 Linux 命令 – Part 4

本系列的第四篇包含了另外的鮮為人知的Linux命令,這些值得去了解。也許你已經知道了這些命令,毫無疑問你是一個勇於探索的資深Linux用戶。

32. strace Command

strace是一個調試工具並被主要用於Linux的故障排除。它可能在你的系統內沒有默認安裝,你可能需要apt 或者 yum 安裝所需要的包。

使用strace命令追蹤一個命令的執行。

root@tecmint [~]# strace pwd

示例輸出

execve("/bin/pwd", ["pwd"], [/* 29 vars */]) = 0
brk(0)                                  = 0x728000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f29b0df2000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=38427, ...}) = 0
mmap(NULL, 38427, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f29b0de8000
close(3)                                = 0
open("/lib64/libc.so.6", O_RDONLY)      = 3
read(3, "177ELF21133>13603551I;"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1922152, ...}) = 0
mmap(0x3b49000000, 3745960, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3b49000000
mprotect(0x3b4918a000, 2093056, PROT_NONE) = 0
mmap(0x3b49389000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x189000) = 0x3b49389000
mmap(0x3b4938e000, 18600, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3b4938e000
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f29b0de7000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f29b0de6000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f29b0de5000
....

strace命令有大量的參數和選項,請參考man頁來獲取詳細信息。

33. disown -a && exit 命令

大多數系統管理員使用screen 命令來控制運行在終端後台的作業。讓我們假設一下如果你有一個長期運行的作業並想要將它從終端中脫離,你可以用screen命令來這麼做。但是如果你不知道如何使用screen,那麼disown可以用來救急。

disown命令可以在後台持續運行任務,即使你關閉了終端會話。disown命令的語法是:

root@tecmint [~]# Command; disown -a && exit

為了在終端中再次脫離一個已經長期運行的任務(譯註:可能已經bg運行了,但是並沒有脫離終端),使用jobs命令來找出任務號,接著使用disown %n,這裡的%n是作業號。為了驗證作業確實在運行,使用ps 或者 top 命令nohup命令也是一個disown命令的替代品。

34. getconf LONG_BIT 命令

上面的命令能顯示你的機器架構是32 bit 或者 64 位?

root@tecmint [~]# getconf LONG_BIT

32

35. 終端上顯示日期

下面的命令是幾個命令的集合,確切地說是一個腳本。對於在shell或者終端下工作的人來說,沒有GUI界面看到當前系統日期是一個乏味的工作。你可以用『date『命令查看今天的日期。

只要在提示符後輸入如下的命令你就會在終端的右上角看到日期時間

root@tecmint [~]# while sleep 1;do tput sc;tput cup 0 $(($(tput cols)-29));date;tput rc;done &

在終端下顯示日期

36. convert 命令

在寫教程的時候,我經常需要生成輸出,很多時候是圖片格式的輸出。上面的命令集合併不適合我。假設我需要tree命令的圖片格式的輸出(對 /etc/x11 目錄 )。

root@tecmint:/etc/X11# tree | convert label:@- /home/avi/tree.png

上面命令的輸出可以在一個特定的位置(這裡是我的主目錄)下看到,文件名是tree.png

37. watch -t -n1 「date +%T|figlet」

記住「figlet」命令在我們早期的文章「20 Funny Commands of Linux」中的描述。這個命令非常酷,這次我們會通過管道輸出到『figlet『而在終端上顯示一個動畫電子鐘。

你自己檢查一下,記住你必須已經在系統上安裝了figlet,用apt 或者 yum安裝所需要的包。

root@tecmint [~]# watch -t -n1 "date +%T|figlet"

示例輸出

 _  ___    ____   ___    _____ _  _                                                                                             Fri Nov 29 10:29:34 GMT 
/ |/ _  _|___  / _  _|___ /| || |
| | | | (_) __) | (_) (_) |_ | || |_
| | |_| |_ / __/ __, |_ ___) |__   _|
|_|___/(_)_____|  /_/(_)____/   |_|

38. host 和 dig 命令

雖然「host」 和 「dig」命令不那麼鮮為人知,仍然很少使用。host命令是一個DNS查詢工具。

root@tecmint [~]# host www.google.com

www.google.com has address 173.194.66.147
www.google.com has address 173.194.66.105
www.google.com has address 173.194.66.99
www.google.com has address 173.194.66.104
www.google.com has address 173.194.66.106
www.google.com has address 173.194.66.103
www.google.com has IPv6 address 2a00:1450:400c:c03::68

(譯註:事實上,我覺得dig命令是最強大的,自從有了dig,我就再也不用 nslookup 了。)

root@tecmint [~]# dig www.google.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> www.google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<

39. dstat 命令

dstat是一個多用途的工具,它會依據系統資源生成統計。默認情況下你的系統可能沒有安裝『dstat『。在使用這個彩色的描述系統信息的生成器前使用apt 或者 yum來安裝。

root@tecmint [~]# dstat

dstat 命令

40. bind -p 命令

bind -p『會顯示所有的BASH shell可用的快捷方式。

root@tecmint [~]# bind -p

"C-g": abort 
"C-xC-g": abort 
"eC-g": abort 
"C-j": accept-line
"C-m": accept-line 
# alias-expand-line (not bound) 
# arrow-key-prefix (not bound) 
# backward-byte (not bound) 
"C-b": backward-char 
"eOD": backward-char 
"e[D": backward-char 
"e!": complete-command 
"e/": complete-filename 
"e@": complete-hostname 
"e{": complete-into-braces 
"e~": complete-username 
"e$": complete-variable 
# copy-backward-word (not bound)
# copy-forward-word (not bound) 
# copy-region-as-kill (not bound)
....
....

41. touch /forcefsck

下面的命令會在root目錄下創建一個空的文件夾'forcefsck'。這會強制Linux系統在下次啟動時檢查文件系統。

root@tecmint [~]# touch /forcefsck

今天這些就是全部。因為你們愛『鮮為人知的命令『 ,因此我們將繼續這個系列,本系列的下一篇文章將很快發布。

不要走開繼續關注Tecmint。不要忘記在評論欄里留下你們有價值的反饋。幫我們一個忙,喜愛、分享我們的文章,並幫我們傳播。

via: http://www.tecmint.com/10-lesser-known-effective-linux-commands-part-iv/

譯者:geekpi 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    這個站點使用 Akismet 來減少垃圾評論。了解你的評論數據如何被處理

    More in:Linux中國

    Linux中國

    關於Linux防火牆iptables的面試問答

    Nishita Agarwal是Tecmint的用戶,她將分享關於她剛剛經歷的一家公司(印度的一家私人公司Pune)的面試經驗。在面試中她被問及許多不同的問題,但她是iptables方面的專家,因此她想分享這些關於iptables的問題和相應的答案給那些以後可能會進行相關面試的人。 所有的問題和相應的答案都基於Nishita Agarwal的記憶並經過了重寫。 嗨,朋友!我叫Nishita Agarwal。我已經取得了理學學士學位,我的專業集中在UNIX和它的變種(BSD,Linux)。它們一直深深的吸引著我。我在存儲方面有1年多的經驗。我正在尋求職業上的變化,並將供職於印度的P
    Linux中國

    Lets Encrypt 已被所有主流瀏覽器所信任

    旨在讓每個網站都能使用 HTTPS 加密的非贏利組織 Lets Encrypt 已經得了 IdenTrust的交叉簽名,這意味著其證書現在已經可以被所有主流的瀏覽器所信任。從這個裡程碑事件開始,訪問者訪問使用了Lets Encrypt 證書的網站不再需要特別配置就可以得到 HTTPS 安全保護了。 Lets Encrypt 的兩個中級證書 ...
    Linux中國

    SSL/TLS 加密新紀元 – Lets Encrypt

    根據 Let's Encrypt 官方博客消息,Let's Encrypt 服務將在下周(11 月 16 日)正式對外開放。 Let's Encrypt 項目是由互聯網安全研究小組(ISRG,Internet Security Research Group)主導並開發的一個新型數字證書認證機構(CA,Certificate ...