Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:programmation:bash:history [27/04/2013 18:09] smolski [Affichage alphabétique de l'historique des commandes] |
doc:programmation:bash:history [07/01/2017 12:29] Patrick Debian |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== HISTORY : Historique des commandes ====== | + | ====== history ====== |
+ | |||
+ | * Objet : history | ||
+ | * Niveau requis : {{tag>débutant avisé}} | ||
+ | * Commentaires : //Visualiser jusqu'à l’ensemble des 500 dernières commandes que vous avez saisies. // | ||
+ | * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !]] :-) | ||
+ | * Suivi : | ||
+ | * Création par [[user>MaTTuX_]] //Mattuxalhem...// | ||
+ | * Testé par [[user>smolski]] //pareil// :-P | ||
+ | * Commentaires sur le forum : [[http://debian-facile.org/viewtopic.php?id=1031 | Lien vers le forum concernant ce tuto]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | ||
+ | |||
+ | |||
+ | ===== Introduction ===== | ||
La commande history permet de visualiser l’ensemble des 500 dernières commandes que vous avez saisies dans votre console. | La commande history permet de visualiser l’ensemble des 500 dernières commandes que vous avez saisies dans votre console. | ||
Ligne 6: | Ligne 18: | ||
* History dans le terminal <root> relève les commandes de root. | * History dans le terminal <root> relève les commandes de root. | ||
- | ===== HISTORY ===== | + | ===== Utilisation ===== |
- | La commande s'utilise habituellement dans un terminal en tapant sur la flèche haut pour remonter le cours des commandes précédentes. | + | La commande s'utilise habituellement dans un terminal en tapant sur <key>Up</key> pour remonter le cours des commandes précédentes. |
Nous pouvons également l'invoquer textuellement en tapant : | Nous pouvons également l'invoquer textuellement en tapant : | ||
- | $ history | + | <code user>history</code> |
et obtenir la liste numérotée des 500 dernières commandes lancées | et obtenir la liste numérotée des 500 dernières commandes lancées | ||
+ | <file bash résultat de la commande précédente> | ||
4 cat base.tex | 4 cat base.tex | ||
5 ls -al | 5 ls -al | ||
Ligne 20: | Ligne 33: | ||
8 pwd | 8 pwd | ||
9 history | 9 history | ||
+ | </file> | ||
==== History - Reverse-Search ==== | ==== History - Reverse-Search ==== | ||
- | Terminal ouvert, en tapant : ''Ctrl r'' nous passons en : | + | Terminal ouvert, en tapant : <key>C-r</key> nous passons en : |
(reverse-i-search)`reco': | (reverse-i-search)`reco': | ||
- | et en tapant maintenant les premières lettres de la commande recherchée, celle-ci s'autocomplète intégralement au fur et à mesure ! | + | Et en tapant maintenant les premières lettres de la commande recherchée, celle-ci s'autocomplète intégralement. \\ |
+ | Pour remonter davantage dans l'historique sur le thème des premières lettres, il suffit de taper de nouveau sur <key>C-r</key> pour lister la suite des commandes similaires. | ||
- | ===== ! + Numero ===== | + | Astuce également valable dans un shell zsh. (//dixit le// **captnfab**...) ;-) |
+ | |||
+ | ==== ! + Numero ==== | ||
La commande !numéro permet d’atteindre la commande à droite du numéro. | La commande !numéro permet d’atteindre la commande à droite du numéro. | ||
Ligne 34: | Ligne 51: | ||
Essayez en tapant ''!8'', j’obtiens ici ''pwd'' qui est la huitième ligne de commande en mémoire dans l'**history**. | Essayez en tapant ''!8'', j’obtiens ici ''pwd'' qui est la huitième ligne de commande en mémoire dans l'**history**. | ||
- | cobex4@pc:~> !8 | + | <code user> !8</code> |
+ | <file bash résultat de la commande précédente> | ||
pwd | pwd | ||
- | /home/cobex4 | + | /home/user |
+ | </file> | ||
+ | |||
+ | ==== ! + lettres ==== | ||
- | ===== ! + LETTRES ===== | ||
La commande **!lettres**//_début_commande_recherchées// permet d’atteindre la commande à droite du numéro Essayez ! en tapant : | La commande **!lettres**//_début_commande_recherchées// permet d’atteindre la commande à droite du numéro Essayez ! en tapant : | ||
!ca | !ca | ||
j’obtiens ici **cat base.tex** : | j’obtiens ici **cat base.tex** : | ||
- | cobex4@pc:~> !ca | + | <code user>!ca</code> |
+ | <file bash résultat de la commande précédente> | ||
cat base.tex | cat base.tex | ||
/home/cobex4 | /home/cobex4 | ||
+ | </file> | ||
+ | |||
+ | ===== Effacer history ===== | ||
- | ===== EFFACER HISTORY ===== | ||
Pour effacer l’historique, on utilise l’option -c. | Pour effacer l’historique, on utilise l’option -c. | ||
- | cobex4@pc:~> history -c | + | <code user>history -c</code> |
- | cobex4@pc:~> history | + | <code user>history</code> |
+ | <file bash résultat de la commande précédente> | ||
4 history | 4 history | ||
cobex4@pc:~> | cobex4@pc:~> | ||
+ | </file> | ||
- | ===== HISTORY SAUVEGARDE ===== | + | === Précision intéressante sur history -c , tiré de :=== |
+ | http://lea-linux.org/documentations/Trucs:Effacer_historique_des_commandes_bash | ||
+ | |||
+ | Citation : | ||
+ | « Pour effacer l'historique des commandes dans un shell Bash, le shell par défaut de GNU/Linux, tapez la commande Bash : | ||
+ | <code user>history -c</code> | ||
+ | |||
+ | Il faudra cependant lancer cette commande dans chaque instance de Bash (chaque terminal) si vous voulez effacer les commandes dans tous les shells. | ||
+ | Et tant que vous n'aurez pas quitté le shell, l'historique des commandes sera encore disponible dans le fichier ~/.bash_history. | ||
+ | De plus, cette méthode ne fonctionne qu'avec les shells de login (où vous pouvez vous loguer), mais pas avec les shells ouverts par des émulateurs de termina (comme GNOME Terminal). | ||
+ | Pour effacer l'historique de manière globale et radicale, on privilégiera donc l'effaçage du fichier d'historique : | ||
+ | <code user>> ~/.bash_history </code> | ||
+ | |||
+ | Ce qui peut se faire également par : | ||
+ | <code user>history -c</code> | ||
+ | <code user>history -w</code> | ||
+ | |||
+ | En effet, la directive -w remplace l'historique général des commandes par l'historique du shell courant (que vous venez d'effacer). » | ||
+ | |||
+ | Fin de citation. | ||
+ | |||
+ | - Gentil conseil de smolski : « L'effaçage par le fichier de configuration me semble utiliser un tank pour effacer une chiure de mouche, je le déconseillerai même puisque les options -c et -w sont égales en résultat ! ». | ||
+ | |||
+ | |||
+ | ===== Sauvegarder history ===== | ||
Pour sauvegarder votre historique dans un fichier .txt, faites simplement : | Pour sauvegarder votre historique dans un fichier .txt, faites simplement : | ||
- | mattux@DarKVaDoR:~$ history > history.txt | + | <code user>history > history.txt</code> |
- | mattux@DarKVaDoR:~$ | + | |
- | Pour lire en console le fichier obtenu : | + | Pour [[doc:systeme:more|lire en console]] le fichier obtenu : |
- | mattux@DarKVaDoR:~$ more history.txt | + | <code user>more history.txt</code> |
+ | <file bash résultat de la commande précédente> | ||
1 ssh mattux@chubaka | 1 ssh mattux@chubaka | ||
2 ssh mattux@r2d2 | 2 ssh mattux@r2d2 | ||
Ligne 76: | Ligne 125: | ||
10 cp -r ../backup/.ssh/ /home/mattux/ | 10 cp -r ../backup/.ssh/ /home/mattux/ | ||
11 ls -l | 11 ls -l | ||
+ | </file> | ||
Voilà votre fichier peut être trés long tout dépend du nombre de commandes que vous avez fait. ;-) | Voilà votre fichier peut être trés long tout dépend du nombre de commandes que vous avez fait. ;-) | ||
Ligne 84: | Ligne 134: | ||
==== Affichage alphabétique de l'historique des commandes ==== | ==== Affichage alphabétique de l'historique des commandes ==== | ||
+ | |||
//Astuce un peu sérieuse... Pour debianeux averti donc !// | //Astuce un peu sérieuse... Pour debianeux averti donc !// | ||
Offert par **phlinux** dans le forum, là : | Offert par **phlinux** dans le forum, là : | ||
+ | * http://debian-facile.org/forum/viewtopic.php?pid=10709#p10709 | ||
- | http://debian-facile.org/forum/viewtopic.php?pid=10709#p10709 | + | //Qu'il est mignon de nous donner cela... Merci //**phlinux**// !// |
- | //Qu'il est mignon de nous donner cela... Merci phlinux !// | + | Habituellement, nous pouvons **remonter l'historique** de nos commandes dans le terminal avec <key>Up</key>... Simple. \\ |
- | + | ||
- | Habituellement, nous pouvons **remonter l'historique** de nos commandes dans le terminal avec le "flèche-haut" du clavier... Simple. \\ | + | |
Pourquoi ne pas remonter en utilisant les lettres alphatétiques débutant ces commandes ? Yop ! | Pourquoi ne pas remonter en utilisant les lettres alphatétiques débutant ces commandes ? Yop ! | ||
Ligne 98: | Ligne 148: | ||
Par exemple tu écris : | Par exemple tu écris : | ||
- | $ g puis la touche flèche-haut | + | <code user>g</code> |
+ | puis tu utilises la touche <key>Up</key> | ||
et s'affichent à la suite toutes les commandes qui commencent par "g" et qui se trouvent dans ton ~/.bash_history.. | et s'affichent à la suite toutes les commandes qui commencent par "g" et qui se trouvent dans ton ~/.bash_history.. | ||
Ligne 118: | Ligne 169: | ||
=== Recherche par thème === | === Recherche par thème === | ||
- | Pour rechercher par thème une commande, vous écrivez dans ~/.inputrc (à créer au lieu d'utiliser /etc/inputrc) ceci : | + | Pour rechercher une commande par thème avec <key>Up</key> vous écrivez dans ~/.inputrc (à créer au lieu d'utiliser /etc/inputrc) ceci : |
<code> | <code> | ||
"\e[A": history-search-backward | "\e[A": history-search-backward | ||
Ligne 125: | Ligne 176: | ||
set completion-ignore-case on</code> | set completion-ignore-case on</code> | ||
- | Il vous suffit alors d'autocompléter par la touche flèche-haut du clavier les 3 premières lettres de la commande recherchée et il ne sera proposé par history que toutes les commandes commençant __uniquement par ces lettres__ à chaque appui. \\ | + | Il vous suffit alors d'autocompléter par la touche <key>Up</key> les 3 premières lettres de la commande recherchée et il ne sera proposé par history que toutes les commandes commençant __uniquement par ces lettres__ à chaque appui. \\ |
Exemple : | Exemple : | ||
- | <code> | + | <code user> |
cp dijon_130419/dijon... | cp dijon_130419/dijon... | ||
cp site.... | cp site.... | ||
cp vignettes/ | cp vignettes/ | ||
...</code> | ...</code> | ||
+ | |||
+ | Redémarrer le terminal pour que //l'effet se passe//... ;) | ||
+ | |||
+ | ===== Remerciements ===== | ||
Source proposée conjointement par DosXX et phreg : | Source proposée conjointement par DosXX et phreg : | ||
* [[http://korben.info/ | L'ami korben !]] | * [[http://korben.info/ | L'ami korben !]] | ||
* [[http://www.crowd42.info/une-astuce-pour-retrouver-facilement-une-ligne-de-commande-deja-executee | Une astuce avec history.]] | * [[http://www.crowd42.info/une-astuce-pour-retrouver-facilement-une-ligne-de-commande-deja-executee | Une astuce avec history.]] | ||
+ | |||
+ | Voir aussi la commande **Reverse-Search** en haut du tuto pour faire la même chose au clavier sans fichier à ajouter ! | ||
+ | |||
+ | ===== Lister history ===== | ||
+ | |||
+ | Pour obtenir la liste historique du thème recherché, tapez : | ||
+ | <code user> | ||
+ | history | grep themerecherche</code> | ||
+ | |||
+ | //Oui c'est du pur geek façon l'patron //**MaTTuX_**// !// :-D | ||
+ | |||