Vim文本編輯器和編寫shell命令腳本


           在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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM