在前四篇 “鮮為人知的Linux命令” 系列文章受到高度讚賞之後,我們將為廣大讀者呈上此係列的最後一篇文章,雖然是最後一篇,但是其重要性毫不遜於前幾篇。
前幾篇文章的地址如下:
42. lsb_release
‘lsb_release’ 命令會列印特殊發行版的資訊。如果 lsb_release 還沒安裝,你可以在基於 Debain 的發行版中用命令 apt 安裝,在基於 Red Hat 系統下用 yum 來安裝包。
1 2 3 4 5 6 |
# lsb_release -a LSB Version: :base-4.0-ia32:base-4.0-noarch:core-4.0-ia32:core-4.0-noarch:graphics-4.0-ia32: Distributor ID: CentOS Description: CentOS release 6.3 (Final) Release: 6.3 Codename: Final |
注意:選項‘-a’,會顯示有關版本、ID、詳情、發行號和研發代號的全部可用資訊。
43. nc -zv localhost 80
檢查 80 埠是否被開啟。我們可以用任何其他埠號替換‘80’來檢查埠是否被開啟或關閉。
1 2 |
$ nc -zv localhost 80 Connection to localhost 80 port [tcp/http] succeeded! |
(譯註:出現該資訊表示80埠已被開啟。)
檢查 8080 埠是否啟用
1 2 |
$ nc -zv localhost 8080 nc: connect to localhost port 8080 (tcp) failed: Connection refused |
(譯註:該資訊顯示了8080埠並未開啟。)
44. curl ipinfo.io
該命令會輸出並提供 IP 地址 的 ‘地理位置’ 。
1 |
$ curl ipinfo.io |
“ip”: “xx.xx.xx.xx”, “hostname”: “triband-del-aa.bbb.cc.ddd.bol.net.in”, “city”: “null”, “region”: “null”, “country”: “IN”, “loc”: “20,77”, “org”: “AS17813 Mahanagar Telephone Nigam Ltd”.
45. find . -user root
該命令會輸出當前目錄下( root )使用者所擁有的檔案(譯註:即owner為root)。下面是在當前目錄下列出的所有 ‘root’使用者擁有的檔案。
1 2 3 4 5 6 7 8 9 10 |
# find . -user root ./.recently-used.xbel ./.mysql_history ./.aptitude ./.aptitude/config ./.aptitude/cache ./.bluefish ./.bluefish/session-2.0 ./.bluefish/autosave ./.bash_history |
在當前路徑下列出所有 ‘avi’ 使用者擁有的檔案
1 2 3 4 5 6 7 8 9 10 11 |
# find . -user avi ./.cache/chromium/Cache/f_002b66 ./.cache/chromium/Cache/f_001719 ./.cache/chromium/Cache/f_001262 ./.cache/chromium/Cache/f_000544 ./.cache/chromium/Cache/f_002e40 ./.cache/chromium/Cache/f_00119a ./.cache/chromium/Cache/f_0014fc ./.cache/chromium/Cache/f_001b52 ./.cache/chromium/Cache/f_00198d ./.cache/chromium/Cache/f_003680 |
46. sudo apt-get build-dep ffmpeg
該命令會在相應的包安裝時自動構建依賴關係。因此包安裝的過程將非常流暢,也是非常容易的。
1 2 3 4 5 6 7 8 9 10 11 |
# apt-get build-dep ffmpeg libxinerama-dev libxml-namespacesupport-perl libxml-sax-expat-perl libxml-sax-perl libxml-simple-perl libxrandr-dev libxrender-dev x11proto-render-dev x11proto-xinerama-dev xulrunner-dev The following packages will be upgraded: libpixman-1-0 1 upgraded, 143 newly installed, 0 to remove and 6 not upgraded. Need to get 205 MB of archives. After this operation, 448 MB of additional disk space will be used. Do you want to continue [Y/n]? |
47. lsof -iTCP:80 -sTCP:LISTEN
該命令會輸出所用正在使用 80 埠的 程式/服務 的名稱。在 80 埠執行下列命令會更好理解這個命令,它會列出所用執行在該埠的 程式/服務 。
1 2 3 4 5 6 7 8 |
root@localhost:/home/avi# lsof -iTCP:80 -sTCP:LISTEN COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME apache2 1566 root 5u IPv6 5805 0t0 TCP *:www (LISTEN) apache2 1664 www-data 5u IPv6 5805 0t0 TCP *:www (LISTEN) apache2 1665 www-data 5u IPv6 5805 0t0 TCP *:www (LISTEN) apache2 1666 www-data 5u IPv6 5805 0t0 TCP *:www (LISTEN) apache2 1667 www-data 5u IPv6 5805 0t0 TCP *:www (LISTEN) apache2 1668 www-data 5u IPv6 5805 0t0 TCP *:www (LISTEN) |
同樣,你可以檢查執行在埠 22 的程式/服務。
1 2 3 4 |
root@localhost:/home/avi# lsof -iTCP:22 -sTCP:LISTEN COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME sshd 2261 root 3u IPv4 8366 0t0 TCP *:ssh (LISTEN) sshd 2261 root 4u IPv6 8369 0t0 TCP *:ssh (LISTEN) |
48. find -size +100M
這條find命令會在當前目錄下列出所有超過指定大小的檔案(這裡指定為100 MB),遞迴查詢。
1 2 3 4 5 6 7 8 9 |
# find -size +100M ./.local/share/Trash/files/linuxmint-15-cinnamon-dvd-32bit.iso ./Downloads/Fedora-Live-Desktop-i686-19-1.iso ./Downloads/Ant Videos/shakira 2.avi ./Downloads/Deewar.avi ./Desktop/101MSDCF/MOV02224.AVI ./Desktop/101MSDCF/MOV02020.AVI ./Desktop/101MSDCF/MOV00406.MP4 ./Desktop/squeeze.iso |
在當前目錄遞迴的列出所用大於 1000 MB 的檔案。
1 2 3 4 5 6 |
root@localhost:/home/avi# find -size +1000M ./Downloads/The Dark Knight 2008 hindi BRRip 720p/The Dark Knight.mkv.part ./Downloads/Saudagar - (1991) - DVDRiP - x264 - AAC 5.1 - Chapters - Esubs - [DDR]/Saudagar - (1991) - DVDRiP - x264 - AAC 5.1 - Chapters - Esubs - [DDR].mkv ./Downloads/Deewar.avi ./Desktop/squeeze.iso |
49. pdftk
pdftk命令用來合併幾個pdf檔案。你必須安裝有 pdftk 程式。如果還沒有,請用apt或yum來獲取相應的包。
1 |
$ pdftk 1.pdf 2.pdf 3.pdf …. 10.pdf cat output merged.pdf |
50. ps -LF -u user_name
該命令會輸出一個使用者的程式和執行緒。選項“L”(列出執行緒),選項“-F”(完整格式化)
1 2 3 4 5 6 7 8 9 10 |
$ ps -LF -u avi avi 21645 3717 21766 0 5 66168 117164 1 18:58 ? 00:00:00 /usr/ avi 21645 3717 21768 0 5 66168 117164 1 18:58 ? 00:00:00 /usr/ avi 22314 3717 22314 0 2 42797 50332 0 19:00 ? 00:00:40 /usr/ avi 22314 3717 22316 0 2 42797 50332 1 19:00 ? 00:00:00 /usr/ avi 22678 24621 22678 0 1 969 1060 1 21:05 pts/1 00:00:00 ps -L avi 23051 3717 23051 0 2 37583 45444 1 19:03 ? 00:00:52 /usr/ avi 23051 3717 23053 0 2 37583 45444 0 19:03 ? 00:00:03 /usr/ avi 23652 1 23652 0 2 22092 12520 0 19:06 ? 00:00:22 gnome avi 23652 1 23655 0 2 22092 12520 0 19:06 ? 00:00:00 gnome |
51. startx – :1
分享 X 會話。如果你需要頻繁的(以不同使用者身份)登入或登出桌面時,那就需要 startx 來救場。這個命令建立了一個新的會話從而避免了在一個會話中反覆的登入和登出。為了在X會話間進行交換,我們可以通過‘ctrl+Alt+F7’和‘ctrl+Alt+F8’的組合鍵來完成。
注意:快捷鍵“ctrl+Alt+F1~F6“是為了控制檯會話準備的,而“ctrl+Alt+F7~F12”則為X會話服務。因此我們有6個控制檯會話和6個X會話,不需要頻繁的登入登出。上面的順序適用於大多數的發行版,然而不同發行版可能會有不同的實現。我在Debian中嘗試過,執行的很好。