Linux學習日誌(五)

bash編程之:字符測試,一般加引號

雙目:

 > : 大於
 < :小於
 ==:等於,等值比較
 =~:左側是字符串,右側是一個模式,判斷左側的字符串能否被右側的模式所匹配:通常只在[[]]中使用
    模式中可以使用行首、行尾錨定符,但是模式不要加引號
 !=, <>: 不等於

單目:

 -n 字符串: 字符串是否不空,不空爲真,空則爲假
 -z 字符串:字符串是否爲空,空則爲真,不空則假:

vi 編輯器

Linux:使用文本文件來保持配置文件

vi的模式:

 編輯模式:鍵盤操作通常被解析爲編輯命令
 輸入模式:輸入模式
 末行模式:vim的內置的命令行接口,執行vim內置命令 

vi命令的使用格式

 vim [options] /path/to/file

編輯模式–>輸入模式

i:當前光標處輸入內容
I:在當前光標所在行的行首
a:在當前光標所在處的後面
A:在當前光標所在行的行尾輸入
o:在光標所在行的下方新增一行空白行
O:在光標所在行的上方新增一行空白行     

輸入模式–>編輯模式

ESC

編輯模式–>末行模式

末行模式–>編輯模式

ESC,ESC 

退出:

   :q!強制退出,不保存並退出
   :wq 保存修改並退出
   :x,保存並退出
   編輯模式:ZZ,保存退出

打開:

 多文件跳轉
 :next 下一個
 :prev  上一個
 :first 第一個
 :last 最後一個
 :qall 退出所有的文件
 :wqall:修改並退出多個文件       

分隔窗口打開多個文件

 -o:水平分隔
     ctrl+w,左右箭頭
 -O:垂直分隔
     ctrl+W,上下箭頭
 +#:打開文件後在第#號行首
 +:打開文件後在最後一行

光標移動:

單字符移動:

    h:左
    l:右
    j:下
    k:上
  可以和數字組合

單詞間移動:

       w:調至下一個單詞的詞首
       b:當前或前一個的詞首
       e:當前或下一個詞的詞尾

行內移動:

         0:絕對行首
         ^:第一個非空白字符
         $:絕對行尾

句子間移動:

     ):上一句
    ( :下一句

段落間移動:

     }:上一段
     {:下一段

行間移動:

     # G:第幾行
     G:最後一行

編輯操作:

刪除字符

     x:刪除光標所在處的字符
     #x:刪除光標所在處向後的#個字符

替換

 r:替換光標所在處的字符

刪除行

 d:刪除命令
   結果光標跳轉命令使用
   %:全文  可以在末行模式中 :% d
 dd:刪除一行
 #dd:刪除所在行後的#行

末行模式:範圍定界

start,end:可以使用絕對定界,也可以使用相對定界  10,+9 從第10行向後加9行
       .:表示當前行
       $:最後一行
       $-2:倒數第3行
       /pat1/,/pat2/:匹配Pat1到pat2中間的所有行  

        c:替換
           跟d一樣操作
         y:yank,複製
             跟d一樣操作
         p:paste 粘貼
            複製或刪除的是整行
          p:當前行的下一行
          P(大寫):當前行的上一行
             複製或刪除的爲非整行
         p:粘貼在光標所在字符的後面
         P: 粘貼在光標所在字符的前面
    撤銷編輯
       u:undo
      #u:最近50次操作
     撤銷此前的撤銷操作
       ctrl+r:
     重複執行此前的命令:

       .

翻屏:

    ctrl+f:向文件尾部翻一屏
    ctrl+b:向文件首部翻一屏
    ctrl+d:向文件尾部翻半屏
    ctrl+u:向文件首部翻半屏
    Enter:下一行
    k :上一行

查找:

   /keyword
   ?keyword
   n:
   N:
   支持正則表達式
   :set nohlsearch 關閉高亮顯示,對當前shell有效

vim的可視化模式
編輯模式:

 v:按照光標走過的區域選擇
 V:選擇矩形塊

打開多個文件,分窗口:

vim -o
vim -O
Ctrl+w, 上下箭頭

分割當前窗口:

Ctrl+w, s
Ctrl+w, v

窗口屬性的定義:

:set nu   顯示行號
:set nonu  

:set ai 自動縮進
:set noai

:set ic 忽律大小寫 
:set noic

顯示對應的括號
:set sm (show match)
:set nosm

語法高亮:
:syntax on
:syntax off

搜索高亮:
:set hlsearch
:set nohlsearch

vim的配置文件:

全局:/etc/vimrc
個人:~/.vimrc

查找替換:

  :地址定界s/查找模式/替換爲的內容/gi
    g:全局替換
    i:不區分大小寫
  :地址定界s@查找模式@替換爲的內容@gi
   &: 用於在替換爲的內容部分中引用前面匹配到的所有內容

練習:

1.複製/etc/grup.conf至/tmp目錄,刪除/tmp/grub.conf文件中行首的空白符

 :%s@^[[:space:]]@{1,\}@g

2.複製/etc/rc.d/rc.sysinit至/tmp目錄。將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行,行首加#號

 :%s@^[[:space:]]\{1,\}.*@#&@g

3.刪除/tmp/rc.sysinit文件中以#開頭且後面跟了至少一個空白字符的行的行首的#和空白符

 %s@^#[[:space:]]\{1,\}@@g

4.爲/tmp/grub。conf文件中的前三行的行首加#號

   1,3s@^@#@g

5.將/etc/yum.repos.d/CentOS-Media.repo中enable=0一行最後的0改爲1;

   %@\(enabled=\)[0-9]@\11@g

bash知識點:文件測試

[]
[[]]
test
單目測試:

    -e file :測試文件是否存在
    -a file :測試文件是否存在
    -f file: 測試是否爲普通文件
    -d 目錄: 測試是否爲目錄文件
    -b somefile : 測試文件是否存在並且是否爲一個塊設備文件
    -c somefile : 測試文件是否存在並且是否爲一個字符設備文件
    -h|-L somefile : 測試文件是否存在並且是否爲符號鏈接文件
    -p somefile : 測試文件是否存在並且是否爲管道文件:
    -S somefile : 測試文件是否存在並且是否爲套接字文件:
    -r somefile:  測試其有效用戶是否對此文件有讀取權限
    -w somefile:  測試其有效用戶是否對此文件有寫權限
    -x somefile:  測試其有效用戶是否對此文件有執行權限
    -s somefile:  測試文件是否存在並且不空

雙目測試:

    file1 -nt file2 :測試file1是否比file2更 新一些
    file1 -ot file2 :測試file1是否比file2更 老一些

在腳本中使用source命令倒入別的文件

        [ -r 配置文件 ] && cource 配置文件              
發佈了43 篇原創文章 · 獲贊 1 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章