Shell - Accès aux dernières commandes de l'historique

Décembre 2016

Le shell Linux/Unix regorge de fonctionnalités permettant de gagner du temps.

Ainsi, il est possible de remonter dans l'historique des dernières commandes grâce aux flèches de navigation en appuyant sur la flèche du haut.

Mais il y a moyen d'accéder encore plus rapidement aux commandes présentes dans l'historique ! En effet, en saisissant un point d'exclamation (!) suivi des premières lettres de la commande, le shell exécute automatiquement la dernière commande commençant par ces lettres :

Soit l'historique suivant :
systeme:/home/user$tail /var/log/syslog
systeme:/home/user$vi /etc/apache/httpd.conf
systeme:/home/user$/etc/init.d/mysql restart
systeme:/home/user$apachectl restart
systeme:/home/user$tail /var/log/apache/error.log


La commande suivante permettra d'accéder à la commande n-4 dans l'historique (vi /etc/apache/httpd.conf) :
!vi
Quelques autres utilisations:
!! //Rappel de la dernière commande
!23 //La 23ème commande
!-2 //L'avant-dernière commande
!?profile //La dernière commande contenant le mot "profile"
^13^14^ //Substitution dans la dernière commande

L'historique des commandes est enregistré à chaque fermeture de session dans le fichier:
~/.bash_history
Pour éviter les doublons dans ce fichier, et donc dans l'historique accessible à la ligne de commande, rajoutez cette ligne dans ~/.bash_profile:
export HISTCONTROL=ignoredups


Enfin, pour des recherches plus détaillées, il existe une commande de recherche permettant de rechercher une commande spécifique avec un mot-clé. Pour activer la fonction de recherche, il suffit d'appuyer sur CTRL+R !

A voir également :

Ce document intitulé «  Shell - Accès aux dernières commandes de l'historique  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.