Linux特殊符號的用法

來源:互聯網
上載者:User

標籤:特殊符號   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特殊符號的用法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.