Je viens juste de passer de debian à Archlinux. Comme gestionnaire de fenêtres, j'ai choisi openbox en standalone.
Pour ne pas être trop dépaysé, j'installe gnome-terminal comme terminal.
Sauf que là, un problème: pas de couleur, le prompt est en noir et blanc. J'essaie de voir ce que donne Vim, et là ça va, j'ai de la couleur. Je pense qu'il doit y avoir des différences au niveau du bashrc entre Debian et Arch.
Est ce que vous pourriez m'aider?
Je vous mets mon .bashrc:
Code : Tout sélectionner
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples
#très bon tuto: http://www.bordel-de-nerd.net/2010/08/configurer-son-terminal-bash/#content
#sur le site du zéro: http://www.siteduzero.com/tutoriel-3-38192-personnalisez-votre-shell-en-couleur.html
# If not running interactively, don't do anything
[ -z "$PS1" ] && return
# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
#export PATH=$PATH:/home/djipey/SOFT/amber9 #on ajoute ce répertoire au PATH
#export 'AMBERHOME=/home/djipey/SOFT/amber9'
#export PATH=$PATH:/home/djipey/SOFT/gamess
############################################################################################################################################################
# VARIABLES
###############################################################################################################################################
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
export HISTSIZE=10000 # taille de l'historique
export HISTFILESIZE=${HISTSIZE}
export HISTIGNORE="ls:cd:[bf]g:exit" # ignorer les lignes w/ ls, cd, ...
export HISTCONTROL="ignoreboth" # ignorer les doublons et les commandes qui commencent par un espace
export HISTTIMEFORMAT="[ %d/%m/%Y %H:%M:%S ]" # donne la date des commandes dans l'historique. Dans .bash_history, la date est donnée en seconde depuis 01/01/1970
# append to the history file, don't overwrite it
############################################################################################################################################################
# SHOPTS
############################################################################################################################################################
shopt -s cdspell # Pour que bash corrige automatiquement les fautes de frappes ex: cd ~/fiml sera remplacé par cd ~/film
shopt -s checkwinsize # Pour que bash vérifie la taille de la fenêtre après chaque commande
shopt -s cmdhist # Pour que bash sauve dans l'historique les commandes qui prennent plusieurs lignes sur une seule ligne.
shopt -s dotglob # Pour que bash montre les fichiers qui commencent par un .
shopt -s expand_aliases # # Pour que bash montre la commande complete au lieu de l'alias
shopt -s extglob # Pour que bash, interprète les expressions génériques
shopt -s histappend # Pour que bash ajoute au lieu d'écraser dans l'histo
shopt -s hostcomplete # Pour que bash tente de résoudre le nom pour les ip suivis d'un @
shopt -s nocaseglob # Pour que bash ne soit pas sensible a la casse
shopt -s cdable_vars # utilisé pour la fonction bookmarks pour que bash n'ai pas besoin de $ pour sourcer le fichier .dirs
shopt -s nocasematch
shopt -s shift_verbose
######################################################################################################################################################
###### COMMAND PROMPT & CLI ###### COMMAND PROMPT & CLI ###### COMMAND PROMPT & CLI ###### COMMAND PROMPT & CLI ###### COMMAND PROMPT & CLI ######
######################################################################################################################################################
# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then
debian_chroot=$(cat /etc/debian_chroot)
fi
# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
xterm-color) color_prompt=yes;;
esac
# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
force_color_prompt=yes
if [ -n "$force_color_prompt" ]; then
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
# We have color support; assume it's compliant with Ecma-48
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
# a case would tend to support setf rather than setaf.)
color_prompt=yes
else
color_prompt=
fi
fi
#txtrst='\e[0m' # Text Reset
#txtbluj="\[\e[01;34m\]" # Bleu prompt
#txtarobasc="\[\e[05;33m\]" # Orange clignote prompt
#txtarobas="\[\e[02;33m\]" # Orange prompt
#txtvertj="\[\e[01;32m\]" # Vert fluo prompt
#txtjaunj="\[\e[01;33m\]" # Jaune prompt
#txtbleucj="\[\033[1;36m\]" # Bleu clair prompt
#txtheure="\[\e[02;36m\]" # turquoise, heure prompt
#txtgrisj="\[\e[30;1m\]" # gris prompt
function truncate_pwd # Fonction pour remplacer PWD par {...} si > 1/3 de l'écran
{
newPWD="${PWD/#$HOME/~}"
local pwdmaxlen=$((${COLUMNS:-20}/3))
if [ ${#newPWD} -gt $pwdmaxlen ]
then
newPWD=" {...} ${newPWD: -$pwdmaxlen}"
fi
}
#pour changer les couleurs du prompt, penser à mettre un antislah devant chaque bloc couleur. Tuto à l'adresse: http://www.siteduzero.com/tutoriel-3-38192-personnalisez-votre-shell-en-couleur.html
PROMPT_COMMAND=truncate_pwd # Executé avant chaque commande
if [ "$color_prompt" = yes ]; then
export PS1='${debian_chroot:+($debian_chroot)}\[\033[01;33m\]\u\[\033[00m\]\[\033[01;31m\]@\[\033[00m\]\[\033[00m\]\[\033[01;34m\]\h\[\033[00m\]:\[\033[01;32m\]\t\[\033[00m\]:\[\033[01;45m\]\w\[\033[00m\]\$ '
else
export PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
;;
*)
;;
esac
############################################################################################################################################################
# ALIAS
############################################################################################################################################################
# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
eval "`dircolors -b`"
alias ls='ls --color=auto'
#alias dir='dir --color=auto'
#alias vdir='vdir --color=auto'
alias grep='grep --color=auto'
#alias fgrep='fgrep --color=auto'
#alias egrep='egrep --color=auto'
fi
alias cp="cp -i" # Confirmer avant d'écraser un fichier existant
alias g='nohup gedit > /dev/null'
alias v='vim'
alias ll='ls -lh'
alias killa='killall'
if type -P htop >/dev/null; then
alias top='htop' # toujours utiliser htop si installé
fi
alias corbeille='rm -rvf ~/.local/share/Trash/*'
alias caps='caps -n 12 -j -H 200'
alias conka='conky -c ~/conky/conkyrc &'
alias redshift='nohup gtk-redshift -l 43.7:7.26 -t 6000:4100'
alias up='plowup -a djipey:stupta'
alias ports="lsof -i -n -P" # Voir les process qui utilisent une connection internet
alias install='sudo apt-get install --no-install-recommends'
alias remove='sudo apt-get autoremove'
alias search='apt-cache search'
alias update='sudo apt-get update'
alias upgrade='sudo apt-get dist-upgrade'
alias syn='sudo synaptic'
alias protect='sudo chmod -r "double des torrents" save_prog torrent incomplete videos/.OK infotorrent completed_downloads/ completed_downloads/.OK /media/disk-2/.SystemSave /media/base-2/.SystemSave /media/disk-2/.Trash-1000 /media/base-2/.Trash-1000'
alias disprotect='sudo chmod +r "double des torrents" save_prog torrent incomplete videos/.OK infotorrent completed_downloads/ completed_downloads/.OK /media/disk-2/.SystemSave /media/base-2/.SystemSave /media/disk-2/.Trash-1000 /media/base-2/.Trash-1000'
alias starswars='telnet towel.blinkenlights.nl'
alias matrix='cmatrix'
alias train='sl'
alias flow='~/SOFT/flow/./flow'
############################################################################################################################################################
# FONCTIONS
###############################################################################################################################################
gms () { rm -v ~/scr/*; /home/djipey/SOFT/gamess/rungms $1 | tee $2 & \; ;} # vide ~/scr, lance Gamess avec son script de lancement rungms, et lit le log dans la console
#place un lien physique des fichiers modifiés depuis $1 jours dans le dossier recent/
recent () { rm -r recent/ ; mkdir recent/ ; find -mtime -$1 -exec ln {} recent/ \; ;}
# myip - Obtenir IP publique
# usage: myip
myip(){ wget -q -O - checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//';}
# clock - Affiche une horloge simple
# usage: clock
clock() { while true;do clear;echo -e "\e[30;1m===========\e[0m\e[01;33m";date +"%r";echo -e "\e[0m\e[30;1m===========\e[0m";sleep 1;done; }
# télecharger un site complet avec Wget
# Les pages seront mise en html (E), les liens seront transformés (k) et c'est récursif (r) sur 5 niveaux maxi (l5)
# Usage wdl <URL>
# tip : utiliser servethis pour servir les pages télechargées
wdl(){ wget -r -l5 -k -E ${1} && cd $_;}
# Renomme en minuscules
# usage tolowercase <*.txt>
toLowercase() { for i in "$@"; do mv -f "$i" "`echo $i| tr [A-Z] [a-z]`" &>/dev/null; done }
# Renomme en majuscules
# usage toupercase <*.txt>
toUpercase() { for i in "$@"; do mv -f "$i" "`echo $i| tr [a-z] [A-Z]`" &>/dev/null; done }
# remplacer les espaces par des _
# usage underscorespace <*.txt>
underscorespace() { for i in "$@"; do mv "$i" "`echo $i| tr ' ' '_'`" &>/dev/null; done }
# extract - Extraire une archive
# usage: ex <fichier>
extract ()
{
if [ -f $1 ] ; then
case $1 in
*.tar.bz2) tar xjvf $1 ;;
*.tar.gz) tar xzvf $1 ;;
*.bz2) bunzip2 $1 ;;
*.rar) unrar x $1 ;;
*.gz) gunzip $1 ;;
*.tar) tar xvf $1 ;;
*.tbz2) tar xjvf $1 ;;
*.tgz) tar xzvf $1 ;;
*.zip) unzip $1 ;;
*.Z) uncompress $1;;
*.7z) 7z x $1 ;;
*) echo -e "${bldred}'$1' ne peut pas etre decompresse avec ex()" ;;
esac
else
echo -e "\n${bldred}'$1' n'est pas un fichier valide"
fi
}
###### magic square generator (odd-order squares only!)
#En mathématiques, un carré magique d'ordre n est composé de n2 nombres entiers généralement distincts, écrits sous la forme d'un tableau carré.
#Ces nombres sont disposés de manière à ce que leurs sommes sur chaque rangée, sur chaque colonne et sur chaque diagonale principale soient égales.
msquare ()
{
# Author: mendel cooper
EVEN=2
MAXSIZE=31 # 31 rows x 31 cols.
E_usage=90 # Invocation error.
dimension=
declare -i square
function usage_message()
{
echo "Usage: $0 square-size"
echo " ... where \"square-size\" is an ODD integer"
echo " in the range 3 - 31." # Works for squares up to order 159
}
function calculate() # Here's where the actual work gets done.
{
local row col index dimadj j k cell_val=1
dimension=$1
let "dimadj = $dimension * 3"; let "dimadj /= 2" # x 1.5, then truncate.
for ((j=0; j < dimension; j++))
do
for ((k=0; k < dimension; k++))
do # Calculate indices, then convert to 1-dim. array index.
# Bash doesn't support multidimensional arrays. Pity.
let "col = $k - $j + $dimadj"; let "col %= $dimension"
let "row = $j * 2 - $k + $dimension"; let "row %= $dimension"
let "index = $row*($dimension) + $col"
square[$index]=cell_val; ((cell_val++))
done
done
} # Plain math, no visualization required.
function print_square() # Output square, one row at a time.
{
local row col idx d1
let "d1 = $dimension - 1" # Adjust for zero-indexed array.
for row in $(seq 0 $d1)
do
for col in $(seq 0 $d1)
do
let "idx = $row * $dimension + $col"
printf "%3d " "${square[idx]}"; echo -n " "
done # Displays up to 13-order neatly in 80-column term window.
echo # Newline after each row.
done
}
if [[ -z "$1" ]] || [[ "$1" -gt $MAXSIZE ]]
then
usage_message
fi
let "test_even = $1 % $EVEN"
if [ $test_even -eq 0 ]
then # Can't handle even-order squares.
usage_message
fi
calculate $1
print_square # echo "${square[@]}" # DEBUG
}
###### generate prime numbers, without using arrays.
primes ()
{
LIMIT=1000 # Primes, 2 ... 1000.
Primes()
{
(( n = $1 + 1 )) # Bump to next integer.
shift # Next parameter in list.
# echo "_n=$n i=$i_"
if (( n == LIMIT ))
then echo $*
return
fi
for i; do # "i" set to "@", previous values of $n.
# echo "-n=$n i=$i-"
(( i * i > n )) && break # Optimization.
(( n % i )) && continue # Sift out non-primes using modulo operator.
Primes $n $@ # Recursion inside loop.
return
done
Primes $n $@ $n # Recursion outside loop.
# Successively accumulate
#+ positional parameters.
# "$@" is the accumulating list of primes.
}
Primes 1
}
#affiche des stats sur les commandes
function statsh ()
{
cut -f1 -d" " .bash_history | sort | uniq -c | sort -nr | head -n 30
}
######recherche la définition d'un mot
function define() {
local LNG=$(echo $LANG | cut -d '_' -f 1)
local CHARSET=$(echo $LANG | cut -d '.' -f 2)
lynx -accept_all_cookies -dump -hiddenlinks=ignore -nonumbers -assume_charset="$CHARSET" -display_charset="$CHARSET" "http://www.google.com/search?hl=${LNG}&q=define%3A+${1}&btnG=Google+Search" | grep -m 5 -C 2 -A 5 -w "*" > /tmp/define
if [ ! -s /tmp/define ]; then
echo "Sorry, google doesn't know this one..."
rm -f /tmp/define
return 1
else
cat /tmp/define | grep -v Search
echo ""
fi
rm -f /tmp/define
return 0
}
###### convert seconds to minutes, hours, days, and etc.
# inputs a number of seconds, outputs a string like "2 minutes, 1 second"
# $1: number of seconds
seconds-convert-part ()
{
local unit=$1
local name=$2
if [ $unit -ge 2 ]; then
echo " ${unit} ${name}s"
elif [ $unit -ge 1 ]; then
echo " ${unit} ${name}"
else
echo ""
fi
}
sec2all ()
{
local millennia=$((0))
local centuries=$((0))
local years=$((0))
local days=$((0))
local hour=$((0))
local mins=$((0))
local secs=$1
local text=""
# convert seconds to days, hours, etc
millennia=$((secs / 31536000000))
secs=$((secs % 31536000000))
centuries=$((secs / 3153600000))
secs=$((secs % 3153600000))
years=$((secs / 31536000))
secs=$((secs % 31536000))
days=$((secs / 86400))
secs=$((secs % 86400))
hour=$((secs / 3600))
secs=$((secs % 3600))
mins=$((secs / 60))
secs=$((secs % 60))
# build full string from unit strings
text="$text$(seconds-convert-part $millennia "millennia")"
text="$text$(seconds-convert-part $centuries "century")"
text="$text$(seconds-convert-part $years "year")"
text="$text$(seconds-convert-part $days "day")"
text="$text$(seconds-convert-part $hour "hour")"
text="$text$(seconds-convert-part $mins "minute")"
text="$text$(seconds-convert-part $secs "second")"
# trim leading and trailing whitespace
text=${text## }
text=${text%% }
# special case for zero seconds
if [ "$text" == "" ]; then
text="0 seconds"
fi
# echo output for the caller
echo ${text}
}
# Cut last n lines in file, 10 by default #
function cuttail()
{
nlines=${2:-10}
sed -n -e :a -e "1,${nlines}!{P;N;D;};N;ba" $1
}
###### generate a random password
# $1 = number of characters; defaults to 32
# $2 = include special characters; 1 = yes, 0 = no; defaults to 1
# copyright 2007 - 2010 Christopher Bratusek
function randompw() {
if [[ $2 == "!" ]]; then
echo $(cat /dev/urandom | tr -cd '[:graph:]' | head -c ${1:-32})
else echo $(cat /dev/urandom | tr -cd '[:alnum:]' | head -c ${1:-32})
fi
}
###### ... with pattern $1 in name and Execute $2 on it
function fe() { find . -type f -iname '*'$1'*' -exec "${2:-file}" {} \; ; }
############################################################################################################################################################
# AUTO-COMPLETION
############################################################################################################################################################
#copier "set completion-ignore-case on" dans ~/.inputrc pour rendre l'autocomplétion insensible à la casse
#
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
#complétion en sudo
complete -cf sudo
#complétion des domaines ssh
if [ -f ~/.ssh/known_hosts ]; then
SSH_COMPLETE=( $(cat ~/.ssh/known_hosts | \
cut -f 1 -d ' ' | \
sed -e s/,.*//g | \
uniq | \
egrep -v [0123456789]) )
complete -o default -W "${SSH_COMPLETE[*]}" ssh
fi