Vim文字編輯器和編寫shell命令指令碼

2022-08-09 14:15:27 字數 3147 閱讀 4580

在linux系統中一切都是檔案,而配置乙個伺服器就是在修改其配置檔案的引數。而且在日常工作中大家也肯定免不了要編寫文件,這些工作都是通過文字編輯器來完成的。

vim之所以能得到廣大廠商與用於的認可,原因在於vim編輯器中設定了三種模式——命令模式,末行模式和編輯模式,每種模式分別又支援多種不同的命令快捷鍵,這大大提高了工作效率,而且使用者在習慣之後也會覺得相當順手。要想高效率地操作文字,就必須先搞清這三種模式的操作區別以及模式之間的切換方法。

命令模式:控制游標移動,可對文字進行複製,貼上,刪除和查詢等工作。

輸入模式:正常的文字錄入。

vim編輯器模式的切換方法

在每次執行vim編輯器時,預設進入命令模式,此時需要先切換到輸入模式後再進行文件編輯工作,而每次在編寫完文件後需要先返回命令模式,然後在進入末行模式,執行文件的儲存或退出操作。在vim中,無法直接從輸入模式切換到末行模式。

vim中常用的命令

命令                                    作用

dd                                        刪除(剪下)光變所在整行

5dd                                      刪除(剪下)從游標處開始的5行

yy                                         複製游標所在整行

5yy                                      複製從游標處開始的5行

n                                          顯示搜尋命令定位到的下乙個字串

n                                         顯示搜尋命令定位到的上乙個字串

u                                          撤銷上一步的操作

p                                          將之前刪除(dd)或複製(yy)過的資料貼上到游標後面

末行模式主要用於儲存或退出檔案,以及設定vim編輯器的工作環境,還可以讓使用者執行外部的linux命令或跳轉到所編寫文件的特定行數。要想切換到末行模式,在命令模式中輸入乙個冒號就可以了。

末行模式中可用的命令

命令                                      作用

:w                                        儲存

:q                                         退出

:q!                                        強制退出(放棄對文件的修改內容)

:wq!                                     強制儲存退出

:set nu                                 顯示行號

:set nonu                             不顯示行號

:命令                                    執行命令

:整數                                    跳轉到該行

:s/one/two                            將當前游標所在行的第乙個one替換成two

:s/one/two/g                           將當前游標所在行的所有one替換成two

:%s/one/two/g                      將全文中的所有one替換成two

?字串                                 在文字中從下至上搜尋該字串

/字串                                   在文字中從上至下搜尋該字串

編寫shell指令碼

可以將shell終端直譯器當作人與計算機硬體之間的 「翻譯官」,它作為使用者與linux系統內部的通訊媒介,除了能夠支援各種變數與引數外,還提供了諸如迴圈,分支等高階程式語言才有的控制結構特性。想要正確使用shell中的這些功能特性,準確下達命令尤為重要。shell指令碼命令的工作方式有兩種:互動式和批處理。

互動式:使用者每輸入一條命令就立即執行

批處理:由使用者事先編寫好乙個完整的shell指令碼,shell會一次性執行指令碼中諸多的命令。

在shell指令碼中不僅會用到前面學習過的很多linux命令以及正規表示式,管道符,資料流重定向的語法規則,還需要把內部功能模組化後通過邏輯語句進行處理,最終形成日常所見的shell指令碼。

編寫簡單的指令碼

在看完上文中有關shell指令碼的複雜描述後。但是,上文指的是乙個高階shell指令碼的編寫原則,其實使用vim編輯器把linux命令按照順序依次寫入到乙個檔案中,這就是乙個簡單的指令碼了。

shell指令碼檔案的名稱可以任意,但為了避免被誤以為是普通檔案,建議將.sh字尾加上,以表示是乙個指令碼檔案。指令碼中實際上出現三種不同的元素:第一行的指令碼宣告(#!)用來告訴系統使用那種shell直譯器來執行該指令碼;第二行的注釋資訊(#)是對指令碼功能和某些命令的介紹資訊,是自己或他人在日後看到這個指令碼內容時,可以快速知道該指令碼的作用或一些警告資訊;第三,四行的可執行語句也就是我們平時執行的linux命令了。

接受用於的引數

像上面這樣的指令碼程式只能執行一些預先定義好的功能,未免太過死板了。為了讓shell指令碼程式更好地滿足使用者的一些實時需求,以便靈活完成工作,必須要讓指令碼程式能夠像之前執行命令時那樣,接收使用者輸入的引數。

其實,linux系統中的shell指令碼語言早就考慮到了這些,已經內設了用於接收引數的變數,變數之間可以使用空格間隔。例如$0對應的是當前shell指令碼程式的名稱,$#對應的是總共有幾個引數,$*對應的是所有位置的引數值,$?對應的是顯示上一次命令的執行返回值,而$1,$2,$3.......則分別對應著第n個位置的引數值。

2020-09-22       17:09:19

VIM文字編輯器

vi 乙個命令列介面下的文字編輯工具 vim vi的增強版本 絕大多數linux系統上均安裝有vim vim 目標文字路徑的形式使用vim 如果目標檔案存在,則開啟 如果目標檔案不存在,則建立 q 退出編輯 vi擁有三種模式 1.命令模式 vim啟動後,預設進入命令模式,在其他模式下,按esc鍵 返...

文字編輯器Vim

vim vi只有命令,沒有選單。vi工作模式 插入命令 命令 作用 i 在游標前插入文字 i 在本行開始插入文字 定位命令 命令 作用 移到行末 0 移到行首 h 移到螢幕上端 l 移到螢幕下端 set nu 設定行號 set nonu 取消行號 n 到第n行 刪除命令 命令 作用 x 刪除游標所在...

文字編輯器Vim

vim vi簡介 vim vi 是乙個強大全螢幕文字編輯器,是linux unix上最常用的文字編輯器,它的作用是建立 編輯 顯示檔案 vim vi 沒有選單,只有命令 插入命令 命令 作用a在游標後附加文字 a在本行行末附加文字 i在游標前插入 i在本行開始插入文字 o在游標下插入新行 o在游標上...