linux-一些補充
阿新 • • 發佈:2018-11-21
alias
# 直接設定別名
alias cls=clear
# 如果命令包含空格,用引號包含,建議使用單引號
alias cp='cp -i'
# 取消別名
unalias cls
通過shell
設定的別名生命週期跟隨shell
生命週期,下次登入就會失效。
可通過修改配置檔案進行設定,並永久生效。
vim ~/.bashrc
然後就會明白,為什麼經常cp
,mv
, rm
會有提示,因為就是被alias
了。
具體問題和解決辦法可以看一下這個東西。
結果引用
$(cmd)
:引用命令執行結果
形式 | 作用 |
---|---|
$(cmd) |
命令執行結果引用 |
cmd |
命令執行結果引用 |
別問我為什麼用
黑體+下劃線
,因為重點標記是用反引號進行包含的。反引號裡面用反引號,老是自己就匹配上了,轉義都沒用,我能怎麼辦,臣妾也很無奈啊。
如果有知道的老兄,給我一點指引吧。
- 列印當前目錄
echo "the dir absolutely path is $(pwd)."
- 建立日期檔案
touch godme.txt.$(date +%Y-%H-%d)
日誌檔案都是這樣,每天建立一個,既分割檔案,又標記日期,不要太方便
{}
展開touch {godme,foreva,judas}.txt.`date+%Y-%H-%d`
會建立三個,同字尾的檔案就能一次性全部建立完成了。
{}
中的資料別帶空格
,要不效果對不上的啊
- 分配率
mkdir {a,b}_{c,d}_{e,f}
會建立五個資料夾,資料夾元素可以理解為
(a+b)(c+d)(e+f)
乘開之後的因子。也可以理解為巢狀迴圈,一層一層的會慢慢遍歷。
引號
符號 | 名稱 | 詳細 |
---|---|---|
"" |
雙引號 | 弱引用,中間可做變數引用 |
'' |
單引號 | 強引用 自帶 "轉義" 純字串 無引用 |
`` | 反引號 | 命令替換 引用命令 |
別問為什麼
u+b
,反引引反引不太會。
萬用字元
符號 | 說明 |
---|---|
* |
任意長度任意字元 |
? |
任意長度單個字元 |
[] |
空集合 |
[a-z] |
小寫字母 |
[[:lower:]] |
``[a-z]` |
[A-Z] |
大寫字母 |
[[:upper:]] |
[A-Z] |
[[:alpha:]] |
[a-zA-Z] |
[0-9] |
數字 |
[[:digit:]] |
[0-9] |
[[:alnum:]] |
[a-zA-Z0-9] |
[[:space:]] |
空白字元 |
[[:punct:]] |
標點符號 |
^ |
補集 |
- 字元理解
- 所謂集合
[]
表示的就是集合。
[abc]
表示的是三個字母。
[a-z]
表示的是範圍集合表示。
[:alpha:]
表示的是字元類別,相當於a-z
。但不論是
範圍表示
還是類別表示
,最後必須是集合。所以必須用
[]
包括,於是有了[[:alpha:]]
。
- 字元取反
對集合內部進行取反,理解了
類別表示
,就能輕易理解了。
[^[:alpha:]]
,對元素取反,沒問題。
- 空白匹配
空白匹配關鍵不在於匹配,而是怎麼不用空白來匹配空白。
當使用到
空白
的時候,命令中就不得不使用引號,但是又變得不能正則泛化。ls [[:alnum:]]*[[:space:]]*[[:alnum:]]
通過
類別
進行表示,就可以用有
來進行無
的表示,省去一個麻煩。
更多資訊,可以通過man 7 glob
進行檢視。
man 1 sh
man 3 glob
man 3 fnmatch
man 7 locale
man 7 regex