로그아웃하지 않고 명령줄 기록을 저장하는 방법은 무엇입니까? [복사]

로그아웃하지 않고 명령줄 기록을 저장하는 방법은 무엇입니까? [복사]

중복 가능성:
쉘 간에 bash를 공유할 때 기록을 생성하는 방법이 있습니까?

여러 콘솔 탭을 열고 있는데 새로 열린 콘솔 탭의 첫 번째 콘솔 탭에서 실행된 명령을 사용하고 싶습니다.

현재 열려있지 않은 두 번째 탭의 첫 번째 탭에서 실행되는 명령을 사용할 수 있나요?

콘솔 간에 콘솔 기록을 동기식으로 사용하려면 어떻게 해야 합니까?

답변1

문서에 따르면 history -a"새" 히스토리 라인(현재 bash 세션이 시작된 이후 입력된 히스토리 라인)이 히스토리 파일에 추가되어야 합니다.

답변2

다음과 같은 다양한 설정을 사용하여 이 작업을 수행할 수 있습니다(완전히 테스트하지는 않았습니다)...

export PROMPT_COMMAND='history -a; history -c; history -r'

이렇게 하면 가장 최근 명령이 파일에 추가되고 , 쉘 기록이 지워지고, 쉘 프롬프트가 인쇄될 때마다 파일을 .bash_history다시 읽게 됩니다 . 따라서 명령을 실행할 때마다 말입니다..bash_history

.bash_history따라서 한 터미널의 명령은 실행될 때마다 명령 에 추가되고 두 ​​번째 터미널은 기록 파일을 다시 읽을 때 해당 명령을 선택합니다.

이제 두 번째 쉘은 명령을 실행하기 전에 첫 번째 쉘이 방금 작성한 기록 파일을 다시 읽지 않기 때문에 실시간이 아니지만 Bash 근처에서 얻는 것과 동일할 것입니다. .

HISTCONTROLenvvar를 로 설정하는 것이 ignoredups유용 할 수도 있고 erasedups, 그렇지 않으면 이 옵션이 적합하지 않을 수도 있습니다.

export HISTCONTROL='erasedups'

답변3

파트 2: 문서에 따르면 history -r기록 파일을 읽고 현재 기록을 교체해야 합니다.

"동기화"가 무엇을 의미하는지 잘 모르겠지만, 2개의 콘솔 창/탭 기록을 자동으로 동기화한다는 의미라면 대답은 '아니요'라고 생각합니다. 수동으로 수행해야합니다.

관련 정보