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
重復上一次查詢命令:;
以相反方向重復上一次查詢命令:,
雜項命令
轉換當前字符大小寫:_
清屏:ctrl+l
給當前行前加#字符:#
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
vi/vim 中可以使用 :s 命令來替換字符串。: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
awk去其中某幾列數據:
awk -F '|' '{OFS="|"; print $34, $44, $20, $21, $24, $25, $39, $3}' fileName > newFile
-F為原始文件列分隔符,OFS指定新文件列分隔符
awk去重復列:
awk -F '|' '{print $9}' fileName | sort | awk '!a[$0]++'
awk找到一列中值等于match的行:
awk -F '|' '{if ($9 == "match") print $0;}' fileName > newFile