了解Linux命令 - 完整

名稱

bash ,alias, bg ,bind,break,builtin, cd ,command,compgen,complete,continue,declare,dirs,disown,echo,enable,eval,exec,exit,export,fc,fg,getopts, hash ,help, 歷史 ,作業, ,讓,本地,註銷, popd , printf ,pushd, pwd ,讀,只讀, 返回 ,設置,轉變,shopt,源,暫停,測試,時間,陷阱,類型,排版,ulimit,umask, unalias ,unset, wait -bash內置命令,參見bash (1)

Bash Builtin命令

除非另有說明,否則本節中記錄的每個內置命令均作為接受選項,前面有-接受-表示選項結束。

[ 參數 ]

沒有效果; 該命令除了擴展參數和執行任何指定的重定向之外什麼都不做。 返回零退出代碼。

文件名 [ 參數 ]

文件名 [ 參數 ]

在當前shell環境中從文件名讀取並執行命令,並返回從文件名執行的最後一個命令的退出狀態。 如果文件名不包含斜線,則使用PATH中的文件名來查找包含文件名的目錄。 在PATH中搜索的文件不需要是可執行文件。 當bash不處於posix模式時 ,如果在PATH中找不到文件,則搜索當前目錄。 如果關閉shopt內建命令的sourcepath選項,則不會搜索PATH 。 如果提供了任何參數 ,則在執行文件名時它們將成為位置參數。 否則,位置參數不變。 返回狀態是腳本中退出的最後一個命令的狀態(如果沒有執行命令,則為0),如果文件名未找到或無法讀取,則返回false。

別名 [ -p ] [ 名稱 [= ] ...]

不帶參數的別名或帶-p選項的別名在標準輸出上打印別名列表alias name = value 。 當提供參數時,為每個給定值的 名稱定義一個別名。 的尾部空格會導致在別名展開時檢查下一個單詞以進行別名替換。 對於未提供任何的參數列表中的每個名稱 ,將打印別名的名稱和值。 別名返回true,除非給出了一個沒有定義別名的名字

bg [ jobspec ]

在後台恢復掛起的作業jobspec ,就好像它已經以開頭。 如果jobspec不存在,則使用shell的當前作業概念。 bg jobspec返回0,除非在作業控制被禁用時運行,或者在啟用作業控制的情況下運行時,如果找不到jobspec ,或者沒有作業控制就啟動jobpec

綁定 [ -m keymap ] [ -lpsvPSV ]

綁定 [ -m keymap ] [ -q 功能 ] [ -u 功能 ] [ -r keyseq ]

綁定 [ -m keymap ] -f 文件名

bind [ -m keymap ] -x keyseqshell-command

綁定 [ -m keymap ] keyseq函數名稱

綁定 readline命令

顯示當前的readline鍵和函數綁定,將鍵序列綁定到readline函數或宏,或者設置readline變量。 每個非選項參數都是一個命令,因為它將出現在.inputrc中 ,但每個綁定或命令都必須作為單獨的參數傳遞; 例如''\ Cx \ Cr':re-read-init-file'。 選項(如果提供)具有以下含義:

-m 鍵盤映射

使用鍵盤映射作為受後續綁定影響的鍵盤映射。 可接受的鍵盤映射名稱是emacs,emacs-standard,emacs-meta,emacs-ctlx,vi,vi-move,vi-commandvi-insertvi相當於vi-command ; emacs相當於emacs標準

-l

列出所有readline函數的名稱。

-p

顯示readline函數名稱和綁定,以便可以重新讀取它們。

-P

列出當前的readline函數名稱和綁定。

-v

以可重讀的方式顯示readline變量名稱和值。

-V

列出當前的readline變量名稱和值。

-s

顯示綁定到宏的readline鍵序列和它們輸出的字符串,以便可以重新讀取它們。

-S

顯示綁定到宏的readline鍵序列及其輸出的字符串。

-f 文件名

文件名讀取密鑰綁定。

-q 功能

查詢哪些鍵調用了命名函數

-u 功能

解除綁定到指定函數的所有鍵。

-r keyseq

刪除keyseq的當前綁定。

-x keyseqshell-command

導致在輸入keyseq時執行shell命令

除非發生無法識別的選項或發生錯誤,否則返回值為0。

休息 [ n ]

forwhileuntilselect循環中退出。 如果指定了n ,則打破n個級別。 n必須大於1.如果n大於封閉循環的數目,則退出所有封閉循環。 返回值是0,除非shell在執行中斷時沒有執行循環。

內建 貝殼內臟 [ 論點 ]

執行指定的shell內建函數 ,傳遞參數並返回其退出狀態。 當定義一個名稱與shell內建函數相同的函數時,這非常有用,它保留了函數中內置函數的功能。 cd內建通常以這種方式重新定義。 如果shell-builtin不是shell內置命令,則返回狀態為false。

cd [ -L | -P ] [ dir ]

將當前目錄更改為目錄 。 變量HOME是默認的目錄 。 變量CDPATH定義包含目錄的目錄的搜索路徑。 CDPATH中的替代目錄名稱用冒號(:)分隔。 CDPATH中的空目錄名稱與當前目錄相同,即“` ''。 如果dir以斜杠(/)開始,則不使用CDPATH-P選項表示使用物理目錄結構而不是後面的符號鏈接(另請參閱set builtin命令的-P選項); -L選項強制遵循符號鏈接。 參數-相當於$ OLDPWD 。 如果目錄成功更改,則返回值為true; 否則為假。

命令 [ -pVv ] 命令 [ arg ...]

使用args運行命令 ,抑制正常的shell函數查找。 只執行PATH中的內建命令或命令。 如果給出-p選項,則使用默認值PATH執行搜索命令 ,該值保證可以找到所有標準實用程序。 如果提供-V-v選項,則會打印命令的說明。 -v選項會導致一個單詞指示用於調用命令的命令或文件名將被顯示; -V選項會產生詳細的描述。 如果提供-V-v選項,則如果找到命令 ,則退出狀態為0,否則為1。 如果沒有提供任何選項並且發生錯誤或者找不到命令 ,則退出狀態為127.否則, 命令 builtin的退出狀態為命令的退出狀態。

compgen [ 選項 ] [ ]

根據選項 s為單詞生成可能的完成匹配,該選項可能是完整內部接受的任何選項,但-p-r除外,並將匹配寫入標準輸出。 當使用-F-C選項時,由可編程完成工具設置的各種shell變量雖然可用,但不會有有用的值。

匹配的生成方式與編程完成代碼直接從具有相同標誌的完成規範生成它們的方式相同。 如果指定了單詞 ,則只會顯示與單詞匹配的完成。

除非提供了無效選項或者沒有生成匹配,否則返回值為true。

完成 [ -abcdefgjksuv ] [ -o comp-option ] [ -A 動作 ] [ -G globpat ] [ -W 詞彙表 ] [ -P 前綴 ] [ -S 後綴 ]


[ -X filterpat ] [ -F 功能 ] [ -C 命令 ] 名稱 [ 名稱... ]

完成 -pr [ 姓名 ...]

指定應如何完成每個名稱的參數。 如果提供了-p選項,或者沒有提供選項,則現有完成規範的打印方式允許將它們重新用作輸入。 -r選項刪除每個名稱的完成規範,或者如果沒有提供名稱 ,則為所有完成規範。

上面在可編程完成時描述了當完成字完成時應用這些完成規範的過程。

其他選項(如果指定)具有以下含義。 應該引用-G-W-X選項的參數(以及必要時的-P-S選項),以在調用完整的內建之前保護它們免於擴展。

-o comp-option

comp-option控制compspec行為的幾個方面,超越了簡單的完成生成。 comp-option可以是下列之一:

默認

如果compspec不生成匹配,請使用readline的默認文件名完成。

dirnames中

如果compspec生成不匹配,則執行目錄名稱完成。

文件名

告訴readline,compspec生成文件名,因此它可以執行任何文件名特定的處理(如向目錄名添加斜杠或抑制尾隨空格)。 打算與shell函數一起使用。

沒有空間

告訴readline不要在行尾添加空格(缺省值)。

- 一個 行動

操作可能是以下操作之一,以生成可能的完成列表:

別號

別名。 也可以指定為-a

arrayvar

數組變量名稱。

捆綁

Readline鍵綁定名稱。

內置

shell內建命令的名稱。 也可以指定為-b

命令

命令名稱。 也可以指定為名稱。 也可以指定為-c

目錄

目錄名稱。 也可以指定為-d

已禁用的shell的內部名稱。

啟用

啟用的shell的內部名稱。

出口

導出的shell變量的名稱。 也可以指定為-e

文件

文件名稱。 也可以指定為-f

功能

shell函數的名稱。

組名。 也可以指定為-g

HELPTOPIC

幫助主題所接受的幫助內容

主機名

主機名,取自HOSTFILE shell變量指定的文件。

工作

作業名稱,如果作業控制處於活動狀態。 也可以指定為-j

關鍵詞

殼牌保留字。 也可以指定為-k

賽跑

運行作業的名稱(如果作業控制處於活動狀態)。

服務

服務名稱。 也可以指定為-s

SETOPT

集合內建的-o選項的有效參數。

禁用了javascript

外殼選項名稱被內置的shopt所接受。

信號

信號名稱。

停止

如果作業控制處於活動狀態,則停止作業的名稱。

用戶

用戶名稱。 也可以指定為-u

變量

所有shell變量的名稱。 也可以指定為-v

-G globpat

文件名擴展模式globpat被擴展以生成可能的完成。

-W 詞彙表

單詞表是使用IFS特殊變量中的字符作為分隔符分割的,每個結果單詞都被展開。 可能的完成項是與正在完成的單詞匹配的結果列表的成員。

-C 命令

命令在子shell環境中執行,其輸出被用作可能的完成。

-F 功能

shell函數功能在當前shell環境中執行。 完成後,可從COMPREPLY數組變量的值中檢索可能的完成項。

-X filterpat

filterpat是一種用於文件名擴展的模式。 它應用於由前面的選項和參數生成的可能完成列表,並從列表中刪除每個完成匹配filterpat 。 領先filterpat中否定模式; 在這種情況下,任何不匹配filterpat的完成都將被刪除。

-P 前綴

在應用了所有其他選項後,在每個可能的完成開始時添加前綴

-S 後綴

在應用了所有其他選項後,每個可能的完成都會附加後綴

除非提供了無效選項,否則返回值為真,除-p-r之外的選項不帶名稱參數,嘗試刪除沒有規範的名稱的完成規範或發生錯誤添加完成規範。

繼續 [ n ]

恢復封閉的下一次迭代, whileuntil ,或select循環。 如果指定了n ,則在第n個循環中繼續。 n必須大於1.如果n大於封閉循環的數目,則重新開始最後一個循環(“頂級”循環)。 返回值是0,除非shell在執行continue時沒有執行循環。

聲明 [ -afFirtx ] [ -p ] [ 名稱 [= ]]

排版 [ -afFirtx ] [ -p ] [ 名稱 [= ]]

聲明變量和/或賦予它們屬性。 如果沒有給出名稱,則顯示變量的值。 -p選項將顯示每個名稱的屬性和值。 當使用-p時 ,其他選項將被忽略。 -F選項禁止顯示功能定義; 只打印功能名稱和屬性。 -F選項意味著-f 。 可以使用以下選項將輸出限制為具有指定屬性的變量或賦予變量屬性:

-一個

每個名稱都是一個數組變量(參見上面的數組 )。

-F

僅使用函數名稱。

-一世

該變量被視為一個整數; 算術評估(請參閱算術評估)將在變量分配一個值時執行。

-r

名字只讀。 這些名稱不能通過後續的賦值語句賦值或取消設置。

-t

為每個名稱指定跟踪屬性。 跟踪函數繼承調用shell中的DEBUG陷阱。 trace屬性對變量沒有特殊含義。

-X

名稱標記為通過環境導出到後續命令

使用'+'而不是` - '可以關閉屬性,除了+ a不能用來銷毀數組變量。 在函數中使用時,使本地名稱本地命令一樣。 除非遇到無效選項,否則返回值為0,嘗試使用“-f foo = bar”定義函數,嘗試將值賦給只讀變量,嘗試進行要為數組變量賦值而不使用複合賦值語法(參見上面的數組 ),其中一個名稱不是有效的shell變量名,試圖關閉只讀變量的只讀狀態,嘗試關閉數組變量的數組狀態,或嘗試使用-f顯示不存在的函數。

dirs [-clpv ] [+ n ] [ - n ]

沒有選項,顯示當前記住的目錄列表。 默認顯示位於一行中,目錄名稱以空格分隔。 使用pushd命令將目錄添加到列表中; popd命令從列表中刪除條目。

+ n

顯示從dirs所示列表左側開始計數的第n個條目,當從零開始調用時不帶選項。

- n

顯示從dirs顯示的列表右側的第n個條目,該列表在從零開始調用時不帶選項。

-C

通過刪除所有條目來清除目錄堆棧。

-l

產生更長的列表; 默認的列表格式使用代字號來表示主目錄。

-p

用每行一個條目打印目錄堆棧。

-v

打印目錄堆棧,每行一個入口,每個入口的索引在堆棧中加前綴。

除非提供了無效選項,否則返回值為0,或者超出目錄堆棧末尾的n個索引。

disown [ -ar ] [ -h ] [ jobspec ...]

如果沒有選項,每個jobspec將從活動作業表中刪除。 如果給出-h選項,則每個jobspec都不會從表中刪除,但會被標記,以便在shell收到SIGHUP時不會將SIGHUP發送到作業。 如果沒有jobspec存在,並且沒有提供-a-r選項,則使用當前作業 。 如果沒有提供jobspec-a選項意味著刪除或標記所有作業; 沒有jobspec參數的-r選項將操作限制為正在運行的作業。 除非jobspec沒有指定有效的作業,否則返回值為0。

echo [ -neE ] [ arg ...]

輸出參數 ,用空格分隔,後跟換行符。 返回狀態始終為0.如果指定了-n ,則尾隨的換行符被抑制。 如果給出了-e選項,則會啟用對以下反斜線轉義字符的解釋。 -E選項禁用這些轉義字符的解釋,即使在默認解釋它們的系統上。 xpg_echo shell選項可用於動態確定echo是否在默認情況下擴展這些轉義字符。 迴聲不解釋-意味著選項的結束。 迴聲解釋以下轉義序列:

\一個

警報(鐘)

\ b

退格

\C

抑制尾隨換行符

。\ E

一個轉義字符

\F

形式飼料

\ n

新隊

\ r

回車

\ t

水平標籤

符\ v

垂直標籤

\\

反斜線

\ 0 nnn

值為八進制值nnn的八位字符(零到三個八進制數字)

\ nnn

值為八進制值nnn的八位字符(一到三個八進制數字)

\ x HH

其值為十六進制值HH的八位字符(一個或兩個十六進制數字)

啟用 [ -adnps ] [ -f 文件名 ] [ 名稱 ...]

啟用和禁用內置shell命令。 即使shell通常在磁盤命令之前搜索內建命令,禁用內建命令也會執行與shell內建命名相同的磁盤命令而不指定完整的路徑名。 如果使用-n ,則每個名稱都被禁用; 否則, 名稱已啟用。 例如,要使用通過PATH而不是shell內建版本找到的測試二進製文件,請運行``enable -n test''。 -f選項表示在支持動態加載的系統上從共享對象文件名中加載新的內置命令名稱-d選項將刪除以前用-f加載的內建程序。 如果未提供名稱參數,或者提供了-p選項,則會打印shell內建列表。 沒有其他選項參數,該列表包含所有已啟用的shell內置函數。 如果提供了-n ,則僅打印禁用的內置函數。 如果提供了-a ,則打印的列表將包含所有內置函數,並指示是否啟用每個內置函數。 如果提供了-s ,則輸出僅限於POSIX 特殊內置函數。

返回值為0,除非名稱不是shell內建的內容,或者從共享對象加載新內建時出錯。

eval [ arg ...]

參數被讀取並連接成一個命令。 該命令然後由shell讀取並執行,並且其退出狀態作為eval的值返回。 如果沒有參數或只有空參數,則eval返回0。

exec [ -cl ] [ -a 名稱 ] [ 命令 [ 參數 ]]

如果指定了命令 ,它將替換該shell。 沒有新的過程被創建。 論據成為命令的論據。 如果提供了-l選項,那麼shell會在第0個參數傳遞給命令的開始處放置一個破折號。 這是登錄 (1)所做的。 -c選項使命令在空白環境下執行。 如果提供-a ,那麼shell會將名稱作為執行命令的第零個參數傳遞。 如果由於某種原因無法執行命令,則會退出非交互式shell,除非啟用了shell選項execfail ,否則會返回失敗。 如果文件無法執行,交互式shell將返回失敗。 如果未指定command ,則任何重定向在當前shell中生效,並且返回狀態為0.如果存在重定向錯誤,則返回狀態為1。

退出 [ n ]

導致shell以狀態n退出。 如果省略n ,則退出狀態是最後執行的命令的狀態。 EXIT上的陷阱在shell終止前執行。

導出 [ -fn ] [ name [= word ]] ...

導出 -p

提供的名稱被標記為自動導出到隨後執行的命令的環境。 如果給出-f選項,則名稱是指函數。 如果未給出名稱 ,或者提供了-p選項,則將打印在此shell中導出的所有名稱的列表。 -n選項會導致將export屬性從命名變量中刪除。 除非遇到無效選項,否則export將返回0的退出狀態,其中一個名稱不是有效的shell變量名稱,或-f提供的名稱不是函數。

fc [ -e ename ] [ -nlr ] [ first ] [ last ]

fc -s [ pat = rep ] [ cmd ]

修復命令。 在第一種形式中,從歷史列表中選擇從第一個最後一個的一系列命令。 第一個最後一個可以被指定為一個字符串(用於定位以該字符串開頭的最後一個命令)或者作為一個數字(歷史列表中的一個索引,其中負數用作當前命令號的偏移量)。 如果未指定last,則將其設置為列表的當前命令(這樣``fc -l -10''將輸出最後的10個命令),否則設置為first 。 如果第一個未指定,則將其設置為上一個編輯命令,並將其設置為-16以供列表。

列表中的-n選項禁止命令編號。 -r選項反轉命令的順序。 如果給出-l選項,則命令將在標準輸出中列出。 否則,由ename給出的編輯器將在包含這些命令的文件上調用。 如果沒有給出ename ,則使用FCEDIT變量的值,並且未設置FCEDITEDITOR的值。 如果兩個變量均未設置,則使用該變量。 編輯完成後,編輯後的命令將被回顯並執行。

在第二種形式中,每個pat的實例被rep代替之後, 命令被重新執行。 一個有用的別名是``r = fc -s'',所以鍵入``r cc''運行最後一個以``cc'開頭的命令並且鍵入``r''重新執行最後一個命令命令。

如果使用第一種形式,則返回值為0,除非遇到無效選項,或者首先最後指定歷史行超出範圍。 如果提供-e選項,則返回值是如果臨時命令文件發生錯誤,則執行的最後一個命令的值或失敗。 如果使用第二種形式,則返回狀態是重新執行的命令的狀態,除非cmd未指定有效的歷史行,在這種情況下, fc返回失敗。

fg [ jobspec ]

在前台繼續jobspec ,並使其成為當前的工作。 如果jobspec不存在,則使用shell的當前作業概念。 返回值是放置在前台的命令的值,或者在禁用作業控制時運行時失敗,或者在啟用作業控制的情況下運行時,如果jobspec未指定有效作業或jobspec指定在沒有作業控制的情況下啟動的作業。

getopts optstring name [ args ]

getopts被shell程序用來分析位置參數。 optstring包含要識別的選項字符; 如果一個字符後面跟著一個冒號,則該選項應該有一個參數,該參數應該用空格分隔。 冒號和問號字符不能用作選項字符。 每次調用時, getopts都會將下一個選項放在shell變量名稱中 ,如果名稱不存在則初始化名稱 ,並將要處理的下一個參數的索引放入變量OPTIND中 。 每次調用shell或shell腳本時, OPTIND都被初始化為1。 當一個選項需要一個參數時, getopts將該參數放入變量OPTARG中 。該shell不會自動重置OPTIND ; 如果要使用一組新參數,則必須在同一個shell調用內的多個調用之間手動重置。

遇到選項結束時, getopts以大於零的返回值退出。 OPTIND被設置為第一個非選項參數的索引,並且名稱被設置為?。

getopts通常會分析位置參數,但如果在args中給出更多參數,則getopts會解析這些參數

getopts可以通過兩種方式報告錯誤。 如果optstring的第一個字符是冒號,則使用靜默錯誤報告。 在正常操作中,遇到無效選項或缺少選項參數時會打印診斷消息。 如果變量OPTERR設置為0,即使optstring的第一個字符不是冒號,也不會顯示錯誤消息。

如果看到一個無效的選項, getopts的地方? 輸入名稱 ,如果不是靜音,則輸出錯誤消息並取消OPTARG 。 如果getopts處於無聲狀態,則找到的選項字符將放置在OPTARG中,並且不會打印診斷消息。

如果沒有找到必需的參數,並且getopts不是無聲的,則會在名稱中放置一個問號( ),取消設置OPTARG ,並打印診斷消息。 如果getopts是沉默的,那麼冒號( :)被放在名字中,並且OPTARG被設置為找到的選項字符。

如果找到指定或未指定的選項, getopts將返回true。 如果遇到選項結束或發生錯誤,它將返回false。

哈希 [ -lr ] [ -p 文件名 ] [ -dt ] [ 名稱 ]

對於每個名稱 ,命令的完整文件名是通過搜索$ PATH中的目錄並記住來確定的。 如果提供了-p選項,則不執行路徑搜索,並將filename用作命令的完整文件名。 -r選項會導致shell忘記所有記住的位置。 -d選項會導致shell忘記每個名稱的記憶位置。 如果提供了-t選項,則會打印每個名稱對應的完整路徑 。 如果使用-t提供了多個名稱參數,則會在散列完整路徑名之前打印該名稱。 -l選項會使輸出以可作為輸入重用的格式顯示。 如果未提供參數,或者僅提供了-l ,則會打印有關記住的命令的信息。 返回狀態為真,除非找不到名稱或提供了無效選項。

幫助 [ -s ] [ 模式 ]

顯示有​​關內置命令的有用信息。 如果指定了pattern ,則help會為所有匹配模式的命令提供詳細的幫助; 否則打印所有內置和外殼控制結構的幫助。 -s選項將顯示的信息限制為簡短的使用情況摘要。 除非沒有命令匹配模式,否則返回狀態為0。

歷史[ n ]

歷史 -c

歷史-d 抵消

歷史 -anrw [ 文件名 ]

歷史記錄 -p arg [ arg ... ]

歷史 -s arg [ arg ... ]

沒有選項時,用行號顯示命令歷史列表。 用*列出的行已被修改。 n的參數只列出最後n行。 如果提供了文件名 ,它將用作歷史文件的名稱; 如果不是,則使用HISTFILE的值。 選項(如果提供)具有以下含義:

-C

通過刪除所有條目來清除歷史列表。

-d 偏移量

刪除位置偏移處的歷史記錄。

-一個

追加“新”歷史行(自當前bash會話開始以來輸入的歷史行)到歷史文件。

-n

將尚未從歷史記錄文件讀取的歷史行讀入當前歷史列表。 這些是自當前bash會話開始以來附加到歷史文件的行。

-r

閱讀歷史文件的內容並將其用作當前歷史記錄。

-w

將當前歷史寫入歷史文件,覆蓋歷史文件的內容。

-p

對以下參數執行歷史替換,並在標準輸出上顯示結果。 不會將結果存儲在歷史記錄列表中。 必須引用每個參數以禁用正常的歷史擴展。

-s

參數作為單個條目存儲在歷史記錄列表中。 在添加參數之前,歷史列表中的最後一個命令被刪除。

返回值為0,除非遇到無效選項,讀取或寫入歷史文件時發生錯誤,將無效偏移作為參數提供給-d ,或將作為參數提供的歷史擴展提供給-p失敗。

工作 [ -lnprs ] [ jobspec ...]

作業 -x 命令 [ args ...]

第一種形式列出了活動作業。 選項具有以下含義:

-l

除正常信息外,還列出進程ID。

-p

僅列出作業的過程組組長的過程標識。

-n

僅顯示自用戶上次通知其狀態以來已更改狀態的作業的信息。

-r

將輸出限制為正在運行的作業。

-s

限制輸出到停止的作業。

如果給出jobspec ,則輸出僅限於關於該作業的信息。 除非遇到無效選項或提供了無效的jobspec,否則返回狀態為0。

如果提供-x選項, 作業 會將commandargs中找到的所有jobspec替換為相應的進程組ID,並執行傳遞它的參數args ,並返回其退出狀態。

殺死 [ -s sigspec | -n signum | - sigspec ] [ pid | jobspec ] ...

kill -l [ sigspec | exit_status ]

將由sigspecsignum命名的信號發送到由pidjobspec命名的進程。 sigspec是一個信號名稱,如SIGKILL或信號編號; signum是一個信號編號。 如果sigspec是信號名稱,則名稱可以帶或不帶SIG前綴。 如果sigspec不存在,則假定為SIGTERM-l的參數列出了信號名稱。 如果在給出-l時提供了任何參數,則會列出與參數相對應的信號的名稱,返回狀態為0. exit-status參數為-l是一個數字,指定信號編號或退出狀態進程被一個信號終止。 如果至少有一個信號成功發送,則kill將返回true;如果發生錯誤或遇到無效選項,則kill為false。

arg [ arg ...]

每個arg都是一個要評估的算術表達式(請參閱算術評估( ARITHMETIC EVALUATION ))。 如果最後一個參數的值為0, 返回1; 否則返回0。

本地 [ 選項 ] [ 名稱 [= ] ...]

對於每個參數,都會創建一個名為name的局部變量並賦值。 該選項可以是declare接受的任何選項。 在函數內使用local時 ,會導致變量的可見範圍限制為該函數及其子項。 沒有操作數時, 本地將一個局部變量列表寫入標準輸出。 不在函數內使用本地是錯誤的。 返回狀態為0,除非在函數之外使用local ,提供的名稱無效,或者name是只讀變量。

登出

退出登錄shell。

popd [ - n ] [+ n ] [ - n ]

刪除目錄堆棧中的條目。 如果沒有參數,請從堆棧中刪除頂層目錄,然後執行cd到新的頂層目錄。 參數,如果提供,具有以下含義:

+ n

從零開始,刪除dirs所示列表左側的第n個條目。 例如:``popd +0''刪除第一個目錄,第二個目錄“popd +1”。

- n

從零開始刪除dirs所示列表右側的第n個條目。 例如:``popd -0''刪除最後一個目錄,“last-last”刪除“popd -1”。

-n

從堆棧中刪除目錄時禁止正常更改目錄,以便只操作堆棧。

如果popd命令成功,則執行dirs ,返回狀態為0.如果遇到無效選項,目錄堆棧為空,指定了不存在的目錄堆棧條目,或者目錄更改失敗。

printf 格式 [ 參數 ]

在格式控制下將格式化的參數寫入標準輸出。 格式是一個字符串,其中包含三種類型的對象:簡單複製到標準輸出的普通字符,轉換並複製到標準輸出的字符轉義序列,以及格式規範,每種格式規格都會導致下一次打印連續的論點 。 除了標準的printf (1)格式之外, %b還會導致printf在相應的參數中擴展反斜杠轉義序列,並且%q會導致printf以可以作為shell輸入重用的格式輸出相應的參數

格式根據需要重用以消耗所有參數 。 如果格式需要比提供的參數更多的參數 ,則額外格式規範的行為就像提供了適當的零值或空字符串一樣。 成功時返回值為零,失敗時為非零。

pushd [ -n ] [ dir ]

pushd [ -n ] [+ n ] [ - n ]

將目錄添加到目錄堆棧頂部,或者旋轉堆棧,使堆棧的新頂部成為當前工作目錄。 如果沒有參數,則交換前兩個目錄並返回0,除非目錄堆棧為空。 參數,如果提供,具有以下含義:

+ n

旋轉堆棧,以便第n個目錄(從dirs顯示的列表左側開始,從零開始)位於頂部。

- n

旋轉堆棧,以便第n個目錄(從dirs顯示的列表右側開始,從零開始)位於頂部。

-n

在將目錄添加到堆棧時抑制目錄的正常更改,以便僅操作堆棧。

DIR

dir添加到頂部的目錄堆棧,使其成為新的當前工作目錄。

如果pushd命令成功,則還會執行dirs 。 如果使用第一種形式, pushd將返回0,除非cd到dir失敗。 對於第二種形式, pushd將返回0,除非目錄堆棧為空,指定了不存在的目錄堆棧元素,或者目錄更改為指定的新當前目錄失敗。

pwd [ -LP ]

打印當前工作目錄的絕對路徑名。 如果提供了-P選項或者啟用了set builtin命令的-o物理選項,則打印的路徑名不包含符號鏈接。 如果使用-L選項,則打印的路徑名可能包含符號鏈接。 返回狀態為0,除非讀取當前目錄的名稱時發生錯誤或提供了無效的選項。

read [ -ers ] [ -u fd ] [ -t timeout ] [ -a aname ] [ -p 提示符 ] [ -n nchars ] [ -d delim ] [ name ...]

從標準輸入讀取一行或從作為參數提供的文件描述符fd讀取-u選項,並且第一個字被分配給名字 ,第二個字分配給第二個名字 ,依此類推,剩下的單詞和分配給姓氏的干預分隔符。 如果從輸入流中讀取的名稱少於名稱,則剩餘名稱將分配空值。 IFS中的字符用於將行分成單詞。 反斜杠字符( \ )可用於刪除下一個字符讀取和續行的任何特殊含義。 選項(如果提供)具有以下含義:

- aname

單詞被分配給數組變量aname的連續索引,從0開始。在任何新值被分配之前, aname未被設置。 其他名稱參數被忽略。

-d delim

delim的第一個字符用於終止輸入行,而不是換行符。

-e

如果標準輸入來自終端, readline (請參閱上面的READLINE )用於獲取該行。

-n nrs

讀取 nchars字符後讀取返回,而不是等待完整的輸入行。

-p 提示符

在嘗試讀取任何輸入之前,顯示標準錯誤提示 ,不帶結尾的換行符。 僅當輸入來自終端時,才會顯示提示。

-r

反斜杠不作為轉義字符。 反斜杠被認為是該行的一部分。 特別是,反斜線 - 換行符對可能不能用作續行。

-s

靜音模式。 如果輸入來自終端,則字符不會被回顯。

-t 超時

如果在超時秒內未讀取完整的輸入行,則會導致讀取超時並返回失敗。 如果讀取未讀取來自終端或管道的輸入,則此選項無效。

-u fdFP

從文件描述符fd讀取輸入。

如果未提供名稱 ,則將讀取的行分配給變量REPLY 。 返回碼為零,除非遇到文件結尾, 讀取超時或者將無效的文件描述符作為參數提供給-u

readonly [ -apf ] [ name ...]

給定的名字只讀標記; 這些名稱的值可能不會被後續分配更改。 如果提供了-f選項,則與名稱對應的功能已標記。 -a選項將變量限制為數組。 如果未給出名稱參數,或者提供了-p選項,則會打印所有隻讀名稱的列表。 -p選項使輸出以可作為輸入重用的格式顯示。 除非遇到無效選項,否則返回狀態為0,其中一個名稱不是有效的shell變量名稱,或-f提供的名稱不是函數。

返回 [ n ]

使函數以n指定的返回值退出。 如果省略了n ,則返回狀態是在函數體中執行的最後一個命令的返回狀態。 如果在函數之外使用,但在腳本執行期間使用 )命令,它會導致shell停止執行該腳本,並返回n或腳本內執行的最後一個命令的退出狀態作為腳本的退出狀態。 如果在函數外部使用,而不是在執行腳本期間使用 ,返回狀態是錯誤的。

設置 [ --abefhkmnptuvxBCHP ] [ -o 選項 ] [ arg ...]

如果沒有選項,每個shell變量的名稱和值將以可作為輸入重用的格式顯示。 輸出按照當前的語言環境排序。 當指定選項時,它們設置或取消設置shell屬性。 處理選項後剩餘的任何參數都被視為位置參數的值,並按順序分配給$ 1$ 2... $ n 。 選項(如果指定)具有以下含義:

-一個

自動標記為了導出到後續命令的環境而修改或創建的變量和函數。

-b

立即報告已終止的後台作業的狀態,而不是在下一個主要提示之前報告。 僅在啟用作業控制時才有效。

-e

如果一個簡單的命令 (見上面的SHELL GRAMMAR )以非零狀態退出,立即退出。 如果失敗的命令是untilwhile循環的一部分, if語句的一部分, &&||的一部分,shell不會退出。 列表,或者如果命令的返回值正在通過 。 如果設置了ERR ,則會在shell退出之前執行陷阱。

-F

禁用路徑名擴展。

-H

記住命令在查找執行時的位置。 這是默認啟用的。

-k

賦值語句形式的所有參數都放置在命令的環境中,而不僅僅是命令名稱前面的那些參數。

-m

監控模式。 作業控制已啟用。 默認情況下,此選項用於支持它的系統上的交互式shell(請參閱上面的JOB CONTROL )。 後台進程在單獨的進程組中運行,並在完成後打印包含其退出狀態的行。

-n

讀取命令但不執行它們。 這可以用來檢查shell腳本的語法錯誤。 這被交互式shell忽略。

-o 選項名稱

選項名稱可以是以下之一:

allexport

-a一樣

braceexpand

-B一樣

emacs的

使用emacs風格的命令行編輯界面。 當shell是交互式時,這是默認啟用的,除非shell使用--no編輯選項啟動。

errexit

-e一樣

hashall

-h相同。

histexpand

-H一樣

歷史

啟用命令歷史記錄,如上面在HISTORY下所述。默認情況下,此選項在交互式shell中處於啟用狀態。

了ignoreeof

效果就好像執行了shell命令“IGNOREEOF = 10”(參見上面的Shell Variables )。

關鍵詞

-k相同。

監控

-m相同。

noclobber選項

-C相同。

NOEXEC

-n相同。

noglob

-f相同。 nolog目前被忽略。

通知

-b相同。

nounset

-u相同。

onecmd

-t相同。

物理

-P相同。

POSIX

更改默認操作不同於POSIX 1003.2標準以匹配標準( posix模式 )的bash的行為。

特權

-p相同。

詳細

-v相同。

使用vi風格的命令行編輯界面。

X跟踪

-x相同。

如果-o沒有提供選項名稱 ,則會打印當前選項的值。 如果+ o沒有提供選項名稱 ,則會在標準輸出中顯示一系列用於重新創建當前選項設置的設置命令。

-p

打開特權模式。 在這種模式下,不處理$ ENV$ BASH_ENV文件,shell函數不會從環境繼承,並且SHELLOPTS變量(如果它出現在環境中)將被忽略。 如果shell以有效用戶(組)id不等於真實用戶(組)id的方式啟動,並且未提供-p選項,則會執行這些操作並將有效用戶標識設置為真實用戶標識。 如果在啟動時提供了-p選項,則不會重置有效的用戶標識。 關閉此選項會導致將有效的用戶和組標識設置為真實的用戶和組標識。

-t

讀取並執行一個命令後退出。

-u

在執行參數擴展時將未設置的變量視為錯誤。 如果在未設置的變量上嘗試擴展,shell將打印一條錯誤消息,如果不是交互式,則以非零狀態退出。

-v

打印外殼輸入行時讀取它們。

-X

展開每個簡單命令後 ,顯示PS4的擴展值,然後顯示命令及其擴展參數。

-B

外殼執行大括號擴展(參見上面的Brace Expansion )。 這是默認設置。

-C

如果設置, bash不會用>>&<>重定向操作符覆蓋現有文件。 通過使用重定向操作符> |創建輸出文件時,這可能會被覆蓋 而不是>

-H

啟用 風格的歷史替代。 這個選項在shell是交互式時默認打開。

-P

如果設置,那麼在執行諸如cd之類的命令時,shell不會遵循符號鏈接,從而更改當前的工作目錄。 它使用物理目錄結構。 默認情況下, bash在執行更改當前目錄的命令時遵循邏輯目錄鏈。

-

如果沒有參數遵循該選項,則位置參數未設置。 否則,位置參數被設置為參數 s,即使其中一些以-開頭。

-

指示選項結束,使所有剩餘的參數分配給位置參數。 -x-v選項關閉。 如果沒有參數,位置參數保持不變。

除非另有說明,這些選項默認是關閉的。 使用+而不是 - 會導致關閉這些選項。 這些選項也可以被指定為調用shell的參數。 當前的選項集可以在$ - 中找到。 除非遇到無效選項,否則返回狀態始終為真。

shift [ n ]

來自n + 1 ...的位置參數被重命名為$ 1 ....$#降至$# - n + 1的數字表示的參數未設置。 n必須是小於或等於$#的非負數。 如果n為0,則不更改參數。 如果未給出n ,則假定為1.如果n大於$# ,則位置參數不會改變。 如果n大於$#或小於零,則返回狀態大於零; 否則為0。

shopt [ -pqsu ] [ -o ] [ optname ...]

切換控制可選外殼行為的變量值。 沒有選項或使用-p選項時,會顯示所有可設置選項的列表,並顯示是否設置了每個選項。 -p選項使輸出顯示為可作為輸入重用的形式。 其他選項具有以下含義:

-s

啟用(設置)每個optname

-u

禁用(取消設置)每個optname

-q

抑制正常輸出(安靜模式); 返回狀態指示optname是設置還是未設置。 如果使用-q給出多個optname參數,那麼如果所有的optname都被啟用,則返回狀態為零; 否則不為零。

-o

optname的值限制為為set內建的-o選項定義的值。

如果使用-s-u而沒有使用optname參數,則顯示將僅限於分別設置或取消設置的選項。 除非另有說明,否則默認情況下, shopt選項被禁用(未設置)。

如果啟用所有的optnames ,列表選項的返回狀態為零,否則為非零。 設置或取消設置選項時,除非optname不是有效的shell選項,否則返回狀態為零。

購物選項列表是:

cdable_vars

如果設置,則cd內建命令不是目錄的參數被假定為變量的名稱,其值是要更改為的目錄。

cdspell

如果設置, cd命令中的目錄組件的拼寫中的小錯誤將被糾正。 檢查的錯誤是轉置字符,缺少字符,以及一個字符太多。 如果找到更正,則會打印更正的文件名,然後繼續執行該命令。 該選項僅供交互式shell使用。

checkhash

如果設置, bash會在嘗試執行之前檢查在哈希表中找到的命令是否存在。 如果散列命令不再存在,則執行正常路徑搜索。

checkwinsize

如果設置, bash將在每個命令之後檢查窗口大小,如有必要,將更新LINESCOLUMNS的值。

cmdhist

如果設置, bash會嘗試將多行命令的所有行保存在同一個歷史記錄條目中。 這允許輕鬆地重新編輯多行命令。

dotglob

如果設置, bash包含以`。'開始的文件名。 在路徑名擴展的結果中。

execfail

如果設置,如果不能執行指定為exec內建命令的參數的文件,則非交互式shell將不會退出。 如果exec失敗,交互式shell不會退出。

expand_aliases

如果設置,別名將按照上述ALIASES下面的描述進行擴展。 交互式shell默認啟用此選項。

extglob

如果設置,則啟用上面在路徑名擴展下描述的擴展模式匹配功能。

histappend

如果設置,當shell退出時,歷史列表會追加到由HISTFILE變量的值命名的文件中,而不是覆蓋文件。

histreedit

如果設置,並且正在使用readline,則用戶有機會重新編輯失敗的歷史記錄替換。

histverify

如果設置,並且正在使用readline ,則歷史替換的結果不會立即傳遞給shell解析器。 相反,結果行會被加載到readline編輯緩衝區中,從而允許進一步修改。

hostcomplete

如果已設置,並且正在使用readline,則當包含@的單詞正在完成時, bash將嘗試執行主機名完成(請參閱上面的READLINE下的完成 )。 這是默認啟用的。

huponexit

如果設置,當交互式登錄shell退出時, bash將發送SIGHUP給所有作業。

interactive_comments

如果設置,則允許以開頭的單詞在交互式shell中忽略該單詞和該行上的所有剩餘字符(請參閱上面的註釋 )。 該選項默認啟用。

lithist

如果設置,並且啟用了cmdhist選項,則多行命令將被保存到帶有嵌入換行符的歷史記錄中,而不是在可能的情況下使用分號分隔符。

login_shell

如果它作為登錄shell啟動,shell會設置此選項(請參閱上面的INVOCATION )。 該值可能不會更改。

mailwarn

如果已設置,並且自上次檢查郵件以來bash正在檢查郵件的文件已被訪問,則會顯示消息“郵件文件中的郵件已被讀取”。

no_empty_cmd_completion

如果已設置,並且正在使用readline ,則在空行嘗試完成時, bash不會嘗試在PATH中搜索可能的完成項。

nocaseglob

如果設置, bash在執行路徑名擴展時以不區分大小寫的方式匹配文件名(請參閱上面的路徑名擴展 )。

了nullglob

如果設置, bash允許不匹配文件的模式(參見上面的路徑名擴展 )擴展為空字符串,而不是它們自己。

progcomp

如果設置,則可編程完成設施(請參閱上面的可編程完成 )已啟用。 該選項默認啟用。

promptvars

如果設置,則提示字符串在進行後會經歷變量和參數擴展