一些易忘的linux知識點
收藏
0, 複習已經學過的Linux知識,整理了些容易忘掉了的放這
1, 命令列中一次可以輸入多個命令,中間以分號號隔開
2, 命令過長可以用'/'(backslash)斷開寫到多個物理行上
3, I/O重新導向的書寫順序是重要的,系統從左向右掃描命令列
4, 管道是一種特殊的I/O重新導向
5, tee三通管式命令 tee filename
6, 無字元[...]中例舉時無需空格隔開,區分大小寫
7, ls命令後面可以跟著多個要查看的檔案
8, echo 後面的引號等會被忽略,除非明確轉義
9, 雙引號不能轉義! $ ' / { }這些字元,單引號則可以
10, 命令曆史儲存在$HOME/.bash_history檔案中
11, fc -s 命令等價於!! 等價於!!-1
12, history -c 清空曆史命令
13, alias 命令中的等號左右不能有空格 取消別名可用unalias命令
14, jobs fg bg kill &命令用於多任務調度
15, 系統原始碼儲存在/usr/src中
16, linux對檔案名稱沒有強加任何約定,也不會對副檔名有任何解釋
17, od命令用於解讀二進位檔案,預設用8進位顯示
18, 硬串連要求兩個連結檔案在同一個檔案系統中,而符號連結則沒這要求
19, 三種建立檔案的方法:touch , >file ,echo >file
20, ls -k 用於指定大小以KB為單位,-R則指定遞迴顯示
21, Ctrl + V可以用來代表一個控制字元 如 mv fi^Vabc^Vdkf .. 當然也可以用單引號
22, cat命令還可以用來合并檔案 eg: cat chap1 chap2 chap3 > usrfile
23, more和less的一些命令鍵: iSpace, iEnter, id(上半) , iu(下半) , if, ib(more only) h(help)
24, head tail預設10行,可以顯式指明行數head|tail -|+12 file tail -f file動態顯示
25, cp,mv,rm : -i 提示 -f 強制 -r(rm沒有)遞迴 檔案,檔案夾都適用
26, ln 用於建立連結 -s命令指明軟連結(符號連結)
27, find ,grep後面都跟Regex find 起始目錄 檔案 -exec 命令{} /+|; {}代表搜尋結果
28, grep -inv patten file i:ignorecase n:顯示行號 v:取反,不包含
29, 正則表達示: .單字元 +至少一個字元 /轉義 ^$空行
30, sort -nkr n按數字 k關鍵列(-k5) r反序(大->小)
31, vi中shift+zz 等同於 Esc+:+wq!+Enter fedora:alias vi=vim
以下Shell編程方面
32, 系統每開啟一個進程都會執行~/.bashrc檔案,可以被使用者用來作一些功能的初始化
33, $?最近一次出口狀態;$#位置參數個數(不包括$0) ; 9以後要大括弧:${10} ;$$進程號;$_先前執行的命令的最後一個參數
34, #!作為shell標誌碼,通常寫在程式開頭,=號兩邊沒空格,環境變數用冒號分開
35, RANDOM , CDPATH, OLDPATH,PWD,PATH變數
36, 間接引用: res=${!var}或eva res=/$${var}
37, ${var},${var:+|-|=value},${var#|##|?|??Pattern},unset命令
38, exec內部命令兩個功能:I/O重新導向(不結束當前進程),執行不建立進程的命令(結束當前進程)
39, read 命令將多餘的資料全給最後一個參數,-s,-p(prompt) ,-n選項
40, set -- 後面未給出任何選項則清除所有位置變數,unset用於清除定義過的變數
41, let語句中未句引號,運算式之間不能有空格; (())可以有空格,也不必加引號,且傳回值即其中的變數
42, Base#NUmber表示以Base為底的數,Base取自2~64
43, 命令替換: $(command)或`command`,在echo中用命令替換要加雙引號,否則會丟掉輸出資料後的換行
44, 進程替換:<(command) , >(command) eg: diff <(ls -l doc1) <(ls -l doc2)
45, test語句:[],[[]]兩邊至少留一個空格,[]中需要轉義,[[]]不必.
46, 檔案屬性測試運算式:-a,-rwx,-fdcbpL(uppercase),-nt(newer than) -ot(older than) !邏輯非
47, 字串測試運算式: -z(zero) "! -z"(最好加引號), -n(字串必須加引號) = < > != (無空格)
48, 整數測試運算式:-eq -ne -gt -lt -ge -le eg: [[ "123" -eq "123" ]] 返回0(true)
49, 邏輯運算子: ( exp ) , ! exp ,-a(&&), -o(||) 字串比較時空值加引號,否則被忽略
50, ~+等價於$PWD ~~等價於$OLDPWD eg: echo ~+
51, case分支語句中的最後一個語句可以不加;; ,以esac標誌結尾
52, for,select語句中若沒有in語句,則接受命令列位置參數作參數表.
53, break [n], continue [n]文法功能類似於c/c++ 跳出外部第n層 break相當於break 1
54, shell指令碼中 ^[ 表示 Esc; here文檔可用:來注釋
55,shell函數中左右小括弧之間不能有空格。左右花括弧若在同一行,則前後要有兩個空格,同時每個語句後除了一個分號還必須至少有一個空格。