histfile이 정의된 위치를 찾고 싶습니다.
echo $HISTFILE
/home/user/.bash_history
일부 구성 파일이나 rc 파일에 정의되어 있어야 한다고 생각하는데 찾을 수 없습니다.
sudo grep --include=\*{rc,profile}\* -rnw '/' -e "*bash_history*"
ENV histfile의 정의를 찾는 방법은 무엇입니까?
답변1
이것은 단지기본값을 위한 HISTFILE
.
쉘이 시작되면 변수 이름의 파일
HISTFILE
(기본값 )에서 기록이 초기화됩니다.~/.bash_history
귀하의 항목을 덮어쓴 것 같습니다 . 시작 부분에 추가하여 정상적인 동작을 복원 PROMPT_COMMAND
할 수 있습니다 . 기본값( )을 보려면 프로필 상단에 shell_session_history_check;
추가하세요 .echo $PROMPT_COMMAND
shell_session_history_check; terminal_update_cwd
그렇게 하면 HISTFILE
이 함수에서 재정의됩니다( declare -f shell_session_history_check
함수 호출을 보려면 실행하세요 shell_session_history_enable
).
$ declare -f shell_session_history_enable
shell_session_history_enable ()
{
( umask 077;
/usr/bin/touch "$SHELL_SESSION_HISTFILE_NEW" );
HISTFILE="$SHELL_SESSION_HISTFILE_NEW";
SHELL_SESSION_HISTORY=1
}
.bash_sessions
이렇게 하면 각 세션의 로그를 개별적으로 저장하는 파일이 생성됩니다 . 자세히 알아보기레딧:
(~/.bash_sessions/)은 세션별 HISTFILE 및 .session 파일을 저장하는 데 사용됩니다. 쉘이 시작될 때 $BASH_SESSION 또는 $TERM_SESSION_ID가 설정된 경우(즉, 터미널이 저장된 상태에서 다시 시작되는 경우) 관련 HISTFILE이 현재 파일에 병합되고 .session 파일이 실행됩니다. bash_update_session_state 함수에 대한 EXIT 트랩을 설정하여 세션 저장을 촉진합니다.