Linux 基礎知識(六.一)

一、模式及模式間的切換

(一)模式介紹
1、vim文本編輯器提供了三種基本模式,分別是編輯模式(命令模式)、輸入模式以及末行模式(命令行模式)

(二)模式間的切換
4 Circles(1).png
二、基礎操作
(一)單文件的打開與關閉
1、單文件的打開:vim [options]… /path/to/somefile

2、單文件打開時的常用選項:
(1)+#:表示當文件打開時,直接讓光標處于第#行的行首
(2)+/pattern:表示當文件打開時,直接讓光標處于第一個被pattern匹配到的行的行首

3、如何在單文件打開時,實現多窗口功能?
    ctrl+w松開后,按s,將單個窗口按照水平方式進行分割
    ctrl+w洞開后,按v,將單個窗口按照垂直方式進行分割

4、單文件的關閉和另存為:
(1)ZZ:保存并退出
(2)wq:保存并退出
(3)x:保存并退出
(4)q:直接退出,不保存對文件內容的修改
(5)q?。簭娭浦苯油顺?/span>
(6)w /path/to/somefile:另存為至somefile

(二)多文件的打開與關閉

1、多文件的打開:vim [options]… /path/to/somefile1 /path/to/somefile2 /path/to/somefile3

2、多文件打開時的常用選項:
(1)-o:以水平分割多個窗口的形式打開多個文件
(2)-O:以垂直分割多個窗口的形式打開多個文件

3、如何在多個文件之間進行來回切換?
(1):next 切換至下一個文件
(2):prev 切換至上一個文件
(3):first 切換至第一個文件
(4):last 切換至最后一個文件

4、多文件的關閉:
(1)如果對其中一個文件進行關閉,即使用單文件的關閉方法即可
(2)如果對多個文件同時進行關閉,具體方法如下:
    • wqall:保存所有文件并且退出
    • qall:退出所有文件,但不保存

三、編輯模式

(一)如何操縱光標?
1、字符間的光標跳轉
(1)上下左右方向鍵
(2)k(上),j(下),h(左),l(右)
注意:以上2種字符間的光標跳轉的方式,都可以在其前加上一個數字,表示需要跳轉的字符的個數

2、單詞間的光標跳轉
(1)w:跳轉至下一個單詞的詞首
(2)e:跳轉至當前光標所在處的單詞的詞尾,或者光標所在處之后的一個單詞的詞尾
    • # This all seem confusing? Look in /etc/sysconfig/init,
      • 上述文本光標處在This的T處,在執行了“e”之后,光標會跳轉至This的s處
        • # This all seem confusing? Look in /etc/sysconfig/init,
    • # This all seem confusing? Look in /etc/sysconfig/init,
      • 上述文本光標處在This后的空白字符處,在執行了“e”之后,光標會跳轉至all的第二個l處
        • # This all seem confusing? Look in /etc/sysconfig/init,
(3)b:跳轉至當前光標所在處的單詞的詞首,或者光標所在處之前的一個單詞的詞首
    • # This all seem confusing? Look in /etc/sysconfig/init,
      • 上述文本光標處在This的s處,在執行了“b”之后,光標會跳轉至This的T處
        • # This all seem confusing? Look in /etc/sysconfig/init,
    • # This all seem confusing? Look in /etc/sysconfig/init,
      • 上述文本光標處在This后的空白字符處,在執行了“b”之后,光標會跳轉至This的T處
        • # This all seem confusing? Look in /etc/sysconfig/init,
        注意:以上3種單詞間的光標跳轉的方式,都可以在其前加上一個數字,表示需要跳轉的單詞的個數

3、如何跳轉至行首OR行尾?
(1)^:直接跳轉至行首的第一個空白字符
(2)0:直接跳轉至首行
(3)$:直接跳轉至尾行

4、如何在行間進行跳轉?
(1)#G:“#”表示數字,“G”表示需要跳轉至的行的行號
(2)1G:跳轉至第一行,即首行
(3)G:跳轉至最后一行,即尾行

5、如何進行翻頁?
(1)ctrl+f:向文件尾部翻一頁
(2)ctrl+b:向文件首部翻一頁
(3)ctrl+d:向文件尾部翻半頁
(4)ctrl+u:向文件首部翻半頁
(5)Enter鍵:向文件尾部移動一行

(二)編輯命令 –> 主要針對于字符進行操作
1、刪除命令
(1)x:刪除光標所在處的字符
(2)2x:刪除從光標所在處開始的2個字符
(3)xp:交換光標所在處的字符與其后面的字符的位置
(4)d:結合光標跳轉字符,可以實現范圍刪除,具體如下:
    • d$:刪除光標所在處至行尾之間的所有字符
    • d^:刪除光標所在處至行首之間的所有字符
    • dw:刪除光標所在處至下一個單詞詞首之間的所有字符,并且光標跳轉至下一個單詞的詞首
      • 2dw:刪除光標所在處至之后的第三個單詞的詞首,并且光標跳轉至第三個單詞的詞首
        • # This all seem confusing? Look in /etc/sysconfig/init,
          • 上述文本光標處在This的T處,在執行了“2dw”之后,“This all”會被刪除,且光標會跳轉至seem的s處
            • # seem confusing? Look in /etc/sysconfig/init,
    • de:刪除光標所在處至本單詞的詞尾之間的所有字符,并且光標跳轉至下一個單詞的詞首之前的空白字符處
      • 2de:刪除光標所在處至之后的第三個單詞的詞首之間的所有字符,并且光標跳轉至第三個單詞之間的空白字符處
        • # This all seem confusing? Look in /etc/sysconfig/init,
          • 上述文本光標處在This的h處,在執行了“2de”之后,“his all”會被刪除,光標會跳轉至seem之前的空白字符處
            • # T seem confusing? Look in /etc/sysconfig/init,
    • db:刪除光標所在行至本單詞的詞首之間的所有字符,并且光標會停留在執行命令“db”之前的光標所在處
      • 2db:刪除光標所在處至之前的兩個單詞的,并且光標會停留在執行命令“2db”之前的光標所在處
        • # This all seem confusing? Look in /etc/sysconfig/init,
          • 上述文本光標處在seem的s處,在執行了“2db”之后,“This all”會被刪除,光標會停留在seem的s處
            • # seem confusing? Look in /etc/sysconfig/init,
    • dd:刪除光標所在行的整行
      • 2dd:刪除2行,從光標所在行開始計數

2、替換命令
(1)r:替換光標所在處的字符

3、粘貼命令
(1)p:緩沖區中的內容如果為整行,則粘貼至當前光標所在行的下方;否則,則粘貼至當前光標所在行的后方
(2)P:緩沖區中的內容如果為整行,則粘貼至當前光標所在行的上方;否則,則粘貼至當前光標所在行的前方

4、復制命令
(1)y:結合光標跳轉字符,可以實現范圍復制,具體如下:
    • y$:復制光標所在處之后至行尾之間的所有字符串
    • y^:復制光標所在處之前至行首的空白字符之間的所有字符串
    • y0:復制光標所在處之前至行首之間的所有字符串
    • yy:復制光標所在行的整行

5、改變命令
(1)c:結合光標跳轉字符,可以實現范圍刪除,并且命令執行完成后,會轉換至輸入模式
    • c$:刪除光標所在處之后至行尾之間的所有字符串,并且轉換至輸入模式
    • c^:刪除光標所在處之前至行首的空白字符之間的所有字符串,并且轉換至輸入模式
    • c0:刪除光標所在處之前至行首之間的所有字符串,并且轉換至輸入模式
    • cc:刪除光標所在行的整行,并且轉換至輸入模式

6、撤銷命令
(1)u:撤銷之前一次操作
(2)3u:撤銷之前三次操作
(3)ctrl+r:撤銷之前執行的撤銷命令

7、特殊命令
(1).:重復執行之前一個編輯命令
(2)v:按字符選定(注意:當選定字符串后,可對選定的字符串執行d、y、c等命令)
(3)V:按行選定(注意:當選定字符串后,可對選定的字符串執行d、y、c等命令)

四、末行模式
1、地址界定:[start_position[,end_position]]  –> 可以配合d,c,y,w,r等命令一起使用
(1)#:“#”表示行數,明確第幾行
(2).:表示當前行
(3)#,#:“#”表示行數,明確從第幾行至第幾行
(4)#,+#:“#”表示行數,明確從第幾行開始向后數幾行
    • 5,+9:從第五行開始,向后數九行
    • .,$-1:從當前行開始至倒數第二行
(5)%:表示所有行
(6)/pattern/:表示從光標所在處開始向文件尾部至第一次被模式所匹配的行
(7)/pattern1/,/pattern2/:表示從被/patter1/匹配的行開始至被/pattern2/匹配的行

2、查找
(1)/pattern:從當前光標所在行處向文件尾部(或者向文件首部)查找能夠被/pattern所匹配到的所有字符串
    • n:下一個,與命令方向相同
    • N:上一個,與命令方向相反

3、替換
【格式】
    • s@查找內容@替換內容@修飾符
【知識】
    • 查找內容:支持正則表達式
    • 替換內容:不支持正則表達式,可以使用/1或&來引用“查找內容”中使用正則表達式所匹配到的內容
    • 修飾符:
      • i:忽略字母大小寫
      • g:全局替換,默認情況下,只替換一次查找到的內容
【示例】
    • 復制/etc/grub2.cfg文件至tmp目錄中,用查找替換命令刪除/tmp/grub2.cfg文件中以空白字符開頭的行的行首的空白字符;
      • %s@^[[:space:]]\+@@
    • 復制/etc/rc.d/init.d/functions文件至tmp目錄中,用查找替換命令為/tmp/functions文件的每個以空白字符開頭的行的行首加上#;
      • %s@^[[:space:]]\+[^[:space:]]@#&@g
    • 為/tmp/grub2.cfg文件的前三行的行首加上#號;
      • 1,3s@^@#&@
    • 將/etc/yum.repos.d/CentOS-Base.repo文件中所有的enabled=0替換為enabled=1,所有gpgcheck=0替換為gpgcheck=1;
      • %s@\(enabled\|gpgcheck\)=0@&=1@g

五、如何定義vim的特性
(一)配置文件
1、全局配置文件:/etc/vimrc
2、個人配置文件:~.vimrc

(二)定義特定的方式?
1、直接在末行模式下即可完成對vim的特性的定義,但是僅對當前vim進程生效
2、在配置文件(全局OR個人)中定義vim的特性,永久生效

(三)常用特性定義
1、行號
(1)顯示行號::set number,可簡寫為“nu”
(2)取消行號::set monumber,可簡寫為“nonu”

2、高亮顯示括號
(1)開啟::set showmatch,可簡寫為“sm”
(2)關閉::set noshowmatch,可簡寫為“nosm”

3、自動縮進
(1)開啟::set autoindent,可簡寫為“ai”
(2)關閉::set noautoindent,可簡寫為“noai”

4、高亮搜索
(1)開啟::set hlsearch,可簡寫為“hls”
(2)關閉::set nohlsearch,可簡寫為“nohls”

5、語法高亮
(1)開啟:syntax on
(2)關閉:syntax off

6、忽略字符大小寫
(1)開啟::set ignorecase,可簡寫為“ic”
(2)關閉::set noignorecase,可簡寫為“noic”

7、設置tab縮進為4個字符
(1)設置::set softtabstop=4

8、獲取幫助信息
(1)全部::help
(2)指定::help subject,如:help ic

原創文章,作者:Tornado,如若轉載,請注明出處:http://www.www58058.com/55388

(0)
TornadoTornado
上一篇 2016-11-14
下一篇 2016-11-14

相關推薦

  • Linux命令的使用格式及部分常用命令詳述

    Linux命令的使用格式及部分常用命令詳述 Linux系統中命令的使用格式 Linux中命令的使用遵循以下格式 # COMMAND OPTIONS ARGUMENTS   ###命令 選項 參數,三項之間用空格分開 執行一個命令需要指定需要內核將哪一個二進制程序運行為一個進程,C…

    Linux干貨 2016-10-30
  • N28第五周

    1、簡述rpm與yum命令的常見選項,并舉例
    2、自建yum倉庫,分別為網絡源和本地源
    3、簡述at和crontab命令,制定 每周三凌晨三、五點10分執行某個腳本,輸出當前時間,時間格式為 2017-12-28 10:00:00
    4、簡述sed常用操作命令,并舉例

    Linux干貨 2018-01-03
  • bash的命令執行狀態返回值及命令行展開詳解

    命令執行狀態返回值及命令行展開是bash的2個基本特性,其詳細特點及應用如下:   一、命令執行的狀態結果:bash通過狀態返回值來輸出此結果                 成功:0             …

    Linux干貨 2016-11-06
  • 關于源碼包的基本知識

    關于源碼包的基本知識  §·什么是程序 程序(Program)是為實現特定目標或解決特定問題而用計算機語言編寫的命令序列的集合。為實現預期目的而進行操作的一系列語句和指令。 一般分為系統程序和應用程序兩大類。 程序就是為使電子計算機執行一個或多個操作,或執行某一任務,按序設計的計算機指令的集合。 §·程序包的編譯安裝 ※·為什么需要源碼安裝 1.最…

    Linux干貨 2016-08-24
  • 練習正則表達式

        正則表達式可以通過元字符(規則)來匹配查找相關的的字符集合。他與通配符是有區別的。而且相關的使用工具對正則表示的元字符的是有區別的。     首先我們先來了解下常用的元字符及含義(并不是所有的元字符) 字符匹配       &nbs…

    Linux干貨 2015-04-15
  • 高考作業

    1、簡述TCP三次握手四次揮手過程及各過程中客戶端和服務器端的狀態。 TCP三路握手,作用為完成三次握手,主機A與主機B開始傳送數據。 第一次握手:客戶端A(狀態為SYN_SEND)發送位碼為syn=1,隨機產生seq number=1234567的數據包到服務器,服務器B(狀態為LISTEN)由SYN=1知道,客戶端A要求建立聯機; 第二次握手:服務器B(…

    Linux干貨 2016-06-22
欧美性久久久久