本篇內(nèi)容主要講解“Linux怎么設(shè)置SHEEL提示符的格式和顏色”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Linux怎么設(shè)置SHEEL提示符的格式和顏色”吧!
成都創(chuàng)新互聯(lián)提供網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、網(wǎng)頁設(shè)計(jì),品牌網(wǎng)站建設(shè),1元廣告等致力于企業(yè)網(wǎng)站建設(shè)與公司網(wǎng)站制作,十余年的網(wǎng)站開發(fā)和建站經(jīng)驗(yàn),助力企業(yè)信息化建設(shè),成功案例突破數(shù)千家,是您實(shí)現(xiàn)網(wǎng)站建設(shè)的好選擇.
SP1:bash中命令輸入的主提示符,如“[oracle@prod ~]$”。
SP2:當(dāng)命令特別長(zhǎng)的時(shí)候,換行輸入時(shí)的提示符,默認(rèn)是“>”。
可以在終端中輸入命令查看系統(tǒng)默認(rèn)參數(shù):
[root@prod ~]# echo $PS1
[\u@\h \W]\$
[root@prod ~]# echo $PS2
>
或者可以查看set值:
[root@prod ~]# set| grep PS1
PS1='[\u@\h \W]\$ '
[root@prod ~]# set| grep PS2
PS2='> '
如果需要查看提示符參數(shù)中各部分的定義,可以執(zhí)行man bash命令,找到PROMPTING部分說明:
PROMPTING
When executing interactively, bash displays the primary prompt PS1 when it is ready to read a command, and the secondary prompt PS2 when it needs more input to complete a command. Bash allows these prompt strings to be customized by inserting a number of backslash-escaped special characters that are decoded as follows:
\a an ASCII bell character (07)
\d the date in "Weekday Month Date" format (e.g., "Tue May 26")
\D{format}
the format is passed to strftime(3) and the result is inserted into the prompt string; an empty format results in a locale-specific time representation.
The braces are required
\e an ASCII escape character (033)
\h the hostname up to the first ‘.’
\H the hostname
\j the number of jobs currently managed by the shell
\l the basename of the shell’s terminal device name
\n newline
\r carriage return
\s the name of the shell, the basename of $0 (the portion following the final slash)
\t the current time in 24-hour HH:MM:SS format
\T the current time in 12-hour HH:MM:SS format
\@ the current time in 12-hour am/pm format
\A the current time in 24-hour HH:MM format
\u the username of the current user
\v the version of bash (e.g., 2.00)
\V the release of bash, version + patch level (e.g., 2.00.0)
\w the current working directory, with $HOME abbreviated with a tilde (uses the value of the PROMPT_DIRTRIM variable)
\W the basename of the current working directory, with $HOME abbreviated with a tilde
\! the history number of this command
\# the command number of this command
\$ if the effective UID is 0, a #, otherwise a $
\nnn the character corresponding to the octal number nnn
\\ a backslash
\[ begin a sequence of non-printing characters, which could be used to embed a terminal control sequence into the prompt
\] end a sequence of non-printing characters
The command number and the history number are usually different: the history number of a command is its position in the history list, which may include commands restored from the history file(see HISTORY below), while the command number is the position in the sequence of commands executed during the current shell session. After the string is decoded, it is expanded via parameter expansion, command substitution, arithmetic expansion, and quote removal, subject to the value of the promptvars shell option(see the description of the shopt command under SHELL BUILTIN COMMANDS below).
簡(jiǎn)單翻譯一下序列說明:
\a 一個(gè)ASCII響鈴字符(07)
\d "Weekday Month Date"格式的日期(比如"Tue May 26")
\D{format} 通過向strftime傳值后回顯自定義日期格式
\e ASCII轉(zhuǎn)義字符(033)
\h 主機(jī)名的第一部分,截取到第一個(gè)'.'
\H 主機(jī)的全稱
\j 在當(dāng)前shell中管理的進(jìn)程數(shù)
\l shell的終端設(shè)備名稱的基名
\n 換行符
\r 回車符
\s shell的名稱,當(dāng)前腳本的名稱,不包括路徑
\t HH:MM:SS格式的24小時(shí)制時(shí)間
\T HH:MM:SS格式的12小時(shí)制時(shí)間
\@ am/pm格式的12小時(shí)制時(shí)間
\A HH:MM格式的12小時(shí)制時(shí)間
\u 當(dāng)前用戶的用戶名
\v bash的的版本(如2.00)
\V bash版本,包括補(bǔ)丁級(jí)別(如2.00.0)
\w 當(dāng)前工作目錄,包括路徑
\W 當(dāng)前工作目錄的基名,不包括路徑
\! 當(dāng)前命令的歷史記錄編號(hào)
\# 命令編號(hào)(只要您鍵入內(nèi)容,它就會(huì)在每次提示時(shí)累加)
\$ 如果您不是超級(jí)用戶 (root),則提示"$";如果您是超級(jí)用戶,則提示"#"
\nnn 對(duì)應(yīng)于八進(jìn)制數(shù)nnn的字符
\\ 反斜杠
\[ 開始一系列非打印字符,可以將終端控制序列嵌入到提示符中
\] 結(jié)束一系列非打印字符
這里做一些關(guān)于SP1參數(shù)的測(cè)試(當(dāng)然,用戶可以根據(jù)自己的喜好自行調(diào)整):
[root@prod ~]# su - oracle
[oracle@prod ~]$ set | grep PS1
PS1='[\u@\h \W]\$ '
[oracle@prod ~]$ export PS1='[\u@\h\d \W]\$ '
[oracle@prodSun Sep 10 ~]$ export PS1='[\u@\h \v \W]\$ '
[oracle@prod 4.1 ~]$ export PS1='[\u@\h \@ \W]\$ '
[oracle@prod 07:07 AM ~]$ export PS1='[\u#\h \w]\$ '
[oracle#prod ~]$ export PS1='[my oracle zone->\h \W]\$ '
[my oracle zone->prod ~]$ cd /u01/app/oracle
[my oracle zone->prod oracle]$ export PS1='[\u@\h \w]\$ '
[oracle@prod /u01/app/oracle]$ export PS1='[\u@\h \W]\$ '
[oracle@prod oracle]$ export PS1='[you can write some information here...\n\u@\h \W]\$ '
[you can write some information here...
oracle@prod oracle]$export PS1='[\u@\h \W]\$ '
[oracle@prod oracle]$
當(dāng)然,SP2參數(shù)也是可以做一些設(shè)置的:
[oracle@prod oracle]$ set | grep PS2
PS2='> '
[oracle@prod oracle]$ export PS2='[\u@\h \W]> '
[oracle@prod oracle]$ ls
admin cfgtoollogs checkpoints diag fast_recovery_area oradata product
[oracle@prod oracle]$ ll \
[oracle@prod oracle]> fast_recovery_area/
total 4
drwxr-x---. 3 oracle oinstall 4096 Sep 9 09:46 PROD
[oracle@prod oracle]$ export PS2='continue > '
[oracle@prod oracle]$ ll \
continue > fast_recovery_area/
total 4
drwxr-x---. 3 oracle oinstall 4096 Sep 9 09:46 PROD
[oracle@prod oracle]$ export PS2='> '
[oracle@prod oracle]$ ll \
> fast_recovery_area
total 4
drwxr-x---. 3 oracle oinstall 4096 Sep 9 09:46 PROD
[oracle@prod oracle]$
我們可以通過設(shè)置PS1和PS2變量使提示符成為彩色,這樣就可以方便的找到頁面中輸入過的命令。
設(shè)置字符序列顏色的格式為: \e[F;Bm
結(jié)束字符序列顏色的格式為: \e[0m
如果需要為字符設(shè)置顏色,可以這樣設(shè)置:\e[F;Bm需要設(shè)置顏色的部分\e[0m
其中F為字體顏色,編號(hào)30~37;B為背景色,編號(hào)40~47。
顏色信息表如下:
F B
30 40 黑色
31 41 紅色
32 42 綠色
33 43 黃色
34 44 藍(lán)色
35 45 紫紅色
36 46 青藍(lán)色
37 47 白色
如果需要設(shè)置特殊顯示,如高亮顯示顯示,可以將字符序列顏色的格式中\e[F;Bm中的F;B設(shè)置為1,即\e[1m,然后和顏色信息加配置在一起,如\e[31;40m\e[1m。
設(shè)置特殊顯示表如下:
0 OFF,關(guān)閉顏色
1 高亮顯示
4 顯示下劃線
5 閃爍顯示
7 反白顯示
8 顏色不可見
通過上述顏色信息表和設(shè)置特殊顯示表對(duì)顏色參數(shù)進(jìn)行配置,即可為終端提示符設(shè)置個(gè)性化的顏色。
如現(xiàn)在的提示符為:PS1='[\u@\h \W]\$ '
現(xiàn)在要進(jìn)行如下配置:
設(shè)置用戶名為紅色黑底,并且高亮顯示,即為:\e[31;40m\e[1m用戶名\e[0m
設(shè)置主機(jī)名為黃色白底,并且顯示下劃線,即為:\e[33;47m\e[4m主機(jī)名\e[0m
設(shè)置路徑為紫紅色黑底,即為:\e[35;40m路徑\e[0m
調(diào)整后的提示符為:
PS1='[\e[31;40m\e[1m\u\e[0m@\e[33;47m\e[4m\h\e[0m\e[35;40m\W\e[0m]\$ '
效果如下圖所示:
當(dāng)然,用戶可以自行對(duì)SP1和SP2參數(shù)進(jìn)行多次測(cè)試,完成顏色的調(diào)整。
注意:更多情況下可以通過Xshell,SecureCRT設(shè)置終端顯示顏色,如白底黑字,黑底白字,黑底綠字等,調(diào)整的過程可以和工具相結(jié)合,以獲取最舒適的顏色配置。
通過在終端中執(zhí)行export命令設(shè)置的變更只對(duì)當(dāng)前終端有效,關(guān)閉之后再打開另一個(gè)終端就會(huì)失效。如果需要將修改進(jìn)行持久化保存,需要將修改配置到系統(tǒng)配置文件中。
將export語句寫入/etc/profile或/etc/bashrc對(duì)全部用戶生效,寫入~/.bash_profile或~/.bashrc 只對(duì)當(dāng)前用戶生效。
[root@prod ~]# echo "export PS1='\e[33;40m[\u@\h \W]\$\e[0m '" >> /etc/bashrc
[root@prod ~]# cat /etc/bashrc | grep PS1
if [ "$PS1" ]; then
[ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ "
# if [ "$PS1" ]; then
# PS1="[\u@\h:\l \W]\\$ "
if [ "$PS1" ]; then
export PS1='\e[33;40m[\u@\h \W]$\e[0m '
[root@prod ~]# source /etc/bashrc
這樣,就可以保持修改的永久生效,而且,通過顏色的配置,還可以在整頁的命令中快速定位到上一條輸入的命令位置。
到此,相信大家對(duì)“Linux怎么設(shè)置SHEEL提示符的格式和顏色”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!