原創|使用教程|編輯:蔣永|2017-11-14 16:49:41.000|閱讀 280 次
概述:分享一些有用的技巧和提示,希望能幫助大家更好的向 Linux 過渡,并幫助學到一些新的東西。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
分享一些有用的技巧和提示,希望能幫助大家更好的向 Linux 過渡,并幫助學到一些新的東西。
本文希望向你展示一些不需要很高的技術就可以像一個高手一樣使用 Linux 終端的有用技巧。你只需要一個 Linux 終端和一些自由時間來體會這些命令。
執行正確的命令對你的系統來說非常重要。然而在 Linux 中有如此多的、難以記憶的各種的命令行。那么怎樣才能找到你需要的正確命令呢?答案是 apropos。你只需要運行:
# apropos <description>
其中你要用真正描述你要查找的命令的語句代替 “description”。這里有一個例子:
# apropos "list directory" dir (1) - list directory contents ls (1) - list directory contents ntfsls (8) - list directory contents on an NTFS filesystem vdir (1) - list directory contents
左邊你看到的是命令,右邊是它們的描述。
很多時候你需要一遍又一遍執行相同的命令。盡管你可以重復按你鍵盤上的向上光標鍵,但你也可以用 history 命令替代。這個命令會列出自從你上次啟動終端以來所有輸入過的命令:
# history 1 fdisk -l 2 apt-get install gnome-paint 3 hostname tecmint.com 4 hostnamectl tecmint.com 5 man hostnamectl 6 hostnamectl --set-hostname tecmint.com 7 hostnamectl -set-hostname tecmint.com 8 hostnamectl set-hostname tecmint.com 9 mount -t "ntfs" -o 10 fdisk -l 11 mount -t ntfs-3g /dev/sda5 /mnt 12 mount -t rw ntfs-3g /dev/sda5 /mnt 13 mount -t -rw ntfs-3g /dev/sda5 /mnt 14 mount -t ntfs-3g /dev/sda5 /mnt 15 mount man 16 man mount 17 mount -t -o ntfs-3g /dev/sda5 /mnt 18 mount -o ntfs-3g /dev/sda5 /mnt 19 mount -ro ntfs-3g /dev/sda5 /mnt 20 cd /mnt ...
正如你上面看到的,你會得到一個你運行過的命令的列表。每一行中有一個數字表示你在第幾行輸入了命令。你可以通過以下方法重新調用該命令:
!#
其中要用命令的實際編號代替 #。為了更好的理解,請看下面的例子:
!501
等價于:
# history
如果你不習慣使用類似 cd、cp、mv、rm 等命令,你可以使用 midnight 命令。它是一個簡單的可視化 shell,你可以在上面使用鼠標:
Midnight 命令
借助 F1 到 F12 鍵,你可以輕易地執行不同任務。只需要在底部選擇對應的命令。要選擇文件或者目錄,按下 “Insert” 鍵。
簡而言之 midnight 就是所謂的 “mc”。要安裝 mc,只需要運行:
$ sudo apt-get install mc [On Debian based systems]
# yum install mc [On Fedora based systems]
下面是一個使用 midnight 命令器的簡單例子。通過輸入以下命令打開 mc:
# mc
現在使用 TAB 鍵選擇不同的窗口 – 左和右。我有一個想要移動到 “Software” 目錄的 LibreOffice 文件:
Midnight 命令移動文件
按 F6 按鈕移動文件到新的目錄。MC 會請求你確認:
移動文件到新目錄
確認了之后,文件就會被移動到新的目標目錄。
有時候你需要在下班幾個小時后再關閉計算機。你可以通過使用下面的命令在指定時間關閉你的計算機:
$ sudo shutdown 21:00
這會告訴你在你指定的時間關閉計算機。你也可以告訴系統在指定分鐘后關閉:
$ sudo shutdown +15
這表示計算機會在 15 分鐘后關閉。
你可以使用一個簡單的命令列出你 Linux 系統的用戶以及一些關于它們的基本信息。
# lslogins
這會輸出下面的結果:
UID USER PWD-LOCK PWD-DENY LAST-LOGIN GECOS 0 root 0 0 Apr29/11:35 root 1 bin 0 1 bin 2 daemon 0 1 daemon 3 adm 0 1 adm 4 lp 0 1 lp 5 sync 0 1 sync 6 shutdown 0 1 Jul19/10:04 shutdown 7 halt 0 1 halt 8 mail 0 1 mail 10 uucp 0 1 uucp 11 operator 0 1 operator 12 games 0 1 games 13 gopher 0 1 gopher 14 ftp 0 1 FTP User 23 squid 0 1 25 named 0 1 Named 27 mysql 0 1 MySQL Server 47 mailnull 0 1 48 apache 0 1 Apache ...
查找文件有時候并不像你想象的那么簡單。一個搜索文件的好例子是:
# find /home/user -type f
這個命令會搜索 /home/user 目錄下的所有文件。find 命令真的很強大,你可以傳遞更多選項給它使得你的搜索更加詳細。如果你想搜索超過特定大小的文件,可以使用:
# find . -type f -size 10M
上面的命令會搜索當前目錄中所有大于 10M 的文件。確保不要在你 Linux 系統的根目錄運行該命令,因為這可能導致你的機器 I/O 瓶頸。
我最經常和 find 命令一起使用的選項之一是 “exec”,這允許你對 find 命令的結果運行一些操作。
例如,假如我們想查找一個目錄中的所有文件并更改權限。可以通過以下簡單命令完成:
# find /home/user/files/ -type f -exec chmod 644 {} /;
上面的命令會遞歸搜索指定目錄內的所有文件,并對找到的文件執行 chmod 命令。推薦你閱讀 ,我肯定你會發現這個命令更多的使用方法。
你很可能知道可以使用 mkdir 命令創建新的目錄。因此如果你想創建一個新的目錄,你可能會運行:
# mkdir new_folder
但如果你想在該目錄下創建 5 個子目錄呢?運行 5 次 mkdir 命令并非是一個好的選擇。相反你可以類似下面這樣使用 -p 選項:
# mkdir -p new_folder/{folder_1,folder_2,folder_3,folder_4,folder_5}
最后你會在 new_folder 中有 5 個目錄:
# ls new_folder/ folder_1 folder_2 folder_3 folder_4 folder_5
通常使用 cp 命令進行文件復制。復制文件通常看起來類似:
# cp /path-to-file/my_file.txt /path-to-new-directory/
現在假設你需要復制該文件到多個目錄:
# cp /home/user/my_file.txt /home/user/1 # cp /home/user/my_file.txt /home/user/2 # cp /home/user/my_file.txt /home/user/3
這有點荒唐。相反,你可以用簡單的一行命令解決問題:
# echo /home/user/1/ /home/user/2/ /home/user/3/ | xargs -n 1 cp /home/user/my_file.txt
有時候文件可能會變得很大。我看過由于缺乏管理技能一個日志文件就超過 250G 的例子。用 rm 命令可能不足以刪除該文件,因為有大量的數據需要移除。應該避免這個很“笨重”的操作。相反,你可以使用一個簡單的方法解決這個問題:
# > /path-to-file/huge_file.log
當然你需要根據你實際情況替換路徑和文件名。上面的命令寫一個空輸出到該文件。用更簡單的話說它會清空文件而不會導致你的系統產生大的 I/O 消耗。
最近我們的一個讀者在 提問說如何通過 ssh 在多個 Linux 服務器上執行一個命令。他機器的 IP 地址是:
10.0.0.1 10.0.0.2 10.0.0.3 10.0.0.4 10.0.0.5
這里有一個簡單的解決方法。將服務器的 IP 地址寫到文件 list.txt 中,像上面那樣一行一個。然后運行:
# for in $i(cat list.txt); do ssh user@$i 'bash command'; done
上面的命令中你需要用實際登錄的用戶替換 “user”,用你希望執行的實際命令替換 “bash command”。這個方法非常適用于通過,因為這樣你不需要每次都為用戶輸入密碼。
注意取決于你 Linux 系統的設置,你可能還需要傳遞一些額外的參數給 SSH 命令。
上面的例子都很簡單,我希望它們能幫助你發現 Linux 的優美之處,你如何能簡單實現在其它操作系統上需要更多時間的不同操作。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn