OSX 10.8.5에서 zsh 기록을 찾을 수 없습니다

OSX 10.8.5에서 zsh 기록을 찾을 수 없습니다

OSX에서 터미널 앱에 로그인할 때 기본 쉘은 /bin/bash. 을 입력하면 파일에 기록 항목이 포함되어 있음을 가리키고 표시 echo $HISTFILE됩니다 /Users/monkeybrain/.bash_history.head $(echo $HISTFILE)

그런 다음 쉘을 전환하도록 입력하면 zsh몇 가지 이상한 일이 발생합니다. 첫째, 프롬프트가 변경되었음에도 불구하고(그래서 새 쉘에 있는 것처럼 보임) 내 $SHELL환경 변수는 여전히 /bin/bash. 이제 변수 $HISTFILE는 비어 있으며 ~/.zsh_history. 또한 명령줄을 사용 Ctrl-A하거나 Ctrl-E이동할 수 없습니다 .

여기서 무슨 일이 일어나고 있는 걸까요?

많은 감사를 드립니다.

MB

답변1

  • 환경 SHELL변수는 일반적으로 쉘에 의해 수정되지 않습니다. 일반적으로 현재 사용자의 로그인 셸에 대한 전체 경로를 포함합니다.~ 아니다현재 실행중인 쉘. 대부분의 경우 SHELL쉘이 시작되기 전에 설정되어야 합니다. zsh값을 변경하지 않고 SHELL설정 되지 않은 bash경우 로그인 셸로 다시 설정합니다 SHELL.

  • 기본적으로는 HISTFILE에서 설정되지 않습니다 zsh. 기록을 저장하려면 해당 기록에 사용하려는 파일로 설정해야 합니다.

    HISTFILE="${HOME}/.zsh_history"
    

    또한 에 저장할 줄 수를 SAVEHIST알려면 양의 정수 값으로 설정해야 합니다 . 기본값은 (감사합니다.zshHISTFILE0원숭이뇌힌트를 위해). 또한 HISTSIZE셸 세션에서 사용 가능한 기록 줄 수를 나타내는 을 올리고 싶을 수도 있습니다 . 기본값은 입니다 30. 예를 들어:

    HISTSIZE=2000
    SAVEHIST=2000
    

    이는 일반적으로 구성 파일에서 수행됩니다 ~/.zshrc.

  • zshEDITOR및 환경 변수를 확인하여 주요 바인딩 기본 설정을 추측하려고 합니다 VISUAL. 둘 중 하나에 문자열 "vi"가 포함되어 있으면 입력 모드를 zsh사용합니다 viins. 이 모드에서는 기본적으로 Ctrl+ ACtrl+가 바인딩되지 않습니다 . 입력 모드(기본값 )를 E사용하려면 다음을 실행하면 됩니다.emacsbash

    bindkey -e
    

    이 작업은 다음에서도 수행할 수 있습니다.~/.zshrc

전체적으로 zsh기본 구성으로 실행 중인 것처럼 들립니다. 아직 없으면 ~/.zshrc생성하고 필요한 설정을 추가하면 됩니다.

관련 정보