你值得了解的 10 個有趣的 Linux 命令列小技巧

Aaron Kili發表於2017-01-15

我非常喜歡使用命令,因為它們比 GUI(圖形使用者介面)應用程式對 Linux 系統提供更多的控制,因此,我一直在尋找一些有趣的方法讓 Linux 的操作變得簡單好玩,主要是基於終端操作。

當我們發現使用 Linux 的新技巧時,尤其是像我這樣的命令列極客,我們總會感到非常來勁。

建議閱讀: 5 有趣的 Linux 命令列技巧 - 第一部分

而且我們也會很想與數百萬 Linux 使用者分享新學到的實踐或命令,特別是那些還在使用自己的方式操作這個令人興奮的作業系統的新手們。

建議閱讀: 10 個對新手有用的 Linux 命令列技巧 - 第二部分

在這篇文章中,我們將回顧一系列有用的命令列小技巧,它們可以顯著地提高你的 Linux 使用技能。

1、 在 Linux 中鎖定或隱藏檔案或目錄

鎖定檔案或目錄最簡單的方法是使用 Linux 檔案許可權。如果你是檔案或目錄的所有者,你可以阻止其他使用者和組訪問(刪除、讀取、寫入、執行)它,如下所示:

$ chmod 700 tecmint.info
或
$ chmod go-rwx tecmint.info

想要了解更多有關 Linux 檔案許可權的內容,請閱讀這篇文章在 Linux 中管理使用者和組,檔案許可權和屬性

為了實現對系統中的其他使用者隱藏檔案或目錄,可以通過在檔案或目錄開頭新增 . 的方式重新命名:

$ mv filename .tecmint.info

2、 在 Linux 中將 rwx 許可權轉為八進位制格式

預設情況下,當你執行 ls 命令之後,它會使用 rwx 格式顯示檔案許可權,為了瞭解 rwx 格式和八進位制格式的等同性,你可以學習如何在 Linux 中將 rwx 許可權轉為八進位制格式

3、 當 sudo 命令執行失敗時怎麼使用 su 命令

雖然 sudo 命令被用來以超級使用者許可權執行命令,但是在某些情況下它也會執行失敗,如下所示。

在這裡,我想清空一個大檔案的內容,其檔名為 uptime.log,但是即便我是使用 sudo 命令也執行失敗了。

$ cat /dev/null >/var/log/uptime.log
$ sudo cat /dev/null >/var/log/uptime.log

在 Linux 中清空大檔案的內容

在 Linux 中清空大檔案的內容

遇到這種情況,你需要使用 su 命令切換到 root 使用者,然後像下面這樣去執行清空操作:

$ su
$ sudo cat /dev/null >/var/log/uptime.log
$ cat /var/log/uptime.log

切換到超級使用者

切換到超級使用者

嘗試理解 su 和 sudo 之間的區別,另外,通過閱讀它們的手冊頁以瞭解更多的使用指南:

$ man sudo
$ man su

4、 在 Linux 中結束一個程式

有些時候,當你想使用 kill、killall、pkill 命令結束一個程式時,它們有可能無法生效,你可能會看到該程式仍然還在系統上執行。

如果要強制結束一個程式,可以傳送 -KILL 訊號給該程式。

首先獲取指定程式 ID,然後像下面這樣結束該程式:

$ pidof vlc
$ sudo kill -KILL 10279

在 Linux 中查詢和結束程式

在 Linux 中查詢和結束程式

檢視 kill 命令以獲取更多的使用選項和資訊。

5、 在 Linux 中永久刪除檔案

一般情況下,我們通過使用 rm 命令將檔案從 Linux 系統中刪除。然而,這些檔案並沒有被真正的刪除,它們仍被儲存在那裡並隱藏在你的硬碟中,其他使用者仍然可以在 Linux 中恢復刪除的檔案並檢視。

為了防止這種情況發生,我們可以使用 shred 命令來覆寫檔案內容,並在覆蓋完成後選擇刪除檔案。

$ shred -zvu tecmint.pdf

上述命令中所使用的選項說明:

  1. -z – 最後一次使用 0 進行覆蓋以隱藏覆寫動作。
  2. -u – 覆寫後截斷並移除檔案。
  3. -v – 顯示詳細過程。

在 Linux 中永久刪除檔案

在 Linux 中永久刪除檔案

閱讀 shred 手冊以獲取更多的使用資訊。

$ man shred

6、 在 Linux 中重新命名多個檔案

你可以通過使用 rename 命令隨時在 Linux 中重新命名多個檔案

rename 命令會根據第一個引數中的規則重新命名指定檔案。

以下命令會將所有 .pdf 檔案重新命名為 .doc 檔案,使用的規則為 's/\.pdf$/\.doc/'

$ rename -v 's/\.pdf$/\.doc/' *.pdf

在 Linux 中重新命名多個檔案

在 Linux 中重新命名多個檔案

在接下來的例子中,我們將通過重新命名所有匹配 "*.bak" 的檔案來移除其擴充名,使用的規則是 's/\e.bak$//'

$ rename -v 's/\e.bak$//' *.bak

7、 在 Linux 中檢查單詞拼寫

look 命令用於顯示檔案中以指定字串為字首的任意行,同時它也可以幫你檢查命令列中給定單詞的拼寫。儘管它並不是那麼有效和可靠,但它仍然算得上是其他強大的拼寫檢查工具的有用替代品。

$ look linu
$ look docum

在 Linux 中檢查單詞拼寫

在 Linux 中檢查單詞拼寫

8、 按關鍵字搜尋手冊頁

man 命令用於顯示命令的手冊頁,當使用 -k 選項時,它會將關鍵字 printf(或者如下命令中的關鍵字 adjustapachephp )作為正規表示式,來搜尋所有匹配該名稱手冊頁,並顯示其簡介。

$ man -k adjust
$ man -k apache
$ man -k php

按關鍵字搜尋手冊頁

按關鍵字搜尋手冊頁

9、 在 Linux 中實時監測日誌

watch 命令可以定期執行另一個 Linux 命令並全屏顯示該命令的執行結果。當 watch 命令與 tail 命令(用於檢視檔案結尾的 Linux 命令)配合使用時,可以監測到日誌檔案的日誌記錄情況。

在以下示例中,你將實時監測系統認證日誌檔案。開啟兩個終端視窗,在第一個視窗中實時監測該日誌檔案,如下:

$ sudo watch tail /var/log/auth.log

你也可以使用 tail 命令(顯示檔案結尾的 Linux 命令)的 -f 選項實時監測檔案變化。這樣,我們就可以在日誌檔案中看到日誌的生成情況。

$ sudo tail -f /var/log/auth.log

接著,在第二個終端視窗中執行以下命令,之後,你就可以在第一個終端視窗中觀察日誌檔案內容:

$ sudo mkdir -p /etc/test
$ sudo rm -rf /etc/test

10、 列出所有 Shell 內建命令

shell 內建命令是一個命令或者函式,從內部呼叫並直接在 shell 裡執行,而不是從硬碟載入外部的可執行程式來執行。

列出所有 shell 內建命令及其語法,執行如下命令:

$ help

作為結束語,命令列小技巧不僅能派得上用場,而且讓學習和使用 Linux 變得更加簡單有趣,尤其是對新手來講。

你也可以通過留言給我們分享其他在 Linux 中有用有趣的命令列小技巧


作者簡介:

Aaron Kili 是一名 Linux 和 F.O.S.S 的愛好者,未來的 Linux 系統管理員、網站開發人員,目前是 TecMint 的寫作者,他喜歡用電腦工作,並且樂於分享知識。

 


via: http://www.tecmint.com/linux-command-line-tricks-and-tips-worth-knowing/

作者:Aaron Kili 譯者:zhb127 校對:wxy

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

相關文章