linux目錄結構
Windows:以多根的方式 C:\ D:\ E:\等等
linux:以單根的方式組織檔案 / 。也就是所有的檔案都放在根目錄下
Linux目錄檢視
/ 被稱為根目錄,下面的bin、boot、dev等等為一級目錄,只有管理員可以訪問
一級目錄簡介
目錄 | 說明 |
---|---|
bin | 存放二進位制可執行檔案(ls,cat,mkdir等)常用命令一般都在這 |
boot | 存放用於系統引導時使用的各種檔案,也就是啟動檔案 |
dev | 用於存放裝置檔案 |
etc | 存放系統管理和配置檔案 |
home | 存放所有普通使用者檔案,也是普通使用者的根目錄 |
root | 管理員的主目錄 |
run | 執行目錄,用的很少 |
sbin | 與bin相似,存放管理員相關的命令 |
tmp | 用於存放各種臨時檔案,是公用的臨時檔案儲存點 |
usr | 用於存放系統應用程式,比較重要的目錄/usr/local 本地系統管理員軟體安裝目錄(安裝系統級的應用)。這是最龐大的目錄,要用到的應用程式和檔案幾乎都在這個目錄 |
var | 用於存放執行時需要改變資料的檔案,也是某些大檔案的溢位區,比方說各種服務的日誌檔案(系統啟動日誌等。)等。 |
檔案型別
使用ls -l
命令可以檢視檔案的詳細資訊
-
開頭:普通檔案。如:文字檔案、二進位制檔案、圖片等等(白色)- d 開頭:目錄檔案(藍色)
- b 開頭:裝置檔案,塊裝置。如:儲存裝置硬碟、u盤/dev/sda、/dev/sda1(黃色)
- c 開頭:裝置檔案,字元裝置。如:印表機、終端/dev/ttr1
- l 開頭:連線檔案(淡藍色)
- s 開頭:套接字檔案
- p 開頭:管道檔案
-
開頭:壓縮檔案(紅色)。注意:和普通檔案是一樣的字元,只是顏色不同
萬用字元
-
*
:匹配任意數的字元 -
?:匹配單個字元
-
[] :匹配陣列中的任意字元
- [abc]:匹配a、b、c中任意字元
- [a-z] :表示匹配範圍為a到z
- [!abc]:表示不匹配括號中的任何字元
-
{} :
-
匹配大括號中的任意字串
-
用於一次建立多個檔案或目錄
建立兩個同級別的目錄:dir2、dir1,注意逗號之間一定不能有空格
[root@lyy my_dir]# mkdir {dir2,dir3}
建立兩個同級別的檔案同理
[root@lyy my_dir]# touch dir1/{file1,file2}
-
檔案管理常用命令
ls:顯示目錄中檔案
list的縮寫
語法:ls 引數 檔名
常用引數
引數 | 描述 |
---|---|
-a | 顯示所有檔案及目錄 |
-A | 不顯示當前目錄和父目錄 |
-d | 顯示目錄自身的屬性資訊 |
-i | 顯示檔案的inode屬性資訊 |
-l | 顯示檔案的詳細屬性資訊 |
-m | 以逗號為間隔符,水平顯示檔案資訊 |
-r | 依據首字母將檔案以相反次序顯示 |
-R | 遞迴顯示所有子檔案 |
-S | 依據內容大小將檔案排序顯示 |
-t | 依據最後修改時間將檔案排序顯示 |
-X | 依據副檔名將檔案排序顯示 |
-h | 顯示檔案的大小 |
-color | 以彩色顯示資訊 |
使用示例
-
顯示檔案袋詳細屬性資訊
[root@localhost ~]# ls -l 總用量 8 -rw-------. 1 root root 1516 4月 17 03:46 anaconda-ks.cfg -rw-r--r--. 1 root root 1564 4月 17 03:49 initial-setup-ks.cfg drwxr-xr-x. 2 root root 6 4月 17 05:14 公共 drwxr-xr-x. 2 root root 6 4月 17 05:14 模板 drwxr-xr-x. 2 root root 6 4月 17 05:14 影片 drwxr-xr-x. 2 root root 6 4月 17 05:14 圖片 drwxr-xr-x. 2 root root 6 4月 17 05:14 文件 drwxr-xr-x. 2 root root 6 4月 17 05:14 下載 drwxr-xr-x. 2 root root 6 4月 17 05:14 音樂 drwxr-xr-x. 2 root root 30 4月 18 05:05 桌面
-
顯示指定路徑:/root/桌面 下的檔案
[root@localhost ~]# ls /root/桌面 file.txt
-
顯示當前目錄下以fi開頭的檔案
[root@localhost 桌面]# ls fi* file.txt
-
顯示目錄/etc 下的檔案詳細資訊並顯示檔案的大小
[root@localhost rootdir]# ls -lh /etc 總用量 1.4M drwxr-xr-x. 3 root root 101 4月 17 03:42 abrt -rw-r--r--. 1 root root 16 4月 17 03:45 adjtime -rw-r--r--. 1 root root 1.5K 4月 1 2020 aliases -rw-r--r--. 1 root root 12K 4月 17 03:46 aliases.db drwxr-xr-x. 3 root root 65 4月 17 03:43 alsa drwxr-xr-x. 2 root root 4.0K 4月 17 03:44 alternatives .............省略其他內容
cd:切換目錄
change directory的縮寫
其功能是更改當前所處的工作目錄,路徑可以是絕對路徑,也可以是相對路徑,若省略不寫則會跳轉至當前使用者的家目錄。
語法:cd 引數 目錄名
常用引數
引數 | 描述 |
---|---|
-L | 切換至符號連結所在的目錄 |
-P | 切換至符號連結對應的實際目錄 |
-- | 切換至上次所在目錄 |
~ | 切換至使用者家目錄 |
.. | 切換至當前位置的上一級目錄 |
使用示例:
-
去根目錄
[root@localhost ~]# cd / [root@localhost /]#
-
去指定路徑:/root/桌面
[root@localhost /]# cd /root/桌面 [root@localhost 桌面]#
-
切換至當前位置的上一級目錄
[root@localhost 桌面]# cd .. [root@localhost ~]#
pwd:顯示當前目錄路徑
print working directory的縮寫
顯示當前工作目錄的路徑,即顯示所在位置的絕對路徑。
使用示例
[root@localhost ~]# pwd -L
/root
touch:建立檔案
如果檔案不存在,則會建立一個空內容的文字檔案;如果檔案已經存在,則會對檔案的Atime(訪問時間)和Ctime(修改時間)進行修改操作,管理員可以完成此項工作,而普通使用者只能管理主機的文件
語法:touch 引數 檔名
常用引數
引數 | 描述 |
---|---|
-a | 設定檔案的讀取時間記錄 |
-c | 不建立新檔案 |
-d | 設定時間與日期 |
-m | 設定檔案的修改時間記錄 |
-t | 設定檔案的時間記錄 |
--help | 顯示幫助資訊 |
--version | 顯示版本資訊 |
使用示例
-
在當前目錄下建立檔案:file.txt
[root@localhost ~]# touch file.txt
-
結合萬用字元建立多個檔案
[root@localhost ~]# touch file{1..3}.txt
-
在指定路徑:/root/桌面 下建立檔案:file.txt
[root@localhost ~]# touch /root/桌面/file.txt
-
建立兩個同級別的檔案:file1和file2,注意檔名之間一定不能有空格,只用逗號隔開
[root@lyy my_dir]# touch dir1/{file1,file2}
-
建立隱藏檔案,以 . 開頭的檔案都是隱藏檔案
[root@lyy my_dir]# touch dir1/.file // 建立隱藏檔案 [root@lyy my_dir]# ls dir1 // ls只能檢視未隱藏的檔案 aaa bbb [root@lyy my_dir]# ls -a dir1 // ls -a 可以檢視隱藏檔案 . .. aaa bbb .file
mkdir:建立目錄
make directories的縮寫
其功能是建立目錄檔案。若要建立的目標目錄已經存在,則會提示已存在而不繼續建立,不覆蓋已有檔案。若目錄不存在,但具有巢狀的依賴關係時,例如/Dir1/Dir2/Dir3/Dir4/Dir5,要想一次性建立則需要加入-p引數,進行遞迴操作
語法 : mkdir 引數 目錄名
常用引數
引數 | 描述 |
---|---|
-m | 建立目錄的同時設定許可權 |
-v | 顯示執行過程詳細資訊 |
-p | 遞迴建立多級目錄 |
-z | 設定目錄安全上下文 |
使用示例
-
建立一個資料夾:dir1
[root@localhost 桌面]# mkdir dir1
-
一次性建立多個資料夾:dir2、dir3、dir4
[root@localhost 桌面]# mkdir dir2 dir3 dir4
-
建立多級遞迴資料夾:aaa/bbb/ccc
[root@localhost 桌面]# mkdir -p aaa/bbb/ccc
-
建立兩個同級別的目錄:dir2、dir1,注意目錄名之間一定不能有空格,只用逗號隔開
[root@lyy my_dir]# mkdir {dir2,dir3}
-
同時建立同級目錄和遞迴目錄
[root@lyy my_dir]# mkdir -pv {dir1/{aaa,bbb},dir2/{aaa,bbb},dir{3,4,5}} mkdir: 已建立目錄 "dir1" mkdir: 已建立目錄 "dir1/aaa" mkdir: 已建立目錄 "dir1/bbb" mkdir: 已建立目錄 "dir2" mkdir: 已建立目錄 "dir2/aaa" mkdir: 已建立目錄 "dir2/bbb" mkdir: 已建立目錄 "dir3" mkdir: 已建立目錄 "dir4" mkdir: 已建立目錄 "dir5"
cp:複製檔案或目錄
copy的縮寫
cp命令能夠將一個或多個檔案或目錄複製到指定位置,亦常用於檔案的備份工作。-r引數用於遞迴操作,複製目錄時若忘記新增則會直接報錯;-f引數則用於當目標檔案已存在時會直接覆蓋而不再詢問。這兩個引數尤為常用。
語法: cp 引數 原始檔名 目標檔名
常用引數
引數 | 描述 |
---|---|
-a | 功能等價於pdr引數組合 |
-b | 覆蓋目標檔案前先進行備份 |
-d | 複製連結檔案時,將目標檔案也建立為連結檔案 |
-f | 若目標檔案已存在,則會直接覆蓋 |
-i | 若目標檔案已存在,則會詢問是否覆蓋 |
-l | 對原始檔建立硬連結,而非複製檔案 |
-p | 保留原始檔或目錄的所有屬性資訊 |
-r | 遞迴複製所有子檔案 |
-s | 對原始檔建立軟連結,而非複製檔案 |
-v | 顯示執行過程詳細資訊 |
使用示例
-
複製路徑:dir1/a.txt 的檔案到:dir2資料夾中
[root@localhost 桌面]# cp dir1/a.txt dir2
-
複製路徑:dir1/a.txt 的檔案到:dir2資料夾中,並定義新的名稱:b.txt
[root@localhost 桌面]# cp dir1/a.txt dir2/b.txt
-
複製資料夾:aaa 到桌面,並定義新的名稱:aaa_1
[root@localhost 桌面]# cp -r aaa aaa_1
mv:移動或改名檔案
move的縮寫
能夠對檔案進行剪下和重新命名操作
語法: mv 引數 原始檔名 目標檔名
常用引數
引數 | 描述 |
---|---|
-b | 覆蓋前為目標檔案建立備份 |
-f | 強制覆蓋目標檔案而不詢問 |
-i | 覆蓋目標檔案前詢問使用者是否確認 |
-n | 不要覆蓋已有檔案 |
-u | 當原始檔比目標檔案更新時,才執行覆蓋操作 |
-v | 顯示執行過程詳細資訊 |
-Z | 設定檔案安全上下文 |
--help | 顯示幫助資訊 |
--version | 顯示版本資訊 |
使用示例
-
將路徑:aaa/a.txt 檔案移動到桌面,並不改變檔名
[root@localhost 桌面]# mv aaa/a.txt .
-
重新命名操作,將a.txt改名為b.txt。實際操作就是 剪下後貼上
[root@localhost 桌面]# mv a.txt b.txt
-
將資料夾aaa移到bbb資料夾中
[root@localhost 桌面]# mv aaa bbb
-
將ccc資料夾中的所有檔案都移動到資料夾bbb中,如果遇到已存在的檔案直接覆蓋
[root@localhost 桌面]# mv -f ccc/* bbb
rm:刪除檔案或目錄
remove的縮寫
刪除檔案或目錄,一次可以刪除多個檔案,或遞迴刪除目錄及其內的所有子檔案。
語法:rm 引數 檔名
常用引數
引數 | 描述 |
---|---|
-d | 僅刪除無子檔案的空目錄 |
-f | 強制刪除檔案而不詢問 |
-i | 刪除檔案前詢問使用者是否確認 |
-r | 遞迴刪除目錄及其內全部子檔案 |
-v | 顯示執行過程詳細資訊 |
--help | 顯示幫助資訊 |
--version | 顯示版本資訊 |
使用示例
-
刪除檔案時會預設進行二次確認
[root@localhost 桌面]# rm a.txt rm:是否刪除普通空檔案 "a.txt"?y
-
強制刪除檔案無須二次確認
[root@localhost 桌面]# rm -f b.txt
-
刪除指定目錄及其內部的子檔案,且無須確認
[root@localhost 桌面]# rm -f b.txt
-
強制刪除aaa資料夾下,以.txt為字尾的檔案
[root@localhost 桌面]# rm -rf aaa/*.txt
-
強制刪除以b開頭的檔案
[root@localhost 桌面]# rm -rf aaa/b*
顯示檔案內容
cat:在終端顯示檔案內容
concatenate files and print的縮寫
其功能是在終端裝置上顯示檔案內容。適合檢視內容較少的純文字檔案。 對於內容較多的檔案,使用cat命令檢視後會在螢幕上快速滾屏
語法: cat 引數 檔名
常用引數
引數 | 描述 |
---|---|
-A | 等價於-vET引數組合 |
-b | 顯示行數(空行不編號) |
-e | 等價於-vE引數組合 |
-E | 每行結束處顯示$符號 |
-n | 顯示行數(空行也編號) |
-s | 顯示行數(多個空行算一個編號) |
-t | 等價於-vT引數組合 |
-T | 將TAB字元顯示為^I符號 |
-v | 使用^和M-引用,LFD和TAB除外 |
--help | 顯示幫助資訊 |
--version | 顯示版本資訊 |
使用示例
-
檢視當前目錄下的a.txt檔案
[root@localhost 桌面]# cat a.txt
-
檢視當前目錄下的a.txt檔案,並顯示行號
[root@localhost 桌面]# cat -n a.txt
tail:顯示檔案尾部內容
預設會在終端介面上顯示指定檔案的末尾10行,如果指定了多個檔案,則會在顯示的每個檔案內容前面加上檔名來加以區分
語法: tail 引數 檔名
常用引數
引數 | 描述 |
---|---|
-c | 設定顯示檔案尾部的字元數 |
-f | 持續顯示檔案尾部最新內容 |
-n | 設定顯示檔案尾部的行數 |
--help | 顯示幫助資訊 |
--pid | 當指定PID程序結束時,自動退出命令 |
--retry | 當檔案無許可權訪問時,依然嘗試開啟 |
--version | 顯示版本資訊 |
使用示例
-
預設顯示檔案後十行內容
[root@localhost 桌面]# tail a.txt
-
指定顯示檔案後五行的內容
[root@localhost 桌面]# tail -n 5 a.txt
-
顯示檔案後8個位元組
[root@localhost 桌面]# tail -c 8 a.txt
-
持續重新整理檔案後5行的內容
[root@localhost 桌面]# tail -fn 5 a.txt
head:顯示檔案開頭的內容
顯示檔案開頭的內容,不使用引數時預設顯示前十行
語法:head 引數 檔名
常用引數
引數 | 描述 |
---|---|
-c | 設定顯示頭部內容的字元數 |
-n | 設定顯示行數 |
-q | 不顯示檔名的頭資訊 |
-v | 顯示檔名的頭資訊 |
--help | 顯示幫助資訊 |
--version | 顯示版本資訊 |
使用:與tail基本一致
more:分頁顯示檔案內容
如果文字檔案中的內容較多較長,使用cat命令讀取後則很難看清,這時使用more命令進行分頁檢視就比較合適了,該命令可以把文字內容一頁一頁地顯示在終端介面上,使用者每按一次Enter鍵即向下一行,每按一次空格鍵即向下一頁,直至看完為止。
語法: more 引數 檔名
常用引數
引數 | 描述 |
---|---|
-c | 不滾屏,先顯示內容再清除舊內容 |
-d | 顯示提醒資訊,關閉響鈴功能 |
-f | 統計實際的行數,而非自動換行的行數 |
-l | 將“^L”當作普通字元處理,而不暫停輸出資訊 |
-p | 先清除螢幕再顯示文字檔案的剩餘內容 |
-s | 將多個空行壓縮成一行顯示 |
-u | 禁止下劃線 |
-數字 | 設定每屏顯示的最大行數 |
+數字 | 設定從指定的行開始顯示內容 |
+/關鍵詞 | 從指定關鍵詞開始顯示檔案內容 |
使用示例
-
使用分頁顯示檔案內容
[root@localhost 桌面]# more a.txt
-
每一頁顯示10行
[root@localhost 桌面]# more -10 a.txt
-
不滾屏,每顯示新的一頁前先清一次屏,並且每一頁顯示10行
[root@localhost 桌面]# more -10 a.txt
-
從第5行開始分壓顯示檔案內容
[root@localhost 桌面]# more +5 a.txt
grep:文字搜尋工具
global search regular expression and print out the line的縮寫
用於全面搜尋的正規表示式,並將結果輸出。人們通常會將grep命令與正規表示式搭配使用,引數作為搜尋過程中的補充或對輸出結果的篩選
語法:grep 引數 檔名
常用引數
引數 | 描述 |
---|---|
-b | 顯示匹配行距檔案頭部的偏移量 |
-c | 只顯示匹配的行數 |
-E | 支援擴充套件正規表示式 |
-F | 匹配固定字串的內容 |
-h | 搜尋多檔案時不顯示檔名 |
-i | 忽略關鍵詞大小寫 |
-l | 只顯示符合匹配條件的檔名 |
-n | 顯示所有匹配行及其行號 |
-o | 顯示匹配詞距檔案頭部的偏移量 |
-q | 靜默執行模式 |
-r | 遞迴搜尋模式 |
-s | 不顯示沒有匹配文字的錯誤資訊 |
-v | 顯示不包含匹配文字的所有行 |
-w | 精準匹配整詞 |
-x | 精準匹配整行 |
vim編輯器:操作檔案
vim介紹
vim是vi的高階版本,由vim-enhanced軟體包提供
操作鍵盤次數少,不依賴滑鼠,可適用於多unix系統
gvim:vim的圖形化版本,在vim-x11包裡
vim和vi的區別:
vim比vi多了色彩提示,有基本的命令提示,支援的字符集和命令比vi多
vim命令的常用引數
引數 | 描述 |
---|---|
-b | 使用二進位制模式 |
-c | 載入檔案後執行指定命令 |
-e | 使用ex底層編輯模式 |
-m | 不允許修改內容 |
-n | 不使用交換分割槽,強制使用記憶體 |
-N | 使用非相容模式 |
-o | 開啟指定數量的視窗 |
-p | 開啟指定數量的標籤頁 |
-r | 顯示交換檔案 |
-R | 使用只讀模式 |
-s | 靜默執行模式 |
-T | 設定使用指定終端 |
-u | 強制使用vimrc |
-v | 使用vi編輯模式 |
-w | 寫入指令碼輸出檔案 |
-x | 對檔案進行加密 |
-y | 使用簡易模式 |
-Z | 使用受限模式 |
+數字 | 從指定行開始 |
--help | 顯示幫助資訊 |
--noplugin | 不載入外掛指令碼 |
--version | 顯示版本資訊 |
使用示例
-
建立檔案a.txt,並進行編寫操作,如果已建立則開啟
[root@lyy my_files]# vim a.txt
-
開啟a.txt檔案,並將游標移到第六行
[root@lyy my_files]# vim +7 a.txt
-
以自讀的模式進入a.txt
[root@lyy my_files]# vim -R a.txt
vim的四種模式
分別是:
- 命令模式
- 插入模式
- 末尾模式
- 可視模式
使用vim命令操作檔案時,最開始的模式就是命令模式
在命令模式下按 i 可以進入插入模式,按esc鍵從插入模式退出到命令模式;
在命令模式下按 : 可進入末行模式,按enter鍵從末行模式退出到命令模式
在命令模式下按 v 可以進入可視模式,再按v從可視模式退出到命令模式。
命令模式
移動游標
- 游標方向移動:小鍵盤旁邊的四個箭頭按鍵,分別進行上下左右操作
- 翻頁:
- 向下翻頁:
Ctrl+F
或Page Down
- 向上翻頁:
Ctrl+B
或Page Up
- 向下翻頁:
- 單行內跳轉:
- 跳到行首:
^
、數字0
、Home
鍵 - 跳到行尾:
$
、End
鍵
- 跳到行首:
- 檔案內多行跳轉:
- 跳轉到檔案的首行:
gg
- 跳轉到檔案的尾行:
G
- 跳轉到指定行:
dG
(d是一個整數,表示要跳轉的行數)
- 跳轉到檔案的首行:
複製貼上
-
刪除:
- 刪除游標處的單個字元:
x
或Delete
- 刪除游標所處行,並進入插入模式:
cc
- 刪除從游標之前到行首的所有字元:
d^
- 刪除從游標開始到行尾的所有字元:
d$
- 刪除從游標開始到詞尾(單詞)的所有字元:
dw
- 刪除游標處的單個字元:
-
剪下:
- 剪下當前游標所在行:
dd
- 從當前游標開始,向下剪下指定的行數:
Ndd
(N是一個整數,表示要剪下的行數)
- 剪下當前游標所在行:
-
複製:
- 複製當前行:
yy
- 從當前行開始,向下複製N行:
Nyy
(N是一個大於等於3的整數,表示要複製的行數,包括當前行) - 將start行到end行的內容複製到dest行以下:
:start, end copy dest
(start、end、dest都表示一個整數,表示行號)
- 複製當前行:
-
移動:
- 將start行到end行的內容移動到dest行以下:
:start, end m dest
(start、end、dest都表示一個整數,表示行號)
- 將start行到end行的內容移動到dest行以下:
-
貼上:
- 貼上到游標位置之後:
p
(小寫p) - 貼上到游標位置之前:
P
(大寫P)
- 貼上到游標位置之後:
查詢檔案中的字元
命令 | 描述 |
---|---|
/word | 從上至下在檔案中查詢字串“word” |
?word | 從下至上在檔案中查詢字串“word” |
n | 定位下一個被查詢的字串 |
N | 定位上一個被查詢的字串 |
可以使用:nohlsearch
命令取消高亮
撤銷
命令 | 描述 |
---|---|
u | 按一次撤銷一次最近的操作 |
U | 撤銷游標所在行的更改 |
Ctrl+r | 取消最後一次的撤銷操作 |
. | 重複操作 |
插入模式
在命令模式下按以下鍵進入插入模式
命令 | 描述 |
---|---|
i | 游標左邊插入文字 |
a | 游標右邊插入文字 |
o | 游標所在行的下一行插入新行 |
I | 在行首插入文字 |
A | 在行尾新增文字 |
O | 游標所在行的上一行插入新行 |
末行模式
儲存和退出
-
儲存檔案
- 儲存當前檔案:
:w
- 另存為其他檔案:
:w /root/my_dir/aaa.txt
(/root/my_dir為路徑,aaa.txt為另存為的檔名)(如果該檔案已存在,則在w後面加上:!,強制執行) - 把m到n行的內容另存到指定檔案中:
:m,nw /root/my_dir/b.txt
(m和n為整數,表示行號。/root/my_dir為路徑。b.txt為另存為的檔名)(如果該檔案已存在,則在w後面加上:!,強制執行)
- 儲存當前檔案:
-
退出vim
- 沒有修改檔案內容時退出:
:q
(如果修改過檔案內容這無法使用該命令退出) - 強制退出:
:q!
(即使修改檔案了也可以退出,但是不會儲存修改的內容) - 儲存並退出:
:wq
- 強制儲存並退出:
wq!
- 沒有修改檔案內容時退出:
查詢和替換
命令 | 描述 |
---|---|
😒 /old/new | 將當前行中查詢到的第一個"old"字串替換為"new" |
😒 /old/new/g | 將當前行中查到的所有"old"字串替換為"new" |
:m,n s/old/new/g | 將行號:[m,n] 範圍內所有的字串"old"替換為"new" |
:% s/old/new/gi | 將整個檔案範圍內的"old"字串替換為“new” |
😒 /old/new/c | 在替換命令末尾加上c命令,會在替換前提示使用者進行確認 |
顯示行號
- 顯示行號:
:set nu
- 取消顯示行號:
:set nonu
顯示控制字元
- 顯示控制字元:
:set list
- 取消顯示控制字元:
:set nolist
取消檔案中的高亮
:nohlsearch
可視模式
用來模擬滑鼠選中指定區域的功能,與下面windows中用滑鼠選中是一樣的
命令 | 描述 |
---|---|
v(小寫) | 可視(選中想要的區域) |
V(大寫) | 行可視(只允許選中整行) |
Ctrl+v | 塊可視(可以選中中間的區域) |
使用:可以對選中的區域進行復制、刪除、剪下等等操作
可視:按v(小寫)進入
下面白色部分就是被選中的部分,與windows中用滑鼠選中一模一樣
使用上下箭頭選中行,左右箭頭選擇當前行的列數
行可視:按V(大寫)進入
與上面相比,這裡有一定的限制,就是選中的時候只能選中一整行的
也就是隻有上下箭頭有用,左右箭頭沒用
塊可視:Ctrl+v進入
可以選中一塊區域,使用上下左右鍵控制行和列
vim:交換檔案
本地檔案系統都是有鎖的,不能多次同時開啟同一個檔案
在使用vim開啟一個檔案後,系統會建立一個副本,例如開啟a.txt檔案,那麼則會在檔案所在的路徑建立 .a.txt.swp 的副本檔案,也叫交換檔案
當我們正常使用:wq退出vim時,系統會用副本替換原來的檔案
但是如果沒有正常退出檔案,例如突然斷電、斷網以及使用者的不合法行為,交換檔案和原檔案共存時,再用vim開啟檔案就會如下錯誤:
直接按D刪除交換檔案,或者按R恢復
交換檔案屬於隱藏檔案,需要使用:ls -a
命令才能檢視