您好,登錄后才能下訂單哦!
長久以來呢,Linux操作系統以其穩定、高效且可靠等優點被大量的應用于企業服務器領域。
大部分對Linux服務器的管理和維護都是通過遠程登錄的方式來進行的。
而絕大部分的管理維護操作都是基于Linux命令來實現的,所以Linux命令在工作中就顯得至關重要。
在將Linux命令之前,先得了解它的工作原理
原理很簡單,其實就是我們用戶輸入一串字符命令,由shell將這條命令“翻譯”為系統內核能夠懂的“語言”,然后系統內核便根據這條命令去執行相關操作。
講完原理之后,我們了解一下Linux命令有哪些類型
其實很簡單,Linux命令有兩種,內部命令和外部命令
具體區別如下
了解了Linux命令類型,我們再了解一下命令的結構
一條Linux命令,一般由三個部分組成,分別為:命令字、選項、參數
在這三個部分中,命令字是最關鍵的一部分,也是不能缺少的,另外兩個部分根據具體情況是可以不要的
選項,分為長格式選項和短格式選項,長格式選項用“--”符號引導,一般后面接單詞代表一個功能;短格式選項用“-”符號引導,一般后面接單個字母為一個功能。
參數,是命令字的處理對象,可以是文件名、目錄名或用戶名等,數量可以是零到多個
在介紹基礎命令之前,我們先了解一些Linux命令行的輔助操作,熟練掌握這些操作能夠幫我們更好的使用Linux命令哦。
Tab鍵:自動補齊
反斜杠“\”:強制換行
快捷鍵Ctrl+U:清空至行首
快捷鍵Ctrl+K:清空至行尾
快捷鍵Ctrl+L:清空屏幕
快捷鍵Ctrl+C:取消本次命令編輯
tab鍵的自動補齊功能是我最喜歡的輔助操作,當你輸入參數時,發現這個目錄名太長,此時你只用輸入前幾個字母,按下tab鍵,就能自動幫你補齊目錄名,比如我想輸入“sysconfig”這個目錄名,我只用輸入“sysco”后面直接tab鍵就能自動補齊
反斜杠“\”是用來強制換行的,如果我要輸入vim /etc/sysconfig/network-scripts/ifcfg-ens33這條命令,我可以在中間任意地方用“\”來強制換行
Ctrl+U清空至行首,簡單來說就是刪除光標前面的字符
Ctrl+K清空至行尾,簡單說就是刪除光標后面的所有字符
Ctrl+L清空屏幕,不是說刪除之前輸入的命令,而是當你輸入的命令太多占據了所有用戶界面,它可以讓你重新從用戶界面的第一行開始輸入
Ctrl+C取消本次命令編輯,用來終止命令的。例如我用ping命令檢查網絡是否互通時,它會一直持續發送數據包過去,當我想停止時就可以使用Ctrl+C
除了這些輔助操作,當我們忘了某條命令,或者不知道某條命令是什么意思時,可以獲取命令幫助,具體方法如下:
內部命令help
選項:
-L 打印$PWD 變量的值,如果它命名了當前的工作目錄
-P 打印當前的物理路徑,不帶有任何的符號鏈接
在我們在輸入命令時,前面會有一串字符[root@localhost ~]# ,這些字符具體代表什么呢,下面我會逐個說明
root:當前系統登錄用戶,可以用su 加上用戶名切換用戶
localhost:主機名稱,可以用hostname命令查看,用hostnamectl set-hostname 加上新的主機名來更改主機名
~:當前所在的位置(“~”代表家目錄)
#:代表當前是管理員身份
$:代表當前是普通用戶身份
了解前面這些,下面我們開始講解Linux基礎命令
命令:“pwd”查看當前工作目錄(Print Working Directory)
“pwd”用來查看當前所在的目錄,記住查看的是絕對路徑,比如我在sysconfig目錄底下用“pwd”查看目錄,會顯示絕對路徑/etc/sysconfig
講到絕對路徑,那就說一下,路徑分為絕對路徑和相對路徑。絕對路徑較簡單是以根目錄“/”為開頭,以根目錄為起點,一直到當前所在目錄。
相對路徑表現形式有一下幾種:
命令:“cd”切換工作目錄(Change Directory)
“cd”用來切換工作目錄的,例如我想進入/etc/sysconfig/network-scripts這個目錄
就可以直接輸入“cd /etc/sysconfig/network-scripts”就能進入這個目錄了。
除了切換到指定的工作目錄,“cd”命令還有幾個選項功能:
在 Linux 操作系統中表示某個目錄(或文件)的位置時,根據其參照的起始目錄不同, 可以使用兩種不同的形式,分別稱為絕對路徑和相對路徑。
絕對路徑:這種方式以根目錄“/”作為起點,如“/boot/grub”表示根目錄下 boot 子目錄中的 grub 目錄。若要確切表明 grub 是一個目錄(而不是一個文件),可以 在最后也加上一個目錄分隔符,如表示為“/boot/grub/”。因為 Linux 操作系統中 的根目錄只有一個,所以不管當前處于哪個目錄中,使用絕對路徑都可以非常準確 地表示一個目錄(或文件)所在的位置。但是如果路徑較長,輸入的時候會比較煩 瑣。
相對路徑:這種方式一般以當前工作目錄作為起點,在開頭不使用“/”符號,因 此使用的時候更加簡短、便捷。相對路徑主要包括如下幾種形式: 直接使用目錄名或文件名表示當前工作目錄中的子目錄、文件的位置。例如,
“grub.conf”可表示當前目錄下的 grub.conf 文件。
-l:以長格式(Long)顯示文件和目錄的列表,包括權限、大小、最后更新時間等 詳細信息。不使用-l 選項時,ls 命令默認以短格式顯示目錄名或文件名信息。
-a:顯示所有(All)子目錄和文件的信息,包括名稱以點號“.”開頭的隱藏目錄 和隱藏文件。
-A:與-a 選項的作用基本類似,但有兩個特殊隱藏目錄不會顯示,即表示當前目 錄的“.”和表示父目錄的“..”。
-d:顯示目錄(Directory)本身的屬性,而不是顯示目錄中的內容。
-h:以更人性化(Human)的方式顯示目錄或文件的大小,默認的大小單位為字節 (B),使用-h 選項后將顯示為 KB、MB 等單位。此選項需要結合-l 選項一起使用。
-R:以遞歸(Recursive)的方式顯示指定目錄及其子目錄中的所有內容。
--color:在字符模式中以顏色區分不同的文件,如果使用“--color=tty”,則表 示使用終端預定義的顏色方案。通常情況下,深藍色表示目錄,白色或黑色(若背景顏色為黑色則文件顏色為白色,相反則互換)表示一般文件, 綠色表示可執行的文件,黃color表示設備文件,紅色表示壓縮文件。
“ls”只是單純的顯示當前目錄的內容,當后面加上不同選項,又能實現不同的功能,下面我將詳細介紹:
“ls -a” 列出目錄下的所有文件(顯示隱藏文件),包括以 “.”、“..”開頭的隱藏文件,而“ls -A”也是顯示隱藏文件與“ls -a”的唯一區別就是不顯示“.”、“..”開頭的隱藏文件。
“ls -d”是將目錄象文件一樣顯示,而不是顯示其下的文件
“ls -l”是顯示目錄下文件的詳細信息,如創建者,創建時間,文件的讀寫權限列表等等。
“ls -h”將目錄下文件的大小以帶單位的形式顯示出來,如果只用“ls -l”文件大小的單位統一都是“字節”,具體還得我們自己進行單位換算。
“ls -R”將目錄下所有的子目錄的文件都列出來,相當于我們編程中的“遞歸”實現。
“ls -color”是用不同顏色將不同格式的文件區分開來,一般默認情況下就已經執行了此命令,下面介紹一下常見的顏色代表的文件類型:
黑色------數據文件
綠色------可執行文件
紅色------壓縮文件
深藍色------目錄(文件夾)
淡藍色------軟鏈接文件(快捷方式)
除了這些常見的選項,還有通配符“ ? ”、“ * ”
“?”是匹配文件名中的一個未知字符,例如你想用“ls”命令查看一個文件,文件名其中幾個字母不確定就可以用“?”代替
“ * ”是匹配文件中的任意多個字符,例如你想用“ls”命令查看一個文件,但你只記得其中一個字母,就可以用這個字母加上“ * ”來進行查找
命令:“du”統計目錄及文件空間占用情況(Disk Usage)
常用選項:
-a:統計磁盤空間占用時包括所有的文件,而不僅僅只統計目錄。
-h:以更人性化的方式(默認以 KB 計數,但不顯示單位)顯示出統計結果,使用 -h 選項后將顯示出 KB、MB 等單位。
-s:只統計每個參數所占用空間總的(Summary)大小,而不是統計每個子目錄、 文件的大小。
“du -a”統計磁盤空間占用時包括所有的文件,而不僅僅只統計目錄
“du -h”以更人性化的方式顯示出統計結果,默認以KB為計數,但不顯示單位
“du -s”只統計所占空間總的大小,而不統計每個子目錄、文件大小
當然這些選項也可以結合起來用,例如你想統計/var/log/目錄的總大小,同時顯示出具體單位就可以輸入
“du -sh /var/log/”來進行統計
命令:“alias”設置別名
當你覺得一條命令輸入太麻煩,而這條命令你要經常得用,此時你可以給它設置一個簡單的別名,方便輸入。
例如你想將“ls -alh”設置個別名為“myls”,就可以輸入“alias myls='ls -alh'”
命令:“mkdir”創建新目錄(Make Directory)
如果你想在當前目錄下創建一個新目錄aaa,你可以輸入“mkdir aaa”即可
同時創建多個目錄,只用在目錄之間加上空格即可例如“mkdir 111 222 333”
“mkdir -p”可以實現一次性創建嵌套的多層目錄,不然的話只能先創建一個目錄,再通過“cd”命令進入這個目錄才能接著創建子目錄
命令:“touch”創建空文件
“touch”命令當你不指定創建文件的目錄時,它會默認創建在當前目錄下,同時創建多個文件時只需用空格將文件隔開即可。
“touch”命令創建的文件是空文件,當我們想直接在創建文件時將內容一起添加進去時,我們可以用“echo”命令,例如我想在/root/aaa/bbb/目錄創建一個文件bbb01.txt,內容為“this is bbb01”,我可以輸入“echo “this is bbb01” > /root/aaa/bbb/bbb01.txt”。
命令:“ln”創建鏈接文件
**格式: **ln [-s] 源文件或目錄 鏈接文件或目標位置
在講“ln”命令之前先了解一下鏈接文件,鏈接文件就是類似于Windows系統的快捷方式。鏈接分為兩種,軟鏈接(又稱符號鏈接)、硬鏈接,下面介紹一下兩種鏈接:
使用 ln 命令時,默認創建的是硬鏈接。如果需要創建軟鏈接,必須結合“-s”選項明
確指定。ln 命令的基本使用格式如下:
ln [-s] 源文件或目錄? 鏈接文件或目標位置
當目標位置是一個已經存在的目錄時,新創建的鏈接文件將保存到該目錄中,并使用與
源文件或目錄相同的名稱。例如,以下操作將為文件/bin/bzip2 創建一個軟鏈接文件
/bin/soft/bzip2(未指定鏈接名稱時,使用與原始文件相同的文件名)。
[root@localhost ~]# mkdir /bin/soft
[root@localhost ~]# ln -s /bin/bzip2 /bin/soft/
[root@localhost ~]# ls -lh /bin/soft/bzip2
lrwxrwxrwx. 1 root root 10 4 月 6 02:10 /bin/soft/bzip2 -> /bin/bzip2
命令:cp復制(Copy)文件或目錄
cp 命令用于復制文件或目錄,將需要復制的文件或目錄(源)重建一份并保存為新的 文件或目錄(可保存到其他目錄中)。需要復制多個文件或目錄時,目標位置必須是目錄,且目標目錄必須已經存在。
格式:cp [選項] 源文件或目錄 目標文件或目錄
常用選項:
-f:覆蓋目標同名文件或目錄時不進行提醒,而直接強制(Force)復制。
-i:覆蓋目標同名文件或目錄時提醒用戶確認(Interactive,交互式)。
-p:復制時保持(Preserve)源文件的權限、屬主及時間標記等屬性不變。
-r:復制目錄時必須使用此選項,表示遞歸復制所有文件及子目錄。
例如,以下兩個操作將把/bin/touch 命令程序復制到當前目錄下,并命名為 mytouch; 另外將/etc/yum.conf 文件復制一份作為備份,添加.bak 擴展名,仍存放在/etc 目錄中。
[root@localhost ~]# cp /bin/touch./mytouch
[root@localhost ~]# cp /etc/yum.conf /etc/yum.conf.bak
如果需要復制的數據包括完整的目錄,則需要結合“-r”選項才能成功執行,否則目錄 將被忽略。例如,以下操作將把目錄/boot/grub、文件/etc/host.conf 復制到當前目錄下 的 public_html 文件夾中。
[root@localhost ~]# cp -r /boot/grub/ /etc/host.conf public_html/
[root@localhost ~]# ls public_html/
grub host.conf
命令:rm 刪除(Remove)文件或目錄
rm 命令用于刪除指定的文件或目錄,在 Linux 命令行界面中,刪除的文件是難以恢復 的,因此使用 rm 命令刪除文件時需要格外小心。rm 命令使用要刪除的文件或目錄名作為參 數。
常用的幾個選項如下(與 cp 命令的對應選項含義基本相似):
-f:刪除文件或目錄時不進行提醒,而直接強制刪除。
-i:刪除文件或目錄時提醒用戶確認。
-r:刪除目錄時必須使用此選項,表示遞歸刪除整個目錄樹(應謹慎使用)
對于已經確定不再使用的數據(包含目錄、文件),通常結合“-rf”選項直接進行刪除 而不進行提示。例如,若要刪除剛復制到 public_html 目錄中的 grub 目錄樹,且不提示用 戶進行確認(直接刪除),可以執行“rm -rf public_html/grub/”命令,具體操作如下:
[root@localhost ~]# rm -rf public_html/grub/
[root@localhost ~]# ls public_html/
host.conf
如果需要在執行刪除操作前進行確認,可以使用“-i”選項(不要和-f 選項同時使用), rm 命令將對每個待刪除的文件或目錄提示用戶是否真的刪除,需要輸入 y(表示刪除)或 n (表示不刪除)進行確認。例如,以下操作將以提示確認的方式刪除 public_html 目錄中的 host.conf 文件(根據提示信息輸入 y 確認刪除)。
[root@localhost ~]# rm -i public_html/host.conf
rm:是否刪除 普通文件 "public_html/host.conf"? y
命令:mv 移動(Move)文件或目錄
mv 命令用于將指定的文件或目錄轉移位置,如果目標位置與源位置相同,則效果相當 于為文件或目錄改名。
格式:mv [選項] 源文件或目錄 目標文件或目錄
需要移動多個文件或目錄時,目標位置必須是目錄,且目標目錄必須已經存在。 如果在同一個目錄下移動文件或目錄,則相當于執行重命名操作。例如,以下操作將把 當前目錄中的 mytouch 程序文件改名為 mkfile。
[root@localhost ~]# mv mytouch mkfile
[root@localhost ~]# ls -lh mytouch mkfile
ls: 無法訪問 mytouch: 沒有那個文件或目錄
-rwxr-xr-x. 1 root root 62K 4 月 11 10:42 mkfile
如果移動一個文件或目錄到一個已經存在的文件夾中,可以只指定目標文件夾位置。例 如,以下操作將把 mkfile 文件移動到 public_html 目錄(已經存在)中,文件名仍然是 mkfile。
[root@localhost ~]# mv mkfile public_html/
[root@localhost ~]# ls -l public_html/mkfile
-rwxr-xr-x. 1 root root 62488 4 月 11 10:42 public_html/mkfile
命令:which 查找用戶所執行的命令文件存放的目錄 。
which 命令用于查找 Linux 命令程序并顯示所在的具體位置,其搜索范圍主要由用戶的 環境變量 PATH 決定(可以執行“echo $PATH”命令查看),這個范圍也是 Linux 操作系統在 執行命令或程序時的默認搜索路徑。
which 命令使用要查找的命令或程序名作為參數,默認當找到第一個目標后即不再繼續 查找,若希望在所有搜索路徑中查找,可以添加“-a”選項。例如,執行“which ls”命令 后,可以找到名為 ls 的、位于/usr/bin/ls 的命令程序文件,具體操作如下:
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost ~]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
注意:由于 Shell 內置的命令并沒有對應的程序文件,因此使用 which 查找內部命令時, 將找不到對應的程序。例如,查找內部命令 history 的位置時,會提示在搜索路徑中沒有這 個程序文件,具體操作如下:
[root@localhost ~]# which history
/usr/bin/which: no history in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr
/bin:/root/bin)
命令:find 查找文件或目錄
find 命令是 Linux 操作系統中功能非常強大的查找命令,可以根據目標的名稱、類型、 大小等不同屬性進行精細查找。find 命令在查找時采用遞歸的方式,其使用形式相當靈活, 也可以相當復雜。這里只介紹最常用的幾種用法。
格式: find [查找范圍] [查找條件表達式]
其中,查找范圍對應的是在其中查找文件或子目錄的目錄位置(可以有多個),而查找 條件則決定了 find 命令根據哪些屬性、特征進行查找。較常用的幾種查找條件類型如 下所述。
按名稱查找:關鍵字為“-name”,根據目標文件的名稱進行查找,允許使用“ * ” 及“ ? ”通配符。
按文件大小查找:關鍵字為“-size”,根據目標文件的大小進行查找,一般使用“+” 和“-”號設置超過或小于指定的大小作為查找條件。常用的容量單位包括 kB(注 意 k 是小寫)、MB、GB。
按文件屬主查找:關鍵字為“-user”,根據文件是否屬于目標用戶進行查找。
按文件類型查找:關鍵字為“-type”,根據文件的類型進行查找,這里的類型指的 是普通文件(f)、目錄(d)、塊設備文件(b)、字符設備文件(c)等。塊設備指 的是成塊讀取數據的設備(如硬盤、內存等),而字符設備指的是按單個字符讀取 數據的設備(如鍵盤、鼠標等)。
設置 find 命令的查找條件時,若需要使用“ * ”或“ ? ”通配符,最好將文件名用雙引號括起來,以避免當前目錄下符合條件的文件干擾查找結果。例如,以下操作將在/etc 目 錄中遞歸查找名稱以“resol”開頭、以“.conf”結尾的文件。
[root@localhost ~]# find /etc –name "resol*.conf"
/etc/resolv.conf
使用“-type”查找條件可以過濾出指定類型的文件。例如,以下操作將在/boot 目錄 中查找出所有的文件夾(對應的類型為 d),而忽略其他類型的文件。
[root@localhost ~]# find /boot -type d
/boot
/boot/grub
需要同時使用多個查找條件時,各表達式之間可以使用邏輯運算符“-a”與“-o”分別 表示而且(and)、或者(or)。例如,以下兩個操作使用了兩個查找條件,即“超過 1024kB” 和“名稱以vmlinuz 開頭”,但分別使用“-a”“-o”組合兩個條件,前者表示兩個條件必 須同時滿足,后者表示只需滿足其中任何一個條件即可。
[root@localhost ~]# find /boot -size +1024k -a -name "vmlinuz*"
/boot/vmlinuz-3.10.0-514.el7.x86_64
/boot/vmlinuz-0-rescue-8d265977c0c0459d98aff332d2544503
[root@localhost ~]# find /boot -size +1024k -o -name "vmlinuz*"
/boot/grub2/fonts/unicode.pf2
/boot/System.map-3.10.0-514.el7.x86_64
/boot/vmlinuz-3.10.0-514.el7.x86_64
下面將要講解一些目錄、文件相關的命令,在講解前先講一下Linux的目錄結構方便大家理解。Linux 操作系統在定位文件或目錄位置時,使用斜杠“/”進行分隔(區別于 Windows 操作系統中的反斜杠“\”)。整個樹形目錄結構中,使用獨立的一個“/”表示根目錄,根目 錄是 Linux 操作文件系統的起點,其所在的分區稱為根分區。在根目錄下,Linux 操作系統 將默認建立一些特殊的子目錄,分別具有不同的用途。下面簡單介紹一下其中常見的子目錄及其作用。
/boot:此目錄是系統內核存放的目錄,同時也是系統啟動時所需文件的存放目錄, 如 vmlinuz 和 initrd.img。在安裝 Linux 時,為 boot 目錄創建一個分區,有利于 對系統進行備份。
/bin:bin 是 binary 的縮寫。這一目錄存放了所有用戶都可執行的且經常使用的 命令,如 cp、ls 等。
/dev:此目錄保存了接口設備文件,如/dev/hda1、/dev/cdrom 等。
/etc:此目錄保存有關系統設置與管理的文件。
/home:存放所有普通系統用戶的默認工作文件夾(即宿主目錄、家目錄),如用戶 賬號“teacher”對應的宿主目錄位于“/home/teacher/”。如果服務器需要提供 給大量的普通用戶使用,建議將“/home”目錄也劃分為獨立的分區,以方便用戶 數據的備份。
/root:該目錄是 Linux 操作系統管理員(超級用戶)root 的宿主目錄,默認情況 下只有 root 用戶的宿主目錄在根目錄下而不是在“/home”目錄下。
/sbin:存放 Linux 操作系統中最基本的管理命令,一般管理員用戶才有權限執行。
/usr:存放其他的用戶應用程序,通常還被劃分成很多子目錄,用于存放不同類型 的應用程序。
/var:存放系統中經常需要變化的一些文件,如系統日志文件、用戶郵箱目錄等, 在實際應用系統中,“/var”目錄通常也被劃分為獨立的分區。 以上列舉的只是 Linux 操作系統中用戶經常用到的子目錄,還有其他一些子目錄需要用 戶在使用 Linux 操作系統的過程中逐漸去熟悉。
命令:cat 顯示并連接(Concatenate)文件的內容
cat 命令本來用于連接(Concatenate)多個文件的內容,但在實際使用中更多地用于 查看文件內容。cat 命令是應用最為廣泛的文件內容查看命令。使用該命令時,只需要 把 要 查 看 的 文 件 路 徑 作 為 參 數 即 可 。 例 如 , 以 下 操 作 就 可 以 查 看 /etc/sysconfig/network-scripts/ifcfg-ens33 配置文件中的內容,并了解第一塊以太網
卡的配置信息。
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=noIPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=918487c2-e150-422b-acdd-8b7b61d0239b
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.10.114
NETMASK=255.255.255.0
GATEWAY=192.168.10.1
如果需要同時查看多個文件的內容,可以添加多個文件路徑作為查看對象。例如,以下 操作將依次顯示/etc/redhat-release、/proc/version 文件的內容,前者記錄了 CnetOS 系 統的發行版本信息,后者記錄了系統內核及開發環境、時間等信息。
[root@localhost ~]# cat /etc/redhat-release /proc/version
CentOS Linux release 7.3.1611 (Core)
Linux version 3.10.0-514.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version
4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) ) #1 SMP Tue Nov 22 16:42:41 UTC 2016
命令:more 和 less 分頁查看文件內容
使用 cat 命令可以非常簡單地直接顯示整個文件的內容,但是當文件中的內容較多時, 很可能只能看到最后一部分信息,文件前面的大部分內容都來不及看到。而 more 和 less 命令通過采用全屏的方式分頁顯示文件,便于我們從頭到尾仔細地閱讀文件內容。
more 命令是較早出現的分頁顯示命令,表示文件內容還有更多(more)的意思,less 命令是較晚出現的分頁顯示命令,提供了比早期 more 命令更多的一些擴展功能。兩個命令 的用法基本相同。
使用 more 命令查看超過一屏的文件內容時,將進行分屏顯示,并在左下角顯示當前內 容在整個文件中的百分比。在閱讀界面中,可以按 Enter 鍵向下逐行滾動查看,按 Space 鍵可以向下翻一屏,按 b 鍵向上翻一屏,按 q 鍵退出并返回原來的命令環境。例如,以下操 作將可以分屏查看/etc/httpd/ conf/httpd.conf(網站配置文件)文件的內容。
[root@localhost ~]# more /etc/httpd/conf/httpd.conf
#
# This is the main Apache HTTP server configuration file. It contains the
# configuration directives that give the server its instructions.
# See <URL:http://httpd.apache.org/docs/2.4/> for detailed information.
# In particular, see
# <URL:http://httpd.apache.org/docs/2.4/mod/directives.html>
# for a discussion of each configuration directive.
--more--(1%)
more 命令除了可以分屏查看文件內容以外,還可以結合管道符號“|”分屏查看執行命 令時的輸出信息,這在命令輸出內容較多的情況下特別有用。例如,以下操作可以分頁查看 /etc/目錄下擴展名為“.conf”的配置文件。
[root@localhost ~]# ls -lh /etc/*.conf | more
-rw-r--r--. 1 root root 55 11 月 5 00:29 /etc/asound.conf
-rw-r--r--. 1 root root 14K 11 月 6 02:19 /etc/autofs.conf
-rw-------. 1 root root 232 11 月 6 02:19 /etc/autofs_ldap_auth.conf
-rw-r--r--. 1 root root 22K 11 月 6 01:31 /etc/brltty.conf
...................//省略部分內容
--more--
less 命令使用方法與 more 命令基本類似,但是比 more 更好的是,less 命令結合管道 符號“|”分屏查看執行命令時輸出的信息時,既可以向下翻頁,也可以向上翻頁。而 more 命令只能向下翻頁,不能向上翻頁。
命令:head 和 tail 查看文件開頭或末尾的部分內容
head 和 tail 是一對作用相反的命令,前者用于顯示文件開頭的一部分內容,后者用于 顯示文件末尾的一部分內容。可以使用“-n”選項(n 為具體的行數)指定需要顯示多少行 的內容,若不指定行數,默認只顯示十行。 執行“head -4 /etc/passwd”命令,可以查看用戶賬號文件/etc/passwd 開頭第一行至第 四行的部分內容。
[root@localhost ~]# head -4 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
tail 命令則正好相反,用于查看文件末尾的內容。tail 命令通常用于查看系統日志(因為較新的日志記錄總是添加到文件最后),以便觀察網絡訪問、服務調試等相關信息。配合 “-f ”選項使用時,還可以跟蹤文件尾部內容的動態更新,便于實時監控文件內容的變化。例如,以下操作可以查看系統公共日志文件/var/log/messages 的最后十行內容,并在 末尾跟蹤顯示該文件中新記錄的內容(按 Ctrl+C 組合鍵終止)。
[root@localhost ~]# tail -f /var/log/messages
?? //省略顯示內容
May 3 22:17:22 localhost PackageKit: uid 0 is trying to obtain org.freedesktop.
packagekit.system-sources-refresh auth (only_trusted:0)
May 3 22:17:22 localhost PackageKit: uid 0 obtained auth for org.freedesktop.
packagekit.system-sources-refresh
May 3 22:17:23 localhost kernel: TCP: lp registered
命令:wc 統計文件內容中的單詞數量(Word Count)、行數等信息
wc 命令用于統計文件內容中包含的行數、單詞數量、字節數等信息,使用文件名作為 參數,可以同時統計多個文件。
常用選項:
-c:統計文件內容中的字節數。
-l:統計文件內容中的行數。
-w:統計文件內容中的單詞個數(以空格或制表位作為分隔)。
當文件的行數、單詞數或字節數具有特定的意義時,使用 wc 命令可以巧妙地獲得一些 特殊信息。例如,Linux 操作系統中的用戶賬號數據保存在/etc/passwd 文件中,其中每一 行記錄對應一個用戶,則以下操作可以統計出當前 Linux 操作系統中擁有的用戶賬號數量,具 體操作如下:
[root@localhost ~]# wc -l /etc/passwd
46 /etc/passwd
若將 wc 命令與管道符號一起使用,還可以對命令輸出結果進行統計。例如,若要統計 /etc/目錄下共包含多少個擴展名為“.conf”的文件,可以先通過“find /etc -name "*.conf"” 命令找出符合條件的文件位置,由于 find 命令的輸出結果也是每行一個文件記錄,因此只 需結合管道符號執行“wc -l”操作即可得出符合條件的文件數量,具體操作如下:
[root@localhost ~]# find /etc -name "*.conf" | wc -l
432
使用不帶任何選項的 wc 命令時,默認將統計指定文件的字節數、行數、單詞個數(相 當于同時使用“-c”“-l”“-w”三個選項)。例如,以下操作統計出/etc/hosts 文件中共包 含 2 行、10 個單詞、158 字節的內容,然后通過“cat /etc/hosts”命令列出文件內容,可 核對統計結果是否正確。
[root@localhost ~]# wc /etc/hosts
2 10 158 /etc/hosts
命令:grep 檢索、過濾文件內容
grep 命令用于在文件中查找并顯示包含指定字符串的行,可以直接指定關鍵字符串作 為查找條件,也可以使用復雜的條件表達式(例如,“^word”表示以 word 開頭,“word$” 表示以 word 結尾,“^$”表示空行)。
格式: grep [選項] 查找條件 目標文件
常用選項:
-i:查找內容時忽略大小寫(Ignore Case)。
-v:反轉查找(Invert),即輸出與查找條件不相符的行。
例如,執行“grep "ftp" /etc/passwd”命令,可以在賬號文件/etc/passwd 中查找包 含“ftp”字符串的行,實際上輸出了名為 ftp 的用戶賬號的信息,具體操作如下:
[root@localhost ~]# grep "ftp" /etc/passwd
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
在維護 Linux 操作系統的過程中,經常會遇到包含大量內容的配置文件,而其中往往包 含了許多空行和以“ # ”開頭的注釋文字,當只需要分析其中的有效配置信息時,這些空行 和注釋文字的存在不利于快速瀏覽。使用 grep 命令可以過濾掉這些無關信息。例如,以下 操作可以顯示/etc/yum.conf 文件中以“#”開頭的行和空行以外的內容。
[root@localhost ~]# grep -v "^#" /etc/yum.conf | grep -v "^$"
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
........................................//省略部分內容
gzip 和 bzip2 是 Linux 操作系統中使用最多的兩個壓縮工具,這兩個命令都可以壓縮 指定的文件,或者將已經壓縮過的文件進行解壓。兩者使用的壓縮算法各不相同,但命令使 用格式基本類似,一般來說 bzip2 的壓縮效率要好一些。
命令:gzip 和 gunzip 壓縮和解壓縮
使用 gzip 制作的壓縮文件默認的擴展名為“.gz”。制作壓縮文件時,使用“-9”選項 可以提高壓縮的比率,但文件較大時會需要更多的時間。例如,以下操作將對當前目錄下的 mkfile 文件進行壓縮,生成壓縮文件 mkfile.gz(原始文件 mkfile 不再保留),壓縮后的文 件大小變為 30KB(未壓縮時為 62KB)。
[root@localhost ~]# ls -lh mkfile*
-rwxr-xr-x. 1 root root 62K May 4 01:32 mkfile
[root@localhost ~]# gzip mkfile
[root@localhost ~]# ls -lh mkfile*
-rwxr-xr-x. 1 root root 30K May 4 01:32 mkfile.gz
當需要解壓縮經 gzip 壓縮的文件時,只需使用帶“-d”選項的 gzip 命令即可,或者直接使 用 gunzip 命令。例如,若將壓縮文件 mkfile.gz 進行解壓縮,可執行以下操作。
[root@localhost ~]# gzip -d mkfile.gz
或
[root@localhost ~]# gunzip mkfile.gz
命令:bzip2 和 bunzip2 壓縮和解壓縮
bzip2 和 bunzip2 命令的用法與 gzip、gunzip 命令基本相同,使用 bzip2 制作的壓縮 文件默認的擴展名為“.bz2”。例如,以下操作將對當前目錄下的 mkfile 文件以較高壓縮比 進行壓縮,生成壓縮文件 mkfile.bz2(原始文件 mkfile 不再保留),壓縮后的文件大小變 為 30KB(未壓縮時為 62KB)。
[root@localhost ~]# ls -lh mkfile*
-rwxr-xr-x. 1 root root 62K May 4 01:32 mkfile
[root@localhost ~]# bzip2 -9 mkfile
[root@localhost ~]# ls -lh mkfile*
-rwxr-xr-x. 1 root root 30K May 4 01:32 mkfile.bz2
與 gzip、gunzip 命令相同,當需要解壓縮經 bzip2 壓縮的文件時,只需使用帶“-d”選 項的 bzip2 命令即可,或者直接使用 bunzip2 命令。例如,若要將壓縮文件 mkfile.gz 進行 解壓縮,可執行以下操作。
[root@localhost ~]# bzip2 -d mkfile.bz2
或者
[root@localhost ~]# bunzip2 mkfile.bz2
tar 命令主要用于對目錄和文件進行歸檔。在實際的備份工作中,通常在歸檔的同時也 會將包文件進行壓縮(需要調用前面的 gzip 或 bzip2 命令),以節省磁盤空間。使用 tar 命令時,選項前的“-”號可以省略。常用的幾個選項如下所述。
-c:創建(Create).tar 格式的包文件。
-C:解壓時指定釋放的目標文件夾。
-f:表示使用歸檔文件。
-j:調用 bzip2 程序進行壓縮或解壓。
-p:打包時保留文件及目錄的權限。
-P:打包時保留文件及目錄的絕對路徑。
-t:列表查看包內的文件。
-v:輸出詳細信息(Verbose)。
-x:解開.tar 格式的包文件。
-z:調用 gzip 程序進行壓縮或解壓。
制作歸檔備份文件
基本格式:tar [選項] 歸檔及壓縮文件名 需要歸檔的源文件或目錄
如果需要對制作的歸檔文件進行壓縮,可以通過“-z”或“-j”選項自動調用壓縮工具(分別對應 gzip、bzip2 命令程序)進行壓縮。例如,以下操作將會對/etc 和/boot 目錄進行備份,在當前目錄下生成名為 sysfile.tar.gz 的歸檔壓縮包,執行過程中可以看到被歸 檔的文件列表信息。需要注意的是,在備份恢復目錄或文件時,最好先將工作路徑切換至目 標目錄或文件的所在路徑,然后在執行備份命令時使用相對路徑,以防輸入命令時因手誤而導致根目錄“/”下重要文件損壞。
[root@localhost ~]# cd /
[root@localhost /]# tar zcvf sysfile.tar.gz etc boot
etc/
etc/login.defs
etc/cron.hourly/
etc/fstab
?? //省略部分內容
[root@localhost /]# ls -lh sysfile.tar.gz
-rw-r--r--. 1 root root 125M 4 月 10 11:46 sysfile.tar.gz
若需要制作“.tar.bz2”格式的歸檔壓縮包,則將“-z”選項改為“-j”選項使用即可。 例如,以下操作將會對/etc/passwd、/etc/shadow 文件進行備份,在/tmp 目錄下生成名為 usershome.tar.bz2 的歸檔壓縮包。
[root@localhost ~]# cd /etc
[root@localhost etc]# tar jcvf /tmp/usershome.tar.bz2 passwd shadow
etc/passwd
etc/shadow
[root@localhost etc]# ls -lh /tmp/usershome.tar.bz2
-rw-r--r--. 1 root root 2.2K 4 月 10 11:50 /tmp/usershome.tar.bz2
從歸檔文件中恢復數據
基本格式: tar [選項] 歸檔及壓縮文件名 [-C 目標目錄]
類似地,當從“.tar.gz”格式的歸檔壓縮包恢復數據時,需要結合“-z”選項來自動 調用壓縮工具,而對于“.tar.bz2”格式的歸檔壓縮包,對應的是“-j”選項。默認情況 下,恢復的數據將釋放到當前目錄中,如果需要恢復到指定文件夾,還需要結合“-C”選項 來指定目標目錄。例如,以下操作將從備份文件 usershome.tar.bz2 中恢復數據,釋放到/etc 目錄下(將覆蓋現有文件)。
[root@localhost ~]# tar jxf /tmp/usershome.tar.bz2 -C /etc
在大部分的備份及恢復工作中,只使用 tar 命令就可以很好地結合 gzip、bzip2 工具協 同工作,無須再執行 gzip 或 bzip2 命令。但是要注意這兩個壓縮工具的命令程序必須存在。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。