Afficher le dossier après la commande cd sous Linux

Petite astuce qui vient d’un collègue Développeur : quand on fait un « cd » sous un terminal Unix , pour éviter de se perdre, et sans avoir à le reconfigurer régulièrement, il y a plusieurs petites commandes et fichiers pour trouver des workarounds. Les admins unix pourront trouver cela trivial mais cela peut aider les codeurs Java ou autres langages à mieux appréhender Unix :

 
 
 
Voilà à quoi ressemble mon terminal maintenant :
Exemple n°1 :

[root@vm] /root $ mkdir exemple
[root@vm] /root $ cd exemple/
[root@vm] /root/exemple $

Exemple n°2 :

root@vm:~# mkdir exemple
root@vm:~# cd exemple/
/root/exemple
root@vm:exemple#

Modification du prompt

Définition

Pour modifier le prompt il faut modifier le variable d’environnement PS1 :

export PS1='[u@h] $(pwd) $ '

Dans cet exemple :

  • u : défini le nom de l’utilisateur
  • h : défini le hostname
  • $(pwd) : défini le chemin courant (peut être remplacé par w ou W)
    • w : donne le chemin complet
    • W : donne juste le dernier dossier

D’autres options

D’autres options peuvent être utilisées pour la variable PS1, en voici une liste :

  • Date
    • $(date +%k:%M:%S) : 11:30:13
    • t : 11:30:13
    • @ : 11:30 AM
  • Système d’exploiation
    • $(uname -r)
  • Appeler un script
    • $(/home/ope/myscript.sh)
    • exemple :
      NB=`ls -1 | wc -l`
      if [ $NB -eq 1 -o $NB -eq 0 ]
      then
      	echo "$NB file"
      else
      	echo "$NB files"
      fi

L’intégrer à chaque connexion

Il suffit de l’ajouter au fichier ~/.bashrc et vous pourrez l’utiliser à chaque connexion.

Surcharge de la commande « cd »

La deuxième solution est à utiliser avec parcimonie : je vous déconseille de l’utiliser en production car elle surcharge une commande du système.

Définition

Voici la fonction « cd », elle est chargée de remplacer le « cd » habituel en affichant le dossier courant après avoir changé de dossier.

function cd() {
    builtin cd $1; # Changement de dossier (appel au "cd" de l'OS)
    pwd; # Affichage du dossier courant
}

Voici quelques exemples :

cd exemple/
cd ..
cd /
cd ~
cd

L’intégrer à chaque connexion

Comme pour l’exemple n°1, il suffit de l’ajouter au fichier ~/.bashrc pour pouvoir l’utiliser à chaque connexion.

Complément

Vous pouvez également utiliser cette fonction « cd » pour lancer un listing des fichiers « ls -l » ou un « clear ».
Merci à Olivier Perez pour ces infos