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