雲端計算工程師培訓,Linux不為人知的七個知識點

weixin_33807284發表於2018-07-16

使用Linux最酷的部分之一就是隨著時間的推移而不斷獲得新的知識。每天,你都可能會遇到一個新的實用工具,或者,是一個不熟悉的標誌,就可以做一些有用的事情。這些小細節可能並不總是改變生活,但它們卻是專業知識的基石。

11266364-6a14041a2ec11ec7.jpeg

即使專家也不知道這一切。不論你有麼豐富的經驗,總會有更多的東西需要學習,所以這裡列出關於Linux系統你可能還不知道的七件事。

歷史命令有互動模式

你可能對於Linux系統的命令歷史(history)比較熟悉,這個命令可以提供一個bash輸入命令的標準列表。但是,如果你在很多的“curl”命令中查詢特定的URL時,會覺得這個列表不是很好使用。

使用替代,Linux提供了一種互動式反射搜尋功能來幫你對付上面的煩惱。可以按“Crtl+r”鍵啟用命令歷史查詢功能,可以互動的輸入命令內容,並按“Crtl+r”鍵迴圈在包含輸入內容的命令歷史中查詢。找到後按Enter鍵就可以再次執行,也可以用方向鍵選中,會將命令再次輸入,等待執行。

Cron不是安排任務計劃的唯一方式

Cron命令對於任務水平的使用者來說都是極為有用的,無論是初學者還是經驗豐富的專家,都可以使用該命令制訂系統執行的任務計劃。但是如果只制訂一次的任務,那麼“at”命令就可以讓你在不需要觸碰crontab表的情況下達到目的。

11266364-48950d8a576b9770.jpeg

在命令提示符下輸入“at”並跟隨任務計劃執行時間,命令支援的時間格式很豐富,可以是具體的執行時間以及延後的時間節點等。以下是一些具體的例子:

“at 12:00 PM September 30 2017”

“at now + 1 hour”

“at 9:00 AM tomorrow”

輸入完成後,就可以輸入要執行的任務了。所有任務輸入完成後,另起一行,再按“Ctrl+D”後會顯示“EOF”表示輸入完成。現在就完成了一個任務計劃的設定。進一步,你可以使用“atq”命令來查詢自己未執行的任務列表;也可以使用“atrm”加任務編號來取消任務計劃。

你可以根據功能來查詢命令,並不只是根據命令名

記住每個命令名稱可能有些困難,尤其是對於初學者。幸運的是,Linux附帶了一個通功能描述和命令名稱來搜尋的man工具。下一次,如果你很難記住你要使用的命令的名稱,你可以試著用一個恰當的描述來查詢你想要的命令。例如,關於建立檔案系統會返回一個列表的名稱和描述工具,包括“biuld”或“filesystem”。現在,你可以輸入“man build filesystem”,man工具會根據你的輸入顯示相應的命令。

11266364-ea149281b12d76d3.jpeg

man會接收一個或多個字串作為引數,但它也有這樣的選項- R,它允許你通過正規表示式搜尋。

一個替代系統允許你管理版本

如果那曾經參與過軟體開發,那麼你就會知道跨專案版本管理的重要性。許多Linux發行版都有工具來處理內建的不同版本。

可執行檔案像Java,往往象徵性地連結到/etc/alternative。這個目錄,反過來,符號連結來儲存二進位制檔案和提供管理這些連結介面。Java是最常用的語言的替代品,但是有一點的配置,它也可以作為一個應用程式像NVM和RVM置換( 例如NodeJS、Ruby)。

在基於Debian的系統,你可以建立和管理這些連結更新方案。在CentOS,工具就是所謂的替代品。通過更改替代檔案中的連結,你可以安裝多種語言版本,並在不同的情況下使用不同的二進位制檔案。當然,這不僅僅侷限於程式語言。該替代系統還支援你可能希望從命令列執行的任何可執行檔案。

11266364-1a5db82afc773f68.jpeg

“shred”命令

大多數人使用“rm”命令來刪除檔案,但是事實上真的把檔案刪除了麼?其實系統並未按你預想的那樣做,系統會只是將檔案系統同磁碟檔案間的硬連結刪除。這些“0”和“1”的值在其被另一個應用覆蓋前一直存在,系統這種處理方式對於敏感資料來說是非常不安全的。

“shred”命令是“rm”的絕對方式,當你“shred”檔案時,這個檔案的物理資料被隨機覆蓋多次。甚至還可以通過選項用一串零在刪除檔案後覆蓋原來的資料。

完全的刪除檔案並用零覆蓋它的命令是:

shred -u -z [file name]

還可以新增帶有一個數字作為引數的n選項,這個選項允許你指定進行隨機覆蓋資料的迭代次數。

輸入長檔案路徑時“自動更正”功能來避免差錯

有多少次你輸入了一個絕對檔案路徑,卻得到“沒有這樣的檔案或目錄”訊息?每個人都不想體會面對一長串錯誤路徑的痛苦,幸運的是,Linux有一個簡單的解決方案。

內建的“shopt”命令允許你設定不同的選項來改變你shell的行為。設定cdspell選項為“on”可以避免一個字母輸入錯誤而造成的令人頭痛檔案路徑問題。你可以使用“shopt -s cdspell”命令來把這個選項啟用。一旦被啟用,檔案路徑會自動更正為最接近的匹配當你試圖進入的目錄。

shell選項是節省時間的一種很好的方式(更不用說麻煩了),還有很多其他的選項。要看一個完整的shell選項列表,可以不帶引數執行shopt。要知道這是bash的一個特徵,所以,如果你使用的是其它shell,可能會不能使用這個命令。

11266364-fcea26b7008ab28d.jpeg

快速返回當前目錄

如果配置過一箇中等程度的複雜系統,那麼你可能發現自己頻繁地更改目錄,很難跟蹤你所在的位置。如果執行命令後自動返回到當前位置,那不是很好嗎?

Linux實際上提供了一個解決這個問題的方法,它非常簡單。如果進入另一個目錄做某事,然後返回到當前工作目錄,請將命令用括號括起來。這裡有一個例子,你可以自己進行測試。讓你的當前目錄的一個註記,然後執行:

(cd /etc && ls -a)

這就會顯示/etc/目錄的內容而不是你當前目錄的內容。

相關文章