自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linux下PS1、PS2、PS3、PS4使用詳解

運維 系統(tǒng)運維
1、PS1——默認提示符 如下所示,可以通過修改Linux下的默認提示符,使其更加實用。在下面的例子中,默認的PS1的值是“\s-\v\$”,顯示出了shell的名稱的版本。我們通過修改,可以使其顯示用戶名、主機名和當前工作目錄。

 1、PS1——默認提示符

如下所示,可以通過修改Linux下的默認提示符,使其更加實用。在下面的例子中,默認的PS1的值是“\s-\v\$”,顯示出了shell的名稱的版本。我們通過修改,可以使其顯示用戶名、主機名和當前工作目錄。

-bash-3.2$ export PS1="\u@\h \w> " 
ramesh@dev-db ~> cd /etc/mail 
ramesh@dev-db /etc/mail>

[注: 提示符修改為 "username@hostname current-dir>的形式]

本例中PS1使用的一些代碼如下:

o \u -- 用戶名 
o \h -- 主機名 
o \w -- 當前目錄的完整路徑。請注意當你在主目錄下的時候,如上面所示只會顯示~

注意,在PS1值之后有一個空格。從個人角度來講,使用這個空格可以增加一定的可讀性。

將export PS1=”\u@\h \w>" 添加到.bash_profile 或者 .bashrc中,則可以保證其***有效。

ramesh@dev-db ~> vi ~/.bash_profile 
ramesh@dev-db ~> vi ~/.bashrc

[注: 將命令添加到以上任何一個即可]

2、PS2——再談提示符

一個非常長的命令可以通過在末尾加“\”使其分行顯示。多行命令的默認提示符是“>”。 我們可以通過修改PS2 ,將提示符修改為"continue->" 。

ramesh@dev-db ~> myisamchk --silent --force --fast --update-state \ 
> --key_buffer_size=512M --sort_buffer_size=512M \ 
> --read_buffer_size=4M --write_buffer_size=4M \ 
> /var/lib/mysql/bugs/*.MYI
[注: 這里使用 ">" 作為默認提示符]
ramesh@dev-db ~> export PS2="continue-> " 
ramesh@dev-db ~> myisamchk --silent --force --fast --update-state \ 
continue-> --key_buffer_size=512M --sort_buffer_size=512M \ 
continue-> --read_buffer_size=4M --write_buffer_size=4M \ 
continue-> /var/lib/mysql/bugs/*.MYI
[注: 與上面類似,用 "continue-> " 作提示符]

當用“\”使長命令分行顯示,我發(fā)現(xiàn)非常易讀。當然我也見過有的人不喜歡分行顯示命令

3、PS3——Shell腳本中使用select時的提示符

你可以像下面示范的那樣,用環(huán)境變量PS3定制shell腳本的select提示:

不使用PS3的腳本輸出:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
ramesh@dev-db ~> cat ps3.sh
select i in mon tue wed exit
do
    case $i in
        mon) echo "Monday";;
        tue) echo "Tuesday";;
        wed) echo "Wednesday";;
        exit) exit;;
    esac
done
 
ramesh@dev-db ~> ./ps3.sh
1) mon
2) tue
3) wed
4) exit
#? 1
Monday
#? 4

[注: 缺省的提示符是 #?]

使用PS3的腳本輸出:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
ramesh@dev-db ~> cat ps3.sh
PS3="Select a day (1-4): "
select i in mon tue wed exit
do
    case $i in
        mon) echo "Monday";;
        tue) echo "Tuesday";;
        wed) echo "Wednesday";;
        exit) exit;;
    esac
done
 
ramesh@dev-db ~> ./ps3.sh
1) mon
2) tue
3) wed
4) exit
Select a day (1-4): 1
Monday
Select a day (1-4): 4

[注: 設置了PS3變量后,命令提示符已經(jīng)成為 "Select a day (1-4):"]

4、PS4——PS4-“set -x"用來修改跟蹤輸出的前綴

如果你像下面那樣在調(diào)試模式下的腳本中,PS4環(huán)境變量可以定制提示信息:

沒有設置PS4時的shell腳本輸出:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ramesh@dev-db ~> cat ps4.sh
 
 
set –x
echo "PS4 demo script"
ls -l /etc/ | wc –l du -sh ~
 
ramesh@dev-db ~> ./ps4.sh
    ++ echo 'PS4 demo script'
PS4 demo script
++ ls -l /etc/
++ wc –l
243
++ du -sh /home/ramesh
48K /home/ramesh

[注: 當使用sex -x跟蹤輸出時的提示符為 ++]

設置PS4后的腳本輸出:

PS4在ps.sh中定義了下面兩個變量

o $0 顯示當前的腳本名 
o $LINENO 顯示的當前的行號

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ramesh@dev-db ~> cat ps4.sh
export PS4='$0.$LINENO+ '
set -x
echo "PS4 demo script"
ls -l /etc/ | wc -l
du -sh ~
 
ramesh@dev-db ~> ./ps4.sh
../ps4.sh.3+ echo 'PS4 demo script'
PS4 demo script
../ps4.sh.4+ ls -l /etc/
../ps4.sh.4+ wc -l
243
../ps4.sh.5+ du -sh /home/ramesh
48K /home/ramesh

[注: 使用PS4后使 "{script-name}.{line-number}+" 成為set –x的命令提示符]

【編輯推薦】

  1. 如何在RHEL5.7下搭建和配置DHCP服務器
  2. Linux服務器的16個監(jiān)控命令
  3. 服務器性能指標:撥開服務器評測體系迷霧
責任編輯:趙寧寧
點贊
收藏

51CTO技術棧公眾號