日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Shell脚本——内置命令

發布時間:2025/3/8 编程问答 59 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Shell脚本——内置命令 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、內置命令

所謂 Shell 內置命令,就是由 Bash 自身提供的命令,而不是文件系統中的某個可執行文件。

例如,用于進入或者切換目錄的 cd 命令,雖然我們一直在使用它,但如果不加以注意很難意識到它與普通命令的性質是不一樣的:該命令并不是某個外部文件,只要在 Shell 中你就一定可以運行這個命令。

可以使用 type 來確定一個命令是否是內建命令:

[root@localhost ~]# type cd cd is a Shell builtin [root@localhost ~]# type ifconfig ifconfig is /sbin/ifconfig

由此可見,cd 是一個 Shell 內建命令,而 ifconfig 是一個外部文件,它的位置是/sbin/ifconfig。

還記得系統變量 PATH嗎?PATH嗎?PATHPATH 變量包含的目錄中幾乎聚集了系統中絕大多數的可執行命令,它們都是外部命令。

通常來說,內建命令會比外部命令執行得更快,執行外部命令時不但會觸發磁盤 I/O,還需要 fork 出一個單獨的進程來執行,執行完成后再退出。而執行內建命令相當于調用當前 Shell 進程的一個函數。

二、alisa命令

alisa 用來給命令創建一個別名。若直接輸入該命令且不帶任何參數,則列出當前 Shell 進程中使用了哪些別名?,F在你應該能理解類似ll這樣的命令為什么與ls -l的效果是一樣的吧。

三、echo命令

echo 是一個 Shell 內建命令,用來在終端輸出字符串,并在最后默認加上換行符。

echo 命令輸出結束后默認會換行,如果不希望換行,可以加上-n參數

默認情況下,echo 不會解析以反斜杠\開頭的轉義字符。比如,\n表示換行,echo 默認會將它作為普通字符對待,我們可以添加-e參數來讓 echo 命令解析轉義字符

有了-e參數,我們也可以使用轉義字符\c來強制 echo 命令不換行了

四、read命令

read 是 Shell 內置命令,用來從標準輸入中讀取數據并賦值給變量。如果沒有進行重定向,默認就是從鍵盤讀取用戶輸入的數據;如果進行了重定向,那么可以從文件中讀取數據。

read 命令的用法為:

read [-options] [variables]

options表示選項,如下表所示;variables表示用來存儲數據的變量,可以有一個,也可以有多個。

options和variables都是可選的,如果沒有提供變量名,那么讀取的數據將存放到環境變量 REPLY 中。

選項說明
-a array把讀取的數據賦值給數組 array,從下標 0 開始。
-d delimiter用字符串 delimiter 指定讀取結束的位置,而不是一個換行符(讀取到的數據不包括 delimiter)。
-e在獲取用戶輸入的時候,對功能鍵進行編碼轉換,不會直接顯式功能鍵對應的字符。
-n num讀取 num 個字符,而不是整行字符。
-p prompt顯示提示信息,提示內容為 prompt。
-r原樣讀取(Raw mode),不把反斜杠字符解釋為轉義字符。
-s靜默模式(Silent mode),不會在屏幕上顯示輸入的字符。當輸入密碼和其它確認信息的時候,這是很有必要的。
-t seconds設置超時時間,單位為秒。如果用戶沒有在指定時間內輸入完成,那么 read 將會返回一個非 0 的退出

五、exit命令

exit 是一個 Shell 內置命令,用來退出當前 Shell 進程,并返回一個退出狀態;使用$?可以接收這個退出狀態;

exit 命令可以接受一個整數值作為參數,代表退出狀態。如果不指定,默認狀態值是 0。

一般情況下,退出狀態為 0 表示成功,退出狀態為非 0 表示執行失敗(出錯)了。

exit 退出狀態只能是一個介于 0~255 之間的整數,其中只有 0 表示成功,其它值都表示失敗。

Shell 進程執行出錯時,可以根據退出狀態來判斷具體出現了什么錯誤,比如打開一個文件時,我們可以指定 1 表示文件不存在,2 表示文件沒有讀取權限,3 表示文件類型不對。

六、下表列出了 Bash Shell 中直接可用的內建命令

命令說明
:擴展參數列表,執行重定向操作
.讀取并執行指定文件中的命令(在當前 shell 環境中)
alias為指定命令定義一個別名
bg將作業以后臺模式運行
bind將鍵盤序列綁定到一個 readline 函數或宏
break退出 for、while、select 或 until 循環
builtin執行指定的 shell 內建命令
caller返回活動子函數調用的上下文
cd將當前目錄切換為指定的目錄
command執行指定的命令,無需進行通常的 shell 查找
compgen為指定單詞生成可能的補全匹配
complete顯示指定的單詞是如何補全的
compopt修改指定單詞的補全選項
continue繼續執行 for、while、select 或 until 循環的下一次迭代
declare聲明一個變量或變量類型。
dirs顯示當前存儲目錄的列表
disown從進程作業表中刪除指定的作業
echo將指定字符串輸出到 STDOUT
enable啟用或禁用指定的內建shell命令
eval將指定的參數拼接成一個命令,然后執行該命令
exec用指定命令替換 shell 進程
exit強制 shell 以指定的退出狀態碼退出
export設置子 shell 進程可用的變量
fc從歷史記錄中選擇命令列表
fg將作業以前臺模式運行
getopts分析指定的位置參數
hash查找并記住指定命令的全路徑名
help顯示幫助文件
history顯示命令歷史記錄
jobs列出活動作業
kill向指定的進程 ID(PID) 發送一個系統信號
let計算一個數學表達式中的每個參數
local在函數中創建一個作用域受限的變量
logout退出登錄 shell
mapfile從 STDIN 讀取數據行,并將其加入索引數組
popd從目錄棧中刪除記錄
printf使用格式化字符串顯示文本
pushd向目錄棧添加一個目錄
pwd顯示當前工作目錄的路徑名
read從 STDIN 讀取一行數據并將其賦給一個變量
readarray從 STDIN 讀取數據行并將其放入索引數組
readonly從 STDIN 讀取一行數據并將其賦給一個不可修改的變量
return強制函數以某個值退出,這個值可以被調用腳本提取
set設置并顯示環境變量的值和 shell 屬性
shift將位置參數依次向下降一個位置
shopt打開/關閉控制 shell 可選行為的變量值
source讀取并執行指定文件中的命令(在當前 shell 環境中)
suspend暫停 Shell 的執行,直到收到一個 SIGCONT 信號
test基于指定條件返回退出狀態碼 0 或 1
times顯示累計的用戶和系統時間
trap如果收到了指定的系統信號,執行指定的命令
type顯示指定的單詞如果作為命令將會如何被解釋
typeset聲明一個變量或變量類型。
ulimit為系統用戶設置指定的資源的上限
umask為新建的文件和目錄設置默認權限
unalias刪除指定的別名
unset刪除指定的環境變量或 shell 屬性
wait等待指定的進程完成,并返回退出狀態碼

總結

以上是生活随笔為你收集整理的Shell脚本——内置命令的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。