在學習本文的時候我們先來看看為什么要使用變量
一、Linux中使用變量的原因
變量的好處在于用一個簡單或容易理解的符號來代替另一個比較復雜或容易變動的數據.簡而言之,使用變量就是為了方便.在Linux中,主機內有太多的數據需要訪問,而這些數據都是一些服務所必須的,且這些數據都非常繁瑣.因此,為了簡化整個運行流程,可以通過某個變量功能,讓這個變量可以根據不同的用戶而更改內容.這樣一來,系統只要根據那個變量去取得所需要的數據即可,而不需要去記憶那些繁瑣的數據.
二、查詢在Linux中的變量
查詢"命令"是外部命令(其它非bash套件所提供的命令)或內置在bash中的命令.
[root@localhost ~]# type -t name
type會顯示出name是外部命令還是bash內置的命令,其中:
file : 表示為外部命令
alias: 表示該命令為命令別名所設置的名稱
builtin: 表示該命令為bash內置的命令
例如: type -tpa cd
系統顯示為builtin,表示cd為內置命令.
三、變量在Linux中的應用
(1)獲取變量的內容
echo $變量名
例如:1. echo $PATH 則系統會顯示出變量PATH的值.
2. [root@localhost ~]#sum=30+50-120
[root@localhost ~]#echo $sum //打印出"30+50-120",而不是-40
30+50-120
另外,echo還可以向Linux終端打印數據.
例如:[root@localhost ~]#echo "haha"
haha
(2)變量的賦值
方法:可以直接使用"="來向某個變量賦值.
例如:#echo $hehe //變量未賦值,直接取其值時,則系統的顯示為空
#hehe=Vbird
#echo $hehe //系統顯示為Vbird
Attention?。。?/p>
1.等號兩邊不能直接接空格符.
2.變量名稱只能是英文字母與數字,但數字不能作為開頭.
3.若該變量需要在其它子程序中執行,則需要用export使變量變成環境變量,如export PATH.
4.取消變量的方法:unset 變量名
5.若變量未賦值,直接取其值時,則系統的顯示為空的.
6.雙引號、單引號在變量中的應用
雙引號仍然可以保持變量的內容.
單引號只能是一般字符,$name會失去原有的變量內容,僅作為字符的顯示類型而已.
#name=vbird
#echo $name //顯示內容為vbird
#echo "$name is me" //顯示內容為vbird is me
#echo '$name is me' //顯示內容為$name is me
(3)環境變量
1、列出當前Shell環境下所有環境變量及內容:#env
HOSTNAME=linux.dmtsai.tw //主機名稱
SHELL=/bin/bash //當前環境下,使用的Shell是哪一個程序?
HISTSIZE=1000 //記錄曾經執行過的命令的數目,RedHat中可記錄1000個
USER=root //當前用戶名稱
LS_COLORS //顏色設置
PATH //執行文件命令搜索路徑.目錄之間以冒號分隔.注意,文件的搜索是按PATH的值來查詢.
PWD //當前用戶所在的工作目錄
LANG //與語系有關
HOME
; //用戶的家目錄(進入用戶的家目錄:cd ~或cd)
2、列出所有變量(包括自定義變量):#set
在Linux中,默認情況下使用{大寫字母}來設置的變量一般為系統內定需要的變量.
PS1 //(數字1而不是英文字母)Linux命令提示符的設置
{GetProperty(Content)}nbsp; //本Shell的PID(Process ID).查詢Shell的PID,使用#echo $
3、自定義的變量轉變為環境變量:#export
(1)#export
將所有的環境變量都顯示出來.
(2)Linux中的變量可分為環境變量和自定義變量.兩者的區別在于環境變量對于用戶來說是透明的,即可以在任何一個程序中使用這些環境變量.而自定義變量只在當前Shell中有效,關閉了當前Shell,該變量便無效.所以為了能使自定義的變量在任何程序中都可以使用,可以使用export在系統的配置文件/etc/profile、/etc/.bashrc中聲明該變量.
export聲明變量的格式: #export 變量名
4、從(鍵盤)鍵盤獲取變量:read
要讀取來自鍵盤輸入的變量,就是用read命令.該命令常用在Shell腳本的編寫中,與用戶進行對話.
命令格式: #read [-pt] 變量名
參數說明: -p 后接提示符
-t 后接等待的"秒數"
例程:
1、讓用戶從(終端)鍵盤輸入內容,并將輸入的內容賦給該變量.輸入該變量后,Linux系統自動提示用戶輸入.
[root@localhost root]# read yhy //將輸入的內容(this is a test!)賦給了變量yhy
this is a test!
[root@localhost root]# echo $yhy
this is a test!
2、提示用戶10秒內輸入自己的名字,并顯示出友好界面.
[root@localhost root]# read -p "Please input your name:" -t 10 named
此時,系統提示:
Please input your name: lss
[root@localhost root]# echo $named //將輸入的內容(lss)賦給了變量named
lss
5、利用declare聲明變量
在Linux中,使用declare聲明一個變量的類型.
命令格式: #declare [-aixr] 變量名
參數說明: -a 聲明該變量為數組(array)
-i 聲明該變量為整型(integer)
-x 將該變量變成環境變量,功能類似于export
-r 將該變量設置為只讀,即變量內容不能更改,也不能取消(unset)
例程:
1、[root@localhost root]# sum=30+50+-120
[root@localhost root]# echo $sum
30+50-120
[root@localhost root]# declare -i sum=30+50-120
-40
注:declare -i類似于C語言中將變量sum聲明為整型變量.
2、將sum變成環境變量
[root@localhost root]# delcare -x sum //相當于export sum
3、讓變量sum變成只讀屬性,不可更改
[root@localhost root]# declare -r sum
[root@localhost root]# sum=30+50+120
-bash:sum,readonly variable
6、限制文件系統與程序
若10個人同時登錄某Linux主機,這10個人同時打開了100個文件,每個文件大小約10MB,則需要Linux主機內存為10*10*100=10GB.這會導致Linux主機死機.為此,為了防止這種情況的發生,Linux中用ulimit命令來限制用戶的某些系統資源,包括打開的文件數量、可以使用的CPU的時間、可以使用的內存總量等.
[root@localhost root]# ulimit -f 1024 //限制用戶僅能建立1MB以下容量的文件
[root@localhost root]# ulimit -a //列出所有的限制數據
7、命令別名的設
置
當命令特別長的時候,可以使用別名來設置新的命令.
命令格式: #alias 命令
例程:
當查詢隱藏文件時,可以使用#ls -l | more來查詢,但這樣輸入命令非常的繁瑣.因此可以這樣來操作:
# alias lm='ls -l | more'
這樣就立刻多了一個可執行的命令,該命令的名稱是lm,它執行的是ls -l | more.
# alias vim=vi
這樣執行vim編輯器就等效于vi編輯器.
8、查詢執行過的命令
在Linux中可以使用history命令來查詢用戶以往曾經使用過的命令.
[root@localhost root]# history //查詢所有曾經使用過的命令
[root@localhost root]# history 3 //列出當前最近使用過的3個命令
[root@localhost root]# history -w //將歷史記錄寫入~/.bash_history中
新聞熱點
疑難解答