變數,在記憶體中的一段儲存空間
變數類型
1、本地變數
使用者當前shell中自己定義的變數,重新登入後消失
2、環境變數(export 查看系統中的變數)
長期存在,每個使用者都有自己的環境變數,如$PATH
3、特殊變數
$? 用於輸出上個命令執行的結果
0 代表執行成功
其他數字則是不成功
4、位置變數
代表特定位置的值,如在一個指令碼後的值,可以用$1..9
表示它的值
別名 :為了使用方便,把一些命令或執行路徑設成別名
alias 查看所有的別名
alias cde='cd /etc' 設定cde 別名,用於切換到/etc 目錄中,
不用每次都要完整的命令,這樣設定的別名只對當前登入有效,
重新登陸後變數消失,修改 ~/.bashrc 可以設定對本使用者永久
有效變數,如果root 想讓cde 對每個使用者都有效,修改 /etc/bashrc
添加alias cde='cd /etc' ,重啟系統後,使用者登入都可使用這個
變數。
unalias cde 用於撤銷別名,如果是修改的設定檔,要把那條命令
從中刪除
重新導向 (> 和>> , > 覆蓋原有內容,>> 追加內容進去,不會覆蓋)
標準輸出重新導向 > 把一個命令的執行結果傳遞給下一個位置,不在
螢幕上輸出,例 cat /etc/passwd > /tmp/1.txt
錯誤輸出重新導向2>把錯誤的結果,不在螢幕上輸出,輸出到其他位置
如 lss /etc/ 2> /tmp/err.txt
輸入重新導向 < 把後邊的結果,輸入到前邊,而不需要從鍵盤
中讀取輸入
自訂輸出位置,(如果要重複向一個檔案內寫資料,不用每次都用
完整的路徑名
exec 3 >(>>) /tmp/3.txt 用3代表/tmp/3.txt 這個檔案
ls /etc >&3 此處的>沒有覆蓋和追加的意義,只在定義的
時候用的是哪個
exec 3>&- 撤銷3這個自訂內容
管道 | 把前一個命令執行的結果當做後一個命令的輸入,從而使多個命令
連續執行
echo "----" | passwd --stdin username 這一條命令就可以修改
使用者的密碼
cut 該命令可以從一個檔案中提取出想要的內容,
cut -d: -f1..n /etc/passwd 可以從passwd 檔案中提取出所有
使用者的使用者名稱(n的值不同,取出的對應內容也不同),這樣可以
查看只想看到的內容,還可作為結果輸出給其他命令。
-d 分割內容的方式,常用的有:和“” ,
-fn 取出分割後對應的第幾段內容
-c n-m 以字元分割,n-m是取出第n段內容到第m段內容
grep 通過匹配Regex尋找文本
grep [options] 模式 argument
-i 不區分模式裡要求的大小寫
-v 與模式裡的內容相反
-n 結果輸出帶行號
-e 擴充的grep
-f fast grep
--color 高亮顯示尋找出來的文本,便於查看
grep 最難的是如何寫好自己的模式,及合理的使用Regex,達到輸出的結果
Regex總結
^ 匹配的內容必須在行首
$ 匹配的內容必須在行尾
^$ 匹配Null 字元
. 匹配任意單個字元
* (ab*c)匹配b出現的次數,可以出現0-n次
\ 轉意字元(特殊字元的本身,沒有其他意義)
\{..\} ac\{1,3\} ac出現1-3次
\(..\) \(ab\).*\1 就是為了後邊用到ab 有\num 顯示 (ab+任一字元+ab)
本文出自 “殘雪” 部落格