.bash_history 外部コマンドを調べ、上矢印を使用してそのコマンドに戻る方法は?

.bash_history 外部コマンドを調べ、上矢印を使用してそのコマンドに戻る方法は?

コマンドの前に空白文字を追加すると、履歴から消えます。しかし、これはまたコマンドを編集して再実行することを困難にする。

メモリではなく永続レコードからのみ消えるようにスペース監査コマンドの弱いバージョンを作成するにはどうすればよいですか?

                                  `command`   ` command`  I want
Saved to .bash_history:            Yes           No         No
Can uparrow, edit and re-execute:  Yes           No         Yes

ベストアンサー1

私の知る限り、bashにはそのような機能はありません。

考えられる解決策の1つは、コマンドをエイリアスまたは関数に入れ、コマンド履歴からエイリアス/関数定義を省略することです。エイリアス/関数は引き続き使用でき、その使用法は履歴ファイルに書き込まれますが、関数定義自体はメモリにのみ保持されます。たとえば、次のセッションでは、コマンドはmysql -p$(mysql_password)履歴ファイルに書き込まれますが、コマンドのalias mysql_password=…前にスペースがあるため、パスワード自体は履歴ファイルに書き込まれません。

$ HISTCONTROL=ignorespace
$  alias mysql_password=$(echo swordfish)
$ mysql -p$(mysql_password)

関数定義を編集するにはdeclare -f fooalias fooエイリアスとして)を使用して印刷し、出力を使用して新しい関数を定義できます(外部エディタが役に立つかもしれません)。shell-expand-lineライン読み取り機能)でなければなりませんC-M-e

またはzshに切り替えて設定します。HISTORY_IGNORE変える。このパターンに一致するコマンドはメモリ履歴に保存されますが、履歴ファイルには書き込まれません。コマンドごとに決定することはできませんが、#dontstorein commandやsetなどのタグを含めることができますHISTORY_IGNORE='\#dontstore'

おすすめ記事