본문 바로가기
기타/Ubuntu

강력하고 유연한 interpreter, ZSH (oh my zsh)

by 니나노뭉 2024. 7. 23.

처음에 zsh 없이 개발을 어떻게 했나 싶다.

 

한 번 써보면 빠져 나올 수 없을만큼 편하다.

 

 


Zsh(Z shell)은 강력하고 유연한 쉘(Shell) 및 명령어 인터프리터로, 특히 개발자와 시스템 관리자가 많이 사용합니다. 다음은 Zsh에 대한 주요 특징과 장점입니다.

주요 특징

  1. 강력한 사용자 정의 가능성
    • Zsh는 매우 커스터마이즈 가능한 쉘로, 사용자 정의가 쉽습니다. .zshrc 파일을 통해 다양한 설정을 조정할 수 있습니다.
  2. 향상된 탭 자동 완성
    • Zsh는 명령어, 파일 이름, 디렉터리 이름, 변수 이름 등 다양한 항목에 대한 탭 자동 완성을 지원합니다. 기본적인 자동 완성 기능을 크게 향상시키는 플러그인도 많이 있습니다.
  3. 풍부한 플러그인 생태계
    • Oh My Zsh와 같은 플러그인 관리 프레임워크를 통해 다양한 플러그인과 테마를 쉽게 설치하고 관리할 수 있습니다. 이를 통해 생산성을 크게 높일 수 있습니다.
  4. 강력한 히스토리 기능
    • Zsh는 명령어 히스토리를 강력하게 관리합니다. 명령어 히스토리 검색과 재사용이 매우 편리하며, 여러 터미널 세션 간에 히스토리를 공유할 수도 있습니다.
  5. 스펠링 교정
    • 명령어 입력 시 오타가 발생하면 Zsh는 이를 자동으로 교정하거나 추천해주는 기능을 제공합니다.
  6. 유연한 프롬프트
    • Zsh는 매우 유연한 프롬프트 설정을 지원합니다. 다양한 색상, 심볼, 정보 등을 포함하는 복잡한 프롬프트를 쉽게 설정할 수 있습니다.
  7. 스크립팅 기능
    • Zsh는 강력한 스크립팅 언어로, 복잡한 스크립트를 작성할 수 있습니다. Bash와 호환되므로 기존의 Bash 스크립트를 쉽게 사용할 수 있습니다.

결론

Zsh는 매우 강력하고 유연한 쉘로, 생산성을 높이고자 하는 개발자와 시스템 관리자에게 매우 유용합니다. 다양한 기능과 커스터마이즈 가능성 덕분에 많은 사용자들에게 사랑받고 있습니다.


 

 

설치

$ sudo apt update
$ sudo apt upgrade -y

# zsh 설치
$ sudo apt install zsh
$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# 폰트 깨짐 방지 fonts-powerline
$ sudo apt-get install fonts-powerline

# zsh 플러그인
$ cd ~/.oh-my-zsh/plugins
## zsh-syntax-highlighting
$ git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

## zsh-autosuggestions
$ git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

 

 

.zshrc 등록

$ vi ~/.zshrc 


# 해당 내용 추가(항목은 기본에 있음)
```
plugins=(
    git
    zsh-syntax-highlighting
    zsh-autosuggestions
 )

ZSH_THEME="agnoster"
```

 

 

+) VS code

상단 네비게이션바에 File → preference → settings

settings.json을 수정

"terminal.integrated.shell.windows": "C:\\Windows\\sysnative\\bash.exe",
"terminal.integrated.shellArgs.windows": ["-c", "zsh"]
"terminal.integrated.fontFamily": "Anonymous Pro for Powerline",