歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 給新手的 10 個有用 Linux 命令行技巧

給新手的 10 個有用 Linux 命令行技巧

日期:2017/2/28 13:57:29   编辑:Linux教程

我記得我第一次使用 Linux 的時候,我還習慣於 Windows 的圖形界面,我真的很討厭 Linux 終端。那時候我覺得命令難以記憶,不能正確使用它們。隨著時間推移,我意識到了 Linux 終端的優美、靈活和可用性,說實話,我沒有一天不使用它。今天,我很高興和剛開始接觸 Linux 的人一起來分享一些有用的技巧和提示,希望能幫助他們更好的向 Linux 過渡,並幫助他們學到一些新的東西(希望如此)。

10 個 Linux 命令行技巧

  • 5 個有趣的 Linux 命令行技巧
  • 管理 Linux 文件類型的 5 個有用命令

這篇文章希望向你展示一些不需要很高的技術就可以像一個高手一樣使用 Linux 終端的有用技巧。你只需要一個 Linux 終端和一些自由時間來體會這些命令。

1. 找到正確的命令

執行正確的命令對你的系統來說非常重要。然而在 Linux 中有如此多的、難以記憶的各種的命令行。那麼怎樣才能找到你需要的正確命令呢?答案是 apropos。你只需要運行:

  1. # apropos <description>

其中你要用真正描述你要查找的命令的語句代替 “description”。這裡有一個例子:

  1. # apropos "list directory"
  2. dir(1)-list directory contents
  3. ls(1)-list directory contents
  4. ntfsls (8)-list directory contents on an NTFS filesystem
  5. vdir (1)-list directory contents

左邊你看到的是命令,右邊是它們的描述。

2. 執行之前的命令

很多時候你需要一遍又一遍執行相同的命令。盡管你可以重復按你鍵盤上的向上光標鍵,但你也可以用 history 命令替代。這個命令會列出自從你上次啟動終端以來所有輸入過的命令:

  1. # history
  2. 1fdisk-l
  3. 2apt-get install gnome-paint
  4. 3hostname tecmint.com
  5. 4hostnamectl tecmint.com
  6. 5manhostnamectl
  7. 6hostnamectl--set-hostname tecmint.com
  8. 7hostnamectl-set-hostname tecmint.com
  9. 8hostnamectlset-hostname tecmint.com
  10. 9mount-t "ntfs"-o
  11. 10fdisk-l
  12. 11mount-t ntfs-3g/dev/sda5 /mnt
  13. 12mount-t rw ntfs-3g/dev/sda5 /mnt
  14. 13mount-t -rw ntfs-3g/dev/sda5 /mnt
  15. 14mount-t ntfs-3g/dev/sda5 /mnt
  16. 15mountman
  17. 16manmount
  18. 17mount-t -o ntfs-3g/dev/sda5 /mnt
  19. 18mount-o ntfs-3g/dev/sda5 /mnt
  20. 19mount-ro ntfs-3g/dev/sda5 /mnt
  21. 20cd/mnt
  22. ...

正如你上面看到的,你會得到一個你運行過的命令的列表。每一行中有一個數字表示你在第幾行輸入了命令。你可以通過以下方法重新調用該命令:

  1. !#

其中要用命令的實際編號代替 #。為了更好的理解,請看下面的例子:

  1. !501

等價於:

  1. # history

3. 使用 midnight 命令

如果你不習慣使用類似 cd、cp、mv、rm 等命令,你可以使用 midnight 命令。它是一個簡單的可視化 shell,你可以在上面使用鼠標:

Midnight 命令

借助 F1 到 F12 鍵,你可以輕易地執行不同任務。只需要在底部選擇對應的命令。要選擇文件或者目錄,按下 “Insert” 鍵。

簡而言之 midnight 就是所謂的 “mc”。要安裝 mc,只需要運行:

  1. $ sudoapt-get install mc [OnDebian based systems]

  1. #yum install mc [OnFedora based systems]

下面是一個使用 midnight 命令器的簡單例子。通過輸入以下命令打開 mc:

  1. # mc

現在使用 TAB 鍵選擇不同的窗口 - 左和右。我有一個想要移動到 “Software” 目錄的 LibreOffice 文件:

Midnight 命令移動文件

按 F6 按鈕移動文件到新的目錄。MC 會請求你確認:

移動文件到新目錄

確認了之後,文件就會被移動到新的目標目錄。

  • 擴展閱讀:如何在 Linux 中使用 Midnight 命令文件管理器

4. 在指定時間關閉計算機

有時候你需要在下班幾個小時後再關閉計算機。你可以通過使用下面的命令在指定時間關閉你的計算機:

  1. $ sudoshutdown21:00

這會告訴你在你指定的時間關閉計算機。你也可以告訴系統在指定分鐘後關閉:

  1. $ sudoshutdown+15

這表示計算機會在 15 分鐘後關閉。

5. 顯示已知用戶的信息

你可以使用一個簡單的命令列出你 Linux 系統的用戶以及一些關於它們的基本信息。

  1. # lslogins

這會輸出下面的結果:

  1. UID USER PWD-LOCK PWD-DENY LAST-LOGIN GECOS
  2. 0 root 00Apr29/11:35 root
  3. 1 bin 01 bin
  4. 2 daemon 01 daemon
  5. 3 adm 01 adm
  6. 4lp01lp
  7. 5sync01sync
  8. 6shutdown01Jul19/10:04shutdown
  9. 7halt01halt
  10. 8 mail 01 mail
  11. 10 uucp 01 uucp
  12. 11operator01operator
  13. 12 games 01 games
  14. 13 gopher 01 gopher
  15. 14 ftp 01 FTP User
  16. 23 squid 01
  17. 25 named 01Named
  18. 27 mysql 01MySQLServer
  19. 47 mailnull 01
  20. 48 apache 01Apache
  21. ...

6. 查找文件

查找文件有時候並不像你想象的那麼簡單。一個搜索文件的好例子是:

  1. #find/home/user -type f

這個命令會搜索 /home/user 目錄下的所有文件。find 命令真的很強大,你可以傳遞更多選項給它使得你的搜索更加詳細。如果你想搜索超過特定大小的文件,可以使用:

  1. #find.-type f -size10M

上面的命令會搜索當前目錄中所有大於 10M 的文件。確保不要在你 Linux 系統的根目錄運行該命令,因為這可能導致你的機器 I/O 瓶頸。

我最經常和 find 命令一起使用的選項之一是 “exec”,這允許你對 find 命令的結果運行一些操作。

例如,假如我們想查找一個目錄中的所有文件並更改權限。可以通過以下簡單命令完成:

  1. #find/home/user/files/-type f -execchmod644{} \;

上面的命令會遞歸搜索指定目錄內的所有文件,並對找到的文件執行 chmod 命令。推薦你閱讀

Linux find 命令用法總結 http://www.linuxidc.com/Linux/2015-04/116854.htm

Linux下查找文件find命令 http://www.linuxidc.com/Linux/2014-10/108575.htm

Linux下find命令詳解 http://www.linuxidc.com/Linux/2011-08/40669.htm

文本查找利器find的使用 http://www.linuxidc.com/Linux/2014-03/97559.htm

功能強大的find命令 http://www.linuxidc.com/Linux/2014-01/95236.htm

Linux系統find命令詳解 http://www.linuxidc.com/Linux/2014-06/103232.htm

我肯定你會發現這個命令更多的使用方法。

7. 用一個命令創建目錄樹

你很可能知道可以使用 mkdir 命令創建新的目錄。因此如果你想創建一個新的目錄,你可能會運行:

  1. #mkdir new_folder

但如果你想在該目錄下創建 5 個子目錄呢?運行 5 次 mkdir 命令並非是一個好的選擇。相反你可以類似下面這樣使用 -p 選項:

  1. #mkdir-p new_folder/{folder_1,folder_2,folder_3,folder_4,folder_5}

最後你會在 new_folder 中有 5 個目錄:

  1. #ls new_folder/
  2. folder_1 folder_2 folder_3 folder_4 folder_5

8. 復制文件到多個目錄

通常使用 cp 命令進行文件復制。復制文件通常看起來類似:

  1. #cp/path-to-file/my_file.txt /path-to-new-directory/

現在假設你需要復制該文件到多個目錄:

  1. #cp/home/user/my_file.txt /home/user/1
  2. #cp/home/user/my_file.txt /home/user/2
  3. #cp/home/user/my_file.txt /home/user/3

這有點荒唐。相反,你可以用簡單的一行命令解決問題:

  1. #echo/home/user/1/ /home/user/2/ /home/user/3/|xargs-n 1cp/home/user/my_file.txt

9. 刪除大文件

有時候文件可能會變得很大。我看過由於缺乏管理技能一個日志文件就超過 250G 的例子。用 rm 命令可能不足以刪除該文件,因為有大量的數據需要移除。應該避免這個很“笨重”的操作。相反,你可以使用一個簡單的方法解決這個問題:

  1. #>/path-to-file/huge_file.log

當然你需要根據你實際情況替換路徑和文件名。上面的命令寫一個空輸出到該文件。用更簡單的話說它會清空文件而不會導致你的系統產生大的 I/O 消耗。

10. 在多個 Linux 服務器上運行相同命令

最近我們的一個讀者在 LinuxSay 論壇提問說如何通過 ssh 在多個 Linux 服務器上執行一個命令。他機器的 IP 地址是:

  1. 10.0.0.1
  2. 10.0.0.2
  3. 10.0.0.3
  4. 10.0.0.4
  5. 10.0.0.5

這裡有一個簡單的解決方法。將服務器的 IP 地址寫到文件 list.txt 中,像上面那樣一行一個。然後運行:

  1. #forin $i(catlist.txt);dossh user@$i 'bash command';done

上面的命令中你需要用實際登錄的用戶替換 “user”,用你希望執行的實際命令替換 “bash command”。這個方法非常適用於通過使用 SSH 密鑰進行無密碼驗證,因為這樣你不需要每次都為用戶輸入密碼。

注意取決於你 Linux 系統的設置,你可能還需要傳遞一些額外的參數給 SSH 命令。

總結

上面的例子都很簡單,我希望它們能幫助你發現 Linux 的優美之處,你如何能簡單實現在其它操作系統上需要更多時間的不同���作。


via: http://www.tecmint.com/10-useful-linux-command-line-tricks-for-newbies/

作者:Marin Todorov 譯者:ictlyh 校對:wxy

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

Copyright © Linux教程網 All Rights Reserved