본문 바로가기
리눅스

Z shell

by 다움위키 2024. 3. 3.
Original article: w:Z shell

 

Z shell (Zsh)은 대화형 로그인 쉘과 쉘 스크립팅을 위한 명령 해석기로 사용될 수 있는 유닉스 쉘입니다. Zsh는 Bash, ksh, 및 tcsh의 일부 기능을 포함하여 많은 개선이 이루어진 확장된 Bourne 쉘입니다.

Zsh는 1990년 Paul Falstad에 의해 그가 프린스턴 대학교에 재학 중이었을 때 만들어졌습니다. 그것은 kshtcsh 둘 다로부터 기능을 결합하여, 프로그래밍 가능한 명령줄 완성, 확장된 파일 글로빙, 향상된 변수/배열 처리, 및 테마 지정 가능한 프롬프트와 같은 기능을 제공합니다.

Zsh는 UnxUtils 모음의 일부로 마이크로소프트 윈도우에서 사용할 수 있고 macOSKali Linux에 대해 기본 쉘로 채택되었습니다. "Oh My Zsh" 사용자 공동체 웹사이트는 대규모의 활동적인 기여자 기반을 특징으로 하는 타사 플러그인 및 테마를 위한 플랫폼을 제공합니다.

Installation

데비안 저장소에서 설치할 수 있습니다:

  • sudo apt install zsh

Configurations

이제 기본 쉘을 zsh로 변경합니다:

  • chsh -s $(which zsh)

로그아웃 후에 로그인합니다.

Install Oh my zsh

여러 테마와 플럭인을 설치하기 위해 프레임워크를 선택할 수 있지만, 가장 많이 사용되는 "oh my zsh"를 이용할 필요가 있습니다.

이제 ~/.zshrc에서 ZSH_THEME 변수를 통해 테마를 변경할 수 있고, 제공하는 플럭인을 사용할 수 있습니다.

Install plugins

Oh my zsh에서 제공하는 않는 다른 플럭인은 개별적으로 설치할 수 있습니다.

Zsh-autosuggestions

Zsh-syntax-highlighting

You-should-use

fzf-tab

thefuck

  • sudo apt update
  • sudo apt install python3-dev python3-pip python3-setuptools
  • pip3 install thefuck --user

Modify rc files

플럭인을 사용하기 위해 ~/.zshrc 파일에 개인 사용자의 디렉토리 아래에 설치된 실행 파일의 위치와 해당 플럭인을 적어야 합니다. 예를 들어,

  • export PATH=$HOME/.local/bin:$PATH
  • plugins=(git z dirhistory history sudo zsh-autosuggestions zsh-syntax-highlighting you-should-use fzf fzf-tab thefuck)

History

Paul Falstad는 프린스턴 대학교에 재학 중이던 1990년에 Zsh의 첫 번째 버전을 작성했습니다. zsh라는 이름은 예일 교수 Zhong Shao (당시 프린스턴 대학교에서 조교)의 이름에서 유래되었습니다 – Paul Falstad는 Shao의 로그인-ID, "zsh"를 쉘의 좋은 이름으로 여겼습니다.

Zsh는 처음에는 Amiga에 대한 csh의 부분집합으로 의도되었지만, 그 이상으로 확장되었습니다. 1990년 버전 1.0이 출시 당시, 그 목표는 ksh와 tcsh 사이의 교차가 되는 것이었습니다 - 이는 잘 설계되고 (ksh와 같은) 논리적이지만 (tcsh와 같은) 인간을 위해 만들어진 강력한 "명령 및 프로그래밍 언어"이며, "AT&T 제품에 넣기에는 너무 이상한" 맞춤법 검사, 로그인/로그아웃 감시 및 termcap 지원과 같은 모든 깔끔한 기능이 포함되어 있습니다.

Zsh는 공통 GNU 유닉스-계열 유틸리티의 네이티브 Win32 포트의 UnxUtils 모음의 일부로 마이크로소프트 윈도우에서 사용할 수 있습니다.

2019년에서, macOS Catalina는 Zsh를 기본 로그인 쉘로 채택하여, GPLv2 라이선스 버전의 Bash를 대체했고, Bash가 Catalina에서 대화형으로 실행되면 기본적으로 경고가 표시됩니다.

2020년에서, Kali Linux는 2020.4 출시 이후 Zsh를 기본 쉘로 채택했습니다.

Features

특색은 다음을 포함합니다:

  • 수백 개의 명령에 대한 기본 지원을 통해 사용자가 가장 많이 사용되는 명령에 대한 옵션과 인수를 모두 입력하는 데 도움이 될 수 있는 프로그래밍 가능한 명령줄 완성
  • 실행 중인 모든 쉘 사이에 명령 역사 공유
  • 확장된 파일 글로빙을 사용하면 find와 같은 외부 프로그램을 실행할 필요 없이 파일 지정이 가능합니다.
  • 향상된 변수/배열 처리 (비-영-기저 번호 매기기)
  • 단일 버퍼에서 여러-줄 명령 편집
  • 명령 이름 (및 선택적으로 파일 이름으로 가정되는 인수)의 철자 수정 및 자동 완성
  • 다양한 호환성 모드. 예를 들어, Zsh는 /bin/sh로 실행될 때 Bourne shell인 것처럼 가장할 수 있습니다.
  • 화면 오른쪽에 프롬프트 정보를 배치하고 긴 명령을 입력할 때 자동으로 숨기도록 하는 기능을 포함한 테마 지정 가능한 프롬프트
  • 전체 TCP 및 유닉스 도메인 소켓 제어, FTP 클라이언트, 및 확장 수학 기능 등을 제공하는 로드 가능한 모듈.
  • 내장된 where 명령. which 명령과 유사하게 작동하지만 사용될 디렉터리만 표시하는 것이 아니라 $PATH에 지정된 디렉터리에 있는 대상 명령의 모든 위치를 표시합니다.
  • 이름-지정된 디렉터리. 이를 통해 사용자는 ~mydir과 같은 바로 가기를 설정할 수 있으며, 이는 ~ 및 ~user가 수행하는 방식으로 작동합니다.
  • 위젯. 일반 함수 위젯에 의해 구축되고 구현된 위젯은 모두 단축키에 바인딩될 수 있습니다.

Community

"Oh My Zsh"로 알려진 사용자 공동체 웹사이트는 Z 쉘에 대한 타사 플러그인과 테마를 수집합니다. 2021년 기준, GitHub 저장소에는 1900명 이상의 기여자, 300개 이상의 플러그인, 140개 이상의 테마가 있습니다. 그것은 역시 설치된 플러그인과 테마를 더욱 쉽게 업데이트할 수 있는 자동 업데이트 도구도 함께 제공됩니다.

Troubleshootings

Time format

배쉬에서 사용하는 것이 더 직관적입니다. ~/.zshrc 파일에 다음과 같이 적어 줍니다:

  • TIMEFMT=$'real\t%E\nuser\t%U\nsys\t%S'

Unalias

간혹은 플럭-인에서 지정된 alias가 실행 파일의 이름과 동일한 경우가 있습니다. 물론 터미널에서 실행하지 않을 때에는 문제가 되지 않지만, 터미널에서 해당 명령을 실행하면 alias가 동작합니다.

이럴 때에는 alias를 다르게 지정하거나, alias를 제거해야 합니다. ~/.zshrc 파일에 각각 아래와 같이 설정할 수 있습니다:

  • alias gst="whatever you want"
  • unalias gst
  • source ~/.zshrc

External links