Voici quelques astuces qui vous permettront de gagner du temps lors de l'utilisation du shell.
la touche [TAB]
à gauche de votre clavier qui ressemble à
Elle permet l'autocomplétion, c'est à dire que le shell va vous aider à prolonger une commande que vous êtes en train de taper.
Lorsque vous tapez sur [TAB]
, votre shell va autocompléter jusqu'à ce qu'il y ait un embranchement dans les possibles, et si vous retapez [TAB]
, il va lister quelles sont les suites possibles.
Par exemple, si vous tapez wge[TAB]
, votre shell va autocompléter en wget
parce que la seule commande qui commence par wge
est wget
(ou pas, selon ce que vous avez installé).
Par exemple, si vous faites less /[TAB]
, le shell va s'arrêter immédiatement parce qu'il y a plusieurs chemins qui commencent par /
. Si vous faites [TAB][TAB]
vous voyez tous les sous-répertoires du répertoire racine /
. Si maintenant vous tapez e
puis [TAB], le shell va autocompléter jusqu'à less
/etc/
, si dans la foulée vous faites pas[TAB]
il devrait autocompléter jusqu'à la commande less /etc/passwd
que vous pouvez exécuter (touche [ENTER]
) pour afficher le contenu de ce fichier qui liste les users, ainsi leurs numéro d'user, leurs numéro de groupe, leurs HOME
(répertoire maison), leurs shells, etc (voir man 5 passwd
).
L'autocomplétion permet non seulement d'aller plus vite, mais aussi d'éviter les fautes de frappe en tapant des noms compliqués, en particulier lorsque des chemins ont des caractères exotiques (comme des espaces).
Il arrive souvent qu'on veuille réutiliser des commandes déjà tapées. Dans votre HOME
se trouve un fichier (caché) ~/.bash_history
qui contient l'historique (récent) des commandes tapées. Vous pouvez y accéder en affichant le fichier (utilisez l'autocomplétion !) : cat ~/.bash_history
ou avec la commande history
(autocompletion again) !
Mais surtout, il est possible de rappeler des commandes de l'historique pour les re-exécuter. Pour cela, il suffit d'utiliser les flèches verticales et voir afficher les commandes de l'historique. On peut aussi modifier légèrement une commande de l'historique avant de l'exécuter à nouveau.
Par ailleurs, il est possible de rappeler la dernière commande tapée avec !!
c'est utile si vous avez tapé une commande en tant qu'user non-privilégié et qu'en fait il fallait la taper en tant que root, vous pouvez taper sudo !!
qui relancera la commande mais en tant que root.
whoami
à lancer directement ou avec sudo
(la commande whoami
vient de l'anglais "Who am I ?" qui signifie « Qui suis-je ? »).Voir https://pics.me.me/i-am-devloper-vote-for-pedro-iamdevloper-forgetting-to-66526233.png
Une limitation de la technique précédente utilisant les flèches pour recycler des commandes de l'historique est qu'on peut perdre beaucoup de temps si on veut rappeler une commande ancienne.
Une astuce pour accélérer grandement la navigation dans l'historique est la suivante :
Éditez le fichier ~/.inputrc
(il n'existe probablement pas), et ajoutez-y les lignes :
# alternate mapping for "up arrow" and "down arrow" to search the history
"\e[A": history-search-backward
"\e[B": history-search-forward
La première ligne est un commentaire (commence par un #
) pour vous souvenir de ce que font ces deux lignes (ça peut être utile si votre ~/.inputrc
s'agrandit).
Cette modification à l'effet suivant (lorsque vous démarrez un nouveau shell) : si vous tapez quelques caractères, l'utilisation de la flèche vers le haut sélectionnera dans l'historique les commandes commençant par ces caractères.
Par exemple, si vous voulez rappeler une commande commençant par ls
, vous pouvez taper ls
suivi de flèches vers le haut et seules les commandes qui ont ls
comme préfixe apparaîtront.
souslesdoigts
à vos tags. Pratiquez le plus possible l'autocomplétion et l'utilisation de l'historique accéléré, vous gagnerez énormémént d'aisance et de vitesse dans l'utilisation du shell.