Jak mogę usunąć zapisane polecenia z terminala?

16

Jak wszyscy wiecie, Mac OS X przechowuje wszystkie polecenia uruchamiane z Terminala w samym Terminalu, jednak chcę usunąć (na przykład) ostatnie 3 polecenia z terminala. W jaki sposób mogę to zrobić?

JAHelia
źródło

Odpowiedzi:

12

Mac OS nigdzie nie przechowuje.

bash, czyli powłoka uruchamiana w terminalu, przechowuje historię poleceń.

Historia poleceń terminala jest przechowywana w ukrytym pliku w katalogu użytkownika o nazwie .bash_history

Oznacza to, że plik jest: /Users/{username}/.bash_history

Aby go zobaczyć, musisz włączyć opcję „Pokaż pliki systemowe” (z menu „Widok” w wyszukiwarce).

Plik jest tylko tekstową listą wszystkiego, co wpisujesz w powłoce. Możesz go otworzyć w TextEdit lub w dowolnym edytorze.


Prawdopodobnie powinieneś zamknąć, Terminal.appaby opróżnić wszystkie ostatnie zmiany w pliku przed dokonaniem zmian, ponieważ może zostać zastąpione przez wersję Terminal.appzapisaną w pamięci.

Zmyślone imię
źródło
2
Polecenia nie są przechowywane w locie, ale tylko po wyjściu powłoki lub gdy zostanie o to poproszony (np. history -aLub history -w). Zwykle ostatnich poleceń nie ma jeszcze w pliku.
Matteo,
Ups, chciałem dodać, że prawdopodobnie powinieneś zamknąć wszystkie wystąpienia terminal.app przed edycją tego pliku. Naprawiony.
Fałszywe imię
19

To nie jest funkcja Mac OS, ale funkcja powłoki. Zakładając, że używasz bash (domyślnie):

  • historia poleceń jest przechowywana w pamięci i utrwalana w pliku (zwykle ~/.bash_history)
  • możesz wyświetlić i edytować historię za pomocą historypolecenia

Za pomocą man bash(w SHELL BUILTIN COMMANDSsekcji) znajdziesz opis różnych opcji.

Możesz:

  • wyświetlić wpisy historii

    $ history
  • usuń całą historię

    $ history -c
  • usuń dany wpis

    $ history -d offset
Matteo
źródło
obie odpowiedzi są poprawne, wybrałem najwcześniejszą .. dziękuję stary ..
JAHelia
na temat robienia historii -c mówi fc: event not found: -c. Następnie ręcznie otworzyłem plik, usunąłem zawartość. Closed and reopened the terminala historia nie istnieje teraz.
dociekliwy
2

Dla użytkownika terminala Mac

usuń historię poleceń bash za pomocą następującego polecenia $ echo '' > ~/.bash_history

Dla użytkowników Mac Zsh

usuń historię poleceń zsh za pomocą następującego polecenia $ echo ''> ~/.zsh_hostory

Vikbert
źródło
Pamiętaj, że spowoduje to usunięcie całej historii, a nie tylko ostatnich trzech wierszy.
John N,
0

Oprócz edycji tekstu, jeśli jesteś oldschoolowy, użyj „vi”, aby edytować plik i usunąć obraźliwe polecenia. Podobne edytory wiersza poleceń to emacs (który udostępnia skróty do edycji w OS X) lub nano (który ma uproszczoną nawigację i pomoc wizualną dotyczącą sposobu zapisywania i zamykania edytora bez potrzeby korzystania z arkusza referencyjnego) .

gpdeveloper
źródło
1
Może to obejmować „Można go otworzyć w TextEdit lub w dowolnym edytorze ”, który znajduje się w zaakceptowanej odpowiedzi.
John N
Wolimy, aby odpowiedzi były samodzielne. W tej chwili jest to bardziej komentarz niż odpowiedź. Czy możesz dodać przynajmniej nazwę pliku do edycji?
nohillside