ENV $HISTFILE의 정의 찾기

ENV $HISTFILE의 정의 찾기

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_COMMANDshell_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 트랩을 설정하여 세션 저장을 촉진합니다.

관련 정보