[Linux] 命令行工具
1. 基本工具
1.1 特殊字符
shell的特殊字符有:&、;、|、*、?、'、"、`、[、]、(、)、$、<、>、{、}、^、#、/、\、%、!、~、+。要將這些具有特殊含義的字符當作普通字符使用,可對它們轉義使用,在特殊字符前加反斜杠" \ "即可。要將連續的兩個或多個特殊字符轉義,必須在每個字符前加一個反斜杠。
轉義刪除字符(CONTROL+H)、行刪除字符(CONTROL+U)和其他控制字符的唯一方法就是在它們前面加入CONTROL+V,如下所示:
1.2 管道
管道是Linux中不可缺少的功能。進程間的通信是Linux的特點之一,管理(用" | "表示)為這種通信的最簡單方式,它接收一個工具的輸出并將其作為另一個工具的輸入。用術語表示為:管理是將一個進程的標準輸出重定向為另一個進程的標準輸入,如下所示:
1.3 ls
使用ls工具可顯示一個目錄下的所有文件列表,如下所示:
常用參數:
1) -a: 列出目錄下的所有文件,包括隱藏文件。
2) -A: 列出除了" . "和" .. "之外的其他所有文件。
3) -l: 顯示文件的詳細信息。
4) -S: 根據文件大小排序。
5) -t: 根據文件修改時間排序。
1.4 cat
cat工具可用來顯示文本文件的內容,如下所示:
常用參數:
1) -b: 輸出行號,但不包含空白行。
2) -n: 輸出行號。
3) -s: 遇到連續多個空白行時,替換為一行。
1.5 rm
rm工具用來刪除文件,如下所示:
常用參數:
1) -f: 強制刪除。
2) -i: 刪除前需要確認。
3) -r: 遞歸刪除目錄及內容。
1.6 less或more
當要瀏覽的文件內容超過一屏時,可使用less或more工具。這兩個工具都將文件顯示一屏后停下,所以被稱為分頁程序。它們之間存在一些細微的差別,如到文件末尾時,less顯示EOF信息等待輸入q返回shell,而more直接退出到shell,如下所示:
less常用操作:
1) /: 使用模式向前搜索。
2) ?: 使用模式向后搜索。
3) n: 向前查找下一個匹配文本。
4) N: 向后查找上一個匹配文本。
5) CTRL+F: 向前滾動一屏。
6) CTRL+B: 向后滾動一屏。
7) CTRL+D: 向前滾動半屏。
8) CTRL+U: 向后滾動半屏。
9) j: 向前移動一行。
10) k: 向后移動一行。
11) g: 移動到第一行。
12) G: 移動到最后一行。
13) q: 退出less。
more常用操作:
1) SPACE: 向前滾動一屏。
2) n+SPACE: 向前滾動n行。
3) b: 向后滾動一屏。
4) q: 退出more。
1.7 hostname
hostname命令可以顯示正在使用的系統名。在不能確定自己是否登錄到正確的系統上時,可使用該命令,如下所示:
1.8 echo
echo工具可復制其后跟的任何內容,并將其顯示在屏幕上,如下所示:
1.9 date
date命令用來顯示當前的日期和時間,如下所示:
1.10 script
script工具可記錄登錄會話的部分或全部信息,此工具只對基于文本的設備有效。默認情況下,script捕捉到的會話內容將存放在typescript文件中,或通過script后跟文件名,存在指定文件中,使用命令exit將終止script會話,如下所示:
1.11 unix2dos
為了方便Windows系統用戶閱讀Linux系統下的文件,需要轉換文件格式。unix2dos實現了Linux文本格式到Windows文本格式的轉換,而dos2unix可將DOS格式的文件轉換為Linux格式,如下所示:
2. 文件操作
2.1 cp
cp工具實現了文件的復制,此工具可對任何文件進行復制,如文本文件和可執行文件,如下所示:
常用參數:
1) -f: 強制復制。
2) -i: 覆蓋目標前需要確認。
3) -r: 遞歸復制目錄及內容。
2.2 mv
mv工具可對文件重命名,該命令執行后不會產生文件副本,其語法與cp相同,如下所示:
常用參數:
1) -f: 強制重命名。
2) -i: 覆蓋目標前需要確認。
2.3 grep
grep工具是在一個或多個文件中搜索是否包含給定字符串。此工具只顯示包含查找字符串的文本行,并不修改搜索出的文件,如下所示:
常用參數:
1) -a: 將二進制文件作為文本文件搜索。
2) -c: 顯示符合行的行數。
3) -e: 以正則表達式搜索。
4) -i: 忽略大小寫。
5) -n: 顯示行號。
2.4 head
默認情況下,head工具顯示文件的前10行信息,后跟連字符和數字即可指定顯示行數,如下所示:
2.5 tail
tail工具在默認情況下顯示文件的最后10行內容,可設定其顯示的行數,如下所示:
常用參數:
1) -f: 動態顯示文件的更新。
2.6 sort
sort工具是將文件內容按行排序后顯示,但并不改變文件內容,如下所示:
常用參數:
1) -n: 以數值方式排序。
2) -r: 反向排序。
3) -u: 去除重復行。
2.7 uniq
uniq工具用來顯示文件內容,對于連續的重復行將只顯示一行,但不會改變原文件的內容,如下所示:
常用參數:
1) -c: 在行首顯示每行出現的次數。
2) -d: 只顯示重復行。
2.8 diff
diff工具用來對兩個文件進行比較,顯示兩者所有不同之處,但不改變任何一個文件的內容,如下所示:
常用參數:
1) -b: 忽略空白字符。
2) -B: 忽略空白行。
3) -c: 顯示全部內容,并標出不同之處。
4) -i: 忽略大小寫。
2.9 file
在不通過打開文件查看內容的情況下,file工具可直接獲得Linux系統中任何文件的內容信息,如下所示:
3. 壓縮和歸檔
3.1 bzip2
bzip2工具通過分析和有效記錄文件內容的方法來壓縮文件。壓縮后的文件與原來的文件看上去完全不同,它包含許多非打印字符,所以無法直接瀏覽其內容。執行bzip2后,文件會被重命名為原文件名加后綴.bz2,如下所示:
常用參數:
1) -c: 將結果發送到標準輸出。
2) -d: 解壓縮。
3) -f: 強制壓縮。
4) -t: 測試壓縮文件完整性。
5) -v: 顯示詳細信息。
3.2 bunzip2
bunzip2工具可將bzip2壓縮的文件解壓縮恢復為原來的文件,所下所示:
常用參數:與bzip2相同。
3.3 bzcat
bzcat工具可用來顯示bzip2壓縮文件的內容,bzcat首先將壓縮數據解壓縮,然后顯示解壓縮后的文件內容,如下所示:
常用參數:與bzip2相同。
3.4 gzip
gzip、gunzip和zcat是比bzip2出現早且較低效的壓縮工具,它的一些標記和操作與bzip2類似。通過gzip壓縮的文件名后綴為.gz,如下所示:
常用參數:
1) -c: 將結果發送到標準輸出。
2) -d: 解壓縮。
3) -r: 遞歸壓縮。
4) -t: 測試壓縮文件完整性。
5) -v: 顯示詳細信息。
3.5 tar
tar工具可完成許多功能,常用來將多個文件或多個目錄歸檔為一個tar文件或解開,如下所示:
常用參數:
1) -c: 建立一個文件。
2) -f: 使用文件名,注意后面必須跟上文件名,不能有其他參數。
3) -j: 是否需要bzip解壓縮。
4) -v: 顯示詳細信息。
5) -x: 解開一個文件。
6) -z: 是否需要gzip解壓縮。
4. 定位命令
4.1 which
當輸入一個Linux命令后,shell將在一組目錄下查找具有該名字的程序,并運行找到的第1個。工具whick通過顯示工具完整路徑來幫助查找該程序,如下所示:
4.2 whereis
whereis工具是在標準路徑下(而非用戶設定的路徑)搜索與工具相關的文件,如下所示:
4.3 apropos
當需要完成某個特定任務但又不知道命令名字時,可用關鍵字和apropos工具進行搜索。apropos運行需要建立whatis數據庫和維護該數據庫的makewhatis工具,此任務通常由cron完成。apropos工具可在所有man頁的簡短描述行中搜索關鍵字,然后顯示匹配行,如下所示:
4.4 locate
locate工具用于在本地系統中搜索文件。在使用locate工具時,需要編譯和更新locate數據庫,通常該數據庫由cron腳本每天更新一次,如下所示:
5. 系統信息
5.1 who
工具who可將登錄到系統的用戶列出,如下所示:
常用參數:
1) -H: 顯示各欄位的標題。
2) -q: 顯示登錄系統的總人數。
5.2 finger
使用finger可顯示出登錄到系統的用戶的相關信息。除了顯示用戶的登錄名外,還顯示用戶連接的終端設備、最近一段時間輸入的內容,所在位置,如下所示:
常用參數:
1) -l: 顯示詳細的用戶信息。
5.3 w
w工具也可列出登錄用戶名單,如下所示:
5.4 write
write工具用來給一個已登錄用戶發送消息。兩個用戶通過write發送消息的方式是一種雙向通信的方式。通過按下CONTROL+D通知write退出,返回到shell,對方用戶的終端將顯示EOF,如下所示:
5.5 mesg
當不想接收其他用戶發來的消息時,可輸入"mesg n",通過輸入"mesg y"就可再次接收消息,如下所示:
總結
以上是生活随笔為你收集整理的[Linux] 命令行工具的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HDOJ1016 素数环(DFS)
- 下一篇: 职业经理人应该如何处理如下问题