Mac OS Xの端末履歴を編集するにはどうすればよいですか?


12

Mac OS Xでbash履歴を編集するにはどうすればよいですか?誤ってそのウィンドウにパスワードを入力したため、履歴全体を削除したくありません。

回答:


14

の編集は.bash_history、エディターでファイルを開くだけです。これを実現する方法はいくつかあります。

  1. ターミナルだけのタイプvi ~/.bash_history、そしてあなたが望むようファイルを編集し、保存します。もちろん、viに慣れていない場合、このオプションは難しいかもしれません。
  2. これらの指示に従ってファイルを表示します。たとえば、他のファイルとして開いて変更し、保存します。
  3. ではターミナルだけのタイプopen ~/.bash_history -a /Applications/TextEdit.app。このコマンドはTextEditでファイルを開きます。もちろん、他のテキストエディターを選択できます。ファイルを変更して保存します。

変更を目立たせるには、bashを再起動するだけです。


「許可が拒否されました」と表示されます。sudoを実行すると、入力されたすべてのコマンドが表示されません。
カーシックS

1
@KarthickSあなたはそれを正確に何をしているのですか?
-Thecafremo

.bash_historyの内容を見ると、その内容は履歴コマンドの出力とは異なります。私は両方を認識しています、ファイルの内容は古いです。複数のコマンドウィンドウが開いている場合はどうなりますか?彼らは同じコマンド履歴を共有していないようです。PS bashを使用していることを確認しました。
ビクターエンゲル

1
私は答えを見つけたと思います。ECHO $ HISTFILEは、編集するものを示します。
ビクターエンゲル

10

端末タイプhistoryで、行番号を書き留めます。次の呼び出しhistory -d noted-line-number。を使用して、行が削除されたことを確認できhistoryます。


2
これは、ZSHを使用するYosemiteでは機能しません。
パウロオリベイラ

問題は、zshではなくbashについてでした。慎重に読む!
無名_1

1
@DmitryDupelovあなたは正しい、迷惑して申し訳ありません。とにかく、それは将来の読者へのリマインダーです(その詳細も見落とすかもしれません)。コメントを訂正していただきありがとうございます。
パウロオリベイラ


0

履歴を保存する前にDmitryの答えがあれば理想的だと思います-デフォルトでは、シェル/ターミナルの終了時に保存が行われます。

既に履歴を〜/ .bash_historyに保存している場合は、Thecafremoの回答をお勧めしますが、ターミナルを終了するステップを追加して、bashインスタンスが履歴をロードして再保存しないようにすることをお勧めします。これは、複数の端末があり、コマンドごとの履歴更新を有効にしている場合は特に注意が必要です。

バックグラウンド:

  • bashは、シェルのインスタンス内に履歴を保存します
  • bashはこの履歴をファイルに書き込むことができます。これは通常、シェル/ターミナルを終了するときに発生します
  • bashはファイルから履歴に読み込むことができます。これは通常、シェル/ターミナルを開いたときに発生します
  • デフォルトの動作を変更して、履歴をより早く伝播させることができます。これにより、BAD_TEXTをファイルおよび他のウィンドウに移行できます。

使用する方法に関係なく、1つのステップを追加します:成功を確認してください!

  1. Terminal.appを終了します
  2. Terminal.appを再度開きます
  3. 問題のテキストが履歴にないことを確認します-できれば追加の履歴を作成しない方法で。つまり、しないでgrep BAD_TEXT .bash_historyください!この新しいコマンドは履歴に追加されます。お気に入りのエディターで.bash_historyを開き、その中からBAD_TEXTを検索します。

これにより、どのようなクレイジーなbashセットアップが発生しても、BAD_TEXTを削除したという安心感が得られます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.