태그 보관물: unix

unix

Mac에서 터미널 세션간에 Bash 기록이 유지되지 않음 배쉬 역사는

내 배쉬 역사는 신비스럽게 작동을 멈추었고 어떻게 고칠 지 모른다. 이것은 내 .bashrc의 모습입니다.

HISTSIZE=500
HISTFILESIZE=500
HISTFILE=$HOME/.bash_history

그러나 내가 실행 echo $HISTFILE하면 인쇄됩니다 /Users/myusername/.bash_sessions/EE8689E5-7DAD-4018-817E-0AF1DE36082A.historynew.

.bash_history 파일의 소유자이므로이 문제를 어떻게 해결할지 잘 모르겠습니다.

감사!



답변

터미널은 각 터미널 세션에 고유 식별자를 할당하고 TERM_SESSION_ID 환경 변수를 통해이를 전달하여 터미널에서 실행중인 프로그램이 재시작을 사용하여 터미널을 종료하고 재시작 할 때 응용 프로그램 특정 상태를 저장 / 복원 할 수 있도록합니다.

세션마다 고유 한 HISTFILE 및 .session 파일을 저장하는 데 새 폴더 (~ / .bash_sessions /)가 사용됩니다.

셸 시작 중에 세션 파일이 실행됩니다. 오래된 파일은 주기적으로 삭제됩니다.

기본 동작은 복원 된 각 터미널 세션에 대해 bash 명령 기록을 독립적으로 저장하고 복원합니다. 또한 새 세션에 대한 명령을 글로벌 히스토리로 병합합니다.

설정을 통해이 동작을 비활성화하고 단일 히스토리를 공유 할 수 있습니다

export SHELL_SESSION_HISTORY=0

HISTTIMEFORMAT이 정의되면 세션 별 히스토리가 기본적으로 사용 불가능합니다 (/ private / etc / bashrc_Apple_Terminal에서 자세히 알아보십시오)

다음 파일이 존재하면 저장 / 복원 메커니즘이 비활성화됩니다.

~/.bash_sessions_disable

엘 캐피 탄 출시 이후 애플은 이미 몇 가지 행동을 바 꾸었으므로 여기에 대해 더 자세히 읽는 것이 좋습니다. less /private/etc/bashrc_Apple_Terminal


답변

El Capitan 업그레이드 후 비슷한 것을 발견했습니다. .bash_sessions_disable홈 디렉토리에 파일 파일을 추가하면 새 bash 세션이 비활성화되고 .bash_history다시 사용됩니다.

Reddit 스레드 에는 더 많은 정보와 추가 링크가 있습니다.


답변

최신 RVM 버전으로 업데이트하거나 다음을 실행하여 RVM 문제를 해결할 수 있습니다.

  echo 'shell_session_update' > $HOME/.bash_logout

자세한 내용은 https://github.com/rvm/rvm/issues/3540 을 참조 하십시오 .


답변

Reddit 스레드 의이 답변은 저를 구했습니다.

bash_sessions가 실행되는 종료 “후크”를 막는 것은 아마도 RVM 일 것입니다. .bash_profile에서 다음 줄을 주석 처리하면 작동합니다.

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"


답변

Mac이라면 기본 로그인 쉘이고 대신 대신 bash실행 .profile됩니다 .bashrc. 따라서 잘못된 파일을 편집하고있었습니다.


답변

High Sierra에서이 문제를보고있었습니다. 어쨌든 내 자신의 .bash_history는 루트가 소유하고 다른 사용자에 대한 읽기 권한이 없었습니다 (ls -al로 홈 디렉토리의 내용을 볼 때)

이 .bash_history 파일에는 아무런 영향이 없으므로 sudo rm .bash_history에 이어 .bash_history를 터치하여 새 파일을 만들었습니다.

이제는 모두 잘 보인다


답변