標籤:特殊符號 linux
Linux特殊符號
===========================================================================================
$ 號
通常代表變數的意思
echo $變數名=變數值
= 等號
一般定義變數時候用到
例如[[email protected] aaa]# abc=/etc/passwd
[[email protected] aaa]# echo $abc
/etc/passwd
^
這個符號在規則運算式中,代表行的 "開頭" 位置
例如[[email protected] aaa]# grep "^a" 111
acbac0aaa
abcwwdwww
# 井號
1、常出shell指令碼一行的開頭,或者表示為注釋資訊,這類情況表示符號後面的是文字,不會被執行。
例如:# This line is comments.
2、或者來注釋掉命令,不讓此命令執行
例如:#echo "www.baidu.com" >/root/abc
;分號
命令1;命令2 :表示前面的命令執行是否成功,都執行後面的命令,相當於斷行符號,可以執行多個命令
例如:[[email protected] /]# cd /root/ ;ls -l
總計 84
-rw-r--r-- 1 root root 4 09-29 14:55 1.txt
;;雙分號
專用在 case 的選項,擔任 Terminator 的角色。不做過多解釋
&
表示作業控制,將前台命令調到後台
&& 符號,邏輯與
命令1 && 命令2 :左邊的命令1執行成功,右邊的命令2才執行。如果左邊的命令1執行不成功,右邊的命令2不執行
例如:
[[email protected] ~]# echo "abc" >>/root/1.txt && ls -l /root/1.txt
-rw-r--r-- 1 root root 4 09-29 14:55 /root/1.txt
如果目錄裡沒有1.txt這個檔案,命令會自動建立然後追加abc到1.txt
| 管道
命令1 | 命令2 :前面命令的輸出結果,作為後面命令的輸入
例如:[[email protected] /]# cat /etc/passwd |wc -l
38
|| 雙管道,邏輯或
命令1 || 命令2 :左邊的命令1執行成功,右邊的命令2就不執行。如果左邊的命令1執行不成功,右邊的命令2才執行
例如:
[[email protected] ~]# ls -l www.txt || touch www.txt
ls: www.txt: 沒有那個檔案或目錄
例如:[[email protected] ~]# ls -l www.txt || echo "yes"
-rw-r--r-- 1 root root 0 09-29 15:03 www.txt
’‘單引號
單引號裡面的內容被視為普通符號處理,防止任何變數替換
例如:$www=www.baidu.com
[[email protected] ~]# echo "$www"
www.baidu.com
[[email protected] ~]# echo ‘$www‘
$www
" "雙引號
被雙引號用括住的內容,將被視為單一字串,防止萬用字元擴充,但允許變數擴充。
例如:$www=www.baidu.com
[[email protected] ~]# echo "$www"
www.baidu.com
例如:echo "\"/root/www/"\"
"/root/www/"
"\\":反斜線轉換特殊字元
"\"//"\" 反斜線
轉換特殊符號
例如:echo "\"/root/www/"\"
"/root/www/"
` `反撇號,倒引號 == $ ()
`命令`:反撇號裡面是要執行的命令
例如1、[[email protected] ~]# fdv=`date +%F`;echo "Today $fdv"
Today 2014-09-29
例2、[email protected] /]# fdv=$(date +%F);echo "Today $fdv"
Today 2014-09-29
*號
匹配任意長度的任意符號
例如:ls /root/*.txt
1.txt aaa.txt www.txt
**號
表示次方運算
例如:[[email protected] ~]# let b=4**2 ;echo $b
16
?問號
匹配單個字元的單個長度
例如:[[email protected] ~]# ls /root/?.txt
/root/1.txt
,逗號
這個符號常運用在運算當中當做"區隔"用途
。句號
表示隱藏檔案或者是目前的目錄,沒多大用,不多解釋
:冒號
通常在指令碼中做間隔作用
!歎號
邏輯運算意義上的“非”的意思,主要用於awk中
_短橫杠,俗稱減號
一般是cd命令裡面的回到上次工作目錄的意思
或者作為運算子號
~ 波浪號
一般用於cd命令
[]中括弧
[[email protected] aaa]# ls
a d f fh h r
[abcd]裡面代表一定有一個字元 或者是a 或者是b 或者···是括弧裡面其中一個字元符合就顯示
[[email protected] aaa]# ls -l [abcd]
-rw-r--r-- 1 root root 0 10-02 19:49 a
-rw-r--r-- 1 root root 0 10-02 19:49 d
表示一個連續的組合
[[email protected] aaa]# ll *[0-9]*
-rw-r--r-- 1 root root 0 10-02 19:18 1
-rw-r--r-- 1 root root 5 10-02 19:18 111
-rw-r--r-- 1 root root 0 10-02 19:18 2
-rw-r--r-- 1 root root 0 10-02 19:28 w323ewq
[-]
表示從-前連續匹配到-後,如果沒有就不顯示繼續匹配下一個直到連續的字元結束,然後顯示匹配到的值
例如
[[email protected] aaa]# ll [1-3]表示1-3之間的所有數字
-rw-r--r-- 1 root root 0 10-02 19:18 1
-rw-r--r-- 1 root root 0 10-02 19:19 3
[^]
表示取反的意思
[[email protected] aaa]# ll [^1-5]匹配除了1到5隻之外的所有數字都匹配
-rw-r--r-- 1 root root 0 10-02 19:19 6
-rw-r--r-- 1 root root 0 10-02 19:19 7
-rw-r--r-- 1 root root 0 10-02 19:19 8
-rw-r--r-- 1 root root 0 10-02 19:19 9
()小括弧
一般表示在一個shell語句中子shell的起始
[[email protected] aaa]# awk ‘{if ($0~/abc/) print $1}‘ 111
abc
{}大括弧
中間為命令塊的組合
例1、
cat 111 |awk ‘{print $0}‘
例2、
表示一個集合
[[email protected] aaa]# touch {1..9}{a,b,c}
[[email protected] aaa]# ls
1a 1b 1c 2a 2b 2c 3a 3b 3c 4a 4b 4c 5a 5b 5c 6a 6b 6c 7a 7b 7c 8a 8b 8c 9a 9b 9c
/ 斜杠:1、表示目錄的路徑的意思+ 加法運算子 - 減法運算子\* 乘法運算子/除法運算子%取餘運算子
例如: echo "/etc/passwd/"
/etc/passwd
例如:[[email protected] ~]# x=100
[[email protected] ~]# a=30
[[email protected] ~]# expr $x + $a
130
[[email protected] ~]# expr $x - $a
70
[[email protected] ~]# expr $x \* $a
3000
[[email protected] ~]# expr $x / $a
3
[[email protected] ~]# expr $x % $a
10
檔案描述符 名稱 常用縮寫 預設值
0 標準輸入 stdin 鍵盤
1 標準輸出 stdout 螢幕
2 標準錯誤輸出 stderr 螢幕
我們在簡單地用<或>時,相當於使用 0< 或 1>
1>表示正確的輸出
0>表示正確的輸出
> 將輸出的內容添加到文字檔內,並覆蓋原有
>> 將輸出的內容結果追加到文字檔內,不會覆蓋原有
>test.txt 若有test.txt這個檔案,則清空檔案內所有內容
若沒有test.txt檔案,則建立一個test.txt檔案
<資料流重新導向:將內容事先儲存在一個檔案中,需要裡面的數值時候,指定檔案路徑,系統可自動檢測讀取
<<輸入導向
&>或者2>&1 將輸出的正確資訊與錯誤資訊添加到同一個文字檔內,並覆蓋原有
&>> 將輸出的正確資訊與錯誤資訊添加到同一個文字檔內,並追加進去
2> 將輸出的錯誤資訊添加到文字檔內,並覆蓋原有
2>> 將輸出的錯誤資訊追加到文字檔,不會覆蓋原有
echo "www">1.txt 2>2.txt 表示將正確的資訊輸入到1.txt檔案中,將錯誤的資訊輸入到2.txt檔案中
儲存錯誤的資訊可以2> /dev/null
cat > www
www.baidu.com
www.taobao.com
按Ctrl+d退出
然後你輸入的資訊就會儲存在www這個檔案中
cat > www << "eof"
www.baidu.com
www.taobao.com
eof不需要按Ctrl+d退出
立即就結束了
$# 表示命令列中位置參數的個數
例:
[[email protected] ~]# vim test.sh
#!/bin/bash
#
echo "當前的位置變數是:$1"
echo "當前的位置變數是:$2"
echo "當前的位置變數是:$3"
echo "當前的位置變數是:$4"
echo $#
[[email protected] ~]# ./test.sh a b c d
當前的位置變數是:a
當前的位置變數是:b
當前的位置變數是:c
當前的位置變數是:d
4統計出運用了幾個位置變數參數
$* 表示所有位置參數的內容
例:
[[email protected] ~]# vim test.sh
#!/bin/bash
#
echo "當前的位置變數是:$1"
echo "當前的位置變數是:$2"
echo "當前的位置變數是:$3"
echo "當前的位置變數是:$4"
echo $*
[[email protected] ~]# ./test.sh a b c d
當前的位置變數是:a
當前的位置變數是:b
當前的位置變數是:c
當前的位置變數是:d
a b c d 顯示出位置變數的內容(值)
$? 表示前一條命令執行後的返回狀態,傳回值為0表示執行正確,非0值為執行錯誤
例1、
[[email protected] /]# ls www
ls: www: 沒有那個檔案或目錄
[[email protected] /]# echo $?
2
例如:[[email protected] ~]# cat /etc/passwd
[[email protected] ~]# echo $?
0返回的值為0,表示前面執行的命令cat /etc/passwd是正確的
$0 表示當前執行的指令碼或程式的名稱
例:
[[email protected] ~]# vim test.sh
#!/bin/bash
#
echo "當前的位置變數是:$1"
echo "當前的位置變數是:$2"
echo "當前的位置變數是:$3"
echo "當前的位置變數是:$4"
echo $0
[[email protected] ~]# ./test.sh a b c d
當前的位置變數是:a
當前的位置變數是:b
當前的位置變數是:c
當前的位置變數是:d
./test.sh 顯示執行的指令碼或是程式
本文章符號在簡單或普通的指令碼中已經夠用了,還有些特殊符號涉及到某些命令,我會在特定的命令中再次補充說明。
好了!現在大概就知道這麼多符號,或許有些特殊符號我還沒瞭解到,如果有不足之處還望各位讀者多多包涵,相互學習吧。
謝謝支援!
本文出自 “LinuxCBB” 部落格,請務必保留此出處http://linuxcbb.blog.51cto.com/9434555/1560411
Linux特殊符號的用法