zsh의 Sudo 기능

zsh의 Sudo 기능

저는 MAC뿐만 아니라 Linux 박스에서도 zsh를 사용하고 있습니다. 그러나 두 환경 모두에서 "문제"가 있습니다.

" !! "를 입력하면 zsh에서는 작동하지 않지만 bash에서는 작동합니다. 게다가 "sudo !!"와 함께 사용하면 정말 유용합니다. zsh에서 어떻게 작동하게 할 수 있나요?. .zshrc에 별칭을 지정해야 합니까?

답변1

다음에서는 이 BANG_HIST옵션이 비활성화되었습니다 zsh.

BANG_HIST(+K) <C> <Z>

텍스트 히스토리 확장을 수행하고,csh-스타일, 캐릭터를 다루는 `!' 특별히.

이는 다음 세 가지 방법 중 하나를 통해 발생할 수 있습니다.

  1. set/ 로 명시적으로 설정합니다 setopt. 쉘 구성 어딘가에 다음 중 하나와 같은 줄이 있습니다.

     setopt NO_BANG_HIST
     setopt -o NoBangHist
     setopt +o banghist
     set -o nobanghist
     set +o BANG_hist
    

    대소문자는 중요하지 않으며 _옵션 이름에서는 무시됩니다. BANG_HIST기능을 활성화하고 앞에 NO( NO_BANG_HIST)를 추가하면 기능이 비활성화됩니다. -o이름에 따라 기능의 상태를 설정하고 +o의미를 반전시킵니다.

  2. zsh명령줄 옵션 으로 시작하여 -K:

    zsh -K
    

    를 사용하여 명시적으로 설정할 수도 있지만 구성에서 zsh +K이를 재정의할 수 있습니다 .setopt

  3. 또는 zsh에뮬레이션 모드에서 시작 :shksh

    ln -s /bin/zsh /usr/local/bin/ksh
    /usr/local/bin/ksh
    

    이 경우 기능은 나중에 를 사용하여 설정할 수도 있지만 setopt명령줄 옵션으로는 설정할 수 없습니다( /usr/local/bin/ksh +K작동하지 않음).

답변2

내 zsh는!!

지금 zsh를 설치했고 !!bash에서 작동하는 것처럼 작동합니다.

어쩌면 업데이트해야할까요?

내 버전은5.0.2-3ubuntu6

그러나 zsh에 없는 경우:

답변대로여기파일 에 다음을 추가해야 합니다 .zshrc.

alias ii='$(fc -ln -1)'

답변3

좋아요. 문제를 일으키는 .zshrc에 오래된 "set opt" 옵션이 있는 것 같습니다.

내 .zshrc의 모든 항목을 테스트하여 알아냈습니다. 운 좋게도 이것이 마지막 옵션은 아니었습니다.

어떤 특정 옵션을 변경하거나 제거해야 하는지 나중에 테스트해 보겠습니다.

문안 인사

관련 정보