Linux02:Vim使用及賬號、磁碟、程序管理
五、Vim編譯器
1.什麼是vim編譯器
- Vim相當於vi的升級版
- Vim是從 vi 發展出來的一個文字編輯器。程式碼補完、編譯及錯誤跳轉等方便程式設計的功能特別豐富,在程式設計師中被廣泛使用。
- 簡單的來說, vi 是老式的字處理器,不過功能已經很齊全了,但是還是有可以進步的地方。
- vim 則可以說是程式開發者的一項很好用的工具。
- 所有的 Unix Like 系統都會內建 vi 文書編輯器,其他的文書編輯器則不一定會存在。
- 連 vim 的官方網站 (http://www.vim.org) 自己也說 vim 是一個程式開發工具而不是文書處理軟體。
- vim 鍵盤圖:
2.三種使用模式(重要)
基本上 vi/vim 共分為三種模式,分別是命令模式
-
命令模式:
使用者剛剛啟動 vi/vim,便進入了命令模式。
此狀態下敲擊鍵盤動作會被Vim識別為命令,而非輸入字元。比如我們此時按下i,並不會輸入一個字元,i被當作了一個命令。
以下是常用的幾個命令:
- i 切換到輸入模式,以輸入字元。
- x 刪除當前游標所在處的字元。
- : 切換到底線命令模式,以在最底一行輸入命令。如果是編輯模式,需要先退出編輯模式 (ESC)
-
輸入模式:
在命令模式下按下i就進入了輸入模式。
在輸入模式中,可以使用以下按鍵:
- 字元按鍵以及Shift組合,輸入字元
- ENTER,回車鍵,換行
- BACK SPACE,退格鍵,刪除游標前一個字元
- DEL,刪除鍵,刪除游標後一個字元
- 方向鍵,在文字中移動游標
- HOME/END,移動游標到行首/行尾
- Page Up/Page Down,上/下翻頁
- Insert,切換游標為輸入/替換模式,游標將變成豎線/下劃線
- ESC,退出輸入模式,切換到命令模式
-
底線命令模式
在命令模式下按下:(英文冒號)就進入了底線命令模式。
底線命令模式可以輸入單個或多個字元的命令,可用的命令非常多。
在底線命令模式中,基本的命令有(已經省略了冒號):
- q 退出程式
- w 儲存檔案
按ESC鍵可隨時退出底線命令模式。
簡單的說,我們可以將這三個模式想成底下的圖示來表示:
測試
完整的演示說明
新建或者編輯檔案,按 i 進入編譯模式,編寫內容,編寫完成後退出編輯模式,esc,退出之後進入底線命令模式
:wq儲存退出!
3.Vim按鍵說明(需要時查詢)
第一部分:一般模式可用的游標移動、複製貼上、搜尋替換等
移動游標的方法 | 11 |
---|---|
h 或 向左箭頭鍵(←) | 游標向左移動一個字元 |
j 或 向下箭頭鍵(↓) | 游標向下移動一個字元 |
k 或 向上箭頭鍵(↑) | 游標向上移動一個字元 |
l 或 向右箭頭鍵(→) | 游標向右移動一個字元 |
[Ctrl] + [f] | 螢幕『向下』移動一頁,相當於 [Page Down]按鍵 (常用) |
[Ctrl] + [b] | 螢幕『向上』移動一頁,相當於 [Page Up] 按鍵 (常用) |
[Ctrl] + [d] | 螢幕『向下』移動半頁 |
[Ctrl] + [u] | 螢幕『向上』移動半頁 |
+ | 游標移動到非空格符的下一行 |
- | 游標移動到非空格符的上一行 |
n< space> | 那個 n 表示『數字』,例如 20 。按下數字後再按空格鍵,游標會向右移動這一行的 n 個字元。(數字 + 空格) |
0 或功能鍵[Home] | 這是數字『 0 』:移動到這一行的最前面字元處 (常用) |
$ 或功能鍵[End] | 移動到這一行的最後面字元處(常用) |
H | |
M | 游標移動到這個螢幕的中央那一行的第一個字元 |
L | 游標移動到這個螢幕的最下方那一行的第一個字元 |
G | 移動到這個檔案的最後一行(常用) |
nG | n 為數字。移動到這個檔案的第 |
gg | 移動到這個檔案的第一行,相當於 1G 啊!(常用) |
n< Enter> | n 為數字。游標向下移動 n 行(常用) |
搜尋替換 | |
---|---|
/word | 向光標之下尋找一個名稱為 word 的字串。例如要在檔案內搜尋 vbird 這個字串,就輸入 /vbird 即可!(常用) |
?word | 向光標之上尋找一個字串名稱為 word 的字串。 |
n | 這個 n 是英文按鍵。代表重複前一個搜尋的動作。舉例來說, 如果剛剛我們執行 /vbird 去向下搜尋 vbird 這個字串,則按下 n 後,會向下繼續搜尋下一個名稱為 vbird 的字串。如果是執行 ?vbird 的話,那麼按下 n 則會向上繼續搜尋名稱為 vbird 的字串! |
N | 這個 N 是英文按鍵。與 n 剛好相反,為『反向』進行前一個搜尋動作。例如 /vbird 後,按下 N 則表示『向上』搜尋 vbird 。 |
刪除、複製與貼上 | |
---|---|
x, X | 在一行字當中,x 為向後刪除一個字元 (相當於 [del] 按鍵), X 為向前刪除一個字元(相當於 [backspace] 亦即是退格鍵) (常用) |
nx | n 為數字,連續向後刪除 n 個字元。舉例來說,我要連續刪除 10 個字元, 『10x』。 |
dd | 刪除遊標所在的那一整行(常用) |
ndd | n 為數字。刪除游標所在的向下 n 行,例如 20dd 則是刪除 20 行 (常用) |
d1G | 刪除游標所在到第一行的所有資料 |
dG | 刪除游標所在到最後一行的所有資料 |
d$ | 刪除遊標所在處,到該行的最後一個字元 |
d0 | 那個是數字的 0 ,刪除遊標所在處,到該行的最前面一個字元 |
yy | 複製遊標所在的那一行(常用) |
nyy | n 為數字。複製游標所在的向下 n 行,例如 20yy 則是複製 20 行(常用) |
y1G | 複製遊標所在行到第一行的所有資料 |
yG | 複製遊標所在行到最後一行的所有資料 |
y0 | 複製游標所在的那個字元到該行行首的所有資料 |
y$ | 複製游標所在的那個字元到該行行尾的所有資料 |
p, P | p 為將已複製的資料在游標下一行貼上,P 則為貼在遊標上一行!舉例來說,我目前游標在第 20 行,且已經複製了 10 行資料。則按下 p 後, 那 10 行資料會貼在原本的 20 行之後,亦即由 21 行開始貼。但如果是按下 P 呢?那麼原本的第 20 行會被推到變成 30 行。(常用) |
J | 將游標所在行與下一行的資料結合成同一行 |
c | 重複刪除多個數據,例如向下刪除 10 行,[ 10cj ] |
u | 復原前一個動作。(常用) |
[Ctrl]+r | 重做上一個動作。(常用) |
第二部分:一般模式切換到編輯模式的可用的按鈕說明
進入輸入或取代的編輯模式 | |
---|---|
i, I | 進入輸入模式(Insert mode):i 為『從目前游標所在處輸入』, I 為『在目前所在行的第一個非空格符處開始輸入』。(常用) |
a, A | 進入輸入模式(Insert mode):a 為『從目前游標所在的下一個字元處開始輸入』, A 為『從游標所在行的最後一個字元處開始輸入』。(常用) |
o, O | 進入輸入模式(Insert mode):這是英文字母 o 的大小寫。o 為『在目前游標所在的下一行處輸入新的一行』;O 為在目前游標所在處的上一行輸入新的一行!(常用) |
r, R | 進入取代模式(Replace mode):r 只會取代游標所在的那一個字元一次;R會一直取代游標所在的文字,直到按下 ESC 為止;(常用) |
[Esc] | 退出編輯模式,回到一般模式中(常用) |
第三部分:一般模式切換到指令行模式的可用的按鈕說明
指令行的儲存、離開等指令 | |
---|---|
:w | 將編輯的資料寫入硬碟檔案中(常用) |
:w! | 若檔案屬性為『只讀』時,強制寫入該檔案。不過,到底能不能寫入, 還是跟你對該檔案的檔案許可權有關啊! |
:q | 離開 vi (常用) |
:q! | 若曾修改過檔案,又不想儲存,使用 ! 為強制離開不儲存檔案。注意一下啊,那個驚歎號 (!) 在 vi 當中,常常具有『強制』的意思~ |
:wq | 儲存後離開,若為 :wq! 則為強制儲存後離開 (常用) |
ZZ | 這是大寫的 Z 喔!若檔案沒有更動,則不儲存離開,若檔案已經被更動過,則儲存後離開! |
:w [filename] | 將編輯的資料儲存成另一個檔案(類似另存新檔) |
:r [filename] | 在編輯的資料中,讀入另一個檔案的資料。亦即將 『filename』 這個檔案內容加到遊標所在行後面 |
:n1,n2 w [filename] | 將 n1 到 n2 的內容儲存成 filename 這個檔案。 |
:! command | 暫時離開 vi 到指令行模式下執行 command 的顯示結果!例如 『:! ls /home』即可在 vi 當中看 /home 底下以 ls 輸出的檔案資訊! |
:set nu | 顯示行號,設定之後,會在每一行的字首顯示該行的行號 |
:set nonu | 與 set nu 相反,為取消行號! |
以上標記的需要掌握熟練即可!
六、賬號管理
1.簡介
Linux系統是一個多使用者多工的分時作業系統,任何一個要使用系統資源的使用者,都必須首先向系統管理員申請一個賬號,然後以這個賬號的身份進入系統。
使用者的賬號一方面可以幫助系統管理員對使用系統的使用者進行跟蹤,並控制他們對系統資源的訪問;另一方面也可以幫助使用者組織檔案,併為使用者提供安全性保護。
每個使用者賬號都擁有一個唯一的使用者名稱和各自的口令。
使用者在登入時鍵入正確的使用者名稱和口令後,就能夠進入系統和自己的主目錄。
實現使用者賬號的管理,要完成的工作主要有如下幾個方面:
- 使用者賬號的新增、刪除與修改。
- 使用者口令的管理。
- 使用者組的管理。
2.使用者賬號的管理
使用者賬號的管理工作主要涉及到使用者賬號的新增、修改和刪除。
新增使用者賬號就是在系統中建立一個新賬號,然後為新賬號分配使用者號、使用者組、主目錄和登入Shell等資源。
2.1新增賬號 useradd
語法 : useradd -命令 新增使用者
引數說明:
-c comment 指定一段註釋性描述。
-d 目錄 指定使用者主目錄,如果此目錄不存在,則同時使用-m選項,可以建立主目錄。
-g 使用者組 指定使用者所屬的使用者組。
-G 使用者組,使用者組 指定使用者所屬的附加組。
-m 使用者目錄如不存在則自動建立。
-s Shell檔案 指定使用者的登入Shell。
-u 使用者號 指定使用者的使用者號,如果同時有-o選項,則可以重複使用其他使用者的標識號。
[root@localhost home]# useradd -m jihu1 #建立一個使用者
[root@localhost home]# ls
f2 f3 jihu jihu1 jihu.txt lost+found test2 test4
2.2刪除使用者 userdel
userdel -r 使用者名稱 刪除使用者的時候將他的目錄頁一併刪掉!
[root@localhost home]# userdel -r jihu1
[root@localhost home]# ls
f2 f3 jihu jihu.txt lost+found test2 test4
2.3修改使用者 usermod
修改使用者usermod 對應修改的內容 修改那個使用者
[root@localhost home]# usermod -d /home/233 jihu1
修改完畢之後檢視配置檔案即可!
檢視命令: cat /etc/passwd
2.4切換使用者 su
語法 : su username [username是你的使用者名稱]
root使用者
1.切換使用者的命令為: su username [username是你的使用者名稱]
2.從普通使用者切換到root使用者,還可以使用: sudo su
3.在終端輸入exit或logout或使用快捷方式ctrl+d,可以退回到原來使用者,其實ctrl+d也是執行的exit命令
4.在切換使用者時,如果想在切換使用者之後使用新使用者的工作環境,可以在su和username之間加-,例如:【su - root】
5.$表示普通使用者,#表示超級使用者,也就是root使用者
修改主機名稱:
[root@jihu ~]# hostname #檢視主機名
jihu
[root@jihu ~]# hostname jihu #修改主機名,修改完畢後重新連線即可
3.使用者的密碼設定
我們一般通過root建立使用者的時候! 要配置密碼!
Linux上輸入密碼是不會顯示的,正常輸入就可以了。
如果是超級使用者的話:
passwd username:
new password:
re password:
如果是普通使用者:
passwd
(current) UNIX password:
new password: #密碼不能太過於簡單!
re password:
鎖定賬號!
root,比如張三辭職了! 凍結這個賬號,一旦凍結,這個人就登入不上系統了。
passwd -l jihu #鎖定之後這個使用者就不能登入了!
passwd -d jihu #沒有密碼也不能登入!
4.使用者組管理
屬主 、 屬組
每個使用者都有一個使用者組,系統可以對一個使用者組中的所有使用者進行集中管理。不同Linux 系統對使用者組的規定有所不同,如Linux下的使用者屬於與它同名的使用者組,這個使用者組在建立使用者時同時建立。
使用者組的管理涉及使用者組的新增、刪除和修改。組的增加、刪除和修改實際上就是對/etc/group檔案的更新。
4.1 建立一個使用者組 groupadd
[root@jihu home]# groupadd jihu1
[root@jihu home]# cat /etc/group
tcpdump:x:72:
jihu:x:1000:jihu
jihu2:x:1001:
jihu1:x:1002:
建立完使用者組後可以得到一個組的id,這個id是key指定的! '-g 520',如果不指定就是自增1
groupadd -g 520
4.2 刪除使用者組 groupdel
groupdel jihu1
cat /etc/group
4.3 修改使用者組的許可權資訊和名字 groupmod -g -n
groupmod -g 666 -n newjihu1 jihu1
使用者如果要切換使用者組怎麼辦?
#登入當前使用者 jihu
$ newgrp root
5.拓展:檔案的檢視(瞭解)
5.1 /etc/passwd
使用者名稱:口令(密碼,不可見所以為X):使用者標識號:組標識號:註釋性描述:主目錄:登入Shell
5.2 /etc/shadow
/etc/shadow中的記錄行與/etc/passwd中的一一對應,它由pwconv命令根據/etc/passwd中的資料自動產生
它的檔案格式與/etc/passwd類似,由若干個欄位組成,欄位之間用":"隔開。這些欄位是:
登入名:加密口令:最後一次修改時間:最小時間間隔:最大時間間隔:警告時間:不活動時間:失效時間:標誌
5.3 /etc/group
-
使用者組的所有資訊都存放在/etc/group檔案中。
-
將使用者分組是Linux 系統中對使用者進行管理及控制訪問許可權的一種手段。
-
每個使用者都屬於某個使用者組;一個組中可以有多個使用者,一個使用者也可以屬於不同的組。
-
當一個使用者同時是多個組中的成員時,在/etc/passwd檔案中記錄的是使用者所屬的主組,也就是登入時所屬的預設組,而其他組稱為附加組。
-
使用者要訪問屬於附加組的檔案時,必須首先使用newgrp命令使自己成為所要訪問的組中的成員。
-
使用者組的所有資訊都存放在/etc/group檔案中。此檔案的格式也類似於/etc/passwd檔案,由冒號(:)隔開若干個欄位,這些欄位有:
組名:口令:組標識號:組內使用者列表
- 組名:是使用者組的名稱,由字母或數字構成。與/etc/passwd中的登入名一樣,組名不應重複。
- 口令:欄位存放的是使用者組加密後的口令字。一般Linux 系統的使用者組都沒有口令,即這個欄位一般為空,或者是*。
- 組標識號:與使用者標識號類似,也是一個整數,被系統內部用來標識組。
- 組內使用者列表:是屬於這個組的所有使用者的列表/b],不同使用者之間用逗號(,)分隔。這個使用者組可能是使用者的主組,也可能是附加組。
七、磁碟管理
1.概述
-
Linux磁碟管理好壞直接關係到整個系統的效能問題。
-
Linux磁碟管理常用命令為 df、du。
-
df :列出檔案系統的整體磁碟使用量
-
du:檢查磁碟空間使用量
-
df 命令
du 命令
掛載 : mount
解除安裝 : umount -f [掛載位置] 強制解除安裝
八、程序管理
Linux中一切皆檔案
(檔案:讀寫執行(檢視,建立,刪除,移動,複製,編輯),許可權:(使用者,使用者組),系統:(磁碟,程序))
基本概念
- 在Linux中,每一個程式都是有自己的一個程序,每一個程序都有一個id號!
- 每一個程序呢,都會有一個父程序!
- 程序可以有兩種存在方式:前臺!後臺執行!
- 一般的話服務都是後臺執行的,基本的程式都是前臺執行的!
命令
ps 檢視當前系統中正在執行的各種程序的資訊!
ps -xx:
- -a,顯示當前終端執行的所有的程序資訊(當前的程序)
- -u,以使用者的資訊顯示程序
- -x,顯示後臺執行程序的引數
# ps -aux 檢視所有的程序
ps -aux | grep mysql
ps -aux | grep redis
# | 在Linux這個叫做管道符 A|B
# grep 查詢檔案中符合條件的字串!
ps -ef:可以檢視到父程序的資訊
ps -ef | grep mysql #看父程序我們一般可以通過目錄樹結構來檢視!
#程序樹
pstree -pu
-p 顯示父id
-u 顯示使用者組
結束程序:kill 殺掉程序
#語法:
kill -9 程序的id