2014-12-08 2 views
4

요즘에 명령을 입력했는데 이제는 history 또는 .bash_history를 사용하여 찾을 수 없습니다. 이것이 일어나는 이유는 무엇입니까? 내 OS X 터미널에서 여러 개의 탭을 사용하는 것과 관련이 있다고 의심하고, 어떻게 든 역사가 탭간에 이어지지는 않지만 잘 모르겠습니다.OS X 터미널 기록 누락 명령

답변

3

OS X El Capitan 10.11에서 기본적으로 Bash는 각 터미널에 대해 별도의 명령 기록을 저장하도록 구성되어 있기 때문에 Resume에 대해 별도로 복원 할 수 있습니다.

각 개인 기록은 쉘을 종료 할 때 ~/.bash_history의 글로벌 기록에도 추가됩니다. 터미널을 종료했다가 다시 시작한 경우 (이력서 사용 가능 여부와 상관없이) 모든 터미널의 명령은 ~/.bash_history에 있어야합니다. 이력서가 활성화 된 경우 복원 된 각 터미널에는 복원 된 기록 만 포함되지만 새 단말기를 만들면 최신 전역 기록으로 시작됩니다.

모든 명령 기록이 전역 ~/.bash_history 파일에 추가되므로, HISTFILESIZE 환경 변수를 설정하여 저장된 명령 수를 늘리면 최신 단말기 기록이 다른 단말기 기록을 밀어 내지 않게 할 수 있습니다 너무 빨리 파일의. 기본값은 500입니다. 저는 광산을 10,000으로 설정했습니다. 또한 HISTSIZE을 10,000으로 설정하여 전체 기록을 탐색 할 수 있습니다 (그렇지 않으면 마지막 500 개만 기록 파일에서 읽음).

별도의 명령 내역을 정렬하는 스크립트는 OS X El Capitan 10.11 이상에서는 /etc/bashrc_Apple_Terminal입니다. 메커니즘이 작동하는 방식과이를 사용자 지정하거나 비활성화하는 방법에 대해 설명하는 광범위한 설명이 포함되어 있습니다.

1

이것은 항상 저에게 생깁니다. 여러 개의 명령 창을 열고 기록이 닫힌 순서대로 저장됩니다. 찾고있는 명령이 다른 명령 창에서 겹쳐 쓸 수 있습니다.

+0

이것을 막을 수있는 방법이 있습니까? – meisel

+0

csh (내가 사용하는 쉘, 실제로는 tcsh) 쉘을 종료 할 때 명령 내역을 병합하는 옵션이 있습니다. 그것은 작동하지만, 당신이 가진 것처럼 당신의 역사에 10,000 라인이 있다면 그것은 느립니다. 인터넷 검색, bash는이 작업을 수행하는 방법이 있지만 Bash에 익숙하지 않습니다. – Andras

5

내 터미널에서이 문제가 발생했습니다. ~/.bash_sessions 폴더에 새로 생성 된 파일에 저장하는 것으로 나타났습니다. 이것은 /etc/bashrc_Apple_Terminal 파일에 설명 된 엘 캐피 탄에서 소개 된 bash 세션을 관리하는 새로운 방법의 일부입니다. 이것은 echo $HISTFILE의 굴절에 의해 확인됩니다. 이 동작을 사용하지 않으려면 touch ~/.bash_sessions_disable을 실행하십시오. 그런 다음 터미널 응용 프로그램을 종료하고 다시 시작하십시오. echo $HISTFILE을 통해 다시 확인할 수 있으므로 기록을 올바르게 저장해야합니다. 이게 도움이 되길 바란다!

관련 문제