回首頁
修改
Mail
FTP

中




2007年11月18日 星期日

[Linux]Shell與變數的應用實例

以下舉一些我個人認為有用例子
1.在 PATH 這個變數當中[累加]:/home/snake/ 這個目錄
PATH="$PATH":/home/snake/
或 name=${name}:/home/snake/

2.子程序應用
name=snake
bash <-進入子程序
echo $name <-咦沒有秀出snake
exit <-離開
export name <-透過 export 將變數變成環境變數
bash
echo $name
snake <--出來了

3.快速進入核心目錄
# `` <-被這兩個符號包起來表示先執行的意思
# 所以以下是先秀出核心版本在執行cd指令
cd /lib/modules/`uname -r`/kernel
ls -al `locate passwd` <-也是同樣意思唷

4.變數的設定當中,單引號與雙引號的區分
name=SNAKE
echo name
SNAKE --結果--
myname="$name is who" <--雙引號
echo $myname
SNAKE is who --結果--
但是如果是這樣...
myname='$name is who' <--單引號
echo $myname
$name is who --結果--
看出端倪了吧!結論就是
雙引號仍然可以保有變數的內容,但單引號內僅能是一般字元 ,而不會有特殊符號

5.簡化路徑(這個我感同深受,有時路徑真的很長)
假設我要設定網路組態好了
nett=/etc/network/interfaces
vim $nett <-這不就短很多了 =_=

6.命令別名設定,自己的指令自己命名
alias lm='ls -l | more'
unalias lm <--刪除

7.常用指令截取
alias h=history
h
649 less /etc/network/interfaces
650 ps aux
651 ls
!649 <--用! 來執行650行指令 方便多了
!! <--重覆上個動做同up鍵與ctrl+p
!le <--run最近le開頭的程式 當然就是649這行了

~/.bash_history 為history記錄檔 是個隱藏檔

變數常用指令
NO.1
env 是 environment (環境) =show所有環境變數與其內容
HOME : 代表使用者的家目錄
SHELL : 告知我們,目前這個環境使用的 SHELL 是哪支程式
HISTSIZE:曾經下達過的指令筆數
ENV : 這個使用者所使用的個人化環境設定檔的讀取檔案
MAIL : 當我們使用 mail 這個指令在收信時,系統會去讀取的郵件信箱檔案 (mailbox)。
PATH : 就是執行檔搜尋的路徑啦~目錄與目錄中間以冒號(:)分隔
LANG :語系檔案 粉重要 中文編碼通常是 zh_TW.Big5 或者是 zh_TW.UTF-8
RANDOM : 隨機亂數的變數
--------------------------------------------------------------------
NO.2
set =Show環境變數及自訂變數,與所有的變數 /etc/profile
PS1:(提示字元的設定)
shell 的 PID ,就可以: echo $$ 即可!
echo $?
如果成功的執行該指令, 則會回傳一個 0 值
執行過程發生錯誤,就會回傳錯誤代碼

NO.3
export :自訂變數轉成環境變數
進入子程序(bash),所以在父程序中的自訂變數設定將不再繼續的存在。
會存在子程序中的,僅有環境變數
--------------------------------------------------------------------
locale -a 秀出語系檔案的變數
ulimit -a 列出所有的限制資料
# 限制使用者僅能建立 2MBytes 以下的容量的檔案
一般身份使用者如果以 ulimit 設定了 -f 的檔案大小,
只能減小檔案大小,不能增加檔案大小
ulimit -f 2048
# 終端機介面 (tty1 ~ tty6) 登入 前幾行資料
less /etc/issue 秀出登錄訊息顯示資料
\d 本地端時間的日期;
\l 顯示第幾個終端機介面;
\m 顯示硬體的等級 (i386/i486/i586/i686...);
\n 顯示主機的網路名稱;
\o 顯示 domain name;
\r 作業系統的版本 (相當於 uname -r)
\t 顯示本地端時間的時間;
\s 作業系統的名稱;
\v 作業系統的版本。
vim /etc/motd 讓登入者都知道的訊息

個人設定值檔案:
讀取順序
1.先讀取 /etc/profile然後判斷其內容再去讀取其他額外的設定檔
2.依不同使用者,到使用者家目錄去讀取 ~/.bash_profile 或
~/.bash_login 或 ~/.profile 等設定檔;
3.依不同使用者,到他家目錄去讀取 ~/.bashrc 。
# source file 讓該設定檔立即生效
source ~./bashrc

參考資料+網路Search

0 回應: