linux 管道符 特殊符號

2021-08-21 10:19:32 字數 3937 閱讀 8529

1、管道符:

管道「|」可將命令的結果輸出給另乙個命令作為輸入之用:

cat *.dat|grep 2018 //(顯示dat檔案裡的資訊,在dat檔案裡顯示條件帶有2018的資訊)

2、連線符號: 「;」

連續執行多個命令,放在一行執行,中間用「;」分開

mkdir myfile;mv myfile /data1/conf (建立myfile目錄,把myfile目錄移動到data1/conf路徑下)

3、後台執行: 「&」

使用者有時候執行命令要花很長時間,可能會影響做其他事情。最好的方法是將它放在後台執行。後台執行的程式在使用者登出後系統還可以繼續執行。當要把命令放在後台執行時,在命令的後面加上「&」

4、斜線: /

在路徑表示中代表目錄

cd /data1/conf/

單一的/,代表root根目錄

在運算中,代表除法

a=10/2

5、反斜線: \

放在指令前,有取消 aliases的作用;放在特殊符號前,該特殊符號的作用消失,;放在指令的最末端,表示指令連線下一行。

$cat data2

the cost is $4.00

$sed -n '/ \ $ /p'data2

the cost is $4.00

6、井號: #

#:管理員

$:普通使用者

指令碼中的:#號是注釋

如果被用在指令中,或者引號雙引號括住的話,或者在倒斜線的後面,那他就變成一般符號,不具上述的特殊功能。

7、點: .(dot)

. 代表當前目錄

.. 代表上層目錄

如果在檔名稱前有 . ,需要ls -a 才會顯示

特殊字元點號用來匹配除換行符之外的任意單個字元。它必須匹配乙個字元,如果在點號字元的位置沒有字元,那麼模式就不成立

cat data2

this is a test of a line .

the cat is sleeping .

that is a vey nice hat .

this test is at line four .

at ten o'clock we'll go home .

$sed -n '/.at/p' data2

the cat is sleeping .

that is a vey nice hat .

this test is at line four .

匹配了第二行,第三行,第四行,因為匹配的是at,第四行的空格也是字元,因此at前面的空格剛好匹配了該模式,第五行,at放在首行就不能匹配該模式

8、逗號: ,

在運算中當做區隔的用途

a=5+3,b=3+2

9、驚嘆號: !

代表反邏輯的作用,!= :代表不等於

ls a[!0-9]

顯示除了a0、a1.......a9的其他檔案

10、問號: ?

問號表明前面的字元可以出現0次或1次,不包含null字元

ls da?ta

11、星號: *

常用的符號,在檔名擴充套件上,用來代表任何字元,包含null字元

# ls a*a a1 access_log

在運算時。它代表「乘法」

let 「aa=2*3」

除了內建指令let,還有乙個關於運算的指令expr,星號在這裡也擔任「乘法」的角色,不過在使用上,它的前面必須加上escape字元

12、錨字元:(^)

這個符號在正規表示式中,代表行的「開頭」位置,在中也與「!」(嘆號)一樣表示「非」

13、連續分號:(;;)

專用在case的選項,擔任terminator的角色

case "$fop" inhelp) echo "usage: command -help -version filename";;version) echo "version 0.1" ;;esac

14、'string'單引號

被單引號用括號括住的內容,將被視為單一字串。在引號內的代表變數的$符號,沒有作用,被視為一般符號處理,防止任何變數替換

heyyou=homeecho '$heyyou' # we get $heyyou

15、"string"雙引號

被雙引號括住的內容,將被視為單一字串,防止萬用字元擴充套件,但允許變數擴充套件,這點與單引號的處理方式不同

heyyou=homeecho "$heyyou" # we get home

16、 `command` 倒引號

在前面的單雙引號,括住的是字串,但如果該字串是一列命令列,要處理這種情況,得用倒單引號來做

aa=`date + %f` echo "today $aa"

在倒引號內的date + %f 會被視為指令,執行的結果會被帶入aa變數中

17、**次方運算

兩個星號在運算時代表「次方」的意思

let "aaaa=2**3"

echo "aaaa=$aaaa" 結果:8

18、輸出/輸入重導向

>     >>     <     <<     :>     &>     2&>      2<>>&     >&2

檔案描述,用乙個數字(通常為0-9)來表示乙個檔案

常用的檔案描述符如下:

檔案描述符               名稱                常用縮寫                預設值

0                      標準輸入              stdin                     鍵盤

1                      標準輸出              stdout                   螢幕

2                  標準錯誤輸出           stderr                   螢幕

我們簡單的用《或》 時,相當於使用0《或1>

* cmd > file

把cmd命令的輸出重定向到檔案file中。如果file已經存在,則清空原有檔案,使用bash的noclobber選項可以防止覆蓋原有檔案。

* cmd >> file

把cmd命令的輸出重定向到檔案file中,如果file已經存在,則把資訊加在原有檔案後面。

* cmd < file

使cmd命令從file讀入

* cmd << text

從命令列讀取輸入,直到乙個與text相同的行結束。除非使用引號把輸入括起來,此模式將對輸入內容進行shell變數替換。如果使用<<- ,則會忽略接下來輸入行首的tab,結束行也可以是一堆tab再加上乙個與text相同的內容,可以參考後面的例子。

* cmd <<< word

把word(而不是檔案word)和後面的換行作為輸入提供給cmd。

* cmd <> file

以讀寫模式把檔案file重定向到輸入,檔案file不會被破壞。僅當應用程式利用了這一特性時,它才是有意義的。

* cmd >| file

功能同》,但即便在設定了noclobber時也會覆蓋file檔案,注意用的是|而非一些書中說的!,目前僅在csh中仍沿用》!實現這一功能。

: > filename      把檔案"filename"截斷為0長度.# 如果檔案不存在, 那麼就建立乙個0長度的檔案(與'touch'的效果相同).

cmd >&n 把輸出送到檔案描述符n

cmd m>&n 把輸出 到檔案符m的資訊重定向到檔案描述符n

cmd >&- 關閉標準輸出

cmd <&n 輸入來自檔案描述符n

cmd m<&n m來自檔案描述各個n

cmd <&- 關閉標準輸入

cmd <&n- 移動輸入檔案描述符n而非複製它。(需要解釋)

cmd >&n- 移動輸出檔案描述符 n而非複製它。(需要解釋)

注意: >&實際上覆制了檔案描述符,這使得cmd > file 2>&1與cmd 2>&1 >file的效果不一樣。

LINUX特殊符號

1 代表賬戶中的home目錄,代表使用者的home目錄 1 當前的工作目錄,符號代表當前的工作目錄。上次的工作目錄,符號代表上次的工作目錄。2 表現形式為 引用變數 1 保留每個引用變數的區段觀念。4 表示普通使用者 變數替換表現符號 1常用在grep sed awk 以及 vim vi 當中。5 ...

linux 特殊符號

前面執行成功後面才會執行 並且 前面執行成功就不執行後面的,前面執行不成功,就執行後面的 管道符,作用是將管道符左邊的標準輸出 交給管道符右邊 標準輸入 來處理 連續條件的分割 不連續條件的分割 表示或者的意思 a 呼叫a的變數,同乙個命令列裡面多次呼叫變數最好用 把變數括起來 先執行 裡面的 反引...

linux特殊符號

含義 方便我們查詢檔案 萬用字元是用來找檔案名字 大部分命令都支援 例子 找出 oldboy 以.sh結尾 修改時間是7天之前的 大於100k 小於10m的檔案 find oldboy type f name sh mtime 7 size 100k size 10m 所有 任何內容 任何符號 任何...