第六章 Linux的使用
目標
- 知道Linux作業系統及應用場景
- 掌握Linux常用命令
- 熟悉vi編輯器的使用
一、Linux作業系統
目標
- 瞭解作業系統及作用
- 瞭解linux檔案目錄的結構
1、Linux作業系統介紹
目標
- 知道主流的作業系統
- 瞭解Linux的特點和發行版本
1.1、作業系統介紹
作業系統:管理計算機硬體與軟體資源的計算機程式,同時也是計算機系統的核心和基石。
1.1.1主流的作業系統
1.2、Linux簡介
Linux是一套免費使用和自有傳播的作業系統
1.2.1、Linux的特點
- 開源免費
- 安全穩定
- 可移植性好
- 高效能
1.2.2、Linux系統的版本及分支
2、檔案和目錄
目標
- 瞭解Linux檔案目錄的結構
2.1、Linux檔案系統
2.1.1、Windows和Linux檔案系統區別
Linux是樹形結構的檔案系統,其中/是系統的根目錄,其他所有目錄都是它的子節點。
2.1.2、Linux主要目錄簡介
- /:根目錄,在linux下有且只有一個根目錄,所有的東西都是從這裡開始
- /home:使用者目錄
- /root:系統管理員root的目錄
- /usr:應用程式存放目錄
二、Linux常用命令
目標
- 掌握Linux常用命令
1、Linux終端命令格式
目標
- 瞭解終端命令格式
- 知道如何查閱終端命令幫助資訊
1.1、終端命令格式
command [-options] [parameter]
說明:
- command:命令名,相應功能的英文單詞或單詞的縮寫
- [-options]:選項,可用來對命令進行控制,也可以省略
- parameter:傳給命令的引數,可以是零個、一個或者多個
- [ ] 代表可選
1.2、查閱命令幫助資訊(知道)
提示:
- 現階段只需要知道通過以下兩種方式可以查詢命令的幫助資訊
- 先學習常用命令及常用引數的使用即可,工作中如果遇到問題可以藉助網路搜尋命令的中文資料
1.2.1、--help
command --help
說明:顯示command命令的幫助資訊
1.2.2、man
man command
說明:查閱command命令的使用手冊
man 是manual的縮寫,是Linux提供的一個手冊,包含了絕大部分的命令、函式的詳細使用說明
使用man時的操作鍵:
操作鍵 | 功能 |
空格鍵 | 顯示手冊頁的下一屏 |
Enter鍵 | 一次滾動手冊頁的一行 |
b | 回滾一屏 |
f | 前滾一屏 |
q | 退出 |
/word | 搜尋word字串 |
2、檔案和目錄常用命令
目標
檢視目錄內容:ls
切換目錄:cd
建立和刪除操作:touch、rm、mkdir
拷貝和移動檔案:cp、mv
檢視檔案內容:cat、more、grep
其他:重定向 > 和 >、管道 | 、pwd、clear
2.1、檢視目錄內容
2.1.1、ls命令說明
li是英文單詞list的簡寫,其功能為列出目錄的內容,是使用者常用的命令之一,它類似於DOS下的dir命令。
Linux下檔案和目錄的特點
- Linux檔案或者目錄名稱最長可以有256個字元
- " . "代表當前目錄
- " .. "代表上一級目錄
- 以" . "開頭的檔案為隱藏檔案,需要用-a引數才能顯示。
2.1.2、ls常用選擇
引數 | 含義 |
-a | 顯示指定目錄下所有子目錄與檔案,包含隱藏檔案 |
-l | 以列表方式顯示檔案的詳細資訊 |
-h | 配合-l以人性化的方式顯示檔案大小 |
詳細資訊含義如下圖所示:
2.1.3、ls萬用字元的使用
萬用字元 | 含義 |
* | 檔案代表檔名中所有字元 |
? | 代表檔名中任意一個字元 |
[] | 表示可以匹配字元組中的任意一個 |
[abc] | 匹配a、b、c中的任意一個 |
[a-f] | 匹配從a到f範圍內的任意一個字元 |
2.2、切換目錄
2.2.1、cd
- cd是英文單詞change directory的簡寫,其他功能為切換當前的工作目錄,是使用者最常用的命令之一。
注意:Linux所有的目錄和檔名大小寫敏感。
命令 | 含義 |
cd | 切換到當前使用者的主目錄(/home/使用者目錄),使用者登入的時候,預設的目錄就是使用者的主目錄 |
cd~ | 切換到使用者的主目錄(/home/使用者目錄) |
cd. | 切換到當前目錄 |
cd.. |
切換到上級目錄 |
cd- |
可進入上次所在的目錄 |
注意:
- 如果路徑是從根目錄開始的,則路徑的前面需要加上" / ",如" /home ",通常進入某個目錄裡的資料夾,前面不用加" / ".
2.2.2、相對路徑和絕對路徑
- 絕對路徑 在輸入路徑時,最前面是/或者~,表示從根目錄/家目錄開始的具體位置。
- 相對路徑 在輸入路徑時,最前面不是/或者~,表示相對 當前目錄 所在的目錄位置。
2.3、建立和刪除操作
2.3.1、touch
- 建立檔案或修改檔案時間
- 如果檔案不存在,可以建立一個空白檔案
- 如果檔案 已經存在,可以修改檔案的末次修改日期
2.3.2、mkdir
- 建立一個新的目錄
選項 | 含義 |
-p | 可以遞迴建立目錄 |
需要注意的是新建目錄的名稱不能與當前目錄中已有的目錄或檔案同名。
2.3.3、rm
- 刪除檔案或目錄
使用rm命令要小心,因為檔案刪除後不能恢復。為了防止檔案誤刪,可以在rm後使用 -i 引數以逐個確認要刪除的檔案。
常用引數及含義如何表所示:
引數 | 含義 |
-i | 以進行互動式方式執行 |
-f | 強制刪除,忽略不存在的檔案,不需提示 |
-r | 遞迴地刪除目錄下的內容,刪除資料夾時必須加此引數 |
2.4、拷貝和移動檔案
序號 | 命令 | 對應英文 | 作用 |
1 | cp 原始檔 目標檔案 | copy | 複製檔案或者目錄 |
2 | mv 原始檔 目標檔案 | move | 移動檔案或者目錄/檔案或者目錄重新命名 |
2.4.1、cp
cp命令的功能是將給出的 檔案 或 目錄 複製到另一個 檔案 或 目錄 中,相當於DOS下的copy命令。
常用選項說明:
選項 | 含義 |
-f | 覆蓋已經存在的目錄檔案而不提示 |
-i | 互動式複製,在覆蓋目標檔案之前將給出提示要求使用者確認 |
-r | 若給出的原始檔是目標檔案,則cp將遞迴複製該目錄下的所有子目錄和檔案,目標檔案必須為一個目錄名 |
-v | 顯示拷貝進度 |
2.4.2、mv
- 使用者可以使用mv命令來移動檔案或目錄, 也可以給檔案或者目錄重新命名。
常用選項說明:
選項 | 含義 |
-f | 禁止互動式操作,如有覆蓋也不會給出提示 |
-i | 確認互動方式操作,如果mv操作將導致對已存在的目標檔案的覆蓋,系統會詢問是否重寫,要求使用者回答以避免誤覆蓋檔案 |
-v | 顯示移動進度 |
2.5、檢視檔案內容
序號 | 命令 | 對應英文 | 作用 |
1 | cat 檔名 | concatenate | 檢視檔案內容、建立檔案、檔案合併、追加檔案內容等功能 |
2 | more 檔名 | more | 分屏顯示檔案內容 |
3 | grep 文字檔名 | grep | 搜尋文字檔案內容 |
2.5.1、cat
- cat命令可以用來檢視檔案內容、建立檔案、檔案合併、追加檔案內容 等功能
- cat 會一次顯示所有內容,適合 檢視內容較少 的文字檔案
選項 | 含義 |
-b | 對非空輸出行編號 |
-n | 對輸出的所有行編號 |
2.5.2、more
- more 命令可以用於分屏顯示檔案內容
- 適合於 檢視內容較多的文字檔案
使用more的操作鍵:
操作鍵 | 功能 |
空格鍵 | 顯示手冊頁的下一屏 |
Enter鍵 | 一次滾動手冊頁的一行 |
b | 回滾一屏 |
f | 前滾一屏 |
q | 退出 |
/word | 搜尋 word字串 |
2.5.3、grep
- Linux系統中 grep 命令是一種強大的文字搜尋工具
- grep 允許對檔案進行 模式查詢,所謂模式查詢,又被稱為正則表示式
常用選項說明:
選項 | 含義 |
-v | 顯示不包含匹配文字的所有行(相當於求反) |
-n | 顯示匹配行及行號 |
-i | 忽略大小寫 |
grep搜尋內容串可以是正則表示式。
- 正則表示式是對字串操作的一種邏輯公式,就是用事先定義好的一些特定字元、及這些特定字元的組合,組成一個"規則字串",這個"規則字串"用來表達對字串的一種過濾邏輯。
grep常用正則表示式:
引數 | 含義 |
^a | 行首,搜尋以m開頭的行;grep -n '^a' 1.txt |
ke$ | 行尾,搜尋以ke結束的行;grep -n 'ke$' 1.txt |
[Ss]igna[LI] | 匹配 [] 裡中一系列字元中的一個;搜尋匹配單詞signal、signaL、Signal、SignaL的行;grep -n '[Ss]igna[Ll]' 1.txt |
2.6、其他
2.6.1、重定向> 和 >>
- Linux允許將命令執行結果 重定向到一個檔案
- 將本應顯示在終端上的內容 輸出/追加 到 指定檔案中
其中
- >表示輸出,會覆蓋檔案原有內容
- >>表示追加,會講內容追加到已有檔案的末尾
2.6.2、管道 |
- Linux允許將 一個命令的輸出 可以 通過管道 做為 另一個命令的輸入
- 可以理解現實生活中的管子,管子的一頭塞東西進去,另一頭取出來,這裡 | 的左右分為塞東西(寫),右端取東西(讀)
常用的管道命令有:
- more:分屏顯示內容
- prep:在命令執行結果的基礎上查詢指定的文字
2.6.3、pwd
- 使用pwd命令可以顯示當前的工作目錄,很簡單的命令,直接在終端輸入pwd即可
2.6.4、clear
- claer作用為清除終端上的顯示(類似於DOS的cls清屏功能),也可以使用快捷鍵:Ctrl+("l"為小寫字母"L")
3、系統資訊相關命令
目標
- 重啟與關機:reboot、shutdown [不常用]
- 程序資訊:ps、top、kill
- 埠資訊:netstat、lsof
- 檢視日誌資訊:head、tail
- 檢視作業系統資訊:cat/proc/version、cat /etc/issue
3.1、重啟與關機:reboot、shutdown
3.1.1、reboot命令
序號 | 命令 | 作用 | 說明 |
1 | reboot | 重新啟動作業系統 | 執行命令後立即重啟作業系統 |
2 | shutdown | 關閉作業系統 | 執行命令後,提示1分鐘後關閉作業系統 |
3.1.2、shutdown命令
- shutdown命令的選項:
命令 | 含義 |
shutdown -r now | 重新啟動作業系統,shutdown會給別的使用者提示 |
shutdown -h now | 立刻關機,其中now相當於時間為0的狀態 |
shutdown -h 20:25 | 系統在今天的20:25會關機 |
shutdown -h +10 | 系統再過十分鐘後自動關機 |
3.2、檢視系統程序
所謂程序,通俗的講就是 當前正在執行的一個程式
序號 | 命令 | 作用 |
1 | ps -aux | process status 檢視當前系統中正在執行程式的詳細狀況 |
2 | kill [-9] 程序代號 | 終止指定代號的程序,-9表示強行終止 |
3 | top | 動態顯示執行中的程序並且排序 |
-
ps 預設只會顯示當前使用者通過終端啟動的應用程式
-
ps 選項說明
選項 | 含義 |
a | 顯示終端上的所有程序,包含其他使用者的程序 |
u | 顯示程序的詳細狀態 |
x | 顯示沒有控制終端的程序 |
- 每一個程序擁有唯一的pid,可以根據pid殺死程序如:kill 12478 或kill -9 12478(強制殺死)
注意:顯示瞬間程序的狀態,並不動態連結,如果相對程序進行時間監控,應該用top命令
3.3、檢視系統監聽的埠
3.3.1、netstat命令
netstat命令用於顯示各種網路相關資訊
常用於檢視軟體開啟的埠資訊
注意:一般需要root使用者許可權,才能看到更詳細的埠資訊
序號 | 命令 | 作用 | 說明 | 舉例 |
1 | netstat | 用於檢視顯示網路狀態 | ||
2 | netstat -anptu | 檢視所有的程序和埠使用情況 | 一般用來檢視埠被那些程式使用,但是我們不單單獨使用 | |
3 | netstat -anpyu \ | grep mysql | 結合grep查詢指定程式開啟的埠 | 比如這裡檢視的就是mysql正在使用的埠號 |
選項說明:
選項 | 含義 |
-a | 顯示所有已開啟的埠 |
-n | 不用別名顯示,只用數字顯示 |
-p | 顯示程序號(pid)和程序名 |
-t | 顯示所有tcp協議埠 |
-u | 顯示所有udp協議埠 |
3.3.2、lsof命令
- lsof(list open files)是一個列出當前系統開啟檔案的工具
- 可以用於檢視系統中正在使用埠的詳細資訊
注意:一般需要root使用者許可權,才能看到更詳細的埠資訊
序號 | 命令 | 作用 | 說明 |
1 | lsof -i | 如果不給出條件,則預設顯示所有程序開啟的所有檔案 | |
2 | lsof -i:3306 | 列出使用埠3306的程序資訊 | 這裡是檢視3306這個埠被那個應用程式佔用了 |
- 提示:linux系統中安裝軟體時,會出現因為埠被佔用而無法安裝的情況,這個時候就需要我們用 lsof -i 命令檢視安裝軟體要使用的埠是否被佔用。
3.4、檢視日誌資訊
3.4.1、head命令
序號 | 命令 | 作用 | 說明 |
1 | head | 用來顯示檔案前10行的內容 | 如果不加引數預設顯示檔案前10行內容 |
2 | head -15 檔名 | 顯示檔案前15行內容 |
例子:檢視某個檔案的開頭10行內容:head -10 temp.txt
- 提示:一般用於,想要檢視一個很大的檔案前幾行內容時使用。
3.4.2、tail命令
序號 | 命令 | 作用 | 說明 |
1 | tail | 顯示檔案後10行內容 | 如果不加引數預設顯示檔案後10行內容 |
2 | tail -15 檔名 | 顯示檔案結尾15行內容 | |
3 | tail -f 檔名 | 實時監控檔案內容 | 用於檢視線上服務的執行日誌,實時顯示寫入日誌的資訊 |
例子1 : 檢視某個檔案的結尾10行內容:tail -10 temp.txt
3.4.2.1、tail -f 例項:
- 實時監控檔案變化:
- 不停的向檔案寫入內容:ping www.baidu.com > temp.txt
- 實時監控:tail -f temp.txt
3.5、檢視作業系統資訊
-
檢視當前作業系統版本資訊:cat/proc/version
-
檢視版本當前作業系統發行資訊:cat/etc/issue
4、使用者許可權和管理
目標
- 使用者和許可權基本概念
- 修改許可權終端命令
- 使用者管理終端命令
4.1、使用者 和 許可權 的基本概念
4.1.1、許可權基本概念
- 對 檔案/目錄 的許可權包括:
序號 | 許可權 | 英文 | 縮寫 | 數字代號 |
1 | 讀 | read | r | 4 |
2 | 寫 | write | w | 2 |
3 | 執行 | excute | x | 1 |
4 | 無許可權 | - | 0 |
4.1.2、ls -l擴充套件
- ls -l 可以檢視資料夾下檔案的詳細資訊,從左到右依次是:
- 許可權,第1個字元如果是d 表示目錄,如果是 - 表示檔案
- 硬連結數,通俗地講,就是有多少種方式,可以訪問到當前目錄或檔案
- 擁有者,家目錄下 檔案或目錄 的擁有者通常都是當前使用者
- 組,在linux種,很多時候,會出現組名和使用者名稱相同的情況
- 大小
- 時間
- 檔名
4.1.3、chmod命令-字母法
- chmod修改檔案許可權有兩種使用格式:字母法與數字法
- 字母法:chmod u+r檔名
- 使用者型別
使用者 | 含義 |
u | user 表示該檔案的所有者 |
g | group 表示與該檔案的所有者屬於同一組(group)者,既使用者組 |
o | other 表示其他以外的人 |
a | all 表示這三者皆是 |
許可權設定
增減許可權 | 含義 |
+ | 增加許可權 |
- | 撤銷許可權 |
= | 設定許可權 |
4.1.4、chmod命令-數字法
- chmod在設定許可權時,可以簡單的使用三個數字分別對應 擁有者/組和其他使用者的許可權
- 數字法:chmod 755 檔名
- 許可權對照圖:
- 常見數字組合有(u表示使用者/g表示組/o表示其他):
- 777 ===> u=rwx,g=rwx,o=rwx
- 755 ===> u=rwx,g=rx,o=rx
- 644 ===> u=rw,g=r,o=r
4.2、使用者管理
- 單使用者作業系統:指一臺計算機在同一時間 只能由一個使用者 使用,一個使用者獨自享用系統的全部硬體和軟體資源
- Windows xp之前是單使用者系統
- 多使用者作業系統:指一臺計算機在同一時間可以由 多個使用者 使用,多個使用者共同享用系統的全部硬體和軟體資源
- linux從設計之初就是多使用者作業系統
4.2.1、檢視命令位置:which
檢視命令位置,也可以檢視安裝在系統中的程式的位置
命令 | 含義 |
which is | 檢視ls命令在系統中的位置 |
which python | 檢視python程式安裝在系統中的位置 |
4.2.2、切換賬號:su
Centos下切換到root的簡單命令:su
序號 | 命令 | 作用 | 說明 |
1 | su - | 切換到root使用者 | |
2 | su - 使用者名稱 | 切換到指定的使用者,並切換目錄 | - 可以切換到使用者家目錄,否則位置保持不變 |
- su 不接使用者名稱,可以直接切換到root,但是不推薦使用,因為不安全
4.2.3、設定使用者密碼:passwd
在Unix/Linux中,超級使用者可以使用passwd命令為普通使用者設定或修改使用者密碼。
使用者也可以直接使用該命令來修改自己的密碼,而無需在命令後面使用使用者名稱。
序號 | 命令 | 作用 | 說明 |
1 | passwd 使用者名稱 | 設定使用者密碼 | 如果是普通使用者,直接用passswd可以修改自己的賬戶密碼 |
4.3.4、退出登入賬號:exit
- 如果是圖形介面,退出當前終端:
- 如果是使用ssh遠端登入,退出登入賬戶:
- 如果是切換後登入使用者,退出則返回上一個登入賬號。
4.3.5、檢視登入使用者:who
who命令用於檢視當前所有登入系統的使用者資訊。
序號 | 命令 | 作用 | 說明 |
1 | who | 檢視當前所有登入系統的使用者資訊 |
常用選項:
選項 | 含義 |
-q 或 -count | 只顯示使用者的登入賬號和登入使用者的數量 |
-u 或 -heading | 顯示列標題 |
5、其他命令
目標
- 查詢檔案:find
- 軟連線:In -s
- 打包和壓縮:tar、gzip、bzip2、zip、unzip
5.1、查詢檔案
find命令功能非常強大,通常用來在待定的目錄下搜尋符合條件的檔案
序號 | 命令 | 作用 |
01 | find[路徑] -name"*.py" | 查詢指定路徑下副檔名是.py的檔案,包括子目錄 |
- 如果省略路徑,表示在當前資料夾下查詢
- 之前學習的萬用字元,在使用find命令時也可用
常用方法:
命令 | 含義 |
find .-name test.sh | 查詢當前目錄下所有名為test.sh的檔案 |
find .-name '*sh' | 查詢當前目錄下所有後綴為.sh的檔案 |
5.2、軟連結
5.2.1、In -s
序號 | 命令 | 作用 |
01 | In -s 原始檔 連結檔案 | 建立檔案的軟連結,用通俗的方式講 類似於Windows下的 快捷方式 |
- 注意:
- 軟連結只是指向原始檔的一個連結
- 原始檔要使用絕對路徑,不能使用相對路徑,這樣可以方便移動連結檔案後,仍然能夠正常使用
- 軟連結可以連結目錄
硬連結簡介
- 在使用 In 建立連結時,如果沒有 -s 選項,會建立一個 硬連結,而不是軟連結
- 兩個檔案大小時相同的,即使刪除了原始檔,連結檔案還是存在,所以軟連結是更常用的方式。
5.3、打包和壓縮
- 打包壓縮 是日常工作中備份檔案的一種方式
- 在不同作業系統中,常用的打包壓縮方式是不同的
- Windows 常用 war
- Mac 常用 zip
- Linux 常用 tar.gz
5.3.1、打包/解包
- tar 是 Linux 中最常用的 備份 工具,此命令可以 把一些列檔案 打包到 一個大檔案中,也可以把 打包的檔案 恢復成一系列檔案
- tar使用格式如下:
#打包檔案
tar -cvf 打包檔案.tar 被打包的檔案/路徑...
#解包檔案
tar -xvf 打包檔案.tar
tar常用選項說明:
引數 | 含義 |
-c | 生成檔案檔案,建立打包檔案 |
-v | 列出歸檔解檔的詳細過程,顯示進度 |
-f | 指定檔案檔名稱,f後面一定時.tar檔案,所以必須放選項最後 |
-t | 列出檔案中包含的檔案 |
-x | 解開檔案檔案 |
注意:f 選項必須放在最後,其他選項可以隨意
5.3.2、壓縮/解壓縮
5.3.2.1、gzip
- tar 與 gzip命令結合使用實現檔案 打包、壓縮
- tar只負責打包檔案,但不壓縮
- 用gzip壓縮tar打包後的檔案,其副檔名一般用 xxxx.tar.gz。
gzip使用格式如下:
gzip [選項] 被壓縮檔案 (gzip -r xxx.tar)
常用選項:
選項 | 含義 |
-r | 壓縮所有子目錄 |
-d | 解壓 |
- tar 命令中增加一個選項 -z 可以呼叫 gzip實現了一個壓縮的功能,實行一個先打包後壓縮的過程。
- 命令格式如下:
# 壓縮檔案
tar -zcvf 打包檔案.tar.gz 被壓縮的檔案/路徑...
# 解壓縮檔案
tar -zxvf 打包檔案.tar.gz
# 解壓縮到指定路徑
tar -zxvf 打包檔案.tar.gz -C 目標路徑
選項 | 含義 |
-C | 解壓縮到指定的目錄,注意:要解壓縮到目錄必須存在 |
5.3.2.2、bzip2(two)
- tar與bzip2命令結合使用實現檔案打包、壓縮(用法和gzip一樣)
- tar 只負責打包檔案,但不壓縮
- 用 bzip2 壓縮tar打包後的檔案,其副檔名一般用 xxxx.tar.bz2
- 在tar命令中增加一個選項 -j 可以呼叫bzip2,實現一個壓縮的功能,實行一個先打包後壓縮的過程.
- 命令格式如下:
# 壓縮檔案
tar -jcvf 打包檔案.tar.bz2 被壓縮的檔案/路徑...
# 解壓縮檔案
tar -jxvf 打包檔案.tar.bz2
5.3.2.3、zip、unzip
- 通過 zip 壓縮檔案的目錄檔案不需要指定副檔名,預設副檔名為 zip。
- 命令格式如下:
# 壓縮檔案
zip [-r] 打包檔案 被壓縮的檔案
# 解壓縮檔案
unzip -d 解壓後的目錄 打包檔案.zip
6、Linux遠端連結
目標
- 掌握遠端連結工具的使用
6.1、為什麼要學習遠端連結
實際工作中往往是通過遠端連結到Linux系統的
6.2、putty64
- ifconfig檢視Linux的ip地址
- 從下圖位置輸入使用者名稱和密碼,即可以遠端使用
6.3、winscp
- 遠端連結伺服器,可以互相傳檔案
- 從下圖位置輸入使用者名稱、密碼、IP地址、點選登入,左側顯示為自己電腦的資料,右側就是伺服器電腦中的資料,可以左右隨意拖拽
- 注意:如果發現遠端連結錯誤,先檢查自己的虛擬機器網路配置是否為橋接模式,如果不是,要關閉,在設定
三、vi編輯器
目標
- 熟悉vi編輯器的使用
1、vi編輯器
目標
- vi簡介
- 三種工作模式
- vi基礎操作
1.1、vi簡介
vi是"Visual interface"的簡稱,它在Linux上的地位就彷彿Edit程式在DOS上一樣,它可以執行輸出、刪除、查詢、替換、塊操作等眾多文字操作,而且使用者可以根據自己的需要對其進行定製。Vi不是一個排版程式,它不像World或者WPS那樣可以對字型、格式、段落等其他屬性進行編排,它只是一個文字編輯程式。VI沒有選單,只有命令。且命令繁多
1.2、三種工作模式
vi有三種工作模式:
- 命令模式
- 文字輸入模式
- 末行模式
1.2.1、命令列模式
任何時候,不管使用者處於何種模式,只要按一下ESC鍵,即可使Vi進入命令模式:我們在shell環境(提示符為$)下輸入啟動Vi命令,進入編輯器時,也是處於該模式下。在該模式下,使用者可以輸入各種合法的Vi命令,用於管理自己的文件。此時從鍵盤上輸入的任何字元都被當做編輯命令來解釋,若輸入的字元是合法的Vi命令,則Vi在接受用戶命令之後完成相應的動作。但需注意的是,所輸入的命令並不在螢幕上顯示出來。若輸入的字元不是Vi的合法命令,Vi會響鈴報警。
1.2.2、文字輸入模式
在命令模式下輸入插入命令i、附加命令a 、開啟命令o、修改命令c、取代命令r或替換命令s都可以進入文字輸入模式。在該模式下,使用者輸入的任何字元都被Vi當做檔案內容儲存起來,並將其顯示在螢幕上。在文字輸入過程中,若想回到命令模式下,按鍵ESC即可。
1.2.3、末行模式
末行模式也稱ex轉義模式。在命令模式下,使用者按“:”鍵即可進入末行模式下,此時Vi會在顯示視窗的最後一行(通常也是螢幕的最後一行)顯示一個“:”作為末行模式的提示符,等待使用者輸入命令。多數檔案管理命令都是在此模式下執行的(如把編輯緩衝區的內容寫到檔案中等)。末行命令執行完後,Vi自動回到命令模式。例如:
則儲存檔案並且退出編輯器。:wq
1.3、vim基礎操作
vim是從 vi 發展出來的一個文字編輯器 。程式碼補完、編譯及錯誤跳轉等方便程式設計的功能特別豐富
進入插入模式:
i: 插入游標前一個字元
I: 插入行首
a: 插入游標後一個字元
A: 插入行未
o: 向下新開一行,插入行首
O: 向上新開一行,插入行首
進入命令模式:
ESC:從插入模式或末行模式進入命令模式
移動游標:
h: 左移
j: 下移
k: 上移
l: 右移
M: 游標移動到中間行
L: 游標移動到螢幕最後一行行首
G: 移動到指定行,行號 -G
w: 向後一次移動一個字
b: 向前一次移動一個字
{: 按段移動,上移
}: 按段移動,下移
Ctr-d: 向下翻半屏
Ctr-u: 向上翻半屏
Ctr-f: 向下翻一屏
Ctr-b: 向上翻一屏
gg: 游標移動檔案開頭
G: 游標移動到檔案末尾
刪除命令:
x: 刪除游標後一個字元,相當於 Del
X: 刪除游標前一個字元,相當於 Backspace
dd: 刪除游標所在行,n dd 刪除指定的行數 D: 刪除游標後本行所有內容,包含游標所在字元
d0: 刪除游標前本行所有內容,不包含游標所在字元
dw: 刪除游標開始位置的字,包含游標所在字元
撤銷命令:
u: 一步一步撤銷
Ctr-r: 反撤銷
重複命令:
.: 重複上一次操作的命令
文字行移動:
>>: 文字行右移
<<: 文字行左移
複製貼上:
yy: 複製當前行,n yy 複製 n 行
p: 在游標所在位置向下新開闢一行,貼上
可視模式:
v: 按字元移動,選中文字
V: 按行移動,選中文字可視模式可以配合 d, y, >>, <<實現對文字塊的刪除,複製,左右移動
替換操作:
r: 替換當前字元
R: 替換當前行游標後的字元,直到按esc
查詢命令:
/: str查詢
n: 下一個
N:上一個