personalisation prompt
Rédigé par Paulo
Aucun commentaire
Personalistion du prompt sur une RedHat like :
Ci-dessous, un fichier a placer dans '/etc/profile.d' qui :
- modifie la PS1 en rouge si 'root', en bleu si autre utilisateur.
- affichage del'heure, nom du host et repertoire courant
- divers alias
NB: le script doit être executable...
#!/bin/bash # My prompt function # Call it like that : # my_prompt RED|BLUE|GREEN|CYAN|PURPLE 0|1 # RED|BLUE|GREEN|CYAN : Color of prompt # 0|1 : whether the title bar shoud be set (1] or not (0) function my_prompt { local BLACK="\[\033[0;30m\]" local RED="\[\033[0;31m\]" local GREEN="\[\033[0;32m\]" local BROWN="\[\033[0;33m\]" local BLUE="\[\033[0;34m\]" local PURPLE="\[\033[0;35m\]" local CYAN="\[\033[0;36m\]" local LIGHT_GRAY="\[\033[0;37m\]" local DARK_GRAY="\[\033[1;30m\]" local LIGHT_RED="\[\033[1;31m\]" local LIGHT_GREEN="\[\033[1;32m\]" local YELLOW="\[\033[1;33m\]" local LIGHT_BLUE="\[\033[1;34m\]" local LIGHT_PURPLE="\[\033[1;35m\]" local LIGHT_CYAN="\[\033[1;36m\]" local WHITE="\[\033[1;37m\]" local NO_COLOR="\[\033[0m\]" local BLACK_BG="\[\033[40m\]" local RED_BG="\[\033[41m\]" local GREEN_BG="\[\033[42m\]" local BROWN_BG="\[\033[43m\]" local BLUE_BG="\[\033[44m\]" local PURPLE_BG="\[\033[45m\]" local CYAN_BG="\[\033[46m\]" local LIGHT_GRAY_BG="\[\033[47m\]" local DEFAULT_COLOR="\[\033[0m\]" local DEFAULT_COLOR_BOLD="\[\033[1m\]" case $1 in RED) local FG=$LIGHT_RED local BG=$RED_BG ;; BLUE) local FG=$LIGHT_BLUE local BG=$BLUE_BG ;; GREEN) local FG=$LIGHT_GREEN local BG=$GREEN_BG ;; CYAN) local FG=$LIGHT_CYAN local BG=$CYAN_BG ;; PURPLE) local FG=$LIGHT_PURPLE local BG=$PURPLE_BG ;; *) local FG=$LIGHT_GREEN local BG=$GREEN_BG ;; esac case $2 in 1) local TITLEBAR='\[\033]0;\u@\h:\w\007\]' ;; *) local TITLEBAR="" ;; esac local PS1_PART1="$BG$WHITE-(\d \t)-$DEFAULT_COLOR$WHITE" local PS1_PART2="-($LIGHT_GREEN\h:\w$DEFAULT_COLOR$WHITE)-\n" local PS1_PART3="[$FG\u$DEFAULT_COLOR$WHITE]$DEFAULT_COLOR \\$ " PS1="$TITLEBAR$PS1_PART1$PS1_PART2$PS1_PART3" } function set_up_prompt { case $TERM in xterm*) local SET_TITLEBAR=1 ;; screen) local SET_TITLEBAR=1 ;; *) local SET_TITLEBAR=0 ;; esac case $1 in RED) my_prompt RED $SET_TITLEBAR ;; BLUE) my_prompt BLUE $SET_TITLEBAR ;; GREEN) my_prompt GREEN $SET_TITLEBAR ;; CYAN) my_prompt CYAN $SET_TITLEBAR ;; PURPLE) my_prompt PURPLE $SET_TITLEBAR ;; *) local USER=`whoami` if [ "$USER" = "root" ]; then my_prompt RED $SET_TITLEBAR else my_prompt BLUE $SET_TITLEBAR fi ;; esac } # If running interactively, then: if [ "$PS1" ]; then # don't put duplicate lines in the history. See bash(1) for more options export HISTCONTROL=ignoredups # check the window size after each command and, if necessary, # update the values of LINES and COLUMNS. shopt -s checkwinsize # enable color support of ls and also add handy aliases if [ "${TERM}" != "dumb" ]; then eval `dircolors -b` alias ls='ls --color=auto' fi # some more ls aliases alias ll='ls -lh' alias la='ls -A' alias lla='ls -lhA' alias l='ls -CF' # Less is better than more alias more='less' # Easy CVS update alias cvsu='cvs -z3 up -d -P' alias cvsi='cvs -z3 ci -m' # set a fancy prompt set_up_prompt fi export CVSEDITOR=emacs