
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
알려면 양의 정수 값으로 설정해야 합니다 . 기본값은 (감사합니다.zsh
HISTFILE
0
원숭이뇌힌트를 위해). 또한HISTSIZE
셸 세션에서 사용 가능한 기록 줄 수를 나타내는 을 올리고 싶을 수도 있습니다 . 기본값은 입니다30
. 예를 들어:HISTSIZE=2000 SAVEHIST=2000
이는 일반적으로 구성 파일에서 수행됩니다
~/.zshrc
.zsh
EDITOR
및 환경 변수를 확인하여 주요 바인딩 기본 설정을 추측하려고 합니다VISUAL
. 둘 중 하나에 문자열 "vi"가 포함되어 있으면 입력 모드를zsh
사용합니다viins
. 이 모드에서는 기본적으로 Ctrl+ A나 Ctrl+가 바인딩되지 않습니다 . 입력 모드(기본값 )를 E사용하려면 다음을 실행하면 됩니다.emacs
bash
bindkey -e
이 작업은 다음에서도 수행할 수 있습니다.
~/.zshrc
전체적으로 zsh
기본 구성으로 실행 중인 것처럼 들립니다. 아직 없으면 ~/.zshrc
생성하고 필요한 설정을 추가하면 됩니다.