保存されたコマンドをターミナルから削除するにはどうすればよいですか?


16

ご存じのとおり、Mac OS Xは、ターミナルから実行されるすべてのコマンドをターミナル自体に保存しますが、最後の3つのコマンドをターミナルから削除したい(たとえば)とします。これどうやってするの?

回答:


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 bash(中SHELL BUILTIN COMMANDS節)あなたは、さまざまなオプションの説明があります。

あなたはできる:

  • 履歴エントリをリストする

    $ history
  • 履歴全体を削除する

    $ history -c
  • 特定のエントリを削除します

    $ history -d offset

両方の答えが正しい、私は最も早いものを選択しました..ありがとうございました..
JAHelia

履歴-cを行う上で、それは言いますfc: event not found: -c。次に、手動でファイルを開き、内容を削除しました。Closed and reopened the terminalそして歴史は今は存在しません。
好奇心

2

Macターミナルユーザーの場合

次のコマンドでbashコマンドの履歴を削除します $ echo '' > ~/.bash_history

Mac zshユーザーの場合

次のコマンドでzshコマンドの履歴を削除します $ echo ''> ~/.zsh_hostory


これにより、最後の3行だけでなく履歴全体が削除されることに注意してください。
ジョンN

0

テキスト編集に加えて、古い学校の場合は、「vi」を使用してファイルを編集し、不快なコマンドを削除します。同様のコマンドラインエディターは、 emacs (OS Xと編集ショートカットを共有する)またはnano (リファレンスシートを必要とせずにエディターを保存および終了する方法に関するナビゲーションと視覚的なヘルプを簡素化する)です。


1
それは、受け入れられた回答にある「TextEdit、または選択したエディターで開くことができます」でカバーされます。
ジョンN

答えは自分で立つことを好みます。今のところ、答えよりもコメントです。少なくとも編集するファイルの名前を追加できますか?
nohillside
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.