답변:
쉘이 어떻게 처리하기로 선택했는지에 달려 있습니다.
bash
기본적으로 히스토리 파일이 종료 될 때마다 각 쉘의 로컬 히스토리로 히스토리 파일을 겹쳐 쓰므로 종료 할 마지막 쉘이 우선합니다. 이 histappend
옵션을 사용하면 대신 마스터 기록에 추가됩니다 ( shopt -s histappend
).
zsh
기본적으로 동일하게 처리 할 수있는 몇 가지 옵션이 있습니다.
appendhistory
-셸이 종료되면 각 셸의 기록이 마스터 기록 파일에 추가됩니다.incappendhistory
-마스터 히스토리 파일은 쉘이 종료 될 때까지 기다리지 않고 임의의 쉘에서 라인이 실행될 때마다 업데이트됩니다.sharehistory
-과 마찬가지로 incappendhistory
마스터 히스토리 파일에서 실행중인 모든 쉘로 변경 사항을 가져 오므로 한 쉘에서 명령을 실행 한 후 Up다른 쉘에서 적중 하여 볼 수 있습니다.shopt -s histappend
작동하지 않습니까?
나는 원래 O'Reilly "Unix Power Tools"책에서이 아이디어를 얻었습니다.
내 .profile
설정 :
export HISTFILE=$HOME/.sh_hist.$$
.profile
읽을 때마다 내 세션의 PID로 명명 된 새 기록 파일을 얻습니다. 로그인이 여러 개인 경우 각 로그인마다 고유 한 내역 파일이 표시됩니다. 에서 작동 ksh
하고 bash
.
X 세션에서 새 터미널을 여는 경우 일반적으로 로그인 쉘은 아니지만 로그인 쉘로 작동하도록 터미널을 구성 할 수 있습니다. 예를 들어, 로그인 쉘로 rxvt +ls
시작 rxvt
합니다. 사용중인 터미널에 대한 문서를 확인하십시오.
또한 정리하기 위해 .logout
또는 .bash_logout
파일 (또는 다른 수단)을 사용하지 않는 한 결국에는 .sh_hist
파일 이 많이 낭비 됩니다.