Linux中目標與檔案的編輯管理(詳細)

這閨女長得真俊啊發表於2020-12-06

一、命令執行的優先順序

第一優先順序:指定路徑的命令。指定路徑 /root/pwd.sh 或者相對路徑 ./pwd.sh

第二優先順序:別名指定的命令。 alias pwd = /root/pwd.sh

第三優先順序:內部命令

第四優先順序:hash 命令

linux系統下會有一個hash表,當你剛開機時這個hash表為空,每當你執行過一條命令時,hash表會記錄下這條命令的路徑,就相當於快取一樣。第一次執行命令shell直譯器預設的會從path路徑下尋找該命令的路徑,當你第二次使用該命令時,shell直譯器首先會檢視hash表,沒有該命令才會去path路徑下尋找。hash表能提高命令的呼叫速率。

第五優先順序:通過path定義的查詢順序查詢

如果以上順序都找不到,就會報“未找到命令。。。”的錯誤。

二、Linux目錄結構

2.1 樹形目錄結構

2.1.1 根目錄

所有分割槽、目錄、檔案等的位置起點

整個樹形目錄結構中,使用獨立的一個“ / ”表示

2.1.2 常見的子目錄

/root /bin /boot /dev /etc

/home /var /usr /sbin

在這裡插入圖片描述

2.1.3 常見的目錄結構

/root管理員的宿主(家)目錄
/home/xxx普通使用者的家目錄(可以指定)
/bin命令檔案目錄,存放所有使用者可執行的管理命令
/sbin管理員操作目錄,存放只有管理員可以執行的管理命令
/boot系統核心、啟動檔案目錄
/dev存放裝置檔案(光碟機、硬碟等)
/etc存放系統程式和大部分應用程式(rpm/yum的安裝)的配置檔案
/var存放可以變化的檔案,包括各種日誌檔案
/lib存放系統程式的動態連線共享庫檔案(類似於windows裡的DLL檔案)
/usr存放系統使用者工具和程式
/media可拆卸的傳媒掛載點,例如U盤、光碟機等
/proc存放對映系統資訊的檔案
/mnt用於臨時掛載儲存裝置的目錄
/opt第三方應用程式安裝所存放的目錄
/tmp存放系統臨時的檔案

2.2 檢視檔案內容的命令

2.2.1 cat命令

直接顯示整個檔案的內容

cat   【選項】檔名

2.2.1.1 常用選項

-n:對所有輸出的
-b:對於空白行不編號
-s:對所有的連續的多個空行替換為一個空行

2.2.2 檢視檔案內容more命令

more【選項】檔名

2.2.2.1 互動操作方式

Enter鍵:向下逐行滾動

空格鍵:向下翻一屏

b鍵:向上翻一屏

q鍵:退出

下翻到最後一頁後自動退出

結合管道操作使用時(例如:Is -R /etc | more)無法向上翻頁(無法用b)

管道符號:將上條命令的結果交給管道右側執行

2.2.3 檢視檔案內容less命令

與more命令相同,但擴充套件功能更多

less【選項】檔名

2.2.3.1 互動操作方法

Page Up向上翻頁,Page Down向下翻頁

按“ / ”鍵查詢內容,“ n ”下一個內容,“N”上一個內容

通過 ⬆ 和 ⬇ 方向實現上下逐行滾動

其他功能與more命令基本類似

結合管道操作使用時可以向上翻頁

2.2.4 檢視檔案內容head、tail命令

2.2.4.1 head命令

用途:檢視開頭的一部分內容(預設為10行)

head  -n 檔名......                                                     / / n為行數

2.2.4.2 tail命令

用途:檢視檔案結尾的少部分內容(預設為10行)

tail  -n檔名

tail  -f檔名                                                               / /跟蹤檔案尾部內容的動態更新

示例:tail -5f /var/log/messages

2.3 統計檔案內容wc命令

統計檔案中的檔案中的單詞數量(Word Count)等資訊

wc【選項】...目標檔案....

2.3.1 常用命令選項

-l :統計行數
-w:統計單詞個數
-c:統計位元組數

注:不帶任何選項的wc命令,預設同時使用 -lwc三個選項

2.4 檢索和過濾檔案內容grep命令

在檔案中查詢並顯示包含指定字串的行

grep【選項】...查詢條件   目標條件

2.4.1 常用命令選項

-i、-v、-n、-c、-e

-i:查詢時不區分大小寫
-v:顯示不包含匹配文字的所有行(反向查詢,反向匹配)
-n:顯示匹配行及行號
-c:只輸出匹配到的總行數(不是匹配到的次數)
-e:實現可多個查詢條件的匹配,邏輯or關係
-E:支援使用擴充套件正規表示式,相當於使用egrep命令

要查詢的字串以雙引號括起來

“^......”表示以.....為開頭,“......$”表示以......結尾

“^$”表示過濾空行

2.4.2 示例

grep -ie  "^listen"  -e  "80$"   /etc/httpd/conf/httpd.conf   

man  cat  | grep  -v  "^$"**(過濾掉空行**)

grep  -ie  "^NAME" -e  "7$"  CentOS-Vault.repo

cat CentOS-Vault.repo | grep  -v  "^$"

2.5 壓縮命令gzip、bzip2命令

當使用gzip壓縮一個純文字檔案時,效果是非常明顯的,大約可以減少70%以上的檔案大小。

製作壓縮檔案、解開壓縮檔案

gzip [-9] 檔名...     gzip製作的壓縮檔案預設的副檔名為“ .gz ”,原始檔案不再保留

bzip2 [-9] 檔名...       bzip2製作的壓縮檔案預設的副檔名為“ .bz2”,原始檔案不再保留

2.5.1常用命令選項

-9:使用-9可以提高壓縮比率

-d:用於解壓縮以及壓縮過的檔案,相當於使用gunzip、bunzip2命令

gzip -d  檔名.gz 格式的壓縮檔案

bzip2 -d  檔名.bz2格式的壓縮檔案

gunzip  檔名.gz   解壓縮

bunzip2  檔名.bz2    解壓縮

在這裡插入圖片描述

2.6 歸檔命令tar

製作歸檔檔案、釋放歸檔檔案

tar【選項】...歸檔檔名  原始檔或目錄
tar【選項】...歸檔檔名  [-C 目標目錄]

2.6.1 常用命令選項

-c:建立 .tar格式的包檔案</font>
-x:解開 .tar格式的包檔案
-C:解壓時指定釋放的 目標資料夾
-f:表示使用歸檔檔案
-p:打包時保留檔案及目錄的許可權 
-P:打包時保留檔案及目錄的絕對路徑
-t:列表檢視包內的檔案
-v:輸出詳細資訊(Verbose)
 -j:呼叫bzip2程式進行壓縮或解壓
-z:呼叫gzip程式進行壓縮或解壓

cd /etc/

tar  -jcvf  usershow.tar.bz2  passed  shadow
tar  jxvf  usershow.tar.bz2  -C  /opt/

2.7 文字編輯器vi命令

2.7.1 文字編輯器的作用

建立或修改文字檔案

維護Linux系統中的各種配置檔案

2.7.2 Linux中最常用的文字編輯器

vi:類UNIX作業系統的預設文字編輯器
vim:vim是vi文字編輯器(一般簡稱為vi編輯器)的增強版本

2.7.3 vim編輯器的工作模式

命令模式、輸出模式、末行模式

在這裡插入圖片描述

2.7.4 命令模式切換至輸入模式:

a:在當前游標位置之後插入內容
i:在當前游標位置之前插入內容
o:在游標所在行之下插入一個新行內容
O:在游標所在行之上插入一個新行內容
A:在所在行的行尾插入內容
I:在所在行的行首插入內容給
命令模式
操作型別操作鍵功能
方向移動↑、↓、←、→上、下、左、右
翻頁移動Page down或Ctrl+F向下翻動一整頁內容
Page Up或Ctrl+B向上翻動一整頁內容
行內快速跳轉Home鍵或" ^ "、數字“0”跳轉到本行的行首
End 鍵、或"$"鍵跳轉到本行的行尾
行間快速跳轉1G或gg轉到檔案內容的行首
G跳轉到檔案的最後一行(末尾行)
#G跳轉到檔案中的第#行(其中#號用具體數字替換
M跳轉至當前頁的中間位置
顯示行號:set nu在編輯器中顯示行號
:set nonu取消行號顯示
刪除x或Delete鍵刪除游標處的單個字元
dd刪除當前游標所在行(有剪下功能)
#dd刪除從游標處開始的#行內容
d^刪除當前游標之前到行首的所有字元
d$刪除當前游標處到行尾的所有字元
dw刪除游標處的整個單詞
替換字元R或Shift+r替換當前游標處的字元
複製yy複製當前行整行的內容到剪下板
#yy複製從游標處開始的#行內容
貼上p貼上到游標所在行之下
P貼上到游標所在行之上
查詢/word從當前游標處開始向後進行查詢字串“word”
?word從當前游標處開始向前進行查詢
n定位下一個匹配的被查詢字串
N定位上一個匹配的被查詢字串
撤銷u按一次取消最近的一次操作;重複u鍵,恢復多步操作
U用於取消對當前行所做的所有編輯
儲存退出:w儲存修改的內容
:w 新檔名另存為其他檔案
:q
:q!放棄對檔案內容的修改並退出
ZZ或 :wq、:x儲存當前的檔案內容並退出vi編輯器
開啟新檔案:e 其他檔名開啟新檔案進行編輯
讀入檔案內容:r 其他檔名在當前檔案中讀入其他檔案內容
檔案內容替換: s /old/new (: s之間不空)將當前行中查詢到的第一個字串“old”串替換為“new”
: s /old/new/g將當前行中查詢到的所有字串"old"替換為"new"
:#,# s/old/new/g在行號"#,#“範圍內替換所有的字串"old"為"new”
:% s/old/new/g在所有檔案範圍內替換所有字串"old"為"new"
: s /old/new/c在替換命令末尾加入c命令,將對每個替換動作提示使用者進行確認
剪下移動(文字內):1,4 m10將1到4行移動到10行之後
new/g在行號"#,#“範圍內替換所有的字串"old"為"new”
:% s/old/new/g在所有檔案範圍內替換所有字串"old"為"new"
: s /old/new/c在替換命令末尾加入c命令,將對每個替換動作提示使用者進行確認
剪下移動(文字內):1,4 m10將1到4行移動到10行之後
複製:1,2 co將1到2行復制到8行之後,原始檔不變

三、總結

檢視檔案內容:cat、more、less、head、tail
統計檔案內容:wc(-l、-w、-c)
檢索和過濾檔案內容(-i、-v、-n、-c、-e、-E)
壓縮檔案:gzip、bzip2(-9、-d)
歸檔命令:tar
文字剪輯器vi

相關文章