成為 Linux 終端高手的七種武器

Linux愛好者2017-11-29 01:20:21

(點擊上方公眾號,可快速關注)


英文:efytimes,翻譯:Linux中國/Steve Zhang

linux.cn/article-2413-1.html


Linux 終端不僅是一個鍵入命令的地方。如若你能熟諳這些基礎技巧,那麼你會在絕大多數 Linux 發行版的默認使用的 Bash shell中游刃有餘。


這是howtogeek.com 網站特供給初級用戶升級打怪時不能忘記攜帶的七種武器——



1.Tab 補全


這樣能節省時間,並且對於輸入那些你不很確定其具體名稱的文件和命令來說很方便。比如,當前目錄下有一個名為“really long file name”的文件,你想要刪除它。你可以輸入完整的文件名,但是你必須確保正確地輸入了空格和每個字母。若當前目錄下還有許多以字母“r”開頭的文件,(如果你沒有正確地輸入字符) Bash 將不知道你想要刪除哪一個文件。


如果在當前目錄下存在著另一個名為“really very long file name”的文件,你敲擊了Tab鍵。Bash 將為所有以“r”開頭的文件自動補充“really\ ”部分。此時繼續敲擊Tab鍵,你將得到匹配所有文件名的列表。


2.管道機制


這種機制允許你把一條命令的輸出傳送到另一條命令。按照 UNIX 哲學,每個程序都足夠小,只做一件事並將之做到最好。例如,ls命令列出當前目錄下的所有文件,grep命令搜索輸入其中的指定檢索項。


你可以通過管道機制(|字符)把二者結合起來,在當前目錄下搜索文件。以下給出的命令(在當前文件夾下)搜索關鍵字為“word”的文件:


ls | grep word


3.通配符


“*”(星號)字符是一種匹配任意長度字符的通配符。比如,你想刪除當前文件夾下名為“really long file name”和“really very long file name”的兩個文件,你可以運行以下命令:


rm really*name


這條命令會刪除所有以“really”開頭以“name”結尾的文件。但是,如果你運行的是 rm * 這條命令,你將會刪除文件夾下的所有文件。(譯註:使用通配符時要小心,尤其是你的rm沒有-f確認時!)


4.輸出重定向


“>”字符可以把一條命令的輸出重定向到一個文件或另一條命令。比如,下面這行命令執行完 ls 後會列出當前文件夾下的所有文件,其結果不是在終端顯示,而是輸出到當前文件夾下一個名為“file1”的文件中去:


ls > file1


5.歷史記錄


Bash 能記住你以前輸入過的命令,上、下方向鍵可以逐行調出它們。使用 history 命令打印歷史記錄,以管道機制 grep 選擇性地輸出你想要的結果。


~

.

..


“~”,也叫做波浪符,用來表示當前用戶的主目錄。相比通過 cd /home/name 到達你的主目錄,你可以輸入 cd ~ 來達到相同效果。這點也可以在相關路徑上使用:比如 cd ~/Desktop 能夠到達當前用戶的 Desktop 目錄。


同樣,“.”代表當前目錄,“..”代表當前目錄的父目錄。使用 cd .. 可以返回上一級目錄。它們也可以用在相關路徑上,舉例說明:你當前處在 Desktop 文件夾下,通過 cd ../Documents 命令,你可以轉到與 Desktop 共有同一父文件夾的 Documents 文件夾去。


(譯註:“-”代表前一個目錄,cd – 可以返回到前一個工作目錄。)


6.後臺命令


Bash 默認情況下會在當前終端下執行你鍵入的每條命令。通常這樣是沒有問題的,但是如果你想要在啟動某個應用後繼續使用終端呢?通過輸入 firefox 啟動火狐瀏覽器,你的終端將被錯誤提示等各種信息輸出佔據,直到你關閉火狐瀏覽器為止。在 Bash 中你可以通過在命令結尾添加“&”操作符來後臺執行程序。


firefox &


7.條件執行


Bash 也可以連續執行兩條命令。 第二條命令僅在第一條命令成功執行後才會開始執行。如要如此,你可以通過鍵入“&&”,也就是兩個“&”字符進行分隔,在同一行輸入兩條命令。下面給出的命令會在等待 5 秒後運行 gnome-screenshot 工具:


sleep 5 && gnome-screenshot



看完本文有收穫?請分享給更多人

關注「Linux 愛好者」,提升Linux技能


淘口令複製以下紅色內容,再打開手淘即可購買

範品社,使用¥極客T恤¥搶先預覽(長按複製整段文案,打開手機淘寶即可進入活動內容)

閱讀原文

TAGS:命令代表當前目錄管道機制輸入