Documentation du Dr FRAPPE

Ce wiki regroupe les résultats de mes expériences en informatique accumulés au cours de mes recherches sur le net.

Dans la mesure du possible, j'ai cité mes sources ; il en manque certainement… :-)

Bash : la ligne de commande sous Linux

Introduction

Pré-requis

Installation

Configuration

Le fichier de configuration de l'ensemble de la console est .bashrc dans le répertoire personnel. Normalement, il existe déjà.

Editez-le dans nano:

$ nano ~/.bashrc

Édition du.bashrc personnel

attention à ne pas éditer n'importe quoi au risque de tout casser.

Nous allons seulement voir quelques lignes faciles à éditer qui vous permettront de personnaliser un peu votre console.

Personnaliser l'invite de commandes

Le fichier.bashrc permet de personnaliser l'invite de commandes.

Cherchez ces lignes dans le fichier :

# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
xterm-color)
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
    ;;
*)
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
    ;;
esac
 
# Comment in the above and uncomment this below for a color prompt
# PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

Commentez par un # les deux premiers PS1 et décommentez le dernier PS1 pour que la coloration de l'invite de commandes puisse fonctionner :

# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
xterm-color)
#    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
    ;;
*)
#    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
    ;;
esac
 
# Comment in the above and uncomment this below for a color prompt
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

Enregistrez. Il faudra ouvrir une nouvelle console pour que la modification soit prise en compte.

Si vous êtes en forme, vous pouvez éditer la ligne que vous venez de décommenter :

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

Cette ligne indique ce que l'invite de commandes doit afficher. Les séquences de type \033 servent à paramétrer la couleur.

Le symbole \u au milieu indique le nom de l'utilisateur et \h indique le nom de la machine hôte. Vous pouvez repérer dans cette ligne le « @ » qui sépare les deux, le « : », le « $ », etc.

Vous pouvez essayer de personnaliser un peu ces éléments ainsi que leur ordre si ça vous amuse.

Créer des alias

éditez le fichier ~/.bash_aliases pour le modifier comme ceci 1) pour ajouter les lignes voulues :

Format d'une ligne :

alias nom_de_votre_alias='commande de votre alias'

On peut aussi utiliser des guillemets doubles.

~/.bash_aliases
alias ll='ls -lArth'
alias rm='rm --preserve-root'
alias la='ls -A'
alias l='ls -CF'
alias update="sudo apt-get -y update"
alias upgrade="sudo apt-get -y upgrade"
alias dist-upgrade="sudo apt-get -y dist-upgrade"
alias l2r="sudo service lighttpd restart"

En ligne de commande ssh, pour activer ces aliases, lancer :

$ source .bashrc

On peut par exemple sécuriser un peu rm pour éviter que l'on puisse supprimer tout le système depuis la racine/. Pour cela, on utilise le paramètre de sécurité preserve-root :

alias rm='rm --preserve-root'

Ne testez pas l'efficacité de cette commande en faisant unrm -rf /en root ! En effet, il faut relancer une console pour que les modifications soient prises en compte, et si vous avez fait une faute de frappe dans votre alias, vous ne serez pas protégés… mais pendant ce temps votre système sera détruit, lui !

Édition du bashrc global

Si vous voulez définir des alias ou modifier l'invite de commandes pour tous vos utilisateurs, vous pouvez le faire en une seule fois en éditant le fichierbashrcglobal situé dans :/etc/bash.bashrc. Ce bashrc doit être édité en root.

Ce fichier est un peu moins commenté que celui présent dans le home. Vous pouvez y copier vos alias et la ligne définissant l'invite de commandes (commençant parPS1).

Les éléments du bashrc personnel ont la priorité sur ceux du bashrc global. Si un même alias est défini dans les deux, c'est celui du bashrc personnel qui sera pris en compte.

Et aussi… le .profile

De même qu'il existe un ~/.bashrc et un /etc/bash.bashrc, il existe un ~/.profile et un/etc/profile. Quelle est la différence ?

En gros, le .profile est lu à chaque nouvelle console dans laquelle vous vous loggez (vous rentrez votre login / mot de passe). C'est le cas des consoles que vous ouvrez avec Ctrl + Alt + F1 à F6 (tty1àtty6).

Le .bashrc est lu lorsque vous ouvrez une console dans laquelle vous ne vous loggez pas. C'est le cas des consoles que vous ouvrez en mode graphique (Terminal sous Unity, Konsole sous KDE).

C'est un peu compliqué pour pas grand-chose au final. Dans la pratique, le.profile fait par défaut appel au .bashrc. Donc il suffit d'éditer votre .bashrc et vous modifierez ainsi les options de toutes vos consoles : celles avec et sans login. Voilà pourquoi je vous ai fait éditer dès le début le.bashrc.

Utilisation

Désinstallation

Voir aussi

1)
pour éviter de modifier trop souvent le fichier sensible qu'est .bashrc, il est conseillé d'utiliser le fichier ~/.bash_aliases