『無慾則無求』Linux常用命令 — 30、通配符or正則表達式or別名or常用快捷鍵

1、Linux中通配符與正則表達式區別

(1)通配符:

用於匹配文件名,是完全匹配。下面舉例說明:

  • ?:匹配一個任意字符。
  • *:匹配0個或任意多個任意字符,也就是可以匹配任何內容。
  • []:匹配中括號中任意一個字符。例如,[abc]代表一定匹配一個字符,或者是a,或者是b,或者是c。
  • [-]:匹配中括號中任意一個字符,-代表一個範圍。例如,[a-z]代表匹配一個小寫字母。
  • [^]:邏輯非,表示匹配不是中括號內的一個字符。例如,[^0-9]代表匹配一個不是數字的字符。
# 通過通配符查找文件
[root@localhost ~ ] # find . -name "abc*"
./abcd
./abc

[root@localhost ~ ]# find . -name "a?c"
./acc
./abc

其他同理

提示:只要是操作文件名或者目錄名的命令都可以是用通配符。如rm命令。

(2)正則表達式:

用於匹配字符串,是包含匹配。下面簡單舉例:

  • ?:匹配前一個字符重複0次,或1次(?是擴展正則,需要使用egrep命令。注shell分爲標準正則和擴展正則。)。
  • *:匹配前一個字符重複0次,或任意多次。
  • []:匹配中括號中任意一個字符。例如,[abc]代表一定匹配一個字符,或者是a,或者是b,或者是c。
  • [-]:匹配中括號中任意一個字符,-代表一個範圍。例如,[a-z]代表匹配一個小寫字母。
  • [^]:邏輯非,表示匹配不是中括號內的一個字符。例如,[^0-9]代表匹配一個不是數字的字符。
  • ^:匹配行首(限位符)。
  • $:匹配行尾(限位符)。

其中主要是是?和*,在通配符和正則表達式的不同。

關於*注意:
[root@localhost ~ ] # grep "a*" abc
向上面命令中,單寫一個字母+*是沒有任何意義的。結果會顯示文件中所有內容,包括空白行。
因爲*是匹配前一個字符重複0次,或任意多次。0次代表什麼都沒有,也就是沒有條件的篩選,所以就顯示文件彙總所有的內容。

[root@localhost ~ ] # grep "aa*" abc命令,則表示查找文件中包含有小寫字母a的行。和開頭無關,正則是含有匹配,包含就會被列出。

如果想要在正則當中去匹配開頭的內容,就需要使用限位符。如下:

[root@localhost ~]  # grep "^a" abc
abc
abc 123
abc123abc

[root@localhost ~]  # grep "^aa*" abc 和上面查詢結果也一樣。

小練習:

[root@localhost ~]# egrep"aaa?" abc
123aaaaabc
123aabc
上面證明是包含匹配

[root@localhost ~j# egrep "3aaa?b"abc
123aabc
[root@localhost ]#
如果只想要搜索兩個a的字符串,就需要使用限位符,其中的3和b都屬於限位符。
限位符是包括自己與其他字符串不匹配的任何字符的統稱。

2、Linux別名命令

(別名也是shell中的命令。)

命令的別名,就是命令的小名,主要是用於照顧管理員使用習慣的。

命令格式:

#查詢系統中命令別名
[root@localhost ~ ] # alias

#設定命令別名
[root@localhost ~ ] # alias 別名=’原命令’

例如:
#用ser別名,替代service network restart命令
[root@localhost ~ ] # alias ser = 'service network restart'

提示:

  • 1.別名的優先級是高於系統命令的。
  • 2.如果定義的別名和系統命令重疊了,該命令則不能執行了,只能執行別名所代替的命令了。所以在定義別名的時候,最好不要用系統命令。
  • 3.怎麼確定你定義的別名是否是系統命令,你就直接敲一下你定義的別名或這whereis + 別名,看看有沒有找到,如果沒有找到了,說明不是一個系統命令。

注意:用命令定義的別名,是臨時生效的,要想永久生效,需要寫入環境變量配置文件~/.bashrc。
這是說的第二個環境變量配置文件。注意的是,放在自己家目錄中的環境變量配置文件只對自己有效。

3、Linux中常用快捷鍵

  • Tab鍵:命令或文件補全
  • ctrl+A:把光標移動到命令行開頭。如果我們輸入的命令過長,想要把光標移動到命令行開頭時使用。
  • ctrl+E:把光標移動到命令行結尾。
  • ctrl+C:強制終止當前的命令。
  • ctrl+L:清屏,相當於clear命令。
  • ctrl+U:刪除或剪切光標之前的命令。我輸入了一行很長的命令,不用使用退格鍵一個一個字符的刪除,使用這個快捷鍵會更加方便。
  • ctrl+Y:粘貼ctrl+U剪切的內容。

(小寫即可。)
這些都是Linux系統的快捷鍵,每個遠程客戶端都支持。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章