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