1. 程式人生 > >linux-一些補充

linux-一些補充

alias

# 直接設定別名
alias cls=clear
# 如果命令包含空格,用引號包含,建議使用單引號
alias cp='cp -i'
# 取消別名
unalias cls

通過shell設定的別名生命週期跟隨shell生命週期,下次登入就會失效。

可通過修改配置檔案進行設定,並永久生效。

vim ~/.bashrc

然後就會明白,為什麼經常cpmvrm會有提示,因為就是被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:]] 標點符號
^ 補集
  • 字元理解
  1. 所謂集合

[]表示的就是集合。

[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