歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 鳥哥的Linux私房菜 課後練習第十章

鳥哥的Linux私房菜 課後練習第十章

日期:2017/2/28 16:13:11   编辑:Linux教程

鳥哥的Linux私房菜下載見

http://www.linuxidc.net/thread-2200-1-1.html

http://www.linuxidc.net/thread-2268-1-1.html

Bash的優點:

1、命令編修能力 (history):

曾經輸入的指令都被記錄下來,記錄的文件在根目錄的.bash_history下。~/.bash_history記錄的是上一次登入以前執行過的指令,這一次登陸所運行的命令都被緩存在內存中,當你成功的注銷系統後,該命令記憶才會記錄到 .bash_history 當中!

2、命令與文件補全功能: ([tab] 按鍵的好處)

[Tab] 接在一串命令的第一個字的後面,則為命令補全;

[Tab] 接在一串命令的第二個字以後時,則為『文件補齊』!

3、命令別名配置功能: (alias)

4、工作控制、前景背景控制: (job control, foreground, background)

5、程序化腳本: (shell scripts)

6、通配符: (Wildcard)

顯示變量的值要用echo指令:

語法:

[root @test root]# echo $variable

范例:

[root @test root]# echo $PATH

/bin:/sbin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin

[root@test root]# echo $PATH

/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin

[root@test root]# echo $HOME

/root

顯示系統中的所有環境變量可以使用env指令

比較重要的幾個環境變量

HOME 登入者的根目錄

SHELL 目前這個環境使用的 SHELL 是哪支程序

HISTSIZE 當前的指令記憶數量

MAIL 您的郵件文件

PATH 文件和命令的搜尋路徑

set命令不止顯示環境變量而且顯示用戶自定義變量

配置變量:變量名=變量內容

變量的配置規則:

1、變量與變量內容以一個等號『=』來連結

2、等號兩邊不能有空格符

3、變量名稱只能是英文字母與數字,但是開頭字符不能是數字

4、變量內容若有空格符可使用雙引號『"』或單引號『'』將變量內容結合起來,但

雙引號內的特殊字符如 $ 等,可以保有原本的特性,如下所示:
『var="lang is $LANG"』則『echo $var』可得『lang is en_US』

單引號內的特殊字符則僅為一般字符 (純文本),如下所示:
『var='lang is $LANG'』則『echo $var』可得『lang is $LANG』

5、可用跳脫字符『 \ 』將特殊符號(如 [Enter], $, \, 空格符, '等)變成一般字符

6、在一串命令中,還需要藉由其他的命令提供的信息,可以使用反單引號『`命令`』或 『$(命令)』。注意,那個 ` 是鍵盤上方的數字鍵 1 左邊那個按鍵,而不是單引號

7、若該變量為擴增變量內容時,則可用 "$變量名稱" 或 ${變量} 累加內容,如:『PATH="$PATH":/home/bin』

8、若該變量需要在其他子程序運行,則需要以 export 來使變量變成環境變量,如:『export PATH』

9、通常大寫字符為系統默認變量,自行配置變量可以使用小寫字符

10、取消變量的方法為使用 unset :『unset 變量名稱』例如取消 myname 的配置:

『unset myname』

set命令:

OSTYPE=linux-gnu         <== 操作系統的類型!
PPID=20025               <== 父程序的 PID (會在後續章節才介紹)
PS1='[\u@\h \W]\$ '      <== PS1 就厲害了。這個是命令提示字符,也就是我們常見的
                             [root@www ~]# 或 [dmtsai ~]$ 的配置值啦!可以更動的!
PS2='> '                 <== 如果你使用跳脫符號 (\) 第二行以後的提示字符也
name=VBird               <== 剛剛配置的自定義變量也可以被列出來喔!
$                        <== 目前這個 shell 所使用的 PID
?                        <== 剛剛運行完命令的回傳值。

環境變量PS1

PS1:(提示字符的配置)

這是 PS1 (數字的 1 不是英文字母),這個東西就是我們的『命令提示字符』

  • \d :可顯示出『星期 月 日』的日期格式,如:"Mon Feb 2"
  • \H :完整的主機名。舉例來說,鳥哥的練習機為『www.vbird.tsai』
  • \h :僅取主機名在第一個小數點之前的名字,如鳥哥主機則為『www』後面省略
  • \t :顯示時間,為 24 小時格式的『HH:MM:SS』
  • \T :顯示時間,為 12 小時格式的『HH:MM:SS』
  • \A :顯示時間,為 24 小時格式的『HH:MM』
  • \@ :顯示時間,為 12 小時格式的『am/pm』樣式
  • \u :目前使用者的賬號名稱,如『root』;
  • \v :BASH 的版本信息,如鳥哥的測試主板本為 3.2.25(1),僅取『3.2』顯示
  • \w :完整的工作目錄名稱,由根目錄寫起的目錄名稱。但家目錄會以 ~ 取代;
  • \W :利用 basename 函數取得工作目錄名稱,所以僅會列出最後一個目錄名。
  • \# :下達的第幾個命令。
  • \$ :提示字符,如果是 root 時,提示字符為 # ,否則就是 $ 啰~

    環境變量$代表本Shell的線程代號,也就是PID

    環境變量?:上一個命令所傳回的值(正確返回0,錯誤返回1)

    變量鍵盤讀取、數組與宣告: read, array, declare

    要讀取來自鍵盤輸入的變量,用 read 這個命令

    [root@www ~]# read [-pt] variable
    選項與參數:
    -p  :後面可以接提示字符!
    -t  :後面可以接等待的『秒數!』這個比較有趣~不會一直等待使用者啦!

    declare / typeset

    declare 或 typeset 是一樣的功能,就是在『宣告變量的類型』。如果使用 declare 後面並沒有接任何參數,那麼 bash 就會主動的將所有的變量名稱與內容通通顯示出來,就好像使用 set 一樣。

    [root@www ~]# declare [-aixr] variable
    選項與參數:
    -a  :將後面名為 variable 的變量定義成為數組 (array) 類型
    -i  :將後面名為 variable 的變量定義成為整數數字 (integer) 類型
    -x  :用法與 export 一樣,就是將後面的 variable 變成環境變量;
    -r  :將變量配置成為 readonly 類型,該變量不可被更改內容,也不能 unset
  • Copyright © Linux教程網 All Rights Reserved