shell是用戶與作業系統之間的交互層,用戶修改其環境,設置或取消shell的環境變量,迎合用戶的需要和愛好。http://fanqiang.chinaunix.net/a1/b4/20010518/145747_b.html
我們在使用電腦的時候﹐基本上就是和 shell 打交道﹐而不是直接和 kernel 溝通﹐更不是直接控制硬體。www.study-area.org/linux/system/linux_shell.htm
以特定的名稱來儲存設定值,以供日後程式所需。使用者可自行定義一些變數。
在系統中或是在Shell的一些環境設定,就叫做境變數,這些變數通常用大寫英文字母表示。常用的變數有PWD(目前工作目錄路徑)、PATH(命令搜尋路徑)。此外,我們可在命列使用env把目前的環境變數列出,或是set把目前的所有的變數列出,這包含了環境變數及屬於使用者個人的。
#env |
#set |
另外有兩個變數比較特殊,一個是$(目前shell的PID),一個是?(上個命令的狀態傳回值,若執行無誤,則傳回0。若有誤,則傳回非0值)。
以上取材自鳥哥的 Linux 私房菜
將變數vtest的內容設為bashshelltest#vtest=bashshelltest |
將變數vtest的內容設為bash shell test
#vtest="bash shell test" |
將變數vtest的內容清空
#unset vtest |
在命列使用echo即可
顯示變數vtest#echo $vtest bash shell test |
#echo $$ 12021 |
#ls -l -rw-rw-rw- 1 fbean fbean 13 12月 15 2004 test.txt drwxrwxr-x 2 fbean fbean 4096 12月 15 2004 tmp #echo $? 0 #ls *.gz -l ls: *.gz: 沒有此一檔案或目錄 #echo $? 1 |
類似在M$的作業系統下的批次檔(.bat),可以讓使用者將一些想做的事(一堆指令),利用一個scripts檔案完成,當然,還可以像寫程式一樣,經由變數或一些條件的判別,來做重覆且規則的事。
使用之前要注意的事:
scripts檔案如何被執行?
# chmod 755 scripts.filename |
# sh scripts.filename |
範例:
#!bin/bash #Duplicate quota setting for other users #This script shuold be executed by root #revised by ldc on 2006/06/20 #ex: sh -v quota_dup.sh s9220301 s92 20302 20442 # sample | prefix | begin number | end number for((i=$3; i<=$4; i=i+1)) do edquota -p $1 $2$i done |
#!/bin/bash #My first backup cron scripts tar -zcf /backup/etc.tar.gz /etc tar -zcf /backup/home.tar.gz /home tar -zcf /backup/boot.tar.gz /boot tar -zcf /backup/usr_local.tar.gz /usr/local tar -zcf /backup/var.tar.gz /var --exclude /var/www/std_html/download # WHAT IS THIS: |