1. 程式人生 > >3.0-vim編輯器和bash條件測試

3.0-vim編輯器和bash條件測試

編輯器 vim bash

多文件模式:

vim FILE1 FILE2 FILE3...

:next 下一個

:prev 前一個

:first 第一個

:last 最後一個

:wall 保存所有

:qall 退出所有


窗口分隔模式:

vim -o|-O FILE1 FILE2...

-o:水平分割

-O:垂直分割

在窗口間切換:Ctrl+w然後Arrow(箭頭:鍵盤上的->標誌)


單文件窗口分割:

Ctrl+w,s:split 水平分割

Ctrl+w,v:vertical 垂直分割


定制vim的工作特性:

配置文件:永久有效

全局:/etc/vimrc

個人:~/.vimrc

末行:當前vim進程有效

(1)行號

顯示:set number,簡寫為:set nu

取消顯示:set nonumber,簡寫為:set nonu

(2)括號匹配(編程中左右括號自動匹配用)

匹配:set showmatch,簡寫為:set sm

取消匹配:set noshowmatch,簡寫為:set nosm

(3)自動縮進

啟用:set ai

禁用:set noai

(4)高亮搜索

啟用:set hlsearch

禁用:set nohlsearch

(5)語法高亮

啟用:syntax on

禁用:syntax off

(6)忽略字符大小寫

啟用:set ic

禁用:set noic

獲取幫助

:help

:help subject

問題:如何設置tab縮進為4個字符


練習:

1.復制/etc/rc.d/init.d/functions文件至/tmp目錄中:替換/tmp/functions文件中的/etc/sysconfig/init為/var/log

2.刪除/tmp/functions文件中所有以#開頭,且#後面至少有一個空白字符的行的行首的#號

#hello

# hello (把這個#後有空格的#字符刪除)


bash條件測試:

測試方式:

test EXPRESSION

[ EXPRESSION ]

[[ EXPRESSION ]]

測試表達式的類別:

數值比較

字符串測試

文件測試


文件測試

存在性測試:

-a FILE(同-e,很少用)

-e FILE:文件存在性測試,存在為真,不存在為假

存在性及類別測試:

-b FILE:是否存在且為塊設備文件

-c FILE:是否存在且為字符設備文件

-d FILE:是否存在且為目錄文件

-f FILE: 是否存在且為普通文件

-h FILE或 -L FILE:是否存在且為符號鏈接文件

-p FILE:是否存在且為命名管道文件

-S FILE:是否存在且為套接字文件

文件權限測試:

-r FILE:是否存在且可讀

-w FILE:是否存在且可寫

-x FILE:是否存在且可執行

文件特殊權限測試:

-g FILE:是否存在且擁有sgid權限

-u FILE:是否存在且擁有suid權限

-k FILE:是否存在且擁有sticky權限

文件大小測試:

-s FILE:是否存在且非空

文件是否打開:

-t fd:fd表示文件描述符是否已經打開且與某終端相關


-N FILE:文件自動上一次被讀取之後被修改過

-O FILE:當前有效用戶是否為文件屬主

-G FILE:當前有效用戶是否為文件屬組

雙目測試:

FILE1 -ef FILE2:FILE1與FILE2是否指向同一個設備上的相同inode

FILE1 -nt FILE2:FILE1是否新於FILE2

FILE1 -ot FILE2:FILE1是否舊於FILE2

組合測試條件:

邏輯運算:

第一種方式:

COMMAND1 && COMMAND2

COMMAND1 || COMMAND2

! COMMAND

例如:[ -e FILE ] && [ -r FILE ] 文件存在且可讀

Note:在做文件測試時一定要註意是root還是普通用戶,如果是root權限判斷會有問題


第二種方式:

EXPRESSION1 -a EXPRESSION2

EXPRESSION1 -o EXPRESSION2

EXPRESSION

必須使用測試命令進行

# [ -z $hostName -o $hostName == bogon ] && hostname test

# [ -f /bin/cat -a -x /bin/cat ] && cat /etc/fstab


3.0-vim編輯器和bash條件測試