1. vi編輯器快速鍵備忘
[Ctrl]+[ud] 向上/下移動半頁
n<space> 右移n個字元
H/M/L 移動到螢幕最上方/中央/最下方一行
u [Ctrl]+r 複原和重做
.(點) 重複前一個動作
:e! 將檔案還原到最原始狀態
[Ctrl]+v 塊選擇
2. Bash Shell基礎
env 環境變數
set 環境變數和其他變數
export 使變數變成環境變數,在子程式中生效
read -p 後接提示字元, -t 等待秒數
declare 聲明變數的屬性
-a 定義為數組
-i 定義為整數數字
-x 同export,變成環境變數
-r 唯讀屬性
history 查看曆史命令
/etc/issue 終端介面字串(使用man issue 或 man mingetty 查看特殊代碼的意思
/etc/motd 使用者登入後擷取訊息
系統設定值:
/etc/sysconfig/i18n 語係數據
/etc/profile PATH、USER、MAIL、HOSTNAME、HISTSIZE、umask等重要變數,規定讀取其他檔案,如/etc/profile.d和/etc/inputrc等
登陸Shell:
使用者登入Linux系統時所取得的那個shell,對應於/etc/passwd裡面的最後一項資料。比如,我想讓使用者atom登陸後直接開啟vi,則在/etc/passwd裡atom對應的那一行最後的一項內容改為/usr/bin/vi就行了。
3. Linux常用文本處理工具總結
a) cut –d ‘分隔字元’ –f fields,取出以“分隔字元”分割的第fields段
cut –c 欄位範圍 以字元為單位取出固定的字元範圍
b) cat /etc/passwd | sort –t ‘:’ –k 3 –n
-t,分隔字元,預設是tab鍵;-k,第幾個欄位;-n,使用“純數字”排序
c) 其他,wc [-lwm]; uniq [-ic]; tee [-a],雙向重新導向
d) 字串轉換命令:tr, col, join(合并兩個檔案中相同的資料),paste(直接將兩行貼在一起), expand(將[tab]轉成空格鍵)
e) split 拆分檔案
f) -(減號) 某些命令需要用到檔案名稱來處理是,stdin與stdout可以利用減號“-”來替代。
4. awk學習總結
awk是“以行為單位處理”,而“以欄位為最小的處理單位”。
變數名稱 代表的含義
NF 每一行($0)擁有的欄位總數
NR 當前處理的是“第幾行”資料
FS 分隔字元,預設為空白格鍵
可以使用BEGIN關鍵詞預先設定awk的變數,如:
cat /etc/passwd | awk 'BEGIN{FS=":"} $3 < 10 {print $1 "\t" $3}'
說明:在{}的所有操作,如需多個命令,可用分號(;)分割,或者直接以[enter]按鍵來隔開每個命令。
5. Shell指令碼的追蹤與調試
sh [-nvx] scripts.sh
-n 不執行指令碼,僅查詢文法問題
-v 在執行指令碼前,先將指令碼的內容輸出到螢幕上
-x 將使用的指令碼內容顯示到螢幕上,便於調試