Linux centos7系統基礎命令詳解

Linux系統命令基本介紹

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

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
選項:shell

-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 ~]# ,這些字符具體表明什麼呢,下面我會逐個說明apache

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 文件。 vim

  • 使用一個點號「.」開頭可明確表示以當前的工做目錄做爲起點。例如, 「./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」是用不一樣顏色將不一樣格式的文件區分開來,通常默認狀況下就已經執行了此命令,下面介紹一下常見的顏色表明的文件類型:centos

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

除了這些常見的選項,還有通配符「 ? 」、「 * 」bash

「?」是匹配文件名中的一個未知字符,例如你想用「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/hda一、/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 歸檔和釋放工具

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

相關文章
相關標籤/搜索