Linux基礎入門:從零開始掌握Linux命令行操作

🙋大家好!我是毛毛張!
🌈個人首頁: 神馬都會億點點的毛毛張

🎈有沒有覺得電影里的黑客🐒酷斃了?他們只用鍵盤?就能搞定一切。今天,毛毛張要帶你們體驗這種快感😀!學會Linux命令行💻操作,你也能像他們一樣高效、強大。不用鼠標🖱,只用命令,你準備好了嗎?🚀
🎈由于文章內容比較長,毛毛張將分兩個章節進行介紹
🎈本篇是第一章:《Linux基礎入門:從零開始掌握Linux命令行操作》
🎈第二章:Linux基礎進階:從文件管理到網絡監控,解鎖Linux系統管理的核心技能
🎈完整版可參見毛毛張的Github倉庫:Linux命令詳解

文章目錄

  • 1.前言
  • 2.幫助指令
    • 2.1 man命令
    • 2.2 help命令
    • 2.3 `--help`選項
    • 2.4 總結
  • 3.文件目錄管理命令
    • 3.1 Linux的目錄結構
      • 3.1.1 HOME目錄
      • 3.1.2 相對路徑與絕對路徑
      • 3.1.3 特殊路徑符
    • 3.2 pwd命令
    • 3.3 ls命令
      • 3.3.1 適用于全文的說明
      • 3.3.2 ll命令
    • 3.4 cd命令
    • 3.5 mkdir命令
    • 3.6 touch命令
    • 3.7 查看文件命令
      • 3.7.1 cat命令
      • 3.7.2 more命令
      • 3.7.3 對比
    • 3.8 cp命令
    • 3.9 mv命令
    • 3.10 rm命令
    • 3.11 which命令
    • 3.12 find命令
    • 3.13 grep命令
    • 3.14 wc命令
    • 3.15 管道符|
    • 3.16 echo命令
    • 3.17 `反引號
    • 3.18 重定向符
    • 3.19 tail命令
    • 3.20 head命令
    • 3.21 history命令
    • 3.22 vi/vim編輯器
      • 3.22.1 簡介
      • 3.22.2 使用

1.前言

本文將詳細介紹Linux命令,每個Linux命令它們所擁有的選項都是非常多的。

比如,簡單的ls命令就有:-a -A -b -c -C -d -D -f -F -g -G -h -H -i -I -k -l -L -m -n -N -o -p -q -Q -r-R -s -S -t -T -u -U -v -w -x -X -1等選項,可以發現選項是極其多的;但是毛毛張并不會將全部的選項都進行介紹,會對常見的選項進行介紹, 足夠滿足絕大多數的學習、工作場景。

同時對于沒有介紹的選項,毛毛張也介紹了幫助指令,當不記得或者不知道指令的用法的時候可以通過幫助指令來查看選項的意思

Linux中的命令是區分大小寫的,無論是什么命令,用于什么用途,在Linux中,命令有其通用的格式:
image-20240529160819479

  • 解釋:
    • command: 命令本身
    • -options:[可選,非必填]命令的一些選項,可以通過選項控制命令的行為細節
    • parameter:[可選,非必填]命令的參數,多數用于命令的指向目標等
    • 語法中的[],表示可選的意思
  • 同時毛毛張在這幾先推薦幾個學習Linux命令的網站:
    • 菜鳥教程:https://www.cainiaoplus.com/linux/linux-command-manual.html
    • https://man.niaoge.com/mv
    • https://www.linuxcool.com/?s=%E8%AF%B7%E8%BE%93%E5%85%A5%E4%B8%80%E4%B8%AA%E5%91%BD%E4%BB%A4%E6%88%96%E7%9B%B8%E5%85%B3%E5%8A%9F%E8%83%BD

下面毛毛張將分門別類的進行介紹

2.幫助指令

  • 正如前言所說,Linux的命令很多,參數很多,所以毛毛張想首先介紹幫助類指令,該類指令可以幫助大家查看指令的可選參數以及參數的意義,達到授人以魚不如授人以漁的目的

2.1 man命令

  • 作用:查看命令的詳細使用手冊
  • 語法:
    man 命令名稱
    
  • 實例1:查看列出當前文件目錄命令ls的詳細使用參數
    man ls
    
    • 圖例1:輸入該命令并回車之后會進入命令手冊界面,鍵盤輸入q返回命令行界面
      image-20240529150824733

2.2 help命令

  • 作用:查看shell內建命令的簡要幫助信息,例如:cdechopwd等,但它并不是用于查看所有命令的手冊

  • 語法:

    help [parameter:命令名稱]  # 如果不指定參數,就是查看bash的所有內建命令
    
  • 實例1:查看切換目錄命令cd的簡要幫助信息

    help cd
    
image-20240529152330574
  • 實例2:查看bash的所有內建命令
    help
    
  • 圖例2:只有下圖中的命令才可是使用help命令來查看簡要幫助信息
    image-20240529151718583

2.3 --help選項

  • 作用:大多數命令行工具提供 --help 選項,用于在命令行中顯示命令的簡要幫助信息

  • 語法:

    命令 --help
    
  • 實例1:查看列出當前文件目錄命令ls的詳細使用參數

    ls --help
    
image-20240529152817449

2.4 總結

  • 授人以魚不如授人以漁,毛毛張在上面介紹了三個命令,毛毛張推薦大家記住man命令和--help選項,這兩種方式來查看命令的幫助信息

3.文件目錄管理命令

3.1 Linux的目錄結構

  • 在介紹和文件相關的命令之前,毛毛張在這里先介紹Linux的文件目錄結構,如下圖所示:
    image-20240417210006970

  • Linux目錄結構:

    • /:代表根目錄,根目錄是最頂級的目錄,Linux只有這一個頂級目錄,不同于Windows有C盤、D盤、E盤等
    • 路徑描述的層次關系同樣適用/來表示
    • /home/itheima/a.txt:表示根目錄下的home文件夾內有一個itheima文件夾,itheima文件夾內有一個a.txt文件
  • Linux的文件夾含義:

    Linux含義windows
    /bin所有用戶可用的基本命令存放的位置windows沒有固定的命令存放目錄
    /sbin需要管理員權限才能使用的命令
    /bootLinux系統啟動的時候需要加載和使用的文件
    /dev外設連接Linux后,對應的文件存放的位置類似Windows中的U盤,光盤的符號文件。
    /etc存放系統或者安裝的程序的配置文件,注冊服務等類似Windows中的注冊表,
    /home家目錄,Linux中每新建一個用戶,會自動在home中為該用戶分配一個文件夾類似Windows中的"我的文檔",每個用戶有自己的目錄。
    /rootroot賬戶的家目錄,僅供root賬戶使用類似Windows中的Administrator賬戶的"我的文檔"
    /libLinux的命令和系統啟動,需要使用一些公共的依賴,放在lib中,類似我們開發的代碼執行需要引入的jdk的jar
    /usr很多系統軟件的默認安裝路徑類似Windows中的C盤下的Program Files目錄。
    /var系統和程序運行產生的日志文件和緩存文件放在這里

3.1.1 HOME目錄

  • 每一個用戶在登陸Linux系統時都有自己的專屬工作目錄,稱之為HOME目錄
  • 普通用戶的HOME目錄,默認在:/home/用戶名
  • root用戶的HOME目錄,在:/root
  • Windows系統和Linux系統,均設有用戶的HOME目錄,如圖:
    image-20231207170352353

image-20231207170419544

3.1.2 相對路徑與絕對路徑

  • 在Linux中,路徑用于指定文件或目錄的位置,路徑可以分為絕對路徑和相對路徑。
  • 絕對路徑 :是從文件系統的根目錄(/)開始的完整路徑。它始終以 / 開頭,并提供文件或目錄的確切位置。無論當前工作目錄是什么,絕對路徑都唯一標識一個文件或目錄。
    • 示例:
      • /home/user/document.txt:從根目錄開始,依次進入 home 目錄、user 目錄,最后到達 document.txt 文件。
      • /var/log/syslog:從根目錄開始,依次進入 var 目錄、log 目錄,最后到達 syslog 文件。
  • 相對路徑: 是相對于當前工作目錄的路徑。它不以 / 開頭,而是根據當前工作目錄提供文件或目錄的位置。相對路徑可以使用 .(表示當前目錄)和 ..(表示上一級目錄)來導航。
    • 示例: 假設當前工作目錄是 /home/user
      • document.txt:指的是 /home/user/document.txt
      • ../user2/document.txt:從當前目錄的上一級目錄開始(即 /home),進入 user2 目錄,最后到達 document.txt 文件。

3.1.3 特殊路徑符

  • .: 代表當前目錄
    • 比如:./a.txt,表示當前文件夾內的a.txt文件
  • ..:表示上一級目錄
    • 比如:假設當前工作目錄是 /home/itheima/mmz/test
      • ../表示上級目錄:/home/itheima/mmz
      • ../../表示上一級的上一級目錄:/home/itheima
  • ~:表示當前用戶的HOME目錄
    • 比如:cd ~,即可切回用戶HOME目錄

3.2 pwd命令

  • 功能: 以絕對路徑的方式顯示用戶當前工作目錄,第一個/表示根目錄,最后一個目錄是當前目錄。執行pwd命令可立刻得知您目前所在的工作目錄的絕對路徑名稱
  • 語法:
    pwd [ --help  --version ]
    
  • 選項: 這兩個參數一般不常用,一般就單純使用pwd命令
    • --help:顯示幫助信息
    • --version:顯示版本信息
  • 實例1:顯示當前工作目錄的絕對路徑
    pwd
    

image-20240529163636874

  • 說明: Linux系統的命令行終端,在啟動的時候,會默認加載的是當前登錄用戶的HOME目錄作為當前工作目錄,所以pwd命令列出的是當前用戶HOME目錄的絕對路徑

  • 每個用戶在登錄Linux的時候,都會在Linux系統下有一個個人賬戶目錄,路徑為:/home/用戶名,以毛毛演示的這臺Linux為例,用戶名是flyvideo,其HOME目錄為:/home/flyvideo

3.3 ls命令

  • 功能:列出目錄下的文件/文件夾信息,在Linux中是使用率較高的命令

  • 語法:

    ls [-a -l -h] [Linux路徑]
    
  • 選項:

    • -l:以列表(豎向排列)的形式展示內容,并展示更多信息,輸出的信息從左到右依次包括文件名,文件類型、權限模式、硬連接數、所有者、組、文件大小和文件的最后修改時間等
    • -h:以易于閱讀的形式列出文件大小,如K、M、G,必須要配合-l選項使用
    • -a:顯示所有文件及目錄,包括隱藏文件夾及目錄,Linux內將文件名或文件名以.開頭的視為隱藏文件或文件夾,默認不會列出,需要-a選項才可查看到
    • --help:顯示幫助信息
  • 參數:

    • Linux路徑:被查看的文件夾,如果不指定,表示查看當前工作目錄
  • 實例1:列出當前工作目錄下的文件和文件夾

    # 當不使用選項和參數,直接使用ls命令本體,表示:以平鋪形式,列出當前工作目錄下的內容,即HOME目錄
    (base) flyvideo@flyvideo:~$ ls
    anaconda3  Downloads                  Music                     Public                 sensors     Templates
    Desktop    frp_0.33.0_linux_amd64-cc  NVIDIA_CUDA-11.3_Samples  root@i-2.gpushare.com  snap        Videos
    Documents  home                       Pictures                  Sata                   spinningu
    
  • 實例2:以列表的形式顯示當前目錄下的所有文件和文件夾,包括隱藏的文件及文件夾

    # 以下三種方式是等價的
    ls -alh
    ls -a -l -h
    ls -lh -a
    
    image-20240529161407781

3.3.1 適用于全文的說明

  • 語法中的選項是可以組合使用的,比如學習的-a-l可以組合應用
  • 寫法:以下三種寫法都是一樣的,表示同時應用-a-l的功能
    • ls -l -a
    • ls -la
    • ls -al

3.3.2 ll命令

  • ll命令是該文件下的所有文件信息,包括隱藏的文件,還包括文件的可讀寫信息,等價于ll -alh

3.4 cd命令

  • 功能:切換工作目錄
  • 語法:cd [dirName]
    • dirName表示法可為絕對路徑或相對路徑
    • 若目錄名稱省略,則變換至使用者的home directory(也就是剛login時所在的目錄)。另外,~也表示為home directory的意思
    • .則是表示目前所在的目錄
    • ..則表示目前目錄位置的上一層目錄
  • 示例:
    cd    進入用戶主目錄;
    cd ~  進入用戶主目錄;
    cd -  返回進入此目錄之前所在的目錄;
    cd ..  返回上級目錄(若當前目錄為“/“,則執行完后還在“/";".."為上級目錄的意思);
    cd ../..  返回上兩級目錄;
    cd !$  把上個命令的參數作為cd參數使用
    cd /usr/local/   切換到local目錄
    

3.5 mkdir命令

  • 功能:通過mkdir命令可以創建新的目錄(文件夾)(Make Directory)
  • 語法:mkdir [-p] 參數
    • 參數:必填,表示Linux路徑,即要創建的文件夾的路徑,相對路徑或絕對路徑均可
    • 選項:-p,表示自動創建不存在的父目錄,適用于創建連續多層級的目錄
  • 案例:
    • 如果想要一次性創建多個層級的目錄(如下圖),會報錯,因為上級目錄itcast和good并不存在,所以無法創建666目錄,可以通過-p選項,將一整個鏈條都創建完成。
      image-20231207171106280
      image-20231207171113888

3.6 touch命令

  • 功能:創建文件
  • 語法:touch 參數
    • 說明:該命令無選項,參數必填,表示要創建的文件路徑,相對、絕對、特殊路徑符均可以使用
      image-20231207171500659

3.7 查看文件命令

3.7.1 cat命令

  • 功能:查看文件內容
  • 語法:cat 參數
    • 說明:該命令沒有選項,只有必填參數,參數表示被查看的文件路徑,相對、絕對、特殊路徑符都可以使用
      image-20231207171453536

3.7.2 more命令

  • 功能:查看文件,可以支持翻頁查看
  • 語法:more 參數
    • 參數:同樣沒有選項,只有必填參數,參數表示被查看的文件路徑,相對、絕對、特殊路徑符都可以使用
  • 使用技巧:如果查看的文件超過了一頁,按空格鍵翻頁;如果不想看了,按q退出查看

3.7.3 對比

  • cat是直接將內容全部顯示出來
  • more支持翻頁,如果文件內容過多,可以一頁頁的展示

3.8 cp命令

  • 功能:復制文件、文件夾

  • 語法:cp [-r] 參數1 參數2

    • 參數1:Linux路徑,表示被復制的文件或者文件夾
    • 參數2:Linux路徑,表示要復制去的地方
    • 選項:-r,可選,復制文件夾使用,表示遞歸
  • 示例:

    • cp a.txt b.txt,復制當前目錄下a.txt為b.txt
    • cp a.txt test/,復制當前目錄a.txt到test文件夾內
    • cp -r test test2,復制文件夾test到當前文件夾內為test2存在
  • 示例演示1:復制文件
    image-20231207172343583

示例演示2:復制文件夾:
image-20231207172404209

3.9 mv命令

  • 功能: 用于移動文件、文件夾,來自英文單詞:move
  • 語法:mv 參數1 參數2
    • 參數1,Linux路徑,表示被移動的文件或文件夾
    • 參數2,Linux路徑,表示要移動去的地方,如果目標不存在,該命令就是對文件進行改名
  • 示例演示:
    image-20241027202745870

3.10 rm命令

  • 功能:刪除文件、文件夾,來自英文單詞remove
  • 語法:rm [-r -f] 參數...參數
    • 參數:支持同時刪除一個活多個文件或文件夾,每一個表示被刪除的使用空格進行分隔
    • 選項:-r,同cp命令一樣,刪除文件夾使用
    • 選項:-f,表示force,強制刪除(不會給出確認提示),一般root用戶會用到
      • 普通用戶刪除內容不會彈出提示,只有root管理員用戶刪除內容會有提示
      • 所以一般普通用戶用不到-f選項
  • 注意事項:rm命令很危險,一定要注意,特別是切換到root用戶的時候
  • 示例演示1: 刪除文件
    image-20231207172530484
  • 示例演示2:刪除多個文件
    image-20231207172539483
  • 示例演示3:刪除文件夾,如下圖,必須使用-r選項才可以
    image-20231207172619243
  • 示例演示4:演示強制刪除,-f選項(可以通過 su - root,并輸入密碼123456(和普通用戶默認一樣)臨時切換到root用戶體驗)

image-20231207172634295image-20231207172639609

通過輸入exit命令,退回普通用戶。(臨時用root,用完記得退出,不要一直用,關于root我們后面會講解)

  • *rm命令支持通配符 ,用來做模糊匹配:
    • 符號* 表示通配符,即匹配任意內容(包含空),示例:
    • test*,表示匹配任何以test開頭的內容
    • *test,表示匹配任何以test結尾的內容
    • *test *,表示匹配任何包含test的內容
  • 示例演示5:刪除所有以test開頭的文件或文件夾
    image-20231207172124708

3.11 which命令

  • 功能:查看命令的程序本體文件路徑,即查看所使用的一系列命令的程序文件存放在哪里
  • 語法:which 要查找的命令
  • 示例:
    image-20241027203625259

3.12 find命令

  • 功能:按文件名查找文件,或者按文件大小查找文件夾
  • 語法:
    • 按文件名查找文件夾:find 路徑 -name 參數
      • 路徑:搜索的起始路徑
      • 參數:被查找的文件名
    • 按文件大小查找文件夾:find 起始路徑 -size +|-n[kMG]
      • +-表達大于和小于
      • n表示大小數字
      • kMG表示大小單位,k(小寫字母)表示kb,M表示MB,G表示GB
  • 示例演示1:從根目錄搜索文件名為test的文件
    image-20241027203857491
  • 示例演示2:
    查找小于10KB的文件: find / -size -10k
    查找大于100MB的文件:find / -size +100M
    查找大于1GB的文件:find / -size +1G
    
  • 進階語法:被查找的文件名支持使用通配符*來模糊查詢
    • 符號*表示通配符,即匹配任意內容(包含空)
    • test*:表示匹配任何以test開頭的內容
    • *test:表示匹配任何以test結尾的內容
    • *test*:表示匹配任何包含test的內容
  • 示例演示1:查找所有以test開頭的文件:find / -name “test*”
    image-20241027204237833
  • 查找所有以test結尾的文件:find / -name “*test”
    image-20241027204247687
  • 查找所有包含test的文件:find / -name “*test*”
    image-20241027204254973

3.13 grep命令

  • 功能:過濾關鍵字,例如從文件中通過關鍵字過濾文件行
  • 語法:grep [-n] 關鍵字 文件路徑
    • 選項-n,可選,表示在結果中顯示匹配的行的行號。
    • 關鍵字:必填,表示過濾的關鍵字,帶有空格或其它特殊符號,建議使用雙引號將關鍵字包圍起來
    • 文件路徑:必填,表示要過濾內容的文件路徑,可作為內容輸入端口
  • 示例演示1:過濾itheima關鍵字
    image-20241027205435410
  • 示例演示2:過濾itcast關鍵字
    image-20241027205504930
  • 示例演示3:過濾code關鍵字,并顯示行號
    image-20241027205511437

參數文件路徑,可以作為管道符的輸入

3.14 wc命令

  • 功能:統計文件的行數、單詞數量等
  • 語法:wc [-c -m -l -w] 文件路徑
    • 選項-c:統計bytes數量
    • 選項-m:統計字符數量
    • 選項-l:統計行數
    • 選項-w:統計單詞數量
    • 文件路徑:被統計的文件,可作為內容輸入端口
  • 示例演示:不帶選項,統計文件
    image-20241027205751262

參數文件路徑,可作為管道符的輸入

3.15 管道符|

  • 功能:將管道符左邊命令的結果,作為右邊命令的輸入
  • 寫法:|
  • 示例演示1:cat itheima.txt | grep itheima,將cat itheima.txt的結果,作為grep命令的輸入,用來過濾itheima關鍵字
    image-20241027205903008
  • 示例演示2:可以支持嵌套:cat itheima.txt | grep itheima | grep itcast
    image-20241027210125372
  • 示例演示3:ls | grep Desktop,過濾ls的結果
    image-20241027210023651
  • 示例演示4:find / -name “test” | grep “/usr/lib64”,過濾結果,只找路徑帶有/usr/lib64的結果
    image-20241027210053625

3.16 echo命令

  • 功能:在命令行內輸出指定內容

  • 語法:echo 輸出的內容

    • 無需選項,只有一個參數表示要輸出的內容,復雜內容可以用雙引號包圍
  • 示例演示1:在終端上顯示Hello Linux
    image-20241027210343610

3.17 `反引號

  • 功能:被兩個反引號包圍的內容,會作為命令執行
  • 示例: 通過echo命令輸出當前工作目錄
    image-20241027210638931
  • 說明:本意是想輸出當前的工作路徑,但是echo pwdpwd被作為普通字符輸出了,可以通過將命令用反引號(通常也稱之為飄號)`將其包圍,被`包圍的內容,會被作為命令執行,而非普通字符

3.18 重定向符

  • 功能:將符號左邊的結果,輸出到右邊指定的文件中去

  • 語法:

    • >:將左側命令的結果,覆蓋寫入到符號右側指定的文件中
    • >>:將左側命令的結果,追加寫入到符號右側指定的文件中
  • 示例演示1:echo “Hello Linux” > itheima.txt
    image-20241027211032745

  • 示例演示2:echo “Hello itheima” > itheima.txt,再次執行,覆蓋新內容
    image-20241027211100376

  • 示例演示3:echo “Hello itcast” >> itheima.txt,再次執行,使用>>追加新內容
    image-20241027211125932

3.19 tail命令

  • 功能:查看文件尾部內容,跟蹤文件的最新更改
  • 語法:tail [-f -num] 參數
    • 參數:表示被跟蹤的文件路徑
    • 選項-f:持續跟蹤文件修改
    • 選項-num:表示查看尾部多少行,不填默認10行
  • 示例演示:查看/var/log/vmware-network.log文件的尾部10行:tail /var/log/vmware-network.log
    QQ_1743409993957

3.20 head命令

  • 功能:查看文件頭部內容
  • 語法:head [-n] 參數
    • 參數:被查看的文件
    • 選項:-n,查看的行數

和上面一個命令類似,毛毛張在這里不過多介紹了

3.21 history命令

  • 作用:查看歷史輸入過的命令
    image-20250331144800377

  • 可以通過:!命令前綴,自動執行上一次匹配前綴的命令
    image-20231207164628606

  • 可以通過快捷鍵Ctrl + R,輸入內容去匹配歷史命令,如果搜索到的內容是你需要的

    • 回車鍵可以執行
    • 鍵盤左右鍵,可以得到此命令(不執行)
      image-20231207164754334
  • 清楚所有歷史命令記錄:history -c
  • 部分刪除操作可以進入該文件:vim ~/.bash_history
    • 該文件即為歷史記錄存儲文件,我們隨意修改
    • 修改后再次 history 查看,發現并沒有變化。原因:緩存
    • 執行:history -r
    • 讀取歷史文件并將其內容添加到歷史記錄中,即重置文件里的內容到內存中,完成修改

3.22 vi/vim編輯器

3.22.1 簡介

  • vi\vimvisual interface的簡稱,是Linux中最經典的文本編輯器。同圖形化界面中的 文本編輯器一樣,vi是命令行下對文本文件進行編輯的絕佳選擇。vim 是 vi 的加強版本,兼容 vi 的所有指令,不僅能編輯文本,而且還具有 shell 程序編輯的功能,可以不同顏色的字體來辨別語法的正確性,極大方便了程序的設計和編輯性。

  • vi\vim編輯器的三種工作模式:

    • 命令模式(Command mode):命令模式下,所敲的按鍵編輯器都理解為命令,以命令驅動執行不同的功能。此模型下,不能自由進行文本編輯。
    • 輸入模式(Insert mode):也就是所謂的編輯模式、插入模式。此模式下,可以對文件內容進行自由編輯。
    • 底線命令模式(Last line mode):以:開始,通常用于文件的保存、退出。
      image-20241027211751440
  • 編輯模式沒有什么特殊的,進入編輯模式后,任何快捷鍵都沒有作用,就是正常輸入文本而已。唯一大家需要記住的,就是:通過esc,可以退回到命令模式中即可。

  • 底線命令快捷鍵:

模式命令描述
底線命令模式:wq保存并退出
底線命令模式:q僅退出
底線命令模式:q!強制退出
底線命令模式:w僅保存
底線命令模式:set nu顯示行號
底線命令模式:set paste設置粘貼模式
  • 命令模式快捷鍵:
模式命令描述
命令模式i在當前光標位置進入輸入模式
命令模式a在當前光標位置 之后 進入輸入模式
命令模式I在當前行的開頭,進入輸入模式
命令模式A在當前行的結尾,進入輸入模式
命令模式o在當前光標下一行進入輸入模式
命令模式O在當前光標上一行進入輸入模式
輸入模式ESC任何情況下輸入ESC都能回到命令模式
模式命令描述
命令模式向上移動光標
命令模式向下移動光標
命令模式向左移動光標
命令模式向右移動光標
命令模式0移動光標到當前行的開頭
命令模式$移動光標到當前行的結尾
命令模式pageup向上翻頁
命令模式pagedown向下翻頁
命令模式/進入搜索模式
命令模式n向下繼續搜索
命令模式N向上繼續搜索
命令模式dd刪除光標所在行的內容
命令模式nddn是數字,表示刪除當前光標向下n行
命令模式yy復制當前行
命令模式nyyn是數字,復制當前行和下面的n行
命令模式p粘貼復制的內容
命令模式u撤銷修改
命令模式ctrl+r反向撤銷修改
命令模式gg跳到首行
命令模式G跳到行尾
命令模式dG從當前行開始,向下全部刪除
命令模式dgg從當前行開始,向下全部刪除
命令模式d$從當前光標開始,刪除到本行的結尾
命令模式d0從當前行開始,刪除到本行的開頭

3.22.2 使用

  • 語法:由于vim兼容全部的vi功能,后續全部使用vim命令

    vi 文件路徑
    vim 文件路徑
    
  • 解釋:

    • 如果文件路徑表示的文件不存在,那么此命令會用于編輯新文件
    • 如果文件路徑表示的文件存在,那么此命令用于編輯已有文件
  • 用法:通過vim命令編輯文件,會打開一個新的窗口,此時這個窗口就是:命令模式窗口,如下圖所示,命令模式是vi編輯器的入口和出口

    • 進入vim編輯器會進入命令模式
    • 通過命令模式輸入鍵盤指令,可以進入輸入模式
    • 輸入模式需要退回到命令模式,然后通過命令可以進入底線命令模式
      image-20250331155543330

都看到這了,不妨一鍵三連再走吧!

🌈歡迎和毛毛張一起探討和交流!
聯系方式點擊下方個人名片

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/76252.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/76252.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/76252.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

OpenAI發布的《Addendum to GPT-4o System Card: Native image generation》文件的詳盡筆記

Native_Image_Generation_System_Card 文件基本信息 文件名稱:《Addendum to GPT-4o System Card: Native image generation》發布機構:OpenAI發布日期:2025年3月25日主要內容:介紹GPT-4o模型中新增的原生圖像生成功能&#xff…

5.02 WPF的 Combox、ListBox,slider、ProgressBar使用

1. 關于Combox\ListBox使用: 1.1 內容綁定有兩種方法, 優先使用方法1,因為列表變化的時候,Combox會自動顯示新的內容。而方法2并不會實時更新。 方法1:使用DataContext this.comboBox1.DisplayMemberPath "na…

《孟婆湯的SHA-256加密》

點擊下面圖片帶您領略全新的嵌入式學習路線 🔥爆款熱榜 88萬閱讀 1.6萬收藏 文章目錄 **第一章:黃泉路上的數據風暴****第二章:堿基對的非對稱加密****第三章:RAFT協議暴動事件****第四章:靈魂分叉與硬重放****終章&…

SpringBoot事務管理(四)

記錄幾條SpringBoot事務管理中踩過的坑及解決辦法: 1. 自調用問題 問題描述 在同一個類中,一個非事務方法調用另一個有 Transactional 注解的事務方法,事務不會生效。因為 Spring 的事務管理是基于 AOP 代理實現的,自調用時不會…

HTTP 1.1長連接問題

在長連接問題上,HTTP 1.1與HTTP 1.0還是有所區別的。 下面一起來看看: HTTP 1.1 支持長連接(PersistentConnection)和請求的流水線(Pipelining)處理,在一個 TCP 連接上可以傳送多個 HTTP 請求…

鴻蒙應用元服務開發-Account Kit概述

Account Kit(華為賬號服務)提供簡單、快速、安全的登錄功能,讓用戶快捷地使用華為賬號登錄元服務。用戶授權后,Account Kit可提供頭像、手機號碼等信息,幫助元服務更了解用戶。Account Kit提供的SampleCode示例工程體現…

IP綜合實驗

1.配置eth-trunk進行綁定 [LSW1]interface Eth-Trunk 0 [LSW1-Eth-Trunk0]q [LSW1]interface g0/0/2 [LSW1-GigabitEthernet0/0/2]eth-trunk 0 [LSW1-GigabitEthernet0/0/2]int g0/0/3 [LSW1-GigabitEthernet0/0/3]eth-trunk 0 [LSW1-GigabitEthernet0/0/3]display et…

SAP 學習筆記 - 系統移行業務 - MALSY(由Excel 移行到SAP 的收費工具)

以前有關移行,也寫過一些文章,比如 SAP 學習筆記 - 系統移行業務 - Migration cockpit工具 - 移行Material(品目)-CSDN博客 SAP 學習筆記 - 系統移行業務 - Migration cockpit工具2 - Lot導入_sap cockpit-CSDN博客 SAP學習筆記…

二叉樹搜索樹與雙向鏈表

一:題目 二:思路 把二叉搜索樹的值升序的打印出來,中序打印即可,但是此題不僅僅是有序的打印出二叉搜索樹的值,而是要將其的結構也改變了,也就是說要改變節點間的指向,讓其成為一個雙向鏈表 我…

31天Python入門——第17天:初識面向對象

你好,我是安然無虞。 文章目錄 面向對象編程1. 什么是面向對象2. 類(class)3. 類的實例關于self 4. 對象的初始化5. __str__6. 類之間的關系繼承關系組合關系 7. 補充練習 面向對象編程 1. 什么是面向對象 面向對象編程是一種編程思想,它將現實世界的概念和關系映…

Spring Boot中常用內嵌數據庫(H2、HSQLDB、Derby)的對比,包含配置示例和關鍵差異總結

以下是Spring Boot中常用內嵌數據庫的對比,包含配置示例和關鍵差異總結: 一、主流內嵌數據庫對比 1. H2 數據庫 特點: 支持內存模式(速度快)和文件模式(數據持久化)。支持SQL方言&#xff08…

Apache Hive和Snowflake的`CREATE VIEW`語法和功能特性整理的對比表

寫一個Apache Hive中CREATE VIEW語句轉換為對應Snowflake中CREATE VIEW語句的程序,現在需要一個根據功能的相似性對應的Apache HiveQL和Snowflake SQL的CREATE VIEW語句的表。 以下是基于Apache Hive的CREATE VIEW語法規則構造的所有可能合法語句實例及其功能說明&…

個人博客網站從搭建到上線教程

步驟1:設計個人網站 設計個人博客網站的風格樣式,可以在各個模板網站上多瀏覽瀏覽,以便有更多設計網站風格樣式的經驗。 設計個人博客網站的內容,你希望你的網站包含哪些內容如你的個人基本信息介紹、你想分享的項目、你想分享的技術文檔等等。 步驟2:選擇開發技術棧 因…

PHP回調后門

1.系統命令執行 直接windows或liunx命令 各個程序 相應的函數 來實現 system exec shell_Exec passshru 2.執行代碼 eval assert php代碼 系統 <?php eval($_POST) <?php assert($_POST) 簡單的測試 回調后門函數call_user_func(1,2) 1是回調的函數 2是回調…

Raspberry 樹莓派 CM4模塊的底板設計注意事項

1&#xff0c; 樹莓派CM4底板設計 樹莓派CM4模塊集成了CPU&#xff0c; 存儲器&#xff0c;以太網&#xff0c; 無線模塊&#xff0c;電源等等&#xff0c; 大大降低了硬件設計的要求。對我們使用樹莓派提供了很好的便利性。 本人近期因為項目的需要設計了一款CM4的底板&#x…

Java后端開發(十八)-- 使用JAXB,將JavaBean轉換XML文本

下面是測試時的運行環境: 1.jdk8 2.Maven,可能需要需要的依賴,如下: <dependency><groupId>javax.xml.bind</groupId><artifactId>jaxb-api</artifactId><version>2.3.1</version></dependency><dependency><gr…

【一起來學kubernetes】30、k8s的java sdk怎么用

Kubernetes Java SDK 是開發者在 Java 應用中與 Kubernetes 集群交互的核心工具&#xff0c;支持資源管理、服務發現、配置操作等功能。 一、主流 Java SDK 對比與選擇 官方 client-java 庫 特點&#xff1a;由 Kubernetes 社區維護&#xff0c;API 與 Kubernetes 原生對象嚴格…

PHP開發者2025生存指南

PHP&#xff0c;這個曾經被戲稱為“世界上最好的語言”的腳本語言&#xff0c;依舊在網絡世界占據著重要的地位。然而&#xff0c;技術發展日新月異&#xff0c;面向2025年&#xff0c;PHP開發者要想保持競爭力甚至實現職業生涯的飛躍&#xff0c;需要不斷學習和提升自身技能。…

MySQL與Redis數據一致性保障方案詳解

前言 在現代分布式系統中&#xff0c;MySQL和Redis的結合使用非常普遍。MySQL作為關系型數據庫負責持久化存儲&#xff0c;而Redis則作為高性能緩存層提升系統的響應速度。然而&#xff0c;在這種架構下&#xff0c;如何保證MySQL與Redis之間的數據一致性是一個重要的挑戰。本…

MySQL響應慢是否由堵塞或死鎖引起?

目錄標題 **1. 檢查當前運行的查詢和進程****2. 查看死鎖日志****方法一&#xff1a;通過錯誤日志****方法二&#xff1a;通過InnoDB狀態** **3. 檢查鎖信息****查看表鎖****查看行鎖&#xff08;InnoDB&#xff09;** **4. 分析慢查詢****開啟慢查詢日志****分析慢查詢** **5.…