bash指令行編輯模式
1. 兩種模式:emacs和vi,預設是emacs.
2. 可以通過set -o vi/emacs切換模式
3. 可以通過set -o檢視目前是什麼模式,即是vi on還是emacs on。
4. set指令可以通過help set來檢視具體用法;通過set -o [option]打開某個屬性,通過set +o [option]關閉某個屬性值。
emacs指令行編輯模式
對字元(ctrl):
前移一個字元:ctrl+f
後移一個字元:ctrl+b
删除前一字元:ctrl+h/del/backspace
删除後一字元:ctrl+d
對單詞(esc):
前移一個單詞:esc+f
後移一個單詞:esc+b
删除前一單詞:esc+ctrl+h,或ctrl+w/esc+del/esc+backspace
删除後一單詞:esc+d
恢複最後删除的項:ctrl+y(目前知道的:對使用ctrl+h、ctrl+d、backspace、delete等删除的字元無效,對使用ctrl+w、esc+ctrl+h、esc+d等鍵删除的字元有用)
對于行(ctrl):
移動到行首:ctrl+a
移動到行尾:ctrl+e
從光标所在删除直到行首:ctrl+u
從光标所在删除直到行尾:ctrl+k
對曆史指令:
移動到前一曆史指令:ctrl+p
移動到後一曆史指令:ctrl+n
移動到第一個曆史指令:esc+<
移動到最後一個曆史指令:esc+>
在曆史指令中反向搜尋:ctrl+r(若找到的一個不符合,可以繼續按ctrl+r,會一直以查找的字元串向上找)
指令行補齊:
通用熱鍵:
補齊指令行:tab
列出所有可能的備選項:esc+?
補齊檔案名:
補齊檔案名:esc+/
列出所有備選檔案名:ctrl+x+/
補齊使用者名:
補齊使用者名:esc+~
列出所有備用使用者名:ctrl+x+~
補齊主機名:
補齊主機名:esc+@
列出所有備選主機名:ctrl+x+@
補齊内置變量:
補齊變量名:esc+$
列出所有備選變量名:ctrl+x+$
補齊指令名
補齊指令名:esc+!
列出所有備選指令名:ctrl+x+!
補齊曆史清單中的指令名:esc+tab
雜項指令:
清屏:ctrl+l
反轉光标所在字元及其前面的字元:ctrl+t(并且光标向前移動,若一直按,可以将光标前的一個字元向前移動到某個需要的位置)
從光标開始的整個單詞大寫:esc+u
從光标開始的整個單詞小寫:esc+l
将光标處的單詞首字母大寫:esc+c
vi模式下的編輯指令
常用指令:
删除前面的字元:del/backspace/ctrl+h
删除前面的單詞,即删除至空格:ctrl+w
輸入結束:ctrl+d/回車
進入控制模式:esc
控制模式下的指令:
向左移動一個字元:h
向右移動一個字元:l
向左移動一個單詞:b
向右移動一個單詞:w
移到上一個非空字元的開始:b
移到下一個非空字元的開始:w
移到目前單詞的結尾:e
移到目前非空單詞的結尾:e
移到行首:0
移到行内第一個字元:^
移到行尾:$
輸入控制
在目前字元前插入文本:i
在目前字元後插入文本:a
在行首插入文本:i
在行尾插入文本:a
用文本覆寫已存在的文本:r
删除指令(所有将d換成c,即删除後進入輸入模式)
向後删除一個字元:dh/x
向前删除一個字元:dl/x
向後删除一個單詞:db
向前删除一個單詞:dw
向後删除一個非空單詞:db
向前删除一個非空單詞:dw
删除到行尾:d$/d
删除到行首:d0
删除整行:0d$/dd
删除到行尾,并進入輸入模式:c$/c
删除整行,并進入輸入模式:0c$/cc
恢複删除:u
曆史了指令搜尋
向後移動一條記錄:k/-
向前移動一條記錄:j/+
移動到重複計數指定的行:g
向後搜尋字元串:/字元串
向前搜尋字元串:?字元串
在前一條搜尋指令同一方向的下一條記錄:n
在前一條搜尋指令相反反向的上一條記錄:n
字元查找
向右移到字元x下一次出現的位置:fx
向左移到字元x前一次出現的位置:fx
向右移到字元x下一次出現的位置,并後退一格:tx
向左移到字元x前一次出現的位置,并前進一格:tx
重複上一次查詢指令:;
以相反方向重複上一次查詢指令:,
雜項指令
轉換目前字元大小寫:_
給目前行前加#字元:#
ubuntu添加組、新使用者、密碼、删除、修改登陸屬性
sudo groupadd hadoop
sudo useradd -s /bin/bash -d /home/hadoop -g hadoop -g sudo hadoop
sudo passwd hadoop
sudo userdel hadoop
sudo groupdel hadoop
sudo usermod <option> <username>
常用的選項包括-c, -d, -m, -g, -g, -s, -u以及-o等
-c comment 指定一段注釋性描述。
-d 目錄 指定使用者主目錄,如果此目錄不存在,則同時使用-m選項,可以建立主目錄。
-g 使用者組 指定使用者所屬的使用者組。
-g 使用者組,使用者組 指定使用者所屬的附加組。
-s shell檔案 指定使用者的登入shell。
-u 使用者号 指定使用者的使用者号,如果同時有-o選項,則可以重複使用其他使用者的辨別号。
ubuntu切換使用者、添加使用者到sudoers
su <username>
sudo adduser <username> sudo
sudo usermod -a -g sudo <username>
曆史指令記錄檔案:$histfile,一般為使用者目錄下的.bash_history檔案,可以通過設定$histfile變量修改。
隻檢視zip檔案中的内容:
unzip -l filename.zip
zipinfo filename.zip
複制路徑:
cp -r sourcedir destdir
檢視檔案、目錄大小:
du -sh file/directory
vi指令:
整頁翻頁 ctrl-f ctrl-b
f就是forword b就是backward
翻半頁
ctrl-d ctlr-u
d=down u=up
滾一行
ctrl-e ctrl-y
zz 讓光标所雜的行居螢幕中央
zt 讓光标所雜的行居螢幕最上一行 t=top
zb 讓光标所雜的行居螢幕最下一行 b=bottom
:s/vivian/sky/ 替換目前行第一個 vivian 為 sky
:s/vivian/sky/g 替換目前行所有 vivian 為 sky
:n,$s/vivian/sky/ 替換第 n 行開始到最後一行中每一行的第一個 vivian 為 sky
:n,$s/vivian/sky/g 替換第 n 行開始到最後一行中每一行所有 vivian 為 sky
n 為數字,若 n 為 .,表示從目前行開始到最後一行
:%s/vivian/sky/(等同于 :g/vivian/s//sky/) 替換每一行的第一個 vivian 為 sky
:%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替換每一行中所有 vivian 為 sky
可以使用 # 作為分隔符,此時中間出現的 / 不會作為分隔符
:s#vivian/#sky/# 替換目前行第一個 vivian/ 為 sky/
:%s+/oradata/apras/+/user01/apras1+ (使用+ 來 替換 / ): /oradata/apras/替換成/user01/apras1