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 [21/04/2010 09:55] smolski |
doc:programmation:bash:history [17/07/2014 20:01] smolski |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== history ====== | ||
+ | |||
+ | * Objet : history | ||
+ | * Niveau requis : {{tag>débutant}} | ||
+ | * 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 !)) FIXME | ||
+ | |||
+ | **Nota :** | ||
+ | |||
+ | Contributeurs, les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli ! | ||
+ | |||
+ | ===== Introduction ===== | ||
+ | |||
+ | La commande history permet de visualiser l’ensemble des 500 dernières commandes que vous avez saisies dans votre console. | ||
+ | |||
+ | * History dans le terminal <user> relève les commandes de l'user. | ||
+ | * History dans le terminal <root> relève les commandes de root. | ||
+ | |||
+ | ===== 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. | ||
+ | |||
+ | Nous pouvons également l'invoquer textuellement en tapant : | ||
+ | <code user>history</code> | ||
+ | |||
+ | 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 | ||
+ | 5 ls -al | ||
+ | 6 cd Desktop/ | ||
+ | 7 cd Work/ | ||
+ | 8 pwd | ||
+ | 9 history | ||
+ | </file> | ||
+ | |||
+ | ==== History - Reverse-Search ==== | ||
+ | |||
+ | Terminal ouvert, en tapant : ''Ctrl r'' nous passons en : | ||
+ | (reverse-i-search)`reco': | ||
+ | |||
+ | 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 ''Ctrl r'' pour lister la suite des commandes similaires. | ||
+ | |||
+ | Astuce également valable dans un shell zsh. (//dixit le// **captnfab**...) ;-) | ||
+ | |||
+ | ==== ! + Numero ==== | ||
+ | |||
+ | La commande !numéro permet d’atteindre la commande à droite du numéro. | ||
+ | |||
+ | Essayez en tapant ''!8'', j’obtiens ici ''pwd'' qui est la huitième ligne de commande en mémoire dans l'**history**. | ||
+ | |||
+ | <code user> !8</code> | ||
+ | <file bash résultat de la commande précédente> | ||
+ | pwd | ||
+ | /home/user | ||
+ | </file> | ||
+ | |||
+ | ==== ! + lettres ==== | ||
+ | |||
+ | La commande **!lettres**//_début_commande_recherchées// permet d’atteindre la commande à droite du numéro Essayez ! en tapant : | ||
+ | !ca | ||
+ | j’obtiens ici **cat base.tex** : | ||
+ | |||
+ | <code user>!ca</code> | ||
+ | <file bash résultat de la commande précédente> | ||
+ | cat base.tex | ||
+ | /home/cobex4 | ||
+ | </file> | ||
+ | |||
+ | ===== Effacer history ===== | ||
+ | |||
+ | Pour effacer l’historique, on utilise l’option -c. | ||
+ | |||
+ | <code user>history -c</code> | ||
+ | <code user>history</code> | ||
+ | <file bash résultat de la commande précédente> | ||
+ | 4 history | ||
+ | cobex4@pc:~> | ||
+ | </file> | ||
+ | |||
+ | ===== Sauvegarder history ===== | ||
+ | |||
+ | Pour sauvegarder votre historique dans un fichier .txt, faites simplement : | ||
+ | |||
+ | <code user>history > history.txt</code> | ||
+ | |||
+ | Pour [[doc:systeme:more|lire en console]] le fichier obtenu : | ||
+ | |||
+ | <code user>more history.txt</code> | ||
+ | <file bash résultat de la commande précédente> | ||
+ | 1 ssh mattux@chubaka | ||
+ | 2 ssh mattux@r2d2 | ||
+ | 3 su | ||
+ | 4 cd backup/ | ||
+ | 5 mv .mozilla-thunderbird/ /home/mattux/ | ||
+ | 6 mv .ssh/ /home/mattux/ | ||
+ | 7 ls -la /home/mattux/ | ||
+ | 8 cd ../.ssh/ | ||
+ | 9 ls -l | ||
+ | 10 cp -r ../backup/.ssh/ /home/mattux/ | ||
+ | 11 ls -l | ||
+ | </file> | ||
+ | |||
+ | Voilà votre fichier peut être trés long tout dépend du nombre de commandes que vous avez fait. ;-) | ||
+ | |||
+ | //[[matt_chile@yahoo.fr|MaTTuX_]] 2009/01/14 16:30// | ||
+ | |||
+ | ===== ASTUCE ===== | ||
+ | |||
+ | ==== Affichage alphabétique de l'historique des commandes ==== | ||
+ | |||
+ | //Astuce un peu sérieuse... Pour debianeux averti donc !// | ||
+ | |||
+ | Offert par **phlinux** dans le forum, là : | ||
+ | * http://debian-facile.org/forum/viewtopic.php?pid=10709#p10709 | ||
+ | |||
+ | //Qu'il est mignon de nous donner cela... Merci //**phlinux**// !// | ||
+ | |||
+ | 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 ! | ||
+ | |||
+ | === Exemple === | ||
+ | |||
+ | Par exemple tu écris : | ||
+ | <code user>g</code> | ||
+ | puis tu utilises la touche flèche-haut | ||
+ | et s'affichent à la suite toutes les commandes qui commencent par "g" et qui se trouvent dans ton ~/.bash_history.. | ||
+ | |||
+ | Pareil, bien sur, si tu tapes "ge", s'affiche > gedit /tra/la/la...touche...> .geany /super/coptère | ||
+ | |||
+ | Pour ce faire, éditer avec nano : | ||
+ | |||
+ | 1- à la fin de ~/.bashrc | ||
+ | # appel alphabétique commandes | ||
+ | shopt -s histappend | ||
+ | PROMPT_COMMAND='history -a' | ||
+ | |||
+ | 2 - dans ~/.inputrc (à créer au lieu d'utiliser /etc/inputrc) | ||
+ | "\e[A": history-search-backward | ||
+ | "\e[B": history-search-forward | ||
+ | |||
+ | Bien sûr, utilisable pour root (à condition de lui cloquer la même chose) | ||
+ | |||
+ | === Recherche par thème === | ||
+ | |||
+ | Pour rechercher une commande par thème avec la flèche haut, vous écrivez dans ~/.inputrc (à créer au lieu d'utiliser /etc/inputrc) ceci : | ||
+ | <code> | ||
+ | "\e[A": history-search-backward | ||
+ | "\e[B": history-search-forward | ||
+ | set show-all-if-ambiguous on | ||
+ | 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. \\ | ||
+ | Exemple : | ||
+ | <code user> | ||
+ | cp dijon_130419/dijon... | ||
+ | cp site.... | ||
+ | cp vignettes/ | ||
+ | ...</code> | ||
+ | |||
+ | Redémarrer le terminal pour que //l'effet se passe//... ;) | ||
+ | |||
+ | ===== Remerciements ===== | ||
+ | |||
+ | Source proposée conjointement par DosXX et phreg : | ||
+ | * [[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.]] | ||
+ | |||
+ | 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 | ||
+ | |||
+ | |||
+ | |||
+ | |||