Comment supprimer des commandes enregistrées du terminal?

16

Comme vous le savez tous, Mac OS X stocke toutes les commandes qui s'exécutent à partir du terminal dans le terminal lui-même, cependant, je veux supprimer (par exemple) les 3 dernières commandes du terminal. Comment puis-je faire ceci?

JAHelia
la source

Réponses:

12

Mac OS ne stocke rien nulle part.

bash, qui est le shell exécuté dans le terminal, stocke l'historique des commandes.

L'historique des commandes du terminal est stocké dans un fichier caché dans votre répertoire utilisateur appelé .bash_history

Cela signifie que le fichier est: /Users/{username}/.bash_history

Vous devez activer "Afficher les fichiers système" pour le voir (à partir du menu "Affichage" du Finder).

Le fichier n'est qu'une liste textuelle de tout ce que vous tapez dans le shell. Vous pouvez l'ouvrir dans TextEdit ou dans l'éditeur de votre choix.


Vous devriez probablement fermer Terminal.apppour vider toutes les modifications récentes dans le fichier avant d'apporter des modifications, ou il peut être remplacé par une version Terminal.appen mémoire.

Faux nom
la source
2
Les commandes ne sont pas stockées à la volée, mais uniquement lorsque le shell se ferme ou lorsque vous y êtes invité (par exemple, history -aou history -w). Habituellement, les dernières commandes ne sont pas encore dans le fichier.
Matteo
Oups, je voulais ajouter que vous devriez probablement fermer toutes les instances de terminal.app avant de modifier ce fichier. Fixé.
Fake Name
19

Ce n'est pas une fonction Mac OS mais une fonction shell. En supposant que vous utilisez bash (par défaut):

  • l'historique des commandes est stocké en mémoire et conservé dans un fichier (généralement ~/.bash_history)
  • vous pouvez lister et éditer l'historique avec la historycommande

Avec man bash(dans la SHELL BUILTIN COMMANDSsection) vous trouverez la description des différentes options.

Vous pouvez:

  • lister les entrées d'historique

    $ history
  • supprimer toute l'histoire

    $ history -c
  • supprimer une entrée donnée

    $ history -d offset
Matteo
la source
les deux réponses sont correctes, j'ai choisi la première .. merci frère ..
JAHelia
sur l'histoire -c, dit-il fc: event not found: -c. Ensuite, j'ai ouvert manuellement le fichier, supprimé le contenu. Closed and reopened the terminalet l'histoire n'existe pas maintenant.
curieux
2

Pour les utilisateurs de Mac Terminal

supprimer l'historique des commandes bash avec la commande suivante $ echo '' > ~/.bash_history

Pour les utilisateurs de Mac zsh

supprimer l'historique des commandes zsh avec la commande suivante $ echo ''> ~/.zsh_hostory

vikbert
la source
Notez que cela supprimera tout l'historique, et pas seulement les trois dernières lignes.
John N
0

En plus de Text Edit, aussi, si vous êtes de la vieille école, utilisez 'vi' pour modifier le fichier et supprimer les commandes offensantes. Les éditeurs de ligne de commande similaires sont emacs (qui partage les raccourcis d'édition avec OS X) ou nano (qui a simplifié la navigation et l'aide visuelle sur la façon d'enregistrer et de quitter l'éditeur sans avoir besoin d'une feuille de référence) .

gpdeveloper
la source
1
Cela serait couvert par "Vous pouvez l'ouvrir dans TextEdit, ou l'éditeur de votre choix ", qui est dans la réponse acceptée.
John N
Nous préférons que les réponses soient autonomes. En ce moment c'est plus un commentaire qu'une réponse, pouvez-vous ajouter au moins le nom du fichier à éditer?
nohillside