Як можна видалити збережені команди з терміналу?


16

Як всі ви знаєте, Mac OS X зберігає всі команди, які запускаються від терміналу в самому терміналі, проте я хочу видалити (наприклад) останні три команди з терміналу. Як я можу це зробити?

Відповіді:


12

Mac OS нічого не зберігає ніде.

bash, що оболонка, що запускається в терміналі, зберігає історію команд.

Історія команд термінала зберігається у прихованому файлі у вашому каталозі користувача .bash_history

Це означає, що файл: /Users/{username}/.bash_history

Ви повинні увімкнути "Показати системні файли", щоб побачити його (з меню "Перегляд" у пошуку).

Файл - це лише текстовий список всього, що ви вводите в оболонку. Ви можете відкрити його в TextEdit або у вашому редакторі за вибором.


Ймовірно, ви повинні закрити, Terminal.appщоб очистити будь-які останні зміни у файлі, перш ніж вносити зміни, інакше він може бути перезаписаний з Terminal.appпам'яті версії .


2
Команди не зберігаються під час руху, але лише тоді, коли оболонка виходить або коли буде запропоновано це зробити (наприклад, history -aабо history -w). Зазвичай останніх команд ще немає у файлі.
Маттео

На жаль, я мав на увазі додати, що ви, ймовірно, повинні закрити всі екземпляри terminal.app перед редагуванням цього файлу. Виправлено.
Підроблена назва

19

Це не функція Mac OS, а функція оболонки. Припустимо, що ви використовуєте bash (за замовчуванням):

  • історія команд зберігається в пам'яті і зберігається у файлі (як правило ~/.bash_history)
  • ви можете перелічити та відредагувати історію за допомогою historyкоманди

За допомогою man bashSHELL BUILTIN COMMANDSрозділі) ви знайдете опис різних варіантів.

Ти можеш:

  • перерахуйте записи історії

    $ history
  • видалити всю історію

    $ history -c
  • видалити заданий запис

    $ history -d offset

обидві відповіді правильні, я вибрав найдавнішу .. дякую брате ..
JAHelia

про історію -c, йдеться fc: event not found: -c. Потім я вручну відкрив файл, видалив вміст. Closed and reopened the terminalі історії зараз не існує.
допитливий

2

Для користувачів Mac Terminal

видалити історію команд bash за допомогою наступної команди $ echo '' > ~/.bash_history

Для користувача Mac zsh

видалити історію команд zsh за допомогою наступної команди $ echo ''> ~/.zsh_hostory


Зауважте, що це видалить всю історію, а не лише три останні рядки.
Джон N

0

Крім редагування тексту, також, якщо ви старенька школа, використовуйте "vi" для редагування файлу та видалення образливих команд. Подібно командного рядка редактори emacs (акції яких редагують ярлики з OS X) або nano (що спростило навігацію і візуальну допомогу в тому , щоб зберегти і вийти з редактора без необхідності довідковий лист) .


1
Це буде висвітлено у розділі "Ви можете відкрити це у TextEdit або у вашому редакторі за вибором ", що є у прийнятій відповіді.
Джон N

Ми вважаємо за краще відповіді стояти самостійно. Зараз це скоріше коментар, ніж відповідь, ви можете додати принаймні ім’я файлу для редагування?
nohillside
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.