Linux基礎

鳥哥的 Linux 私房菜 -- 基礎學習篇

變數(shù)的可變性與方便性

舉例來說,我們每個帳號的郵件信箱預設是以 MAIL 這個變數(shù)來進行存取的, 當 dmtsai 這個使用者登入時,他便會取得 MAIL
這個變數(shù),而這個變數(shù)的內容其實就是 /var/spool/mail/dmtsai, 那如果 vbird 登入呢?他取得的 MAIL 這個變數(shù)的內容其實就是
/var/spool/mail/vbird 。 而我們使用信件讀取指令 mail 來讀取自己的郵件信箱時,嘿嘿,這支程式可以直接讀取 MAIL 這個變數(shù)的內容,
就能夠自動的分辨出屬于自己的信箱信件啰!這樣一來,設計程式的設計師就真的很方便的啦!

[圖片上傳中。。。(1)]圖 2.1.1、程式、變數(shù)與不同使用者的關系

如上圖所示,由于系統(tǒng)已經(jīng)幫我們規(guī)劃好 MAIL 這個變數(shù),所以使用者只要知道 mail 這個指令如何使用即可, mail 會主動的取用 MAIL
這個變數(shù),就能夠如上圖所示的取得自己的郵件信箱了!(注意大小寫,小寫的 mail 是指令, 大寫的 MAIL 則是變數(shù)名稱喔!)

那么使用變數(shù)真的比較好嗎?這是當然的!想像一個例子,如果 mail 這個指令將 root 收信的郵件信箱 (mailbox) 檔名為
/var/spool/mail/root 直接寫入程式碼中。那么當 dmtsai 要使用 mail 時,將會取得 /var/spool/mail/root
這個檔案的內容! 不合理吧!所以你就需要幫 dmtsai 也設計一個 mail 的程式,將 /var/spool/mail/dmtsai 寫死到 mail
的程式碼當中! 天吶!那系統(tǒng)要有多少個 mail 指令???反過來說,使用變數(shù)就變的很簡單了!因為你不需要更動到程式碼?。?只要將 MAIL
這個變數(shù)帶入不同的內容即可讓所有使用者透過 mail 取得自己的信件!當然簡單多了!

影響 bash 環(huán)境操作的變數(shù)

某些特定變數(shù)會影響到 bash 的環(huán)境喔!舉例來說,我們前面已經(jīng)提到過很多次的那個 PATH 變數(shù)! 你能不能在任何目錄下執(zhí)行某個指令,與 PATH
這個變數(shù)有很大的關系。例如你下達 ls 這個指令時,系統(tǒng)就是透過 PATH 這個變數(shù)里面的內容所記錄的路徑順序來搜尋指令的呢!如果在搜尋完 PATH
變數(shù)內的路徑還找不到 ls 這個指令時, 就會在熒幕上顯示‘ command not found ’的錯誤訊息了。

如果說的學理一點,那么由于在 Linux System 下面,所有的執(zhí)行續(xù)都是需要一個執(zhí)行碼, 而就如同上面提到的,你‘真正以 shell 來跟 Linux 溝通,是在正確的登入 Linux 之后!
’這個時候你就有一個 bash
的執(zhí)行程序,也才可以真正的經(jīng)由 bash 來跟系統(tǒng)溝通啰!而在進入 shell 之前,也正如同上面提到的,由于系統(tǒng)需要一些變數(shù)來提供他資料的存取
(或者是一些環(huán)境的設定參數(shù)值, 例如是否要顯示彩色等等的) ,所以就有一些所謂的‘環(huán)境變數(shù)

需要來讀入系統(tǒng)中了!這些環(huán)境變數(shù)例如 PATH、HOME、MAIL、SHELL 等等,都是很重要的,
為了區(qū)別與自訂變數(shù)的不同,環(huán)境變數(shù)通常以大寫字元來表示呢!

腳本程式設計 (shell script) 的好幫手

這些還都只是系統(tǒng)預設的變數(shù)的目的,如果是個人的設定方面的應用呢:例如你要寫一個大型的 script
時,有些資料因為可能由于使用者習慣的不同而有差異,比如說路徑好了,由于該路徑在 script 被使用在相當多的地方,如果下次換了一部主機,都要修改 script
里面的所有路徑,那么我一定會瘋掉! 這個時候如果使用變數(shù),而將該變數(shù)的定義寫在最前面,后面相關的路徑名稱都以變數(shù)來取代, 嘿嘿!那么你只要修改一行就等于修改整篇
script 了!方便的很!所以,良好的程式設計師都會善用變數(shù)的定義!Bash shell 的功能

命令編修能力 (history):
命令與檔案補全功能: ([tab] 按鍵的好處)
[Tab] 接在一串指令的第一個字的后面,則為命令補全;
[Tab] 接在一串指令的第二個字以后時,則為‘檔案補齊’!
命令別名設定功能: (alias)
工作控制、前景背景控制: (job control, foreground, background)
程式化腳本: (shell scripts)
萬用字元: (Wildcard)

Bash shell 的內建命令: type

[root@www ~]# type [-tpa] name
選項與參數(shù):
    :不加任何選項與參數(shù)時,type 會顯示出 name 是外部指令還是 bash 內建指令
-t  :當加入 -t 參數(shù)時,type 會將 name 以底下這些字眼顯示出他的意義:
      file    :表示為外部指令;
      alias   :表示該指令為命令別名所設定的名稱;
      builtin :表示該指令為 bash 內建的指令功能;
-p  :如果后面接的 name 為外部指令時,才會顯示完整檔名;
-a  :會由 PATH 變數(shù)定義的路徑中,將所有含 name 的指令都列出來,包含 alias

范例一:查詢一下 ls 這個指令是否為 bash 內建?
[root@www ~]# type ls
ls is aliased to `ls --color=tty' <==未加任何參數(shù),列出 ls 的最主要使用情況

[root@www ~]# type -t ls
alias                             <==僅列出 ls 執(zhí)行時的依據(jù)
[root@www ~]# type -a ls
ls is aliased to `ls --color=tty' <==最先使用 aliase
ls is /bin/ls                     <==還有找到外部指令在 /bin/ls

范例二:那么 cd 呢?

[root@www ~]# type cd
cd is a shell builtin             <==看到了嗎? cd 是 shell 內建指令

透過 type 這個指令我們可以知道每個指令是否為 bash 的內建指令。 此外,由于利用 type
搜尋后面的名稱時,如果后面接的名稱并不能以執(zhí)行檔的狀態(tài)被找到, 那么該名稱是不會被顯示出來的。也就是說, type 主要在找出‘執(zhí)行檔’而不是一般檔案檔名喔!
呵呵!所以,這個 type 也可以用來作為類似 which
指令的用途啦!
找指令用的!

Shell 的變數(shù)功能
變數(shù)是 bash 環(huán)境中非常重要的一個玩意兒,我們知道 Linux 是多人多工的環(huán)境,每個人登入系統(tǒng)都能取得一個 bash , 每個人都能夠使用 bash 下達 mail 這個指令來收受‘自己’的郵件,問題是, bash 是如何得知你的郵件信箱是哪個檔案? 這就需要‘變數(shù)’的幫助啦!所以,你說變數(shù)重不重要呢?底下我們將介紹重要的環(huán)境變數(shù)、變數(shù)的取用與設定等資料, 呼呼!動動腦時間又來到啰!_

那么,什么是‘變數(shù)’呢?簡單的說,就是讓某一個特定字串代表不固定的內容就是了。舉個大家在國中都會學到的數(shù)學例子, 那就是:‘ y = ax + b ’這東西,在等號左邊的(y)就是變數(shù),在等號右邊的(ax+b)就是變數(shù)內容。 要注意的是,左邊是未知數(shù),右邊是已知數(shù)喔! 講的更簡單一點,我們可以‘用一個簡單的 "字眼" 來取代另一個比較復雜或者是容易變動的資料’。這有什么好處啊?最大的好處就是‘方便!’

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 本文包括: 1、Linux 系統(tǒng)概述 2、Linux 用戶和用戶組管理 3、Linux 文件和目錄管理 4、Lin...
    廖少少閱讀 3,309評論 1 40
  • Linux基礎命令學習總結,隨著學習的前進,將不斷完善。網(wǎng)友們,有錯誤之處,請給我留言改正喔,謝謝! 基礎操作 <...
    zhuenbiao閱讀 2,137評論 0 2
  • 1、Linux上的文件管理命令有哪些以及常用方法shell:shell負責接收用戶輸入的命令并進行解釋,將需要執(zhí)行...
    乀koala閱讀 902評論 0 3
  • Linux基本原則1.由目的單一的小程序組成:組合小程序組成負責任務:2.一切皆文件。3.盡量避免捕獲用戶接口;4...
    浪漫晨風閱讀 635評論 0 0
  • 裝飾角落空間看上去是一件很棘手的事情,往往會給人一種困惑,甚至是很棒的設計師,但設計師都盡其所能充分利用每一寸空間...
    搭配我居閱讀 386評論 0 6

友情鏈接更多精彩內容