Vim 介紹
Vim 是全螢屏純文本編輯器,是vi編輯器的升級版,
vim 不僅僅兼容vi所有的命令,而且高亮顯示,vi只能運行在 UNIX 和 Linux 中,而 vim 可以跨平臺運行在Windows,MAC OS 中,
vim 號稱 “編輯器之神”,具有無可匹敵的可擴展性,
大部分 Linux 系統中,默認都會安裝 vim,在 Linux 中使用 vim 比較簡單,直接使用 vim ,命令即可:
[user@ubnutu ~]$ vim a.txt
在命令模式下,使用 :wq 可以保存退出
三種模式
vim 共分為三種模式,分別是命令模式 (Command mode),輸入模式 (Insert mode) 和底線命令模式 (Last line mode) :

三種模式的切換
一開始進入vim的時候,就是命令模式,在命令模式下,使用一些插入按鍵,就會進入輸入模式,比如 i 鍵,
在輸入模式下,按 ESC 鍵退出輸入模式
在命令模式下,輸入: 進入底線命令模式
命令模式下,輸入 :wq保存并退出編輯,也可以輸入 ZZ (shift + zz) 保存退出
命令模式
一開始進入 vim 的時候,就是命令模式,在命令模式下,敲擊鍵盤動作會被識別為命令,而非輸入字符,
命令模式下常用的一些命令:
| 命令 | 說明 |
|---|---|
| : | 進入底線命令模式 |
| i | 前插入模式,從選擇字的前面開始插入 |
| I | 在本行行首進行插入 |
| a | 后插入模式,從選擇字的后面開始插入 |
| A | 在本行行尾進行插入 |
| o | 下插入模式,從下一行開始插入 |
| O | 上插入模式,在此行的上面一行重新另外起一行新的空白插入 |
| r | 替換當前游標所在的字符 |
| R | 從游標所在字符字符開始替換, 直到按 ESC 退出 |
| h或左箭頭鍵(←) | 游標向左移動一個字符 |
| j或下箭頭鍵(↓) | 游標向下移動一個字符 |
| k或上箭頭鍵(↑) | 游標向上移動一個字符 |
| l或右箭頭鍵(→) | 游標向右移動一個字符 |
| G | 移動到最后一行 |
| nG | 移動的到指定的行, n為行數, 可以配合 :set nu 使用, 和 :n 作用一樣 |
| gg | 移動到第一行 |
| /str | 向游標之下搜索 str, 此模式下, 按 n 繼續向下搜索, 按 N 向上搜索 |
| ?str | 向游標之上搜索 str, 此模式下, 按 n 繼續向下搜索, 按 N 向上搜索 |
| x | 洗掉游標所在字符, 即向后洗掉一個字符 |
| X | 向前洗掉一個字符 |
| nx | n為數字, 向后洗掉指定數量的字符, 如 5n 向后洗掉5個字符 |
| dd | 洗掉當前游標所在的這一行 |
| ndd | 從游標所在行開始數, 向下洗掉 n 行, 如 10dd, 向下洗掉10行(包含游標所在行) |
| yy | 復制游標所在的那一行 |
| nyy | 從游標所在行開始數, 向下復制 n 行, 如 10yy, 向下復制10行(包含游標所在行) |
| p | 將已復制的內容粘貼到游標所在的下一行 |
| P | 將已復制的內容粘貼到游標所在的上一行 |
| u | 撤銷 |
| Ctrl + r | 反撤銷 |
| . | 重復前一個動作 |
| ZZ | 保存退出, 相當于 :wq |
| ZQ | 不保存強制退出, 相當于 :q! |
輸入模式
在命令模式下,只要按下i,o,a等字符就可以了進入輸入模式了,終端左下角顯示為 –INSERT-
再輸入模式中,任意按鍵都被當做字串進行輸入
按 ESC 鍵可以退出輸入模式,回到命令模式
底部命令模式
在命令模式下,按冒號鍵 : (英文冒號) 就進入了底線命令模式,
底線命令模式可以輸入一個或者多個字符的命令
ESC 可以退出底線命令模式,回到命令模式
底線命令模式常用命令:
| 命令 | 說明 |
|---|---|
| :n1,n2s/word1/word2/g | n1 n2是行號, 把 n1行到 n2 行之間的word1替換為word2 |
:1,$s/word1/word2/g 或 :%s/word1/word2/g | 從第一行到最后一行, 將word1替換為word2 |
:1,$s/word1/word2/gc 或 :%s/word1/word2/gc | 從第一行到最后一行, 將word1替換為word2, 每次替換都會進行確認, y 確認替換, n 跳過替換 |
| :n | 游標移動到第幾行 |
| :set nu | 顯示行號 |
| :set nonu | 不顯示行號 |
| :w | 保存 |
| :q | 退出vim |
| :wq | 保存并退出 |
| :q! | 放棄未保存的編輯, 強制退出 |
| :! command | 暫時離開vim 查看命令的執行結果 |
關機和重啟
關機命令:
[user@ubuntu ~]$ shutdown -h now
重啟命令:
[user@ubuntu ~]$ sudo shutdown -r now
[user@ubuntu ~]$ sudo reboot
該命令需要管理員權限,所以加上
sudo
時間和日期
顯示當前時間:
[user@ubuntu ~]$ date
格式化當前時間:
[user@ubuntu ~]$ date "+%Y-%m-%d %H:%M:%S"
%Y年份(以四位數來表示)%m月份(以01-12來表示)%d日期(以01-31來表示)%H小時(以00-23來表示%M分鐘(以00-59來表示)%S秒(以本地的慣用法來表示)
設定當前日期和時間
[user@ubuntu ~]$sudo -s "20201112 13:40"
注意:只有管理員才能修改時間
當修改完時間,再次使用 date 查看時間,可以看到時間并沒有改變,這是因為 Ubuntu 20.04 開啟了 NTP 自動更新:
[user@ubuntu ~]$ timedatectl show

關閉 NTP 自動更新:
[user@ubuntu ~]$ sudo timedatectl set-ntp no
關閉 NTP 自動更新后,再次設定時間就會生效
除非你有特殊的需要,否則不建議關閉
NTP自動更新
開啟 NTP 自動更新:
[user@ubuntu ~]$ sudo timedatectl set-ntp yes
Linux 系統模式使用的格林威治時間,也就是中央時區,北京位于東八區,也就是北京的地方時比中央時區的地方時早8小, 所以要設定一下時區, 以符合我們的使用
設定東八區時區:
[user@ubuntu ~]$ sudo timedatectl set-timezone Asia/Shanghai
timedatectl list-timezones命令可以顯示所有的時區串列, 空格往下翻頁,q退出 .

輸出重定向
一些命令的輸出,可以通過 > 或者 >> 重定向到一個檔案中,
重定向,就是原本命令執行的結果是輸出到終端的,通過
>或者>>輸出到某個檔案里面了
格式是:
[user@ubuntu ~]$ command >> file.log
如果沒有這個檔案,會自動創建一個檔案
> 會覆寫檔案中的所有內容(相當于重新生成了一個檔案)
>> 不會覆寫,會在檔案的最后一行新增一行,同時統計的修改時間發生改變
將 ll 顯示的檔案串列輸出到日志檔案:
[user@ubuntu ~]$ ll > file.log
查找內容
grep 命令可以在指定檔案中查找指定的內容
格式如下:
[user@ubuntu ~]$ grep 'str' file
比如,在 file.log 中,查詢包含 vim 的內容:
[user@ubuntu ~]$ grep 'vim' file.log
常用的引數有:
-i忽略大小寫grep -i str file-v反向查找(不包含)grep -v str file
管道符
管道符的主要作用就是把 命令A 的輸出結果,交給 命令B 來處理,也就是 命令A 的執行結果,作為 命令B 的操作物件
格式:
命令A | 命令B
ll 的結果由 more 來處理:
[user@ubuntu ~]$ || /etc/ | more
ll 的結果由 grep 來搜索
[user@ubuntu ~]$ || /etc/ |grep ssh
統計命令
wc 命令可以統計衣蛾問價有多少行,多少個單詞,多少個字符:
[user@ubuntu ~]$ wc /etc/ssh/sshd_config
wc-l 只顯示行數
下載工具
wget 工具可以通過下載地址,將網路資源下載本機:
[user@ubuntu ~]$ wget http://www.baidu.com
下載并重令名:
[user@ubuntu ~]$ wget -O a.html http://www.baidu.com
下載到指定目錄:
[user@ubuntu ~]$ wget -P download http://www.baidu.com
斷點續傳:
[user@ubuntu ~]$ wget -c http://www.baidu.com
在后臺下載:
[user@ubuntu ~]$ wget -b http://www.baidu.com
curl 請求工具
curl 可以發起一個請求,將請求到的內容輸出到終端:
[user@ubuntu ~]$ curl http://www.baidu.com
可以利用輸出重定向,將本來輸出到終端的內容,重定向一個檔案中:
[user#ubuntu ~]$ curl http://www.baidu.com > c.html
查找檔案或目錄
find 搜索命令
在系統中,搜索符合條件的檔案名
**按照檔案名查找 -name **
命令格式:
find 查找位置 -name 檔案名
從 / 目錄開始查找檔案名為 file.log 的檔案:
[user@ubuntu ~]$ sudo find / -name file.log
從
/開始查找的話,有的目錄需要管理員權限,所以加上sudo
按照檔案名查找,不區分大小寫:
[user@ubuntu ~]$ find /home/ -iname file.log
**按照檔案大小查找 -size **
按照檔案大小查找:
[user@ubuntu ~]$ find /home/ -size 1k
說明:
- 按照大小查找支持的單位有:b,c,w,k,M,G (注意大小寫)
1k檔案大小等于1k的+1k檔案大小大于1k的-1k檔案大小小于1k的
按照型別查找 -type
說明:
-
d目錄 -
f普通檔案 -
l鏈接
按照檔案型別查找:
[user@ubuntu ~]$ find . -type d
搜索當前目錄下所有的普通檔案:
[user@ubuntu ~]$ find . -type f
whereis 搜索命令
whereis 可以查找指定命令的二進制檔案、源檔案和幫助檔案, 比如查看 find 命令:
[user@ubuntu ~]$ whereis find
如果真想查看二進制檔案,可以加上 -b 引數:
[user@ubuntu ~]$ whereis -b find
這個命令不是不是特別常用, 但在有些情況下非常有用, 比如配置計劃任務,需要用到命令的絕對路徑的時候
which 查看命令位置
which 查看命令所在位置:
[user@ubuntu ~]$ which ls
掛載
概念:Linux 所有的存盤設備都必須掛載使用(Linux 中的掛載點,完全可以當做 Windows 中的盤符),區別是,Windows 的盤符是 ABCD,Linux 中的掛載點是目錄
Windows 的外置存盤設備比較智能,插上 U 盤,自動分配盤符,雙擊就能使用了,Linux 中必須手動分配盤符,也就是目錄,掛載到某某目錄下,才能使用,
什么叫掛載?就是把硬體設備和空目錄連接起來,就叫掛載,
df 命令可以查看已經股災的掛載點以及空間使用情況:
[user@ubuntu ~]$ df -h
-h磁盤大小顯示為M,G等
U盤掛載
1.插入U盤
首先將U盤插入電腦, 之后讓虛擬機使用這個U盤:
2.掛載U盤
使用 fdisk -l 命令查看磁盤串列, 一般新添加的會出現在最后面, 比如新插入的U盤:
[user@ubuntu ~]$ sudo fdisk -l
掛載需要管理員權限
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-1QF81IrG-1605168769730)(https://s3.ax1x.com/2020/11/12/BxLDRf.png)]
插入的U盤的設備名字, 每個人的可能不一樣
使用命令掛載U盤:
[user@ubuntu ~]$ sudo mount /dev/sdb1 /mnt
去 /mnt 目錄檢查一下, 發現里面已經有U盤的檔案的
3.卸載U盤
當不再需要U盤的時候, 可以執行卸載命令:
[user@ubuntu ~]$ sudo umount /mnt
最后彈出U盤即可:
[user@ubuntu ~]$ sudo eject /dev/sdb1
如何檢查是否掛載成功?
方式一: 執行 df 看一下掛載串列是否多了一個 cdrom
方式二: 去掛載目錄, 比如本例中的 /cdrom 看一下, 是否有檔案
用戶
在 Linux 系統中, 用戶是很重要的一環,用戶管理包括用戶與組賬號的管理,不同的用戶對不同的系統資源擁有不同的使用權限,
Linux 系統中的 root 賬號通常用于系統的維護和管理, 擁有對作業系統的所有權限,
Linux 安裝的程序中,系統會自動創建許多用戶賬號,而這些默認的用戶就稱為 “標準用戶”,
不推薦直接使用 root 賬號登錄系統,
/etc/passwd 檔案存盤了用戶的資訊, 可以通過這個檔案查看用戶資訊:
[user@ubuntu ~]$ cat /etc/passwd
/etc/shadow 影子檔案儲存了用戶的密碼,可以通過這個檔案查看用戶密碼,密碼是加密的,需要管理員權限:
[user@ubuntu ~]$ cat /etc/shadow
/etc/group 檔案存盤了用戶組的資訊, 可以通過這個檔案查看用戶組資訊:
[user@ubuntu: ~]$ cat /etc/group
用戶管理
添加用戶
[user@ubuntu ~]$ useradd (用戶名)
- 該命令需要管理員權限
- 不能添加已存在的用戶
-m引數在添加用戶的時候, 同時在/home下創建用戶家目錄- 在添加用戶的時候,會自動添加一個同名的用戶組
[user@ubuntu ~]$ sudo useradd -m tom
設定密碼
passwd 命令可以給用戶設定或者修改密碼,如果要修改當前登錄用的密碼,直接使用這個命令即可:
[user@ubuntu ~]$ passwd
如果要給別的用戶設定或者修改密碼 ,需要管理員權限:
[user@ubuntu ~]$sudo passwd tom
切換用戶
su 命令可以切換用戶:
[user@ubuntu ~]$ su 要切換的用戶名
切換到管理員用戶需要權限,所以加上sudo :
[user@ubuntu ~]$ sudo su root
切換到管理員,可以省略 root;
[user@ubuntu ~]$ sudo su
注意: 只有具有 sudo 命令權限的用戶, 才能使用 sudo 命令, 所以只有具有 sudo
test 用戶是是我們安裝作業系統時創建的用戶, 所以 test 用戶具有 sudo 命令權限, 所以可以輕易的使用 sudo 命令, 甚至可以通過 sudo su 切換到超級用戶 root
而我們新添加的用戶 tom 并不具備 sudo 命令權限, 所以不能使用 sudo 命令
sudo 權限的組態檔在 /etc/sudoers, 可以通過編輯這個這個檔案為其他用戶增加 sudo 權限:
[user@ubuntu ~]$ sudo visudo
直接使用
sudo vim /etc/sudoers的話不行,這個檔案是只讀檔案,所以通過visudo命令來修改
或者將用戶加入到 sudo 這個組 (下面有方法)
洗掉用戶
userdel 命令可以洗掉用戶, -r 引數可以在洗掉用戶的時候, 連同 /home 下的用戶對應的家目錄一塊洗掉, 需要管理員權限:
[user@ubuntu: ~]$ sudo userdel -r tom
組管理
查看用戶所屬組
groups 命令可以查看用戶所屬組:
[user@ubuntu ~]$ groups
默認查看當前登錄用戶的, 如果要查看其它用戶的, 后面加上用戶名就行:
[test@ubuntu: ~]$ groups test
可以看到 test 用戶在 sudo 用戶組里面, 這也是為什么 test 用戶可以使用 sudo 命令
添加組
groupadd 命令可以添加組,不能添加已存在的組,需要管理員權限:
[user@ubuntu: ~]$ sudo groupadd g
洗掉組
groupdel 命令可以洗掉組
[user@ubuntu: ~]$ sudo groupdel g
為用戶分配組
gpasswd 命令可以給用戶分配朱,格式如下:
gpasswd -a 用戶名 組名
把 user用戶加入到 g 組中:
[user@ubuntu: ~]$ sudo gpasswd -a tom g
將用戶從組中移除
gpasswd 命令可以把用戶移出分組,格式如下:
gpasswd -d 用戶名 組名
把 user 用戶從 g 組中移除:
[user@ubuntu: ~]$ sudo gpasswd -d tom g
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/214144.html
標籤:其他
