Difference between revisions of "Linux: Customize Shell Prompt"

From RHS Wiki
Jump to navigation Jump to search
Tags: Mobile edit Mobile web edit visualeditor
 
(26 intermediate revisions by the same user not shown)
Line 2: Line 2:
 
  echo $PS1
 
  echo $PS1
  
* \u  --> Username
+
*\u  --> Username
* \h  --> Hostname
+
*\h  --> Hostname
* \w  --> Current working Directory
+
*\w  --> Current working Directory
* More info @man page bash
+
*More info @man page bash
  
 
To modify edit ~/.bashrc
 
To modify edit ~/.bashrc
<nowiki>\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$
 
export PS1</nowiki>
 
  
http://ezprompt.net
+
 
 +
Test color and style with:
 +
echo -e "\033[04;91;46m something \033[00m"
 +
 
 +
*04 --> underline (01 bold)
 +
*91 --> ligth red foreground
 +
*46 --> cyan background
 +
 
 +
http://ezprompt.net<br />
 +
https://wiki.archlinux.org/index.php/Bash/Prompt_customization#Colors<br />
 +
 
 +
==Examples==
 +
===Kali===
 +
<source lang="bash">PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '</source>
 +
<source lang="bash">PS1="\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ "</source>
 +
===Ubuntu===
 +
<source lang="bash">PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '</source>
 +
===Example===
 +
<source lang="bash">PS1="\[\e[31m\][\[\e[m\]\[\e[31m\]\u\[\e[m\]@\[\e[31m\]\h\[\e[m\]\[\e[31m\]]\[\e[m\]:\[\e[36m\][\[\e[m\]\[\e[36m\]\w\[\e[m\]\[\e[36m\]]\[\e[m\]\[\e[31m\]\\$\[\e[m\] "
 +
export PS1="\[\e[33m\]\u\[\e[m\]@\[\e[31m\]\h\[\e[m\]:[\W]\\$ "</source>
 +
 
 +
===New line before, red username yellow@ green host:[blue path]$===
 +
<source lang="bash">PS1="\n\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u\[\033[01;33m\]@\[\033[01;32m\]\h\[\033[00m\]:\[\033[01;34m\][\w]\[\033[00m\]\$ "</source>
 +
 
 +
===red username yellow@ green host:[blue path]$===
 +
<source lang="bash">PS1="\[\e]0;\u@\h: \w\a\]\n\[\e]0;\u@\h: \w\a\]\[\033[01;31m\]\u\[\033[01;33m\]@\[\033[01;32m\]\h\[\033[00m\]:\[\033[01;34m\][\w]\[\033[00m\]$ "</source>
 +
 
 +
===Red username yellow @ purple hostname blue path===
 +
<source lang="bash">PS1="\[\e]0;\u@\h: \w\a\]\[\e]0;\u@\h: \w\a\]\[\033[01;31m\]\n\u\[\033[01;33m\]@\[\033[01;35m\]\h\[\033[00m\]:\[\033[01;34m\][\w]\[\033[00m\]$ "</source>
 +
 
 +
===New Line, red username, yellow @, red foreground and cyan background hostname, blue path===
 +
<source lang="bash">PS1="\[\e]0;\u@\h: \w\a\]\[\e]0;\u@\h: \w\a\]\[\033[01;31m\]\n\u\[\033[01;33m\]@\[\033[04;91;46m\]\h\[\033[00m\]:\[\033[01;34m\][\w]\[\033[00m\]$ "</source>
 +
 
 +
===New Line, red username, yellow @, red foreground and cyan background hostname, blue path===
 +
<source lang="bash">PS1="\[\e]0;\u@\h: \w\a\]\[\e]0;\u@\h: \w\a\]\[\033[01;32m\]\n\u\[\033[01;33m\]@\[\033[04;91;46m\]\h\[\033[00m\]:\[\033[01;34m\][\w]\[\033[00m\]$ "</source>
 +
 
 +
===With flag===
 +
<source lang="bash">PS1=$'\\[\e[31m\\]\u2234\\[\e[0m\\]\n \\[\e[31m\\]\u2588\\[\e[33m\\]\u2588\\[\e[31m\\]\u2588  ${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u\[\033[01;33m\]@\[\033[01;31m\]\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ \\[\e[0m\\] '</source>
 +
 
 +
<source lang="bash">PS1=$'\\[\e[31m\\]\u2234\\[\e[0m\\]\n\\[\e[31m\\]\u2588\u2588\u2588\n\\[\e[33m\\]\u2588\u2588\u2588\n\\[\e[31m\\]\u2588\u2588\u2588  ${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u\[\033[01;33m\]@\[\033[01;31m\]\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ \\[\e[0m\\]'</source>
 +
 
 +
===With git branch and timestamp===
 +
<source lang="bash">git_branch () {
 +
  git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'
 +
}
 +
PS1=\[\033[01;31m\]\t \[\033[01;32m\]durrantm \[\033[02;36m\]\h \[\033[01;34m\]`pwd | sed "s#\(/[^/]\{1,\}/[^/]\{1,\}/[^/]\{1,\}/\).*\(/[^/]\{1,\}/[^/]\{1,\}\)/\{0,1\}#\1_\2#g"` \[\033[00;33m\]$(git_branch)\[\033[00m\]\n\$ </source>
 +
 
 +
<source lang="bash">PS1='\[\033[01;31m\]\t $(git_branch)\n\[\033[01;32m\]\u@\[\033[02;36m\]\h\[\033[01;34m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '</source>
 +
 
 +
==Green prompt with timestamp==
 +
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\D{%F %T}\n\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
 +
==Green prompt with white timestamp==
 +
PS1='${debian_chroot:+($debian_chroot)}\n\[\033[00m\]\D{%F %T}\n\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
 +
 
 +
To test some color:
 +
echo -e "\033[01;31mhi"
 +
 
 +
Another example:
 +
<source lang="bash">function elite
 +
{
 +
 
 +
local GRAY="\[\033[1;30m\]"
 +
local LIGHT_GRAY="\[\033[0;37m\]"
 +
local CYAN="\[\033[0;36m\]"
 +
local LIGHT_CYAN="\[\033[1;36m\]"
 +
local NO_COLOUR="\[\033[0m\]"
 +
 
 +
case $TERM in
 +
    xterm*|rxvt*)
 +
        local TITLEBAR='\[\033]0;\u@\h:\w\007\]'
 +
        ;;
 +
    *)
 +
        local TITLEBAR=""
 +
        ;;
 +
esac
 +
 
 +
local temp=$(tty)
 +
local GRAD1=${temp:5}
 +
PS1="$TITLEBAR\
 +
$GRAY-$CYAN-$LIGHT_CYAN(\
 +
$CYAN\u$GRAY@$CYAN\h\
 +
$LIGHT_CYAN)$CYAN-$LIGHT_CYAN(\
 +
$CYAN\#$GRAY/$CYAN$GRAD1\
 +
$LIGHT_CYAN)$CYAN-$LIGHT_CYAN(\
 +
$CYAN\$(date +%H%M)$GRAY/$CYAN\$(date +%d-%b-%y)\
 +
$LIGHT_CYAN)$CYAN-$GRAY-\
 +
$LIGHT_GRAY\n\
 +
$GRAY-$CYAN-$LIGHT_CYAN(\
 +
$CYAN\$$GRAY:$CYAN\w\
 +
$LIGHT_CYAN)$CYAN-$GRAY-$LIGHT_GRAY "
 +
PS2="$LIGHT_CYAN-$CYAN-$GRAY-$NO_COLOUR "
 +
}</source>
 +
 
 +
https://www.maketecheasier.com/8-useful-and-interesting-bash-prompts/<br />
 +
http://www.tldp.org/HOWTO/Bash-Prompt-HOWTO/bash-prompt-escape-sequences.html<br />
 +
https://www.linux.com/learn/how-make-fancy-and-useful-bash-prompt-linux<br />
 +
http://misc.flogisoft.com/bash/tip_colors_and_formatting

Latest revision as of 18:59, 2 March 2019

Show current prompt string1

echo $PS1
  • \u --> Username
  • \h --> Hostname
  • \w --> Current working Directory
  • More info @man page bash

To modify edit ~/.bashrc


Test color and style with:

echo -e "\033[04;91;46m something \033[00m"
  • 04 --> underline (01 bold)
  • 91 --> ligth red foreground
  • 46 --> cyan background

http://ezprompt.net
https://wiki.archlinux.org/index.php/Bash/Prompt_customization#Colors

Examples[edit]

Kali[edit]

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
PS1="\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ "

Ubuntu[edit]

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

Example[edit]

PS1="\[\e[31m\][\[\e[m\]\[\e[31m\]\u\[\e[m\]@\[\e[31m\]\h\[\e[m\]\[\e[31m\]]\[\e[m\]:\[\e[36m\][\[\e[m\]\[\e[36m\]\w\[\e[m\]\[\e[36m\]]\[\e[m\]\[\e[31m\]\\$\[\e[m\] "
export PS1="\[\e[33m\]\u\[\e[m\]@\[\e[31m\]\h\[\e[m\]:[\W]\\$ "

New line before, red username yellow@ green host:[blue path]$[edit]

PS1="\n\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u\[\033[01;33m\]@\[\033[01;32m\]\h\[\033[00m\]:\[\033[01;34m\][\w]\[\033[00m\]\$ "

red username yellow@ green host:[blue path]$[edit]

PS1="\[\e]0;\u@\h: \w\a\]\n\[\e]0;\u@\h: \w\a\]\[\033[01;31m\]\u\[\033[01;33m\]@\[\033[01;32m\]\h\[\033[00m\]:\[\033[01;34m\][\w]\[\033[00m\]$ "

Red username yellow @ purple hostname blue path[edit]

PS1="\[\e]0;\u@\h: \w\a\]\[\e]0;\u@\h: \w\a\]\[\033[01;31m\]\n\u\[\033[01;33m\]@\[\033[01;35m\]\h\[\033[00m\]:\[\033[01;34m\][\w]\[\033[00m\]$ "

New Line, red username, yellow @, red foreground and cyan background hostname, blue path[edit]

PS1="\[\e]0;\u@\h: \w\a\]\[\e]0;\u@\h: \w\a\]\[\033[01;31m\]\n\u\[\033[01;33m\]@\[\033[04;91;46m\]\h\[\033[00m\]:\[\033[01;34m\][\w]\[\033[00m\]$ "

New Line, red username, yellow @, red foreground and cyan background hostname, blue path[edit]

PS1="\[\e]0;\u@\h: \w\a\]\[\e]0;\u@\h: \w\a\]\[\033[01;32m\]\n\u\[\033[01;33m\]@\[\033[04;91;46m\]\h\[\033[00m\]:\[\033[01;34m\][\w]\[\033[00m\]$ "

With flag[edit]

PS1=$'\\[\e[31m\\]\u2234\\[\e[0m\\]\n \\[\e[31m\\]\u2588\\[\e[33m\\]\u2588\\[\e[31m\\]\u2588  ${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u\[\033[01;33m\]@\[\033[01;31m\]\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ \\[\e[0m\\] '
PS1=$'\\[\e[31m\\]\u2234\\[\e[0m\\]\n\\[\e[31m\\]\u2588\u2588\u2588\n\\[\e[33m\\]\u2588\u2588\u2588\n\\[\e[31m\\]\u2588\u2588\u2588  ${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u\[\033[01;33m\]@\[\033[01;31m\]\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ \\[\e[0m\\]'

With git branch and timestamp[edit]

git_branch () { 
  git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'
}
PS1=\[\033[01;31m\]\t \[\033[01;32m\]durrantm \[\033[02;36m\]\h \[\033[01;34m\]`pwd | sed "s#\(/[^/]\{1,\}/[^/]\{1,\}/[^/]\{1,\}/\).*\(/[^/]\{1,\}/[^/]\{1,\}\)/\{0,1\}#\1_\2#g"` \[\033[00;33m\]$(git_branch)\[\033[00m\]\n\$
PS1='\[\033[01;31m\]\t $(git_branch)\n\[\033[01;32m\]\u@\[\033[02;36m\]\h\[\033[01;34m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

Green prompt with timestamp[edit]

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\D{%F %T}\n\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

Green prompt with white timestamp[edit]

PS1='${debian_chroot:+($debian_chroot)}\n\[\033[00m\]\D{%F %T}\n\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

To test some color:

echo -e "\033[01;31mhi"

Another example:

function elite
{

local GRAY="\[\033[1;30m\]"
local LIGHT_GRAY="\[\033[0;37m\]"
local CYAN="\[\033[0;36m\]"
local LIGHT_CYAN="\[\033[1;36m\]"
local NO_COLOUR="\[\033[0m\]"

case $TERM in
    xterm*|rxvt*)
        local TITLEBAR='\[\033]0;\u@\h:\w\007\]'
        ;;
    *)
        local TITLEBAR=""
        ;;
esac

local temp=$(tty)
local GRAD1=${temp:5}
PS1="$TITLEBAR\
$GRAY-$CYAN-$LIGHT_CYAN(\
$CYAN\u$GRAY@$CYAN\h\
$LIGHT_CYAN)$CYAN-$LIGHT_CYAN(\
$CYAN\#$GRAY/$CYAN$GRAD1\
$LIGHT_CYAN)$CYAN-$LIGHT_CYAN(\
$CYAN\$(date +%H%M)$GRAY/$CYAN\$(date +%d-%b-%y)\
$LIGHT_CYAN)$CYAN-$GRAY-\
$LIGHT_GRAY\n\
$GRAY-$CYAN-$LIGHT_CYAN(\
$CYAN\$$GRAY:$CYAN\w\
$LIGHT_CYAN)$CYAN-$GRAY-$LIGHT_GRAY " 
PS2="$LIGHT_CYAN-$CYAN-$GRAY-$NO_COLOUR "
}

https://www.maketecheasier.com/8-useful-and-interesting-bash-prompts/
http://www.tldp.org/HOWTO/Bash-Prompt-HOWTO/bash-prompt-escape-sequences.html
https://www.linux.com/learn/how-make-fancy-and-useful-bash-prompt-linux
http://misc.flogisoft.com/bash/tip_colors_and_formatting