3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

bashでコマンド履歴を即座に保存する

Posted at

以下の記事を読んだのでbashだとどうなるのかと思い調べました。

背景

解決したかったこと
通常の terminal から実行した zsh のコマンドは履歴に保存されるが、VSCode で開いた zsh で実行したコマンド履歴が保存されない。

原因
通常は zsh を終了したときに、そのセッションで実行していたコマンド履歴が ~/.zsh_history に保存されます。
しかし、VSCode で開いた zsh では、通常の終了処理が行われず、コマンド履歴が保存されないようです。

TLDR

以下をbashrcに追加しておく。

.bashrc
shopt -s histappend
PROMPT_COMMAND="history -a;$PROMPT_COMMAND"

解説

shopt -s histappendを設定すると、シェルに入力された新しいコマンドがHISTFILE変数の値で指定されたファイルに追加されます。これで.bash_historyの上書きを防ぎます。
二行目で各コマンドを実行する前にhistoryに追加することをしています。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?