11-Linux-vim /bash

Vim的使用與Bash正則表達式

1、Vim的使用shell

            [i],[o],[a],[r](插入替換)vim

     通常模式      ——————————>        編輯模式數組

——————————————             ——————————————————bash

  光標移動,搜索替換    <——————————     以插入替換來編輯內容app

                    [Esc]測試

 

              [:],[/],[?]ui

     刪除字符,整行     ——————————>        命令行模式編碼

——————————————             ——————————————————spa

  複製整行,粘貼整行    <——————————        讀取/保存文件

                    [Esc]

 

  • 塊選擇:

  1) [v],[V],[Ctrl]+[v]

  2)光標移動

  3)[y]

  • 多文件編輯,可實現文件之間內容的複製

  :n 編輯下一個文件,:N 編輯上一個文件,:files 查看全部的文件

  • 多窗口功能 :sp{filename}

  窗口之間的切換: [Ctrl] + [w] + [j] / [Ctrl] + [w] + [下] 移到下方的窗口

           [Ctrl] + [w] + [k]/ [Ctrl] + [w] + [上] 移到上方的窗口

           [Ctrl] + [w] + [q] 結束當前的窗口

  • vim環境設置與記錄 ~/.vimrc

  vim的設置值通常存放在/etc/vimrc文件中,可使用 # vim ~/.vimrc進行修改,可是不建議這樣操做。

 

2、Bash

硬件、內核與Shell

  圖形    ————>       用戶界面        ——————>  核心   ————>    硬件 

——————        ———————————————          ————        ————————

 文字界面    <————      Shell,KDE,applications    <——————   Kernel   <————   Hardware

              

                  接受來自用戶的指令          控制硬件工做,包括CPU進程  系統工做的實體

                                    內存管理和IO

 

shell的功能只是提供用戶操做系統的一個藉口,須要調用其餘的命名(軟件)來執行,狹義上shell就是bash命令,廣義上shell也包括圖形界面軟件。

/bin/bash (Linux默認的shell)

Bash shell的功能:命令的記憶、命令與文件的補齊、命令別名的設置功能、做業控制,先後臺的控制、程序腳本、通配符。

 

Shell

1、shell的變量功能

  • 變量的顯示 $ echo
  • 變量的修改 $ 變量名=變量值
  • 環境變量功能: $ env 能夠列舉出當前shell環境下全部的環境變量。

環境變量的舉例:

  • HOME:表明主文件夾
  • SHELL:目前環境表明的shell程序
  • HISTSIZE:可紀錄的歷史命令的條數
  • MAIL:讀取的郵件文件
  • PATH:執行文件查詢路徑
  • LANG:語系數據
  • RANDOM:隨機數變量

變量的有效範圍:通常狀況下,父進程的自定義變量沒法在子進程內使用,除非經過export將其變爲環境變量,不然就是自定義變量。(與內存分配的記憶塊有關)

  • read 讀取來自鍵盤輸入的變量: $ read [-pt] variable
  • declare和typeset是同樣的功能用來聲明:$ declare [-aixr] variable

                      -a: variable爲數組類型

                      -i: variable爲integer類型

                      -x:用法與export一致

                      -r:變量設置爲readonly,只讀類型,不能夠修改

數組變量類型:array

  • 設置方法:   $ var [index]=context  bash的數組下標是從0開始的。

          數組名 下標  變量值

  • 讀取方式: $ echo ${var[1]}

變量內容的刪除、替換:

  •    變量設置方法                      說明

    ${變量#關鍵字}           若變量內容從頭開始數據符合」關鍵字「,則將符合的最短數據刪除。

    ${變量##關鍵字}              若變量內容從頭開始數據符合」關鍵字「,則將符合的最長數據刪除。

    ${變量%關鍵字}             若變量內容從尾開始數據符合」關鍵字「,則將符合的最短數據刪除。

    ${變量%%關鍵字}          若變量內容從尾開始數據符合」關鍵字「,則將符合的最長數據刪除。

    ${變量/舊字符串/新字符串}            替換第一個符合的字符串。

    ${變量//舊字符串/新字符串}             替換所有符合的字符串。

  •   變量的測試與內容的替換

      new_var=${old_var-content}

  新變量    關鍵字 舊變量 變量內容

 

3、Bash Shell操做環境

 

一個命令被執行時,命令執行的順序是:

  • 以相對/絕對路徑執行命令。
  • 由alias找到該命令並執行。
  • 由bash內置的(builtin)命令執行。
  • 經過$PATH變量的順序找到第一個來執行。

Shell

1、通配符與特殊符號

通配符
* 0到無窮個任意的字符
? 必定有一個任意字符
[] 必定由一個[]中的字符
[-] 編碼順序內全部的字符
[^] 必定有一個非[]中的字符
特殊符號
# 批註符號,視爲說明,並不執行
\ 轉義字符,將後面的內容還原爲原來的意思
| 管道,風格兩個管道命令的界定
; 連續命令的執行
~ 用戶的主文件夾
$ 使用變量的前導符
& 做業控制,命令變成背景下工做
! 邏輯非
/ 目錄符號
>,>> 數據流重定向,輸出
<,<< 數據流重定向,輸入
' ' 無變量置換的變量表示
" " 有變量置換的變量表示
` ` 先執行的命令
() 子shell的起始與結束標誌
{} 中間爲塊命令的組合

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2、shell其它指令及功能

  • 數據流重定向:某個命令執行後的內容會打印在屏幕上的數據須要傳輸到其它的地方,可使用 > 和 >>命令輸出到其它的地方(>會覆蓋原有的內容,而>> 不會覆蓋只會累加)。
  • 命令質性判斷依據:

    cmd1 ; cmd2      執行完cmd1,執行cmd2

    cmd1 && cmd2     cmd1正確執行則執行cmd2

    cmd1 || cmd2        cmd1正確執行則不執行cmd2

  • 管道命令:bash執行命令時會有輸出數據出現,若是這樣的數據須要通過幾道手續才能獲得結果,則使用管道命令"|"。後面的命令必須是能夠接收STDIN數據的命令。
  • 選取命令:

  cut能夠將一段信息的某一段切出來。

  # cut -d ‘分隔字符’ -f field

  # cut -c 字符範圍

  grep 分析一行的信息

  # grep [-acinv] [--color=auto] '字符串' filename

  • 排序:  

  # sort [-fbMnrtuk] [file or stdin]

  • 雙向重定向 tee 能夠將stdin輸出到屏幕的同時並輸出到文件中 # tee [-a] file
  • 字符轉換命令:

  # tr [-ds] SET1 ...       刪除一段信息中的文字或者文字替換

  # col [-xb]           -x tab轉爲空格,-b 文字內有轉義字符時直接保留\後的內容

  # join [-ti12] file1 file2     兩個文件中相同數據一行加在一塊兒

  # paste [-d] file1 file2     不進行對比直接將兩個文件貼在一塊兒

  # expand [-t] file       tab轉空格

 

3、Shell Script 程序化腳本

命令行彙整執行,相似與程序的編寫,可是不須要編譯執行,

利用shell的功能所寫的一個純文本的程序,在一些shell語法與命令卸載裏面配合正則表達式,管道和重定向達處處理的目的。

 

shell script執行的方法:

直接命令執行      shell.sh 文件必須具有rx的權限, 以bash進程來執行,經過./she.sh或shell she.sh

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
相關文章
相關標籤/搜索