Linux歸檔及壓縮、重定向與管道操作、find精確查詢、vim高階使用

王博玉-發表於2020-10-30

一、 環境準備
開啟CentOS虛擬機器

二、 歸檔及壓縮
作用:1.將零散的資料進行歸檔 2.減少佔用磁碟空間的大小
 歸檔的含義
– 將許多零散的檔案整理為一個檔案
– 檔案總的大小基本不變
 壓縮的含義
– 按某種演算法減小檔案所佔用空間的大小
– 恢復時按對應的逆向演算法解壓
 Linux常見的壓縮格式
.gz  gzip #壓縮速度快
.bz2  bzip2
.xz  xz #壓縮比例最高

 tar 整合備份工具
– -c:建立歸檔
– -x:釋放歸檔
– -f:指定歸檔檔名稱,必須放在所有選項的最後
– -z、-j、-J:呼叫 .gz、.bz2、.xz 格式的工具進行處理
– -t:顯示歸檔中的檔案清單
– -C:指定釋放路徑
 tar 打包格式
tar 選項 /路徑/壓縮包名字 /路徑/被歸檔壓縮的資料……
-c:建立歸檔 -f:指定壓縮包名字
-z、-j、-J:呼叫 .gz、.bz2、.xz 格式的工具進行處理

]# tar -zcf /opt/nsd01.tar.gz /home /etc/passwd
tar: 從成員名中刪除開頭的“/”
]# ls /opt/

]# tar -jcf /opt/file.tar.bz2 /home/ /etc/passwd
]# ls /opt/

]# tar -Jcf /opt/abc.tar.xz /home/ /etc/passwd
]# ls /opt/

– -t:顯示歸檔中的檔案清單
[root@localhost ~]# tar -tf /opt/nsd01.tar.gz
[root@localhost ~]# tar -tf /opt/file.tar.gz
[root@localhost ~]# tar -tf /opt/abc.tar.gz

 tar 解包格式
tar 選項 /路徑/壓縮包的名字 -C(大寫) /路徑/釋放位置
]# mkdir /stu01 /stu02 /stu03
]# tar -xf /opt/nsd01.tar.gz -C /stu01/
]# ls /stu01/
]# ls /stu01/etc/
]# ls /stu01/home/

]# tar -xf /opt/file.tar.bz2 -C /stu02/
]# ls /stu02/

]# tar -xf /opt/abc.tar.xz -C /stu03/
]# ls /stu03/

案例1:建立一個備份包
使用 tar 工具完成以下備份任務:
– 建立一個名為 /root/backup.tar.bz2 的歸檔檔案
– 其中包含 /usr/local 目錄中的內容
– tar 歸檔必須使用 bzip2 進行壓縮
]# tar -jcf /root/backup.tar.bz2 /usr/local/
tar: 從成員名中刪除開頭的“/”
]# ls /root/
]# tar -tf /root/backup.tar.bz2 #檢視tar包內容

三、 重定向與管道操作
 重定向:將命令輸出重新定向,寫入文字檔案中

:覆蓋重定向

:追加重定向
[root@localhost ~]# cat --help > /opt/test.txt
[root@localhost ~]# cat /opt/test.txt

[root@localhost ~]# hostname
[root@localhost ~]# hostname > /opt/test.txt
[root@localhost ~]# cat /opt/test.txt

[root@localhost ~]# ifconfig >> /opt/test.txt
[root@localhost ~]# less /opt/test.txt

[root@localhost ~]# echo 123456 > /opt/5.txt
[root@localhost ~]# cat /opt/5.txt

[root@localhost ~]# echo hello >> /opt/5.txt
[root@localhost ~]# cat /opt/5.txt

[root@localhost ~]# echo hahaixixi >> /opt/5.txt
[root@localhost ~]# cat /opt/5.txt

 管道 | :將前面命令輸出,傳遞給後面命令,作為後面命令的引數

顯示/etc/passwd檔案內容的8到12內容
]# head -12 /etc/passwd | tail -5
]# head -12 /etc/passwd | tail -5 | cat -n
]# cat -n /etc/passwd | head -12 | tail -5

顯示/etc/passwd檔案內容的第10行內容
]# head -10 /etc/passwd | tail -1
]# cat -n /etc/passwd | head -10 | tail -1
]# ifconfig | less
]# ifconfig | head -2

四、 find基本使用
根據預設的條件遞迴查詢對應的檔案
find [查詢目錄] [條件]
常用條件表示:
-type 型別(f、d、l)
-name “文件名稱”
-size +|-檔案大小(k、M、G)
-user 使用者名稱
-mtime 修改時間

 -type 型別(f檔案、d目錄、l快捷方式)
[root@localhost ~]# find /root -type f #查詢是檔案
[root@localhost ~]# find /root -type d #查詢是目錄
[root@localhost ~]# find /boot -type d
[root@localhost ~]# find /etc -type l

 -name “文件名稱”
]# find /etc/ -name “passwd”
]# find /etc/ -name “tab"
]# find /etc/ -name "
.conf”

]# mkdir /root/nsd2007
]# touch /root/nsd05.txt
]# touch /root/nsd06.txt

]# find /root -name “nsd*”
]# find /root -name “nsd*” -type d #以nsd開頭必須是目錄
]# find /root -name “nsd*” -type f #以nsd開頭必須是檔案

 -size +或-檔案大小(k、M、G)
]# find /boot/ -size +300k
]# find /boot/ -size +10M
]# find /boot/ -size -1024M

 -user 使用者名稱(按照資料的所有者使用者)
]# useradd student
]# find /home -user student
]# find / -user student #在整個系統中進行查詢
/proc:不佔用磁碟空間,反映記憶體的資料

]# find / -user student -type d

 -mtime 按照修改時間 #都是過去時間
-mtime +10 #10天之前的資料
-mtime -10 #最近10天之內的資料

]# find /root/ -mtime -1
]# find /root/ -mtime +1000

五、 find高階使用
 處理查詢的內容
– find [範圍] [條件] -exec 處理命令 {} ;
– -exec:額外操作的開始,傳遞引數一次傳遞一個
– {}:代表find查詢的每一個結果
– ; : 額外操作的結束

]# rm -rf /opt/*
]# ls /opt/
]# find /boot/ -size +10M

]# find /boot/ -size +10M -exec cp {} /opt ;
]# ls /opt/

案例3:查詢並處理檔案
1.利用find查詢所有使用者 student 擁有的必須是檔案,把它們拷貝到 /root/findfiles/ 資料夾中
]# useradd student
]# mkdir /root/findfiles
]# find / -user student -type f

]# find / -user student -type f -exec cp {} /root/findfiles/ ;

]# ls -A /root/findfiles/

六、 vim編輯技巧
三個模式:命令模式、插入模式、末行模式

 命令模式技巧:
[root@localhost ~]# cp /etc/passwd /opt/p.txt
[root@localhost ~]# vim /opt/p.txt
游標跳轉
操作型別 按鍵指令 用 途
移動游標 、、、 上、下、左、右
游標行內跳轉 Home 鍵 或 ^ 或 數字 0 跳轉到行首
End 鍵 或“$”鍵 跳轉到行尾
全文翻頁 PgUp 鍵、PgDn 鍵 向上翻頁、向下翻頁
游標行間跳轉 1G 或 gg 跳轉到檔案的首行
G 跳轉到檔案的末尾行

複製/貼上/刪除
操作型別 按鍵指令 用 途
複製 yy、#yy 複製游標處的一行、#行
貼上 p、P 貼上到游標處之後、之前
刪除 x 或 Delete鍵 刪除游標處的單個字元
dd、#dd 刪除游標處的一行、#行
d^ 從游標處之前刪除至行首
d$或D 從游標處刪除到行尾
撤銷:按u進行撤銷
查詢/撤銷/儲存
操作型別 按鍵指令 用 途
文字查詢 /word 向後查詢字串“word”
n、N 跳至後/前一個結果
撤銷編輯 u 撤銷最近的一次操作
U 撤銷對當前行的所有修改
Ctrl + r 取消前一次撤銷操作
儲存退出 ZZ 儲存修改並退出

 末行模式操作
儲存/退出/檔案操作
操作型別 設定指令 用 途
存檔及退出 :w 儲存當前檔案
:q! 放棄已有更改後強制退出
:wq 或 :x 儲存已有修改後退出
檔案操作 :w /root/newfile 另存為其它檔案
:r /etc/filesystems 讀入其他檔案內容
[root@localhost ~]# echo 123 > /opt/7.txt
[root@localhost ~]# echo abc > /opt/8.txt
[root@localhost ~]# vim /opt/8.txt
末行模式下 :r /opt/7.txt
末行模式下 :r /etc/passwd

字串替換
操作型別 設定指令 用 途
行內替換 ?/root/new 替換游標所在當前行第一個“root”
?/root/new/g 替換游標所在當前行所有的“root”
區域內替換 :1,8 s/root/new/g 替換第1-8行所有的“root”
:% s/root/new/g 替換檔案內所有的“root”
[root@localhost ~]# cp /etc/passwd /opt/pass.txt
[root@localhost ~]# vim /opt/pass.txt

開關引數的控制
操作型別 設定指令 用 途
編輯器設定 :set nu或set nonu 顯示/不顯示行號
:set ai或set noai 啟用/關閉自動縮排

七、 grep命令補充內容
]# grep root /etc/passwd
]# grep ^root /etc/passwd #必須以root開頭的行
]# grep bash$ /etc/passwd #必須以bash結尾的行

^KaTeX parse error: Expected 'EOF', got '#' at position 8: :表示空行 ]#̲ cat /etc/defa… /etc/default/useradd
]# grep -v ^$ /etc/default/useradd #去除空行

在Linux系統中,大多數配置檔案內容,以#開頭的行為註釋行
顯示/etc/login.defs配置有效配置(去除註釋行,去除空行)
]# grep -v ^# /etc/login.defs
]# grep -v ^# /etc/login.defs | grep -v ^$
]# grep -v ^# /etc/login.defs | grep -v ^$ > /opt/12.txt
]# cat /opt/12.txt

相關文章