SP1設置詳解

# PS1='自定義內容'linux

    注意兩邊的單引號shell

    示例: PS1='(/u@/H /d /t)/$'bash

    ----------------------------------------------------------------------------------------------------------------ide

    PS1:就是用戶平時的提示符。字體

    PS2:第一行沒輸完,等待第二行輸入的提示符。ui

    Linux系統提示符是用系統變量PS1來定義的。通常系統默認的形式是:[username@host 工做目錄]$.this

    用echo $PS1可以獲得PS1的值,即PS1="[/u@/h /w]"/$spa

    登陸後可以更改PS1的顯示樣式,可是當退出重啓登陸進入系統後,樣式又變成系統默認的樣式了,假如要徹底改變他的樣式,只能從配置文檔中改。orm

    PS是在用戶根目錄下的.bash_profile中定義的。ci

    如

    # .bash_profile

    # Get the aliases and functions

    if [ -f ~/.bashrc ]; then

    . ~/.bashrc

    fi

    # User specific environment and startup programs

    #如下是設定的PS1的值

    PS1="[/u@/h /w]/$"

    PATH=$PATH:$HOME/bin

    #使用export把PS1輸出,以使他可以在子shell中生效,這會形成ROOT用戶的也採用此樣式

    #export PS1 要慎用

    export PATH

    unset USERNAME

    下面簡單說說環境下默認的特別符號所表明的意義:

    /d :表明日期,格式爲weekday month date,例如:"Mon Aug 1"

    /H :完整的主機名稱。例如:個人機器名稱爲:fc4.linux,則這個名稱就是fc4.linux

    /h :僅取主機的第一個名字,如上例,則爲fc4,.linux則被省略

    /t :顯示時間爲24小時格式,如:HH:MM:SS

    /T :顯示時間爲12小時格式

    /A :顯示時間爲24小時格式:HH:MM

    /u :當前用戶的帳號名稱

    /v :BASH的版本信息

    /w :完整的工做目錄名稱。家目錄會以 ~代替

    /W :利用basename取得工做目錄名稱,因此只會列出最後一個目錄

    /# :下達的第幾個命令

    /$ :提示字符,假如是root時,提示符爲:# ,普通用戶則爲:$

    ==================================================


    咱們可以經過配置PS1變量使提示符成爲彩色。在PS1中配置字符序列顏色的格式爲:

    /[/e[F;Bm/]

    其中``F''爲字體顏色,編號30~37;``B''爲背景色,編號40~47。

    可經過``/e[0m''關閉顏色輸出;特別的,當B爲1時,將顯示加亮加粗的文字,周詳請看下面的顏色表和代碼表。

    顏色表

    前景 背景 顏色
    ---------------------------------------
    30 40 黑色
    31 41 色
    32 42 色
    33 43 色
    34 44 色
    35 45 紫色
    36 46 青色
    37 47 白色

    代碼 意義
    -------------------------
    0 OFF

    1 高亮顯示

    4 underline

    5 閃爍

    7 反白顯示

    8 不可見


    假如想要配置終端提示符的樣式只要把$PS1在~/.bahrc指定便可比,好比個人配置以下:

    配置一:

    PS1="/[/e[32m/][/u@/h /w]$/[/e[m/]"

    export PS1

    效果:

    [LinuxSong@test ~]$

    配置二:

    if [ $TERM = 'linux' ]; then
    export PS1="[/[/e[36;1m/]/u@/h /[/e[31;1m/]/w/[/e[32;1m/]]> "
    zhcon --utf8
    clear
    elif [ $TERM = "xterm" ]; then
    export PS1="[/[/e[31;1m/]/w/e[0m]> "
    fi

===========================

===========================

   CentOS中關於這些:
\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
\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


    因而能夠根據這些指定本身喜歡的命令提示符格式:

PS1="\u@\h:\w\$ "
    可是這樣設置以後顯示的提示符是沒有顏色的,若是但願加入顏色設置,能夠這樣:

PS1="\e[1;32m\u\e[m\e[1;33m@\e[m\e[1;35m\h\e[m:\w\$ "
    此時,在終端中的顯示應該是彩色的提示符了,其中的\e[1;xxm和\e[m就是改變終端字體顏色的部分,前者是修改顏色,後者是恢復到正常顯示。可是這時還會有問題,在提示符中輸入第一行時,回車換行不正常,致使顯示很混亂,所以,除了這個修改以外,還須要將所有非打印字符用專用的 bash 轉義序列 "\[" 和 "\]" 括起來。這兩個序列通知 bash,被括起來的字符不佔用行上的任何空間,這樣就使自動換行可以繼續正常工做。最終版本以下(可解決帶顏色提示符的不換行問題):

PS1="\[\e[1;32m\]\u\[\e[m\]\[\e[1;33m\]@\[\e[m\]\[\e[1;35m\]\h\[\e[m\]:\w\$ "

PS1='\[\e[32m\][\u@\h \W \A &\#]\$\[\e[37m\]'

相關文章
相關標籤/搜索