Linux--目錄和文件管理(linux目錄結構,查看、統計及檢索文件,備份及恢復文檔,VI文本編輯器的)
前言:
關於linux常用基礎命令,可以看一下之前寫的博客
鏈接: https://blog.csdn.net/m0_47219942/article/details/106669959.
一:Linux目錄結構
1.1:樹形目錄結構
FHS(Filesystem Hierarchy Standard,目錄層次標準)定義了兩層規範:
第一層是“/”目錄下的各個目錄應該放什麼數據文件。例如,/etc目錄下放置系統的配置文件,而/bin 和/sbin 放置程序及系統命令。
第二層是針對/usr 和/var 這兩個目錄的子目錄來定義,例如:/var/log下放置系統日誌文件等。
CentOS系統中的目錄和文件數據被組織爲一個樹形目錄結構,所有的分區,目錄,文件等都具有一個相同的位置起點—根目錄。CentOS系統定位文件或目錄位置時,使用斜槓“/”進行分隔(區別於Windows系統中的反斜槓“")。整個樹形目錄結構中,使用獨立的一個”/“表示根目錄,根目錄是CentOS文件系統的起點,其所在的分區稱爲根目錄。根目錄下,CentOS系統將默認建立一些特殊的子目錄,分別具有不同的用途。
1.2:根目錄
1.所有分區,目錄,文件等的位置七點
2.整個樹形目錄結構中,使用獨立的一個“/”表示
1.3:常見的子目錄及其作用
子目錄 | 作用 |
---|---|
/root | 系統管理員root的宿主目錄 |
/home | 普通用戶的宿主目錄 |
/bin | 所有用戶可執行的命令。bin是binary的縮寫,這一目錄存放了所有用戶都可以執行的且經常使用的命令。如cp,ls |
/sbin | 管理員可執行的管理命令。存放系統中最基本的管理命令 |
/boot | 系統內核、啓動文件。啓動分區(grub啓動菜單,壓縮內核等。)此目錄是系統內核存放的目錄,同時也是系統啓動時所需文件的存放目錄。 |
/usr | 應用程序。啓動程序目錄。存放其他的用戶應用程序,通常還被劃分成很多子目錄,用於存放不同類型的應用程序。 |
/etc | 配置文件目錄。此目錄保存有關係統設置與管理的文件。 |
/var | 日誌文件等。可變長文件(日誌),存放系統中經常需要變化的一些文件,如系統日誌文件,用戶郵箱目錄等。 |
/dev | 設備文件目錄(磁盤,光驅等)。此目錄保存了接口設備文件。 |
/tmp | 臨時文件 |
/proc | 硬件信息(CPU,內存) |
/lib | 服務管理文件(systemctl)/lib/systemd/sysem/ |
二:查看及檢索文件
2.1:查看文件內容
2.1.1:Cat命令查看文件內容—顯示並連接(concatenate)文件的內容
Cat /etc/hosts
Cat /etc/sysconfig/network
Cat /redhat-release
Cat /proc/version
cat命令用途 | cat命令短板 |
---|---|
顯示出文件的內容。cat命令本來用於連接多個文件的內容,但在實際使用中更多的用於查看文件內容。cat命令是應用最爲廣泛的文件內容查看命令。 | 無法翻頁,當文件中內容較多時,很可能只能看到最後一部分信息,而前面的內容來不及看到。 |
cat命令的基本使用格式
cat [選項]文件名 可以同時查看多個文件的內容,可以添加多個文件路徑作爲查看對象。
例如:查看網卡配置文件中的內容,並瞭解其配置信息。
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
例如:查看多個文件內容
[root@localhost ~]# cat /etc/passwd /etc/passwd-
2.1.2:more命令
使用cat命令可以非常簡單的直接顯示出整個文件的內容,但是當文件中的內容較多時,很可能只能看到最後一部分信息,而文件前面的大部分內容卻來不及看到。這時候就出現了more和less命令,通過採用全屏的方式分頁顯示文件,便於我們從頭到尾仔細的閱讀文件內容。
more命令是較早出現的分頁顯示命令,表示文件內容還有更多(more)的意思。less命令是較晚出現的分頁顯示命令,提供了比早期more命令更多的一些擴展功能。兩個命令的用法基本相同。
more命令的基本使用格式
more [選項]文件名
例如:分屏查看/etc/passwd 的內容
[root@localhost ~]# more /etc/passwd
more命令交互操作方法 | 功能 |
---|---|
Enter鍵 | 向下逐行滾動 |
空格鍵 | 向下翻一屏 |
b鍵 | 向上翻一屏 |
q鍵 | 退出 |
more命令用途 | 分屏顯示 |
---|---|
全屏方式分頁顯示文件內容,解決了無圖形化界面只能看到尾頁信息的問題。 | 在左下角顯示當前內容在整個文件中的百分比。 |
2.1.3:Less命令查看文件內容
與more命令相同,但more左下角顯示的是百分之幾的內容,在最後一頁時會直接退出,此時無法向上查看文件的內容,而less不會顯示百分之幾,不會直接退出可以向上翻看,擴展功能更多
less命令交互操作方法 | 功能 |
---|---|
Page Up鍵/Page Down鍵 | 向上翻頁/向下翻頁 |
/鍵 | 查找內容 |
n鍵 | 下一個內容 |
N鍵 | 上一個內容 |
其他功能與more命令基本相似
less命令的基本使用格式
less [選項]文件名
例如:分屏查看 /etc/passwd 的內容
[root@localhost ~]# less /etc/passwd
2.1.4:head命令
head 和tail是一對作用相反的命令,前者用於顯示文件開頭的一部分內容,後者用於顯示文件末尾的一部分內容,可以使用“n”選項(n爲具體的行數)指定需要顯示多少行的內容。若不指定行數,默認只顯示十行。
head命令的基本使用格式
head -n 文件名
例如顯示目標文件“/etc/passwd的頭四行”
[root@localhost ~]# head -4 /etc/passwd
2.1.5:tail命令
tail命令與head命令正好相反,用戶查看文件末尾的內容。tail命令通常用來查看系統日誌(因爲較新的日誌記錄總是添加到文件最後),以便觀察網絡訪問,服務調試等相關信息。配合“-f”選項使用時,還可以跟蹤文件尾部內容 的動態更新,便於實時監控文件內容的變化。
例如,一下操作可以查看系統公共日誌文件/var/log/message的最後十行內容,並在末尾跟蹤顯示改文件中的新紀錄的內容。(按Ctrl + C 組合鍵終止)。
[root@localhost ~]# tail -f /var/log/messages
tail命令的基本使用格式
tail -n 文件名 或者 tail -f 文件名
2.1.6:init命令功能(Linux操作系統補充命令)
命令 | 功能 |
---|---|
init 0 | 關機 |
init 1 | 單用戶模式(系統維護,破解密碼) |
init 2 | 多用戶模式沒有網絡 |
init 3 | 多用戶有網絡 |
init 4 | 保留 |
init 5 | 多用戶模式圖形化界面,且有網絡 |
init 6/reboot | 重啓 |
2.2:統計和檢索文件內容
在維護Linux系統的過程中,除了查看文件內容以外,有時候還需要對文件內容進行統計,或者查找符合條件的文本內容。
2.2.1:wc命令—統計文件內容
wc命令用於統計文件內容中包含的行數,單詞數,字節數等信息,使用文件名作爲參數,可以同時統計多個文件。
wc命令交互操作方法 | 功能 |
---|---|
-c | 統計文件中內容的字節數 |
-l | 統計文件內容中的行數 |
-w | 統計文件內容中的單詞個數(以空格或製表位作爲分隔) |
使用不帶任何選項的wc命令時,默認將統計指定文件的字節數,行數,單詞個數(相當於同時使用-c , -l , -w 三個選項)
例如
[root@localhost ~]# wc /etc/passwd
41 79 2136 /etc/passwd
wc命令使用基本格式
wc [選項] 目標文件
當文件的行數,單詞數或字節數具有特定的意義時,使用wc命令可以巧妙的獲得一些特殊信息。
例如,Linux系統中的用戶賬號數據保存在/etc/passwd文件中,其中每一行記錄對應一個用戶,則我們可以統計出當前Linux系統中擁有的用戶賬號數量。
[root@localhost ~]# wc -l /etc/passwd
41 /etc/passwd
若將wc命令與管道符號一起使用,還可以對命令輸出結果進行統計,例如,若要統計/etc/目錄下包含多少個擴展名爲“.conf"的文件,可以先通過”find /etc-name"*conf 命令找出符合條件的文件位置,由於find命令輸出結果也是每行一個文件記錄,因此只需結合管道符號執行“wc -l”操作即可的粗符合條件的文件數量。
[root@localhost ~]# find /etc-name"*.conf" | wc -l
2.2.2:檢索和過濾文件內容grep命令
grep命令用於在文件中查找並顯示包含指定字符串的行,可以直接指定關鍵字符串作爲查找條件,也可以使用複雜的條件表達式(例如,“^word”標識以word開頭,“wordKaTeX parse error: Expected group after ‘^’ at position 14: "“表示以word結尾,”^̲"表示空行)。
grep命令的使用基本格式
grep [選項] 查找條件目標文件
例如:在文件中查找包含“a”字符串的行
[root@localhost ~]# grep "a" /etc/passwd
grep命令交互操作方法 | 功能 |
---|---|
-i | 查找內容時忽略大小寫 |
-v | 反轉查找,即輸出與查找條件不相符的行 |
查找條件設置(要查找的字符佔以雙引號括起來) | 解釋 |
---|---|
“^…"" | 表示以…開頭 |
”…$“ | 表示以…結尾 |
“^$” | 表示空行 |
三:備份與恢復文檔
在Linux系統中,最簡單的文件和目錄備份工具就是cp複製命令。但是當需要備份的文件,目錄數量較多時,僅僅使用cp命令就力不從心,且備份出來的文件數量及空間都會對服務器你產生不小的壓力。面對這種情況,我們選擇壓縮和歸檔。
gzip和bzip2是Linux系統中使用最多的兩個壓縮工具,這兩個命令都可以壓縮指定的文件,或者將已經壓縮過的文件進行解壓。
3.1:gzip壓縮命令
使用gzip製作的壓縮文件默認的擴展名爲“.gz”。
gzip 和 bzip 2命令交互操作方法 | 功能 |
---|---|
-9 | 壓縮文件 |
-d | 解壓文件 |
gunzip= gzip -d | 解壓文件 |
gzip * | 對該目錄下所有文件進行壓縮 |
例:gzip -9 11.txt.gz ####對壓縮包進行壓縮 -9表示高壓縮比
gzip -d 11.txt.gz ####對壓縮包進行解壓縮
3.2:bzip壓縮命令
yum -y install bzip2^C 如果是沒有安裝bzip2,要安裝
bzip2 -9 12.txt ###對12.txt 進行壓縮 變爲12.txt.bz2 -9表示高壓縮比
bzip2 -d 12.txt.bz2 ###12.txt.bz2進行解壓縮
3.3:Zip壓縮命令
還有一種壓縮是微軟下常用的如XX.zip,這個如何解壓縮呢?
yum -y install unzip ###安裝解壓縮
yum -y install zip ###安裝壓縮
zip -r opt.zip /opt ###將/opt/目錄壓縮成opt.zip壓縮文件,放在/opt目錄下
unzip -n opt.zip -d /tmp ###將壓縮文件opt.zip在指定目錄/tmp下壓縮,如果已有相同的文件存在,要求unzip命令不覆蓋原先文件
unzip 1.zip ###將1.zip解壓到當前目錄下
3.4:tar命令—歸檔
tar命令主要用於對目錄和文件進行歸檔。
在實際的備份工作中,通常在歸檔的同時也會將包文件進行壓縮(gzip或bzip2),以便節省磁盤空間。
使用tar命令時,選項前的“-”號可以省略。
命令 | 解釋 |
---|---|
-c(小c) | 創建tar格式的包文件(常用) |
-x | 解開.tar格式的包文件(常用) |
-v | 顯示詳細信息(常用) |
-f | 執行(常用) |
-t | 列表查看包內的文件 |
-z | 調用gzip程序進行壓縮或解壓(常用) |
-j | 調用bzip2程序進行壓縮或解壓(常用) |
-C(大C) | 解壓時指定釋放的目標文件夾(常用) |
-p | 打包時保留文件及目錄權限(小p) |
-P | 打包是保留文件及目錄的絕對路徑(大p) |
案例 現在需要將/opt 進行打包壓縮 格式爲123.tar.bz2,打包文件放到/mnt
tar jcvf /mnt/123.tar.bz2 /opt/
案例 現在需要將123.tar.bz2 解壓到/mnt/123目錄下
tar jxvf /mnt/123.tar.bz2 -C /mnt/123
案例 現在需要將/opt 進行打包壓縮 格式爲123.tar.gz,打包文件放到/mnt
tar zcvf /mnt/123.tar.gz /opt/
案例 現在需要將123.tar.gz 解壓到/mnt/123目錄下
tar zxvf /mnt/123.tar.gz -C /mnt/123
四:VI文本編輯器
4.1:文本編輯器的作用
●創建或修改文本文件
●維護Linux系統中的各種配置文件
4.2:Linux中最常用的文本編輯器
●vi:類UNIX操作系統的默認文本編輯器
●vim: vim是vi文本編輯器(一般簡稱爲vi編輯器)的增強版本。
4.3:vi編輯器的工作模式
VI編輯器的工作模式 | 功能 |
---|---|
命令模式 | 啓動vi編輯器後默認進入命令模式。在該模式中主要完成如光標移動,字符串查找,以及刪除,複製,粘貼文件內容等相關操作。 |
輸入模式 | 該模式中主要的操作就是錄入文件內容,可以對文本文件正文進行修改或添加新內容。處於輸入模式時,vi編輯器的最後一行會出現“–INSERT–”的狀態提示信息。 |
末行模式 | 該模式中可以設置vi編輯環境,保存文件,退出編輯器,以及對文件內容進行查找,替換等操作。處於末行模式時,vi編輯器的最後一行會出現冒號“:”提示符。 |
vi 123.txt #編輯文本
鍵盤的上下左右鍵 #控制在哪裏編輯的
i #在哪裏插入的
刪除鍵(backspace) #刪除內容的
esc #退出編輯模式
:wq #保存並且退出
q! #不保存退出
<1>命令模式 (vi 文件名,就進入了命令模式。退出命令模式,可以在未行模式中輸入q)
可以使用以下命令:
dd:刪除一行 #常用
u:撤回 #常用
yy:複製一行
p:小寫的p,將複製的行粘貼在光標所在行的下一行 #常用
P:大寫的p,將複製的行粘貼在光標所在行的上一行
x:刪除光標所在處字符(按着不動,先刪光標後面,在刪前面) #常用
r:替換光標所在處字符 #常用
ZZ:保存退出 ##shift +z+z
#G:可跳轉到文件中的第#行
G:可跳轉到文件的最後一行
1G或者gg:可跳轉到文件內容的第一行
u:小寫的u,取消最近一次的操作
U;:大寫的U,取消對當前行所做的所有編輯
按(i、I、a、A,o,O就進入了編輯模式。退出編輯模式,按ESC退到命令模式)
在此模式下可像在記事本中一樣,修改文件內容。
a: 將在光標所在位置之後插入文本(append) #常用
A: 將在光標所在行末插入文本
i: 將在光標所在位置之前插入文本(insert) #常用
I: 將在光標所在行的第一個非空字符前插入文本 # 通常是用來插入#鍵的
o: 將在光標所在行的下一行開始插入文本(open) #常用
O: 將在光標所在行的上一行開始插入文本 #常用
g: 按2次,光標移動到文本首行
G: 按1次,光標移動到文本末行 #常用
<3>末行模式 (在命令模式中輸入:就進入了末行模式。退出編輯模式,按ESC退到命令模式)
可以使用以下命令:
:q退出命令模式 #不常用
:w保存修改內容 #不常用
:wq保存退出 #常用
:q!不保存退出 #常用
:set nu顯示行號 #常用
:/abc查找abc這個字符,按n查找下一個,按N查找上一個 #常用
:e 新的文件。將直接打開當前用戶宿主目錄中的新的文件進行編輯
:r 其他文件。在當前文件中讀入其他文件內容
:[替換範圍] sub /舊的內容/新的內容[/g]
例如:5,15 sub /initdefault/DEFAULT/g 若要將文檔中第5~15行中的“initdefault”字符串替換爲“DEFAULT”
:% sub 使用%符號表示全部替換
4.4:命令模式中的基本操作
4.4.1:光標移動
操作類型 | 操作鍵 | 功能 |
---|---|---|
方向移動 | ↑ ,↓,←,→ | 上,下,左,右 |
翻頁 | Page Down 或Ctrl + F | 向下翻動一整夜內容 |
翻頁 | Page Up 或 Ctrl + B | 向上翻動一整夜內容 |
行內快速跳轉 | Home 鍵 或 “^“. 數字”0” | 跳轉時行首 |
行內快速跳轉 | End鍵 或 “$“ | 跳轉到行尾 |
行間快速跳轉 | 1G 或 gg | 跳轉到文件的首行 |
行間快速跳轉 | G | 跳轉到文件的末尾行 |
行間快速跳轉 | #G | 跳轉到文件中的第#行 |
行號顯示 | :set nu | 在編輯器中顯示行號 |
行號顯示 | :set nonu或setno! | 取消編輯器中的行號顯示 |
4.4.2:複製,粘貼,刪除
操作類型 | 操作鍵 | 功能 |
---|---|---|
刪除 | x 或 Del | 刪除光標處的單個字符 |
刪除 | dd | 刪除當前光標所在行 |
刪除 | #dd | 刪除從光標所在行開始的#行內容 |
刪除 | d^ | 刪除當前光標之前到行首的所有字符 |
刪除 | d$ | 刪除當前光標處到行尾的所有字符 |
複製 | yy | 複製當前行整行的內容到剪切板 |
複製 | #yy | 複製從光標所在行開始的#行內容 |
粘貼 | p(小寫的) | 將緩衝區中的內容粘貼到光標位置處之後 |
粘貼 | P(大寫的) | 粘貼到光標位置處之前 |
4.4.3:文件內容查找
操作鍵 | 功能 |
---|---|
/word | 從上而下在文件中查找字符串“word” |
?word | 從下而上在文件中查找字符串“word” |
n | 定位下一個匹配的被查找字符串 |
N | 定位上一個匹配的被查找字符串 |
4.4.4:撤銷編輯及保存退出
操作鍵 | 功能 |
---|---|
u | 按一次取消最近的操作,重複u鍵,恢復多步操作 |
U | 用於取消對當前行所做的所有編輯 |
ZZ | 保存當前的文件內容並退出vi編輯器 |
4.5:末行模式的基本操作
4.5.1:保存文件及退出vi編輯器
功能 | 命令 | 備註 |
---|---|---|
保存文件 | :w | 保存修改的內容 |
保存文件 | :w /root/newfile | 另存爲其他文件 |
退出vi | :q | 未修改退出 |
退出vi | :q! | 放棄對文件內容的修改,並退出vi |
保存文件退出 vi | :wq | 保存修改的內容並退出 |
4.5.2:打開新文件或讀入其他文件內容
命令 | 功能 |
---|---|
:e ~/install.log | 打開新的文件進行編輯 |
:r /etc/filesystens | 在在當前文件中讀入其他文件內容 |
4.5.3:文件內容替換
命令 | 功能 |
---|---|
:s /old/new | 將當前行中查找到的第一個字符“old”串替換爲“new” |
:s /old/new/g | 將當前行中查找到的左右字符串“old”替換爲“new” |
:#,# s/old/new/g | 在行號“#,#”範圍內替換所有的字符串“old”爲“new” |
:s /old/new/c | 在替換命令末尾加入c命令,將對每個替換動作提示用戶進行確認 |
:% s/old/new/g | 在整個文件範圍內替換所有的字符串“old”爲“new” |