Encontre a definição de ENV $ HISTFILE

0

Eu quero encontrar o lugar onde o histfile está definido:

echo $HISTFILE
/home/user/.bash_history

Eu pensei que ele deve ser definido em algum arquivo de perfil ou rc, mas não consegui encontrá-lo.

sudo grep --include=\*{rc,profile}\* -rnw '/' -e "*bash_history*"

Como posso encontrar a definição de histfile ENV?

    
por Hölderlin 04.07.2017 / 19:11

1 resposta

0

Esse é apenas o valor padrão para HISTFILE .

When the shell starts up, the history is initialized from the file named by the HISTFILE variable (default ~/.bash_history).

Parece que você substituiu seu PROMPT_COMMAND . Você pode querer recuperar o comportamento normal adicionando shell_session_history_check; ao início dele. Adicione echo $PROMPT_COMMAND ao topo do seu perfil para ver o valor padrão para ele ( shell_session_history_check; terminal_update_cwd ).

Depois de fazer isso, HISTFILE será sobrescrito nessa função (execute declare -f shell_session_history_check para ver a chamada de função para 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
}

Isso criará um arquivo em .bash_sessions para armazenar um log de cada sessão separadamente. Mais sobre Reddit :

(~/.bash_sessions/) is used to store HISTFILE's and .session files that are unique to sessions. If $BASH_SESSION or $TERM_SESSION_ID is set upon launching the shell (i.e. if Terminal is resuming from a saved state), the associated HISTFILE is merged into the current one, and the .session file is ran. Session saving is facilitated by means of an EXIT trap being set for a function bash_update_session_state.

    
por 18.06.2018 / 20:32