十個(gè)鮮為人知的 Linux 命令 - Part 4
繼續(xù)我們的"鮮為人知"系列,本系列的第四篇會(huì)讓你了解一些有趣 又 動(dòng)態(tài)的命令。這里我們進(jìn)入實(shí)際的教程,沒有很多理論。
十一個(gè)鮮為人知的 Linux 命令 - Part 1
本系列的第四篇包含了另外的鮮為人知的Linux命令,這些值得去了解。也許你已經(jīng)知道了這些命令,毫無(wú)疑問你是一個(gè)勇于探索的資深Linux用戶。
32. strace Command
strace是一個(gè)調(diào)試工具并被主要用于Linux的故障排除。它可能在你的系統(tǒng)內(nèi)沒有默認(rèn)安裝,你可能需要apt 或者 yum 安裝所需要的包。
使用strace命令追蹤一個(gè)命令的執(zhí)行。
- 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, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360\355\1I;\0\0\0"..., 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命令有大量的參數(shù)和選項(xiàng),請(qǐng)參考man頁(yè)來獲取詳細(xì)信息。
33. disown -a && exit 命令
大多數(shù)系統(tǒng)管理員使用screen 命令來控制運(yùn)行在終端后臺(tái)的作業(yè)。讓我們假設(shè)一下如果你有一個(gè)長(zhǎng)期運(yùn)行的作業(yè)并想要將它從終端中脫離,你可以用screen命令來這么做。但是如果你不知道如何使用screen,那么disown可以用來救急。
disown命令可以在后臺(tái)持續(xù)運(yùn)行任務(wù),即使你關(guān)閉了終端會(huì)話。disown命令的語(yǔ)法是:
- root@tecmint [~]# Command; disown -a && exit
為了在終端中再次脫離一個(gè)已經(jīng)長(zhǎng)期運(yùn)行的任務(wù)(譯注:可能已經(jīng)bg運(yùn)行了,但是并沒有脫離終端),使用jobs命令來找出任務(wù)號(hào),接著使用disown %n,這里的%n是作業(yè)號(hào)。為了驗(yàn)證作業(yè)確實(shí)在運(yùn)行,使用ps 或者 top 命令。nohup命令也是一個(gè)disown命令的替代品。
34. getconf LONG_BIT 命令
上面的命令能顯示你的機(jī)器架構(gòu)是32 bit 或者 64 位?
- root@tecmint [~]# getconf LONG_BIT
- 32
35. 終端上顯示日期
下面的命令是幾個(gè)命令的集合,確切地說是一個(gè)腳本。對(duì)于在shell或者終端下工作的人來說,沒有GUI界面看到當(dāng)前系統(tǒng)日期是一個(gè)乏味的工作。你可以用‘date‘命令查看今天的日期。
只要在提示符后輸入如下的命令你就會(huì)在終端的右上角看到日期和時(shí)間。
- root@tecmint [~]# while sleep 1;do tput sc;tput cup 0 $(($(tput cols)-29));date;tput rc;done &
36. convert 命令
在寫教程的時(shí)候,我經(jīng)常需要生成輸出,很多時(shí)候是圖片格式的輸出。上面的命令集合并不適合我。假設(shè)我需要tree命令的圖片格式的輸出(對(duì) /etc/x11 目錄 )。
- root@tecmint:/etc/X11# tree | convert label:@- /home/avi/tree.png
上面命令的輸出可以在一個(gè)特定的位置(這里是我的主目錄)下看到,文件名是tree.png。
37. watch -t -n1 “date +%T|figlet”
記住“figlet”命令在我們?cè)缙诘奈恼?ldquo;20 Funny Commands of Linux”中的描述。這個(gè)命令非???,這次我們會(huì)通過管道輸出到‘figlet‘而在終端上顯示一個(gè)動(dòng)畫電子鐘。
你自己檢查一下,記住你必須已經(jīng)在系統(tǒng)上安裝了figlet,用apt 或者 yum安裝所需要的包。
- root@tecmint [~]# watch -t -n1 "date +%T|figlet"
示例輸出
- _ ___ ____ ___ _____ _ _ Fri Nov 29 10:29:34 GMT
- / |/ _ \ _|___ \ / _ \ _|___ /| || |
- | | | | (_) __) | (_) (_) |_ \| || |_
- | | |_| |_ / __/ \__, |_ ___) |__ _|
- |_|\___/(_)_____| /_/(_)____/ |_|
38. host 和 dig 命令
雖然“host” 和 “dig”命令不那么鮮為人知,仍然很少使用。host命令是一個(gè)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
(譯注:事實(shí)上,我覺得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是一個(gè)多用途的工具,它會(huì)依據(jù)系統(tǒng)資源生成統(tǒng)計(jì)。默認(rèn)情況下你的系統(tǒng)可能沒有安裝‘dstat‘。在使用這個(gè)彩色的描述系統(tǒng)信息的生成器前使用apt 或者 yum來安裝。
- root@tecmint [~]# dstat
40. bind -p 命令
‘bind -p‘會(huì)顯示所有的BASH shell可用的快捷方式。
- root@tecmint [~]# bind -p
- "\C-g": abort
- "\C-x\C-g": abort
- "\e\C-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
下面的命令會(huì)在root目錄下創(chuàng)建一個(gè)空的文件夾'forcefsck'。這會(huì)強(qiáng)制Linux系統(tǒng)在下次啟動(dòng)時(shí)檢查文件系統(tǒng)。
- root@tecmint [~]# touch /forcefsck
今天這些就是全部。因?yàn)槟銈儛?lsquo;鮮為人知的命令‘ ,因此我們將繼續(xù)這個(gè)系列,本系列的下一篇文章將很快發(fā)布。
不要走開繼續(xù)關(guān)注Tecmint。不要忘記在評(píng)論欄里留下你們有價(jià)值的反饋。幫我們一個(gè)忙,喜愛、分享我們的文章,并幫我們傳播。
via: http://www.tecmint.com/10-lesser-known-effective-linux-commands-part-iv/