1. 程式人生 > >Linux中符號總結

Linux中符號總結

entos a-z each || 取反 結果 範圍 www. anti

常用符號
~ 登陸用戶當前的家目錄
. 當前目錄
.. 當前目錄的上一級目錄
cd - 返回上一次的目錄
; 命令分隔符
# 表示註釋
? 通配符中表示任意一個字符
* 通配符中表示任意字符
$ 獲取變量內容
` `和$( ) 都是取命令運行後的結果
&& 表示且的關系
|| 表示或的關系
! 表示非的關系(find與awk中表示取反,linux命令行表示歷史記錄)
[ ] 通配符中表示表示一個範圍
{ } 通配符中表示產生一個序列
> 輸出重定向(覆蓋)
>> 追加重定向
< 輸入重定向
<< 追加輸入重定向
2> 錯誤輸入

正則表達式符號
^a 以a字符開頭
a$ 以a字符結尾
^$ 匹配空行
\ 轉義字符
. 點表示匹配單個字符
a* 重復a零次或多次
.* 匹配所有字符
^.* 以任意字符開頭
.*$ 以任意字符結尾
[abc] 匹配a或b或c字符
[^abc] 不匹配abc字符
[0-9] 匹配數字
[a-zA-Z] 匹配字母
a{n,m} 重復a字符n到m次
a{n} 重復a字符n次
a{n,} 重復a字符至少n次
| 擴展正則表達式,表示或
+ 擴展正則表達式,表示重復一次或多次
擴展正則表達式用egrep或grep -E

[ ]與{ }區別
[root@test ~]# echo test[0-9]
test[0-9]
[root@test ~]# echo test{0..9}
test0 test1 test2 test3 test4 test5 test6 test7 test8 test9


[ ] 表示一個整體 筐 裏面有多種可能 #或@或*正則表達式眼中 就認為 框裏面的東西(無論多少種)都是一樣的。 都是一個筐,例:
[root@test ~]# echo "###*****@@@@@#####1@@@@######@@@@@@@2**@@@@****"|egrep "[#@*]+"
###*****@@@@@#####1@@@@######@@@@@@@2**@@@@****
[root@test ~]# echo "###*****@@@@@#####1@@@@######@@@@@@@2**@@@@****"|egrep -o "[#@*]+"
###*****@@@@@#####
@@@@######@@@@@@@
**@@@@****
[root@test ~]# echo "###*****@@@@@#####1@@@@######@@@@@@@2**@@@@****"|awk -F "[#@*]+" ‘{print $2}‘
1

正則表達式練習文件
[root@Centos ~]# cat test.txt
I am oldboy teacher!
I trach linux.

I like badminton ball billiard ball and chinese chess!
my blog is http://oldboy.blog.51cto.com
our site is http://www.etiantian.com
My qq number is 49000448.

not 4900000048.
my god , i am not oldbey, but OLDBOY!

[root@web01 ~]# ifconfig eth0|sed -rn ‘s/^.*ddr:(.*) Bcas.*$/\1/gp‘ #sed取IP地址
[root@web01 ~]# ifconfig eth0|awk -F "[ :]+" ‘NR==2 {print $4}‘ #awk取IP地址

Linux中符號總結