Difference between revisions of "Linux: Customize Shell Prompt"
Jump to navigation
Jump to search
Rafahsolis (talk | contribs) |
Rafahsolis (talk | contribs) Tags: Mobile edit Mobile web edit visualeditor |
||
| (23 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 | ||
| − | + | ||
| − | + | ||
| + | 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 /> | http://ezprompt.net<br /> | ||
https://wiki.archlinux.org/index.php/Bash/Prompt_customization#Colors<br /> | https://wiki.archlinux.org/index.php/Bash/Prompt_customization#Colors<br /> | ||
| − | Examples: | + | ==Examples== |
| − | + | ===Kali=== | |
| − | export PS1="\[\e[33m\]\u\[\e[m\]@\[\e[31m\]\h\[\e[m\]:[\W]\\$ "</ | + | <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/ | + | 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