Linux系統為了便于運維人員對系統的操作,所以內建了很多shell命令。一般來說linux系統的內建命令會比執行外部的shell命令執行更快。因為執行內建命令相當于調用當前shell進程里面的函數,而執行外部命令的話需要出發IO操作還要fork一個單獨的進程來執行,執行完成后再退出。下面會列出一些常用的linux系統的內建命令。
1、type
主要用于判斷當前命令是內建命令還是外部命令。
比如:type cd?
輸出:cd is Shell builtin
比如:type ifconfig
輸出:ifconfig is /sbin/ifconfig
2、執行程序:"."
用于執行某個腳本,可以執行沒有執行權限shell腳本。這樣可以在不修改shell腳本的權限的情況去運行該shell腳本。
3、source
該命令可讀取并在當前環境中執行腳本,并且可以返回執行的狀態,執行成功如果沒有返回值會返回0,表示執行成功。如果未找到指定的腳本則返回false。
4、cd
改變當前工作目錄。如果不加任何參數,默認會進入當前用戶的家目錄。
5、聲明變量:declare、typeset
兩個命令主要是聲明變量。shell聲明變量不需要指明類型,屬于弱類型。不過若使用declare命令,可以使用-i參數聲明整型變量。
用法說明:declare -i num=2 #聲明declare聲明整型變量為num2,其值為2
declare -r num=100 #聲明declare聲明只讀變量為num,其值為100
6、echo
主要用于打印字符,典型用法是使用echo命令并跟上使用雙引號括起的內容,該命令會打印引號的內容,默認會加上換行符。可以加上-n參數可以不打印換行符。
如果需要打印轉義字符,可以加上-e參數進行處理,默認-e參數是不顯式的。
7、整數運算:let
let命令是shell內建的整數運算命令。
用法如下:let num=3+7 # num為10
let num2=15/3 #num為5
let num3=7/3 #求余num3 為1
let num4=2**3 # 2的3次方,num4值為8
let num5++ #自增
let num6-- #自減
let num7+=10 #num7加10
8、pwd
打印當前工作目錄的絕對路徑名。
參數:-P:打印出的路徑名不會出現符號連接。
-L:打印出的路徑可以包含符號連接。
9、local
用于聲明局部變量,典型的用法是用于函數體內,變量的作用域也在該函數體內。
10.read
主要是增加shell腳本和使用者之間的交互性,簡單來說就是需要人工輸入才能繼續執行腳本。
比如一下腳本:
#!/bin/bash
declare score
echo? -n "請輸入你的成績:"
read score
echo "你的成績是:$socre 分"
技巧:
下面兩句可以修改為
echo? -n "請輸入你的成績:"
read score
一句:
read -p echo? -n "請輸入你的成績:" score
11、return?
用于函數的返回值。用法比較簡單。
12、test
用于測試表達式的值,根據測試結果返回0失敗,1成功。非常重要的shell命令。
語法格式:test EXPRESSION