溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Linux centos7系統(tǒng)基礎(chǔ)命令詳解

發(fā)布時間:2020-07-14 15:18:03 來源:網(wǎng)絡(luò) 閱讀:811 作者:wx5d2c2d660c282 欄目:系統(tǒng)運維

Linux系統(tǒng)命令基本介紹

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

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

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

獲得命令幫助的方法:

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

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

目錄和文件基本操作

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

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

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

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

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

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

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

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

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

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

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

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

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

命令:“alias”設(shè)置別名
當你覺得一條命令輸入太麻煩,而這條命令你要經(jīng)常得用,此時你可以給它設(shè)置一個簡單的別名,方便輸入。
例如你想將“l(fā)s -alh”設(shè)置個別名為“myls”,就可以輸入“alias myls='ls -alh'”
Linux centos7系統(tǒng)基礎(chǔ)命令詳解

創(chuàng)建目錄和文件

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

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

命令:“touch”創(chuàng)建空文件

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

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

在講“l(fā)n”命令之前先了解一下鏈接文件,鏈接文件就是類似于Windows系統(tǒng)的快捷方式。鏈接分為兩種,軟鏈接(又稱符號鏈接)、硬鏈接,下面介紹一下兩種鏈接:
Linux centos7系統(tǒng)基礎(chǔ)命令詳解

使用 ln 命令時,默認創(chuàng)建的是硬鏈接。如果需要創(chuàng)建軟鏈接,必須結(jié)合“-s”選項明
確指定。ln 命令的基本使用格式如下:
ln [-s] 源文件或目錄? 鏈接文件或目標位置
當目標位置是一個已經(jīng)存在的目錄時,新創(chuàng)建的鏈接文件將保存到該目錄中,并使用與
源文件或目錄相同的名稱。例如,以下操作將為文件/bin/bzip2 創(chuàng)建一個軟鏈接文件
/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 命令用于復制文件或目錄,將需要復制的文件或目錄(源)重建一份并保存為新的 文件或目錄(可保存到其他目錄中)。需要復制多個文件或目錄時,目標位置必須是目錄,且目標目錄必須已經(jīng)存在。

格式:cp [選項] 源文件或目錄 目標文件或目錄

常用選項:

-f:覆蓋目標同名文件或目錄時不進行提醒,而直接強制(Force)復制。 
-i:覆蓋目標同名文件或目錄時提醒用戶確認(Interactive,交互式)。 
-p:復制時保持(Preserve)源文件的權(quán)限、屬主及時間標記等屬性不變。 
-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 

如果需要復制的數(shù)據(jù)包括完整的目錄,則需要結(jié)合“-r”選項才能成功執(zhí)行,否則目錄 將被忽略。例如,以下操作將把目錄/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 命令使用要刪除的文件或目錄名作為參 數(shù)。
常用的幾個選項如下(與 cp 命令的對應(yīng)選項含義基本相似):

-f:刪除文件或目錄時不進行提醒,而直接強制刪除。 
-i:刪除文件或目錄時提醒用戶確認。 
-r:刪除目錄時必須使用此選項,表示遞歸刪除整個目錄樹(應(yīng)謹慎使用)

對于已經(jīng)確定不再使用的數(shù)據(jù)(包含目錄、文件),通常結(jié)合“-rf”選項直接進行刪除 而不進行提示。例如,若要刪除剛復制到 public_html 目錄中的 grub 目錄樹,且不提示用 戶進行確認(直接刪除),可以執(zhí)行“rm -rf public_html/grub/”命令,具體操作如下:

[root@localhost ~]# rm -rf public_html/grub/ 
[root@localhost ~]# ls public_html/ 
host.conf

如果需要在執(zhí)行刪除操作前進行確認,可以使用“-i”選項(不要和-f 選項同時使用), rm 命令將對每個待刪除的文件或目錄提示用戶是否真的刪除,需要輸入 y(表示刪除)或 n (表示不刪除)進行確認。例如,以下操作將以提示確認的方式刪除 public_html 目錄中的 host.conf 文件(根據(jù)提示信息輸入 y 確認刪除)。

[root@localhost ~]# rm -i public_html/host.conf 
rm:是否刪除 普通文件 "public_html/host.conf"? y 

命令:mv 移動(Move)文件或目錄

mv 命令用于將指定的文件或目錄轉(zhuǎn)移位置,如果目標位置與源位置相同,則效果相當 于為文件或目錄改名。

格式:mv [選項] 源文件或目錄 目標文件或目錄
需要移動多個文件或目錄時,目標位置必須是目錄,且目標目錄必須已經(jīng)存在。 如果在同一個目錄下移動文件或目錄,則相當于執(zhí)行重命名操作。例如,以下操作將把 當前目錄中的 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

如果移動一個文件或目錄到一個已經(jīng)存在的文件夾中,可以只指定目標文件夾位置。例 如,以下操作將把 mkfile 文件移動到 public_html 目錄(已經(jīng)存在)中,文件名仍然是 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 查找用戶所執(zhí)行的命令文件存放的目錄 。

which 命令用于查找 Linux 命令程序并顯示所在的具體位置,其搜索范圍主要由用戶的 環(huán)境變量 PATH 決定(可以執(zhí)行“echo $PATH”命令查看),這個范圍也是 Linux 操作系統(tǒng)在 執(zhí)行命令或程序時的默認搜索路徑。

which 命令使用要查找的命令或程序名作為參數(shù),默認當找到第一個目標后即不再繼續(xù) 查找,若希望在所有搜索路徑中查找,可以添加“-a”選項。例如,執(zhí)行“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 內(nèi)置的命令并沒有對應(yīng)的程序文件,因此使用 which 查找內(nèi)部命令時, 將找不到對應(yīng)的程序。例如,查找內(nèi)部命令 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 操作系統(tǒng)中功能非常強大的查找命令,可以根據(jù)目標的名稱、類型、 大小等不同屬性進行精細查找。find 命令在查找時采用遞歸的方式,其使用形式相當靈活, 也可以相當復雜。這里只介紹最常用的幾種用法。

格式: find [查找范圍] [查找條件表達式]

其中,查找范圍對應(yīng)的是在其中查找文件或子目錄的目錄位置(可以有多個),而查找 條件則決定了 find 命令根據(jù)哪些屬性、特征進行查找。較常用的幾種查找條件類型如 下所述。

按名稱查找:關(guān)鍵字為“-name”,根據(jù)目標文件的名稱進行查找,允許使用“ * ” 及“ ? ”通配符。 
按文件大小查找:關(guān)鍵字為“-size”,根據(jù)目標文件的大小進行查找,一般使用“+” 和“-”號設(shè)置超過或小于指定的大小作為查找條件。常用的容量單位包括 kB(注 意 k 是小寫)、MB、GB。 
按文件屬主查找:關(guān)鍵字為“-user”,根據(jù)文件是否屬于目標用戶進行查找。 
按文件類型查找:關(guān)鍵字為“-type”,根據(jù)文件的類型進行查找,這里的類型指的 是普通文件(f)、目錄(d)、塊設(shè)備文件(b)、字符設(shè)備文件(c)等。塊設(shè)備指 的是成塊讀取數(shù)據(jù)的設(shè)備(如硬盤、內(nèi)存等),而字符設(shè)備指的是按單個字符讀取 數(shù)據(jù)的設(shè)備(如鍵盤、鼠標等)。 

設(shè)置 find 命令的查找條件時,若需要使用“ * ”或“ ? ”通配符,最好將文件名用雙引號括起來,以避免當前目錄下符合條件的文件干擾查找結(jié)果。例如,以下操作將在/etc 目 錄中遞歸查找名稱以“resol”開頭、以“.conf”結(jié)尾的文件。

[root@localhost ~]# find /etc –name "resol*.conf" 
/etc/resolv.conf 

使用“-type”查找條件可以過濾出指定類型的文件。例如,以下操作將在/boot 目錄 中查找出所有的文件夾(對應(yīng)的類型為 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 目錄結(jié)構(gòu)

下面將要講解一些目錄、文件相關(guān)的命令,在講解前先講一下Linux的目錄結(jié)構(gòu)方便大家理解。Linux 操作系統(tǒng)在定位文件或目錄位置時,使用斜杠“/”進行分隔(區(qū)別于 Windows 操作系統(tǒng)中的反斜杠“\”)。整個樹形目錄結(jié)構(gòu)中,使用獨立的一個“/”表示根目錄,根目 錄是 Linux 操作文件系統(tǒng)的起點,其所在的分區(qū)稱為根分區(qū)。在根目錄下,Linux 操作系統(tǒng) 將默認建立一些特殊的子目錄,分別具有不同的用途。下面簡單介紹一下其中常見的子目錄及其作用。

/boot:此目錄是系統(tǒng)內(nèi)核存放的目錄,同時也是系統(tǒng)啟動時所需文件的存放目錄, 如 vmlinuz 和 initrd.img。在安裝 Linux 時,為 boot 目錄創(chuàng)建一個分區(qū),有利于 對系統(tǒng)進行備份。 
/bin:bin 是 binary 的縮寫。這一目錄存放了所有用戶都可執(zhí)行的且經(jīng)常使用的 命令,如 cp、ls 等。 
/dev:此目錄保存了接口設(shè)備文件,如/dev/hda1、/dev/cdrom 等。 
/etc:此目錄保存有關(guān)系統(tǒng)設(shè)置與管理的文件。 
/home:存放所有普通系統(tǒng)用戶的默認工作文件夾(即宿主目錄、家目錄),如用戶 賬號“teacher”對應(yīng)的宿主目錄位于“/home/teacher/”。如果服務(wù)器需要提供 給大量的普通用戶使用,建議將“/home”目錄也劃分為獨立的分區(qū),以方便用戶 數(shù)據(jù)的備份。 
/root:該目錄是 Linux 操作系統(tǒng)管理員(超級用戶)root 的宿主目錄,默認情況 下只有 root 用戶的宿主目錄在根目錄下而不是在“/home”目錄下。 
/sbin:存放 Linux 操作系統(tǒng)中最基本的管理命令,一般管理員用戶才有權(quán)限執(zhí)行。
/usr:存放其他的用戶應(yīng)用程序,通常還被劃分成很多子目錄,用于存放不同類型 的應(yīng)用程序。 
/var:存放系統(tǒng)中經(jīng)常需要變化的一些文件,如系統(tǒng)日志文件、用戶郵箱目錄等, 在實際應(yīng)用系統(tǒng)中,“/var”目錄通常也被劃分為獨立的分區(qū)。 以上列舉的只是 Linux 操作系統(tǒng)中用戶經(jīng)常用到的子目錄,還有其他一些子目錄需要用 戶在使用 Linux 操作系統(tǒng)的過程中逐漸去熟悉。

查看文件內(nèi)容

命令:cat 顯示并連接(Concatenate)文件的內(nèi)容

cat 命令本來用于連接(Concatenate)多個文件的內(nèi)容,但在實際使用中更多地用于 查看文件內(nèi)容。cat 命令是應(yīng)用最為廣泛的文件內(nèi)容查看命令。使用該命令時,只需要 把 要 查 看 的 文 件 路 徑 作 為 參 數(shù) 即 可 。 例 如 , 以 下 操 作 就 可 以 查 看 /etc/sysconfig/network-scripts/ifcfg-ens33 配置文件中的內(nèi)容,并了解第一塊以太網(wǎng)
卡的配置信息。

[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

如果需要同時查看多個文件的內(nèi)容,可以添加多個文件路徑作為查看對象。例如,以下 操作將依次顯示/etc/redhat-release、/proc/version 文件的內(nèi)容,前者記錄了 CnetOS 系 統(tǒng)的發(fā)行版本信息,后者記錄了系統(tǒng)內(nèi)核及開發(fā)環(huán)境、時間等信息。

[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 分頁查看文件內(nèi)容

使用 cat 命令可以非常簡單地直接顯示整個文件的內(nèi)容,但是當文件中的內(nèi)容較多時, 很可能只能看到最后一部分信息,文件前面的大部分內(nèi)容都來不及看到。而 more 和 less 命令通過采用全屏的方式分頁顯示文件,便于我們從頭到尾仔細地閱讀文件內(nèi)容。
more 命令是較早出現(xiàn)的分頁顯示命令,表示文件內(nèi)容還有更多(more)的意思,less 命令是較晚出現(xiàn)的分頁顯示命令,提供了比早期 more 命令更多的一些擴展功能。兩個命令 的用法基本相同。
使用 more 命令查看超過一屏的文件內(nèi)容時,將進行分屏顯示,并在左下角顯示當前內(nèi) 容在整個文件中的百分比。在閱讀界面中,可以按 Enter 鍵向下逐行滾動查看,按 Space 鍵可以向下翻一屏,按 b 鍵向上翻一屏,按 q 鍵退出并返回原來的命令環(huán)境。例如,以下操 作將可以分屏查看/etc/httpd/ conf/httpd.conf(網(wǎng)站配置文件)文件的內(nèi)容。

[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 命令除了可以分屏查看文件內(nèi)容以外,還可以結(jié)合管道符號“|”分屏查看執(zhí)行命 令時的輸出信息,這在命令輸出內(nèi)容較多的情況下特別有用。例如,以下操作可以分頁查看 /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 
 ...................//省略部分內(nèi)容 
--more-- 

less 命令使用方法與 more 命令基本類似,但是比 more 更好的是,less 命令結(jié)合管道 符號“|”分屏查看執(zhí)行命令時輸出的信息時,既可以向下翻頁,也可以向上翻頁。而 more 命令只能向下翻頁,不能向上翻頁。

命令:head 和 tail 查看文件開頭或末尾的部分內(nèi)容

head 和 tail 是一對作用相反的命令,前者用于顯示文件開頭的一部分內(nèi)容,后者用于 顯示文件末尾的一部分內(nèi)容??梢允褂谩?n”選項(n 為具體的行數(shù))指定需要顯示多少行 的內(nèi)容,若不指定行數(shù),默認只顯示十行。 執(zhí)行“head -4 /etc/passwd”命令,可以查看用戶賬號文件/etc/passwd 開頭第一行至第 四行的部分內(nèi)容。

[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 命令則正好相反,用于查看文件末尾的內(nèi)容。tail 命令通常用于查看系統(tǒng)日志(因為較新的日志記錄總是添加到文件最后),以便觀察網(wǎng)絡(luò)訪問、服務(wù)調(diào)試等相關(guān)信息。配合 “-f ”選項使用時,還可以跟蹤文件尾部內(nèi)容的動態(tài)更新,便于實時監(jiān)控文件內(nèi)容的變化。例如,以下操作可以查看系統(tǒng)公共日志文件/var/log/messages 的最后十行內(nèi)容,并在 末尾跟蹤顯示該文件中新記錄的內(nèi)容(按 Ctrl+C 組合鍵終止)。

[root@localhost ~]# tail -f /var/log/messages 
?? //省略顯示內(nèi)容 
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 

統(tǒng)計和檢索文件內(nèi)容

命令:wc 統(tǒng)計文件內(nèi)容中的單詞數(shù)量(Word Count)、行數(shù)等信息

wc 命令用于統(tǒng)計文件內(nèi)容中包含的行數(shù)、單詞數(shù)量、字節(jié)數(shù)等信息,使用文件名作為 參數(shù),可以同時統(tǒng)計多個文件。
常用選項:

-c:統(tǒng)計文件內(nèi)容中的字節(jié)數(shù)。 
-l:統(tǒng)計文件內(nèi)容中的行數(shù)。 
-w:統(tǒng)計文件內(nèi)容中的單詞個數(shù)(以空格或制表位作為分隔)。 

當文件的行數(shù)、單詞數(shù)或字節(jié)數(shù)具有特定的意義時,使用 wc 命令可以巧妙地獲得一些 特殊信息。例如,Linux 操作系統(tǒng)中的用戶賬號數(shù)據(jù)保存在/etc/passwd 文件中,其中每一 行記錄對應(yīng)一個用戶,則以下操作可以統(tǒng)計出當前 Linux 操作系統(tǒng)中擁有的用戶賬號數(shù)量,具 體操作如下:

[root@localhost ~]# wc -l /etc/passwd 
46 /etc/passwd 

若將 wc 命令與管道符號一起使用,還可以對命令輸出結(jié)果進行統(tǒng)計。例如,若要統(tǒng)計 /etc/目錄下共包含多少個擴展名為“.conf”的文件,可以先通過“find /etc -name "*.conf"” 命令找出符合條件的文件位置,由于 find 命令的輸出結(jié)果也是每行一個文件記錄,因此只 需結(jié)合管道符號執(zhí)行“wc -l”操作即可得出符合條件的文件數(shù)量,具體操作如下:

[root@localhost ~]# find /etc -name "*.conf" | wc -l 
432 

使用不帶任何選項的 wc 命令時,默認將統(tǒng)計指定文件的字節(jié)數(shù)、行數(shù)、單詞個數(shù)(相 當于同時使用“-c”“-l”“-w”三個選項)。例如,以下操作統(tǒng)計出/etc/hosts 文件中共包 含 2 行、10 個單詞、158 字節(jié)的內(nèi)容,然后通過“cat /etc/hosts”命令列出文件內(nèi)容,可 核對統(tǒng)計結(jié)果是否正確。

[root@localhost ~]# wc /etc/hosts 
2 10 158 /etc/hosts 

命令:grep 檢索、過濾文件內(nèi)容

grep 命令用于在文件中查找并顯示包含指定字符串的行,可以直接指定關(guān)鍵字符串作 為查找條件,也可以使用復雜的條件表達式(例如,“^word”表示以 word 開頭,“word$” 表示以 word 結(jié)尾,“^$”表示空行)。

格式: grep [選項] 查找條件 目標文件

常用選項:

-i:查找內(nèi)容時忽略大小寫(Ignore Case)。 
-v:反轉(zhuǎn)查找(Invert),即輸出與查找條件不相符的行。

例如,執(zhí)行“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 操作系統(tǒng)的過程中,經(jīng)常會遇到包含大量內(nèi)容的配置文件,而其中往往包 含了許多空行和以“ # ”開頭的注釋文字,當只需要分析其中的有效配置信息時,這些空行 和注釋文字的存在不利于快速瀏覽。使用 grep 命令可以過濾掉這些無關(guān)信息。例如,以下 操作可以顯示/etc/yum.conf 文件中以“#”開頭的行和空行以外的內(nèi)容。

[root@localhost ~]# grep -v "^#" /etc/yum.conf | grep -v "^$" 
[main] 
cachedir=/var/cache/yum/$basearch/$releasever 
keepcache=0 
debuglevel=2 
........................................//省略部分內(nèi)容 

使用壓縮工具備份與恢復文檔

gzip 和 bzip2 是 Linux 操作系統(tǒng)中使用最多的兩個壓縮工具,這兩個命令都可以壓縮 指定的文件,或者將已經(jīng)壓縮過的文件進行解壓。兩者使用的壓縮算法各不相同,但命令使 用格式基本類似,一般來說 bzip2 的壓縮效率要好一些。

命令:gzip 和 gunzip 壓縮和解壓縮

使用 gzip 制作的壓縮文件默認的擴展名為“.gz”。制作壓縮文件時,使用“-9”選項 可以提高壓縮的比率,但文件較大時會需要更多的時間。例如,以下操作將對當前目錄下的 mkfile 文件進行壓縮,生成壓縮文件 mkfile.gz(原始文件 mkfile 不再保留),壓縮后的文 件大小變?yōu)?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 

當需要解壓縮經(jīng) gzip 壓縮的文件時,只需使用帶“-d”選項的 gzip 命令即可,或者直接使 用 gunzip 命令。例如,若將壓縮文件 mkfile.gz 進行解壓縮,可執(zhí)行以下操作。

[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 命令相同,當需要解壓縮經(jīng) bzip2 壓縮的文件時,只需使用帶“-d”選 項的 bzip2 命令即可,或者直接使用 bunzip2 命令。例如,若要將壓縮文件 mkfile.gz 進行 解壓縮,可執(zhí)行以下操作。

[root@localhost ~]# bzip2 -d mkfile.bz2 
或者
[root@localhost ~]# bunzip2 mkfile.bz2 

使用 tar 歸檔和釋放工具

tar 命令主要用于對目錄和文件進行歸檔。在實際的備份工作中,通常在歸檔的同時也 會將包文件進行壓縮(需要調(diào)用前面的 gzip 或 bzip2 命令),以節(jié)省磁盤空間。使用 tar 命令時,選項前的“-”號可以省略。常用的幾個選項如下所述。

-c:創(chuàng)建(Create).tar 格式的包文件。 
-C:解壓時指定釋放的目標文件夾。 
-f:表示使用歸檔文件。 
-j:調(diào)用 bzip2 程序進行壓縮或解壓。 
-p:打包時保留文件及目錄的權(quán)限。 
-P:打包時保留文件及目錄的絕對路徑。 
-t:列表查看包內(nèi)的文件。 
-v:輸出詳細信息(Verbose)。 
-x:解開.tar 格式的包文件。 
-z:調(diào)用 gzip 程序進行壓縮或解壓。 

制作歸檔備份文件

基本格式:tar [選項] 歸檔及壓縮文件名 需要歸檔的源文件或目錄

如果需要對制作的歸檔文件進行壓縮,可以通過“-z”或“-j”選項自動調(diào)用壓縮工具(分別對應(yīng) gzip、bzip2 命令程序)進行壓縮。例如,以下操作將會對/etc 和/boot 目錄進行備份,在當前目錄下生成名為 sysfile.tar.gz 的歸檔壓縮包,執(zhí)行過程中可以看到被歸 檔的文件列表信息。需要注意的是,在備份恢復目錄或文件時,最好先將工作路徑切換至目 標目錄或文件的所在路徑,然后在執(zhí)行備份命令時使用相對路徑,以防輸入命令時因手誤而導致根目錄“/”下重要文件損壞。

[root@localhost ~]# cd / 
[root@localhost /]# tar zcvf sysfile.tar.gz etc boot 
etc/ 
etc/login.defs 
etc/cron.hourly/ 
etc/fstab 
?? //省略部分內(nèi)容 
[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 

從歸檔文件中恢復數(shù)據(jù)

基本格式: tar [選項] 歸檔及壓縮文件名 [-C 目標目錄]

類似地,當從“.tar.gz”格式的歸檔壓縮包恢復數(shù)據(jù)時,需要結(jié)合“-z”選項來自動 調(diào)用壓縮工具,而對于“.tar.bz2”格式的歸檔壓縮包,對應(yīng)的是“-j”選項。默認情況 下,恢復的數(shù)據(jù)將釋放到當前目錄中,如果需要恢復到指定文件夾,還需要結(jié)合“-C”選項 來指定目標目錄。例如,以下操作將從備份文件 usershome.tar.bz2 中恢復數(shù)據(jù),釋放到/etc 目錄下(將覆蓋現(xiàn)有文件)。

[root@localhost ~]# tar jxf /tmp/usershome.tar.bz2 -C /etc

在大部分的備份及恢復工作中,只使用 tar 命令就可以很好地結(jié)合 gzip、bzip2 工具協(xié) 同工作,無須再執(zhí)行 gzip 或 bzip2 命令。但是要注意這兩個壓縮工具的命令程序必須存在。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI