Sous les doigts

Voici quelques astuces qui vous permettront de gagner du temps lors de l'utilisation du shell.

Autocomplétion

la touche [TAB] à gauche de votre clavier qui ressemble à

image

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é).

  1. Testez cet exemple.

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).

  1. Testez cet exemple.

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).

Historique

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) !

  1. Observez vote historique

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.

  1. Naviguez dans votre historique avec les flèches.

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.

  1. Essayez cette technique avec la commande 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

Historique accéléré

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 :

  1. É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.

  1. Testez cet exemple avec différents préfixes.
  2. Lorsque vous avez fini ce TP, vous pouvez ajouter 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.