目錄 目錄目錄基礎指令Linux命令基本格式文件操作文件格式文件許可權創建文件查看文件刪除文件移動文件複製文件編輯文件查找文件查找命令路徑vim文本編輯器一般指令模式(command mode)編輯模式(insert mode)指令列命令模式command-line mode目錄操作列印路徑查看目錄切 ...
目錄
目錄基礎指令
Linux命令基本格式
gec@ubuntu:~$ 命令 [選項] [參數]
文件操作
文件格式
file命令,該命令用於查看Linux系統中文件的類型,包括但不限於文本文件、目錄、二進位文件、符號鏈接等。
file [選項] 文件名
file code.tar.bz2 #查看code.tar.bz2 的文件類型
文件許可權
chmod命令,是英文單詞change module的縮寫,利用該命令可以修改Linux系統的文件許可權
chmod 許可權 文件
系統中的所有用戶被分成三類:文件所有者(現登錄用戶),同組用戶和其他用戶。這三類用戶對這個文件的rwx許可權,可以由命令 ls -l 來查看。
在上述列子中,rwx三組許可權對應了三種用戶。當我們需要修改這些許可權的時候,為了便於描述,一般用3組八進位數來對應這些許可權為,如下表所示:
創建文件
touch 文件不存在時創建空文件 , 文件存在時將已存在的文件或目錄的時間標簽更新為當前系統時間
touch 文件名 //可以一次性創建多個不同類型的文件
查看文件
cat命令,是英文concatenate的縮寫,該命令是 Linux操作系統中最常用的命令之一。cat 命令允許創建單個或多個文件、查看文件內容、連接文件和重定向終端或文件中的輸出,常用於查看文件內容。
cat file.txt #顯示文本文件內容
cat -n a.c #顯示文本文件內容(並顯示行號)
cat -A a.c #顯示文本文件內容(含不可見字元)
#註意:在某些情況下,我們可能需要檢測文件中那些不可見的字元。比如在Windows系統中編輯了程式源文件,放到Ubuntu系統中編譯可能會出現字元錯誤,這是因為Windows系統中的某些回車符、製表符跟Ubuntu系統的不一致,導致無法編譯,而這些字元是不可見的,因此可以使用上述 cat -A 來識別。
刪除文件
rm 永久性地刪除文件系統中指定的文件或目錄。在使用 rm 命令刪除文件或目錄時,系統不會產生任何提示信息。
rm [選項] 文件或目錄
-f:強制刪除(force),和 -i 選項相反,使用 -f,系統將不再詢問,而是直接刪除目標文件或目錄。
-i:和 -f 正好相反,在刪除文件或目錄之前,系統會給出提示信息,使用 -i 可以有效防止不小心刪除有用的文件或目錄。
-r:遞歸刪除,主要用於刪除目錄,可刪除指定目錄及包含的所有內容,包括所有的子目錄和文件。
移動文件
mv 命令,是英文move的縮寫,該命令有兩種作用:既可以在不同的目錄之間移動文件或目錄,也可以對文件和目錄進行重命名。
mv [選項] 源文件 目標文件/目錄路徑
-f:強制覆蓋,如果目標文件已經存在,則不詢問,直接強制覆蓋
-i:交互移動,如果目標文件已經存在,則詢問用戶是否覆蓋(預設選項)
-n:如果目標文件已經存在,則不會覆蓋移動,而且不詢問用戶
複製文件
cp命令,是英文copy的縮寫,主要用來複制文件和目錄,同時藉助某些選項,還可以實現複製整個目錄,以及比對兩文件的新舊而予以升級等功能。
cp [選項] 源文件(被覆制文件) 目標路徑
-i:詢問,如果目標文件已經存在,則會詢問是否覆蓋
-r:遞歸複製,用於複製目錄
-u:若目標文件和源文件有差異,則可以更新目標文件,可用於對文件的升級和備用
編輯文件
gedit命令,可以以記事本的風格打開一個文件,gedit圖形化編輯器跟Windows下記事本的用法基本一致。
gedit 文件名
查找文件
find命令,該命令用於查找Linux系統中某個指定的路徑下文件的位置,並且可以把文件的絕對路徑輸出到終端。註意:如果打算查找根目錄下的文件,則應該使用sudo獲取root許可權。
find 路徑 [選項] 文件名
find /usr -name "xxx.h" #在/usr中查找所有以.h結尾的文件
find /tmp -type d # 在/tmp中查找類型為目錄的文件
find / -name passwd #找出檔名為 passwd 這個文件
查找命令路徑
which命令,在Linux系統中該命令用於定位和查找系統中可執行文件的路徑。它主要用於確定某個命令是否存在以及該命令的完整路徑。
which [選項] 命令名
which ls #查找ls命令的路徑
vim文本編輯器
因為中文編碼有 big5 與utf8 兩種,如果你的文件是使用big5 編碼製作的,但在vim 的終端介面中你使用的是萬國碼(utf8), 由於編碼的不同,你的中文文件內容當然就是一堆亂碼了!
【1】安裝並部署好 vsCode 編程環境,並安裝 vim 插件,試試使用 vi 模式編寫代碼。
直接在 vsCode 中的擴展欄搜索 vim 安裝即可。關於 vi 編輯器:
- 特點:
- vi的改進版本叫vim(vi’s improved version),vi和vim是同一個軟體。
- vi其初衷是解放滑鼠,只用鍵盤高效操作所有的編輯任務。
- 沒有菜單,操作分成編輯模式和命令模式,除了編輯之外的操作都在命令模式下進行。
Vi有三種工作模式:一般命令模式、編輯模式、指令列命令行模式。
一般指令模式(command mode)
作用: ①移動游標 ②搜索與取代 ③刪除字元、刪除整列 ④複製整列、粘貼整列
進入: ①預設進入②在編輯模式或指令列模式中按下 ESC鍵
# ①移動游標
[Ctrl] + [b] #向上翻一頁
[Ctrl] + [f] #向下翻一頁
0 或功能鍵[Home] #移動到這一列的最前面字元處
$ 或功能鍵[End] #移動到這一列的最後面字元處
gg #移動到這個文件的第一行 (常用)
G #移動到這個文件的最後一行(常用)
n <Enter> #n 為數字。游標向下移動 n 行(常用)
# ②搜索與取代
/word #向游標之下尋找一個名稱為 word 的字元串。 (常用)
:n1,n2s/word1/word2/g #n1 與 n2 為數字。在第 n1 與 n2 列之間尋找 word1 這個字元串,並將該字元串取代為 word2 !
:1,$s/word1/word2/g #從第一列到最後一列尋找 word1 字元串,並將該字元串取代為 word2 !
:1,$s/word1/word2/gc #從第一列到最後一列尋找 word1 字元串,並將該字元串取代為 word2 !且在取代前顯示提示字元給用戶確認
#(confirm) 是否需要取代!(常用)
# ③刪除字元、刪除整列
見下表
命令 | 效果 |
---|---|
yy | 複製游標所在的那一整行 |
nyy | n為數字。複製游標所在的向下 n 列,例如 20yy 則是複製 20 列(常用) |
p | 將已複製的數據在游標下一列貼上 |
P | 貼在游標上一列 |
X | 向前刪除一個字元(相當於 [backspace] 亦即是退格鍵) |
x | 向後刪除一個字元 (相當於 [del] 按鍵) |
dd | 刪除游標所在的那一整行 |
ndd | n 為數字。刪除游標所在的向下 n 列,例如 20dd 則是刪除 20 列 (常用) |
u | 撤銷, 複原前一個動作。 |
. |
重覆前一個動作的意思 |
ctrl+r | 重做上一個動作 |
r | 替換當前字元 |
k | 游標向上移動 |
j | 游標向下移動 |
h | 游標向左移動 |
l | 游標向右移動(小寫的L) |
刪除文本
需要註意的是被刪除的內容並沒有真正刪除,都放在了剪貼板中。將游標移動到指定位置處,按下 "p" 鍵,就可以將剛纔刪除的內容又粘貼到此處。
快捷鍵 | 功能描述 |
---|---|
x | 刪除游標所在位置的字元 |
dd | 刪除游標所在行 |
ndd | 刪除當前行(包括此行)後 n 行文本 |
dG | 刪除游標所在行一直到文件末尾的所有內容 |
D | 刪除游標位置到行尾的內容 |
:a1,a2d | 函數從 a1 行到 a2 行的文本內容 |
複製粘貼
快捷鍵 | 功能描述 |
---|---|
p | 將剪貼板中的內容粘貼到游標後 |
P(大寫) | 將剪貼板中的內容粘貼到游標前 |
y | 複製已選中的文本到剪貼板 |
yy | 將游標所在行複製到剪貼板,此命令前可以加數字 n,可複製多行 |
yw | 將游標位置的單詞複製到剪貼板 |
其他常用
某些情況下,可能需要把兩行進行連接。比如說,下麵的文件中有兩行文本,現在需要將其合併成一行(實際上就是將兩行間的換行符去掉)。可以直接在命令模式中按下 "J" 鍵。
如果不小心誤刪除了文件內容,則可以通過 "u" 鍵來撤銷剛纔執行的命令。如果要撤銷剛纔的多次操作,可以多按幾次 "u" 鍵。
編輯模式(insert mode)
作用: ①以插入或取代來編輯內容
進入使用:
插入模式:i I o O a A #均可進入編輯模式 退出ESC
i #在當前游標處插入文本
I #在當前游標所在行的開頭處插入文本
O #往上插一行
o #往下插一行
A #在當前游標所在行的末尾處插入文本
a #在當前游標的下一個字元處插入文本
取代模式:
r #取代一個字元
R #一直取代, 直到按ESC結束
界面提示: INSERT 或 REPLACE
指令列命令模式command-line mode
作用: ①以插入或取代來編輯內容
進入使用: : / ?
#指令列模式的儲存、離開等指令
:w 將編輯的數據寫入硬碟文件中(常用)
:q 離開 vi (常用)
:q! 放棄保存並退出
:wq 儲存後離開
:wq! 則為強制儲存後離開 (常用)
#vim 環境的變更
:set nu 顯示行號,設定之後,會在每一列的首碼顯示該列的行號
:set nonu 與 set nu 相反,為取消行號!
查找內容
:?printf #查找printf
如果在文件中並沒有找到所要查找的字元串,則在文件底部會出現 "Pattern not found" 提示。
在查找過程中需要註意的是,要查找的字元串是嚴格區分大小寫的,如查找 "shenchao" 和 "ShenChao" 會得到不同的結果。如果想忽略大小寫,則輸入命令 ":set ic";調整回來輸入":set noic"。
如果在字元串中出現特殊符號,則需要加上轉義字元 ""。常見的特殊符號有 \、*、?、$ 等。如果出現這些字元,例如,要查找字元串 "10$",則需要在命令模式中輸入 "/10$"。
替換文本