Linux centos7系統基礎命令詳解

Linux系統命令基本介紹

長久以來呢,Linux操作系統以其穩定、高效且可靠等優點被大量的應用於企業服務器領域。
大部分對Linux服務器的管理和維護都是通過遠程登錄的方式來進行的。
而絕大部分的管理維護操作都是基於Linux命令來實現的,所以Linux命令在工作中就顯得至關重要。
在將Linux命令之前,先得了解它的工作原理
原理很簡單,其實就是我們用戶輸入一串字符命令,由shell將這條命令“翻譯”爲系統內核能夠懂的“語言”,然後系統內核便根據這條命令去執行相關操作。
Linux centos7系統基礎命令詳解
講完原理之後,我們瞭解一下Linux命令有哪些類型
其實很簡單,Linux命令有兩種,內部命令和外部命令
具體區別如下
Linux centos7系統基礎命令詳解
瞭解了Linux命令類型,我們再瞭解一下命令的結構
一條Linux命令,一般由三個部分組成,分別爲:命令字選項參數
在這三個部分中,命令字是最關鍵的一部分,也是不能缺少的,另外兩個部分根據具體情況是可以不要的
選項,分爲長格式選項和短格式選項,長格式選項用“--”符號引導,一般後面接單詞代表一個功能;短格式選項用“-”符號引導,一般後面接單個字母爲一個功能。
參數,是命令字的處理對象,可以是文件名、目錄名或用戶名等,數量可以是零到多個
Linux centos7系統基礎命令詳解
在介紹基礎命令之前,我們先了解一些Linux命令行的輔助操作,熟練掌握這些操作能夠幫我們更好的使用Linux命令哦。

Tab鍵:自動補齊
反斜槓“\”:強制換行
快捷鍵Ctrl+U:清空至行首
快捷鍵Ctrl+K:清空至行尾
快捷鍵Ctrl+L:清空屏幕
快捷鍵Ctrl+C:取消本次命令編輯

tab鍵的自動補齊功能是我最喜歡的輔助操作,當你輸入參數時,發現這個目錄名太長,此時你只用輸入前幾個字母,按下tab鍵,就能自動幫你補齊目錄名,比如我想輸入“sysconfig”這個目錄名,我只用輸入“sysco”後面直接tab鍵就能自動補齊
Linux centos7系統基礎命令詳解
Linux centos7系統基礎命令詳解
反斜槓“\”是用來強制換行的,如果我要輸入vim /etc/sysconfig/network-scripts/ifcfg-ens33這條命令,我可以在中間任意地方用“\”來強制換行
Linux centos7系統基礎命令詳解
Ctrl+U清空至行首,簡單來說就是刪除光標前面的字符
Linux centos7系統基礎命令詳解
Linux centos7系統基礎命令詳解
Ctrl+K清空至行尾,簡單說就是刪除光標後面的所有字符
Linux centos7系統基礎命令詳解
Linux centos7系統基礎命令詳解
Ctrl+L清空屏幕,不是說刪除之前輸入的命令,而是當你輸入的命令太多佔據了所有用戶界面,它可以讓你重新從用戶界面的第一行開始輸入
Linux centos7系統基礎命令詳解
Linux centos7系統基礎命令詳解
Ctrl+C取消本次命令編輯,用來終止命令的。例如我用ping命令檢查網絡是否互通時,它會一直持續發送數據包過去,當我想停止時就可以使用Ctrl+C
Linux centos7系統基礎命令詳解

獲得命令幫助的方法:

除了這些輔助操作,當我們忘了某條命令,或者不知道某條命令是什麼意思時,可以獲取命令幫助,具體方法如下:
內部命令help
選項:

-L 打印$PWD 變量的值,如果它命名了當前的工作目錄 
-P 打印當前的物理路徑,不帶有任何的符號鏈接 
  • 查看Bash內部命令的幫助信息。你只需要輸入“help”就能查看一些命令和它的功能,但並不是包括所有命令。
    Linux centos7系統基礎命令詳解
    命令的“--help”選項
  • 適用於大多數外部命令。當你突然忘了一個命令的功能,或是忘了選項的功能,都可以直接在這個命令後面直接加“--help”,查看命令的具體功能。
    Linux centos7系統基礎命令詳解
    使用man命令閱讀手冊頁
  • 使用“向上鍵”、“向下鍵”滾動文本
  • 使用Page Up和Page Down鍵翻頁
  • 按Q或q鍵退出閱讀環境、按“/”鍵查找內容
    因爲我安裝Linux時,安裝了圖形化界面,而很多服務器在安裝時是不會安裝圖形化界面的,這時你用“--help”查詢是不能滾動的界面,很多內容看不到。
    Linux centos7系統基礎命令詳解
    所以這時可以用“man”命令來彌補“--help”命令這方面的缺點。應爲“man”命令可以進入一個閱讀環境,能夠滾動、翻頁。
    Linux centos7系統基礎命令詳解

目錄和文件基本操作

在我們在輸入命令時,前面會有一串字符[root@localhost ~]# ,這些字符具體代表什麼呢,下面我會逐個說明

root:當前系統登錄用戶,可以用su 加上用戶名切換用戶
localhost:主機名稱,可以用hostname命令查看,用hostnamectl set-hostname 加上新的主機名來更改主機名
~:當前所在的位置(“~”代表家目錄)
#:代表當前是管理員身份
$:代表當前是普通用戶身份

瞭解前面這些,下面我們開始講解Linux基礎命令
命令:“pwd”查看當前工作目錄(Print Working Directory)
“pwd”用來查看當前所在的目錄,記住查看的是絕對路徑,比如我在sysconfig目錄底下用“pwd”查看目錄,會顯示絕對路徑/etc/sysconfig
Linux centos7系統基礎命令詳解
講到絕對路徑,那就說一下,路徑分爲絕對路徑和相對路徑。絕對路徑較簡單是以根目錄“/”爲開頭,以根目錄爲起點,一直到當前所在目錄。
相對路徑表現形式有一下幾種:
Linux centos7系統基礎命令詳解
命令:“cd”切換工作目錄(Change Directory)
“cd”用來切換工作目錄的,例如我想進入/etc/sysconfig/network-scripts這個目錄
就可以直接輸入“cd /etc/sysconfig/network-scripts”就能進入這個目錄了。
Linux centos7系統基礎命令詳解
除了切換到指定的工作目錄,“cd”命令還有幾個選項功能:

  • “cd ~”或“cd”:切換到當前用戶的宿主目錄
    Linux centos7系統基礎命令詳解
  • “cd -”切換到上次執行“cd”命令的目錄
    Linux centos7系統基礎命令詳解
  • “cd ..”返回到當前目錄的上一級目錄
    Linux centos7系統基礎命令詳解

在 Linux 操作系統中表示某個目錄(或文件)的位置時,根據其參照的起始目錄不同, 可以使用兩種不同的形式,分別稱爲絕對路徑和相對路徑。
絕對路徑:這種方式以根目錄“/”作爲起點,如“/boot/grub”表示根目錄下 boot 子目錄中的 grub 目錄。若要確切表明 grub 是一個目錄(而不是一個文件),可以 在最後也加上一個目錄分隔符,如表示爲“/boot/grub/”。因爲 Linux 操作系統中 的根目錄只有一個,所以不管當前處於哪個目錄中,使用絕對路徑都可以非常準確 地表示一個目錄(或文件)所在的位置。但是如果路徑較長,輸入的時候會比較煩 瑣。
相對路徑:這種方式一般以當前工作目錄作爲起點,在開頭不使用“/”符號,因 此使用的時候更加簡短、便捷。相對路徑主要包括如下幾種形式: 直接使用目錄名或文件名錶示當前工作目錄中的子目錄、文件的位置。例如,
“grub.conf”可表示當前目錄下的 grub.conf 文件。

  • 使用一個點號“.”開頭可明確表示以當前的工作目錄作爲起點。例如, “./grub.conf”也可表示當前目錄下的 grub.conf 文件。
  • 使用兩個點號“..”開頭表示以當前目錄的上一級目錄(父目錄)作爲起點。 例如 , 若 當 前 處 於 /boot/grub/ 目 錄 中 , 則 “ ../vmlinuz ”等同於 “/boot/vmlinuz”。
  • 使用“~用戶名”的形式開頭表示以指定用戶的宿主目錄作爲起點,省略用戶名時默認爲當前用戶。例如,“~teacher”表示 teacher 用戶的宿主目錄,而 “~”可表示當前用戶的宿主目錄。
    命令:“ls”顯示當前目錄的內容(“dir”命令與它功能差不多,但很少用,一般都用“ls”),後面常用的選項有“-l”、“-a”、“-A”、“-d”、“-h”、“-R”、“--color”
-l:以長格式(Long)顯示文件和目錄的列表,包括權限、大小、最後更新時間等 詳細信息。不使用-l 選項時,ls 命令默認以短格式顯示目錄名或文件名信息。 
-a:顯示所有(All)子目錄和文件的信息,包括名稱以點號“.”開頭的隱藏目錄 和隱藏文件。 
-A:與-a 選項的作用基本類似,但有兩個特殊隱藏目錄不會顯示,即表示當前目 錄的“.”和表示父目錄的“..”。 
-d:顯示目錄(Directory)本身的屬性,而不是顯示目錄中的內容。 
-h:以更人性化(Human)的方式顯示目錄或文件的大小,默認的大小單位爲字節 (B),使用-h 選項後將顯示爲 KB、MB 等單位。此選項需要結合-l 選項一起使用。 
-R:以遞歸(Recursive)的方式顯示指定目錄及其子目錄中的所有內容。 
--color:在字符模式中以顏色區分不同的文件,如果使用“--color=tty”,則表 示使用終端預定義的顏色方案。通常情況下,深藍色表示目錄,白色或黑色(若背景顏色爲黑色則文件顏色爲白色,相反則互換)表示一般文件, 綠色表示可執行的文件,黃color表示設備文件,紅色表示壓縮文件。

Linux centos7系統基礎命令詳解
“ls”只是單純的顯示當前目錄的內容,當後面加上不同選項,又能實現不同的功能,下面我將詳細介紹:
“ls -a” 列出目錄下的所有文件(顯示隱藏文件),包括以 “.”、“..”開頭的隱藏文件,而“ls -A”也是顯示隱藏文件與“ls -a”的唯一區別就是不顯示“.”、“..”開頭的隱藏文件。
Linux centos7系統基礎命令詳解
“ls -d”是將目錄象文件一樣顯示,而不是顯示其下的文件
Linux centos7系統基礎命令詳解
“ls -l”是顯示目錄下文件的詳細信息,如創建者,創建時間,文件的讀寫權限列表等等。
Linux centos7系統基礎命令詳解
“ls -h”將目錄下文件的大小以帶單位的形式顯示出來,如果只用“ls -l”文件大小的單位統一都是“字節”,具體還得我們自己進行單位換算。
Linux centos7系統基礎命令詳解
“ls -R”將目錄下所有的子目錄的文件都列出來,相當於我們編程中的“遞歸”實現。
Linux centos7系統基礎命令詳解
“ls -color”是用不同顏色將不同格式的文件區分開來,一般默認情況下就已經執行了此命令,下面介紹一下常見的顏色代表的文件類型:

黑色------數據文件
綠色------可執行文件
紅色------壓縮文件
深藍色------目錄(文件夾)
淡藍色------軟鏈接文件(快捷方式)

除了這些常見的選項,還有通配符“ ? ”、“ * ”

“?”是匹配文件名中的一個未知字符,例如你想用“ls”命令查看一個文件,文件名其中幾個字母不確定就可以用“?”代替
Linux centos7系統基礎命令詳解
“ * ”是匹配文件中的任意多個字符,例如你想用“ls”命令查看一個文件,但你只記得其中一個字母,就可以用這個字母加上“ * ”來進行查找
Linux centos7系統基礎命令詳解

命令:“du”統計目錄及文件空間佔用情況(Disk Usage)
常用選項:

-a:統計磁盤空間佔用時包括所有的文件,而不僅僅只統計目錄。 
-h:以更人性化的方式(默認以 KB 計數,但不顯示單位)顯示出統計結果,使用 -h 選項後將顯示出 KB、MB 等單位。 
-s:只統計每個參數所佔用空間總的(Summary)大小,而不是統計每個子目錄、 文件的大小。 

“du -a”統計磁盤空間佔用時包括所有的文件,而不僅僅只統計目錄
Linux centos7系統基礎命令詳解
Linux centos7系統基礎命令詳解
“du -h”以更人性化的方式顯示出統計結果,默認以KB爲計數,但不顯示單位
Linux centos7系統基礎命令詳解
Linux centos7系統基礎命令詳解
“du -s”只統計所佔空間總的大小,而不統計每個子目錄、文件大小
Linux centos7系統基礎命令詳解
當然這些選項也可以結合起來用,例如你想統計/var/log/目錄的總大小,同時顯示出具體單位就可以輸入
“du -sh /var/log/”來進行統計
Linux centos7系統基礎命令詳解

命令:“alias”設置別名
當你覺得一條命令輸入太麻煩,而這條命令你要經常得用,此時你可以給它設置一個簡單的別名,方便輸入。
例如你想將“ls -alh”設置個別名爲“myls”,就可以輸入“alias myls='ls -alh'”
Linux centos7系統基礎命令詳解

創建目錄和文件

命令:“mkdir”創建新目錄(Make Directory)

如果你想在當前目錄下創建一個新目錄aaa,你可以輸入“mkdir aaa”即可
Linux centos7系統基礎命令詳解
同時創建多個目錄,只用在目錄之間加上空格即可例如“mkdir 111 222 333”
Linux centos7系統基礎命令詳解
“mkdir -p”可以實現一次性創建嵌套的多層目錄,不然的話只能先創建一個目錄,再通過“cd”命令進入這個目錄才能接着創建子目錄
Linux centos7系統基礎命令詳解

命令:“touch”創建空文件

“touch”命令當你不指定創建文件的目錄時,它會默認創建在當前目錄下,同時創建多個文件時只需用空格將文件隔開即可。
Linux centos7系統基礎命令詳解
“touch”命令創建的文件是空文件,當我們想直接在創建文件時將內容一起添加進去時,我們可以用“echo”命令,例如我想在/root/aaa/bbb/目錄創建一個文件bbb01.txt,內容爲“this is bbb01”,我可以輸入“echo “this is bbb01” > /root/aaa/bbb/bbb01.txt”。
Linux centos7系統基礎命令詳解
命令:“ln”創建鏈接文件

**格式: **ln [-s] 源文件或目錄 鏈接文件或目標位置

在講“ln”命令之前先了解一下鏈接文件,鏈接文件就是類似於Windows系統的快捷方式。鏈接分爲兩種,軟鏈接(又稱符號鏈接)、硬鏈接,下面介紹一下兩種鏈接:
Linux centos7系統基礎命令詳解

使用 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的目錄結構方便大家理解。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 ([email protected]) (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 歸檔和釋放工具

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 命令。但是要注意這兩個壓縮工具的命令程序必須存在。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章