![bash 로그인 세션의 기록을 "자동 저장"하려면 어떻게 해야 합니까? [복사]](https://linux55.com/image/132690/bash%20%EB%A1%9C%EA%B7%B8%EC%9D%B8%20%EC%84%B8%EC%85%98%EC%9D%98%20%EA%B8%B0%EB%A1%9D%EC%9D%84%20%22%EC%9E%90%EB%8F%99%20%EC%A0%80%EC%9E%A5%22%ED%95%98%EB%A0%A4%EB%A9%B4%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%ED%95%B4%EC%95%BC%20%ED%95%A9%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
~/.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/