Salut à tous,
Pour les accros de la console, qui ont oublié ce à quoi Nautilus faisait référence 😃, voici un petit script qui booste la commande "cd" afin de lui permettre de :
- naviguer rapidement dans l'historique de navigation en console.
- utiliser simplement des signets.
Utilisation
Historique
- cdz (ou cd -z) revient en arrière au répertoire précédemment parcouru
- cdy (ou cd -y) revient en avant
- cdi (ou cd -i) permet de naviguer à l'aide d'une flèche dans cet historique.
Signets
- cda [DIR] (ou cd -a [DIR]) rajoute un nouveau signet pointant vers le répertoire DIR (par défaut le répertoire courant), et propose également de créer un alias vous déplaçant directement vers ce répertoire.
- cds (ou cd -s) permet de naviguer dans les signets avec les flèches Haut et Bas et de s'y déplacer avec Entrée. De plus :
- la touche Suppr supprime le signet sélectionné
- la touche Flèche Droite le déplace
- la touche Flèche Gauche le range (après l'avoir déplacé)
- La touche Del (Backspace) (re)nomme l'alias assigné à un signet.
- La touche q quitte la navigation sans se déplacer vers le signet sélectionné.
- cd -h imprime l'aide.
Navigation rapide par pattern
Enfin, en plus de l'habituel cd DIR, vous pouvez désormais également faire cd PATTERN, ce qui permet de se déplacer vers le premier signet dont le chemin correspondant à PATTERN (globbing, insensible à la casse). Par exemple, avec un signet pointant vers /home/Moi/Bureau, faire (dans n'importe quel répertoire) :
cd bur
ou :
cd b*eau
déplace vers /home/Moi/Bureau.
Installation
Téléchargez le script
ici, et mettez-le où vous voulez, par exemple /chemin/vers/histerm.sh (accessible en lecture), et rajouter dans son fichier ~/.bashrc la ligne :
source /chemin/vers/histerm.sh
et ouvrir un nouveau terminal.
Exemples
-
Historique :
ehmicky@/home $ cd Bureau
ehmicky@/home/Bureau $ cd /usr/include
ehmicky@/usr/include $ cdz
ehmicky@/home/Bureau $ cdz
ehmicky@/home $ cdy
ehmicky@/home/Bureau $ cdy
ehmicky@/usr/include $
-
Création de signets :
ehmicky@/var/log $ cda
Quel alias souhaitez-vous donner à /var/log ?
Ne rien rentrer si pas d'alias souhaité : cdlog
ehmicky@/var/log $ cd /home/
ehmicky@/home $ cd /usr/include/
ehmicky@/usr/include $ cdlog
ehmicky@/var/log $ pwd
/var/log
-
Affichage de mes signets perso via cds :
╭──────────────────────────────────────────────────────────────────────────────╮
│ / │ ... │
│ /etc │ cde │
│ /home/donnees │ cdd │
│ /home/donnees/Geek │ cdg │
│ /home/donnees/Geek/Koi │ cdk │
│ /home/donnees/Geek/Koi/A_ranger │ cdar │
│ /home/donnees/Geek/Koi/C/Commandes │ cdcc │
│ ──► /home/donnees/Geek/Koi/Unix/Commandes_Unix │ cdc │
│ /home/donnees/Geek/Koi/Unix/Commandes_Unix/Tout │ cdt │
│ /home/ether/a │ cdn │
│ /home/donnees/Geek/Koi/C++/Commandes │ cdcp │
│ /home/ether/.gvim │ cdv │
│ /home/ether/Desktop │ cdb │
│ /home/scripts/Bash │ cdsc │
│ /media │ cdm │
│ /opt │ cdo │
│ /root │ cdr │
│ /usr/include │ cdh │
╰──────────────────────────────────────────────────────────────────────────────╯
Notes
J'ai fait attention que l'on puisse toujours utiliser cd normalement : par exemple cd sans argument, cd -, les options et variables pour cd (CD_PATH, etc.).
Il y aussi une fonction de restauration des signets en cas de problèmes.
Les chemins contenant des caractères anormaux (espace, é, * ou 日sont pris en charge).
N'hésitez pas à me signaler les bugs, et les choses que vous aimeriez voir 🙂 :