bash 로그인 세션의 기록을 "자동 저장"하려면 어떻게 해야 합니까? [복사]

bash 로그인 세션의 기록을 "자동 저장"하려면 어떻게 해야 합니까? [복사]

~/.bash_history내가 정확하게 기억한다면 bash는 종료할 때 로그인 쉘 세션 에 기록을 저장합니다 . $HISTFILE하지만 - 쉘이 조기에 종료되는 것을 걱정하기 때문에(SIGKILL 또는 정전과 같은) 때때로 이를 고수하고 싶다면 어떻게 해야 합니까? 시스템이나 셸 세션 경험에 부담을 주지 않고 이를 달성할 수 있습니까?

답변1

기본적으로 Bash는 셸을 종료할 때 기록을 저장합니다. 따라서 비정상적으로 종료되면 현재 기록이 손실됩니다.

다음 명령을 실행하여 현재 Bash 기록을 저장할 수 있습니다.

$ history -a

이를 알면 각 실행된 명령 후에 실행하여 Bash가 각 실행된 명령 후에 기록을 저장하도록 할 수 있습니다 history -a. 한 가지 방법은 Bash 프롬프트를 이용하는 것입니다.

PROMPT_COMMAND='history -a'

이는 Bash 프롬프트가 각각 의 새로운 프롬프트에서 실행되기 때문에 작동합니다 $PS1.$PROMPT_COMMAND

다음은 제가 이 아이디어에 대해 생각하게 된 훌륭한 블로그 게시물입니다.https://sanctum.geek.nz/arabesque/better-bash-history/

관련 정보