애플, Mac 카탈리나에서 기본 쉘을 Bash에서 Zsh로 변경( https://www.clien.net/service/board/news/13567000CLIEN )
되었고
최근에
애플, macOS 10.15 Catalina 배포 시작( https://www.clien.net/service/board/news/14130254CLIEN )
이 되더랬죠.
Zsh의 장점이란??
전 다음 4개를 꼽고 있습니다.
- Bash 호환성
- RPROMPT
- 자동완성
- 플러그인 생태계
Bash와의 호환성은 더 설명할 필요 없을 것 같구..
RPOMPT와 자동완성에 대해 설명해보죠.
Bash와의 비교
Bash
잘못된 형식의 이미지 링크입니다.
Zsh
잘못된 형식의 이미지 링크입니다.
기본으로 설치된 Bash와 Zsh의 비교입니다.
(Bash는 운영체제에서 제공하는 .bashrc를 통해 프롬프트 설정이 되어 있음)
Zsh는 RPROMPT가 존재해서 오른편에 정보를 보여줄 수 있으며,
탭 자동완성을 사용할 때 단순히 리스트를 보여주는 것이 아니라 '선택'이 가능합니다.
Zsh의 단점은 OS에서 기본 설정을 안해줘 위 스샷처럼 황량하게 나온다는 겁니다.
대신 플러그인의 힘으로 모든 것을 커버하죠.
------
뭐..카탈리나 올려면
Use zsh as the default shell on your Mac( https://support.apple.com/en-us/HT208050 )
문서처럼 기본 설정해서 나오긴 하겠죠.
잘못된 형식의 이미지 링크입니다.
똑같이 만들 수 있어요. ㅎㅎ
그런데 쓸 수 있는 기능들을 안쓰는 것은 아깝잖아요??
------
스타터킷을 사용하자!!
뭐 플러그인들 좋죠..
근데.. 기능들을 읽어가며 하나하나 설정하는게 고통스럽습니다.
Oh-My-Zsh 같은 것을 깔아도 플러그인은 다 설정해줘야 하거든요.
Emacs는 Spacemacs나 Doom Emacs 같은게 있어서 입문자에게 좋은데 Zsh는 없더군요.
그래서 만들었습니다.
MacOS, Debin-based(Ubuntu, Debian, Mint, ..), RPM-based(Fedora, CentOS, Redhat, ..), Pacman-based(Arch, Manjaro, Antergos, ..), Free-BSD를 지원하는 인스톨러입니다.
git clone https://github.com/black7375/BlaCk-Void-Zsh.git ~/.zsh bash ~/.zsh/BlaCk-Void-Zsh.sh
zsh-update로 업데이트 가능합니다.
테마는 총 4가지에요 (powerline, powerline-single, simple, simple-single)
잘못된 형식의 이미지 링크입니다.
잘못된 형식의 이미지 링크입니다.

잘못된 형식의 이미지 링크입니다.
https://github.com/black7375/BlaCk-Void-Zsh/wiki/Customize
테마, 컬러, 아이콘 모드전환은 상수 변경만으로도 가능하고요, 세세한 설정 또한 자유롭게 가능합니다. (별 50개 기념 업뎃 내용)
다양한 기능들이 있지만
https://github.com/black7375/BlaCk-Void-Zsh/wiki/Features
그냥 기능들을 몇개 보여주자면
문법강조와 괄호 짝맞춤
잘못된 형식의 이미지 링크입니다.
강력한 자동완성
잘못된 형식의 이미지 링크입니다.
제안과 수정


검색 및 적용
잘못된 형식의 이미지 링크입니다.
잘못된 형식의 이미지 링크입니다.
이것 저것 내용이 많은 것 같지만 실제로 써보면 학습곡선은 거의 없고, 자연스럽게 손에 익을 거에요.
bash보다 나은 생산성을 체감하세요~~
P.S 성능에도 신경을 써서 SSD달린 컴을 쓴다면 그렇게 느리다고 느껴지지 않을겁니다 ㅎㅎ
에러가 생기면 아래 문서를 참고해보세요!!
https://github.com/black7375/BlaCk-Void-Zsh/wiki/Inatallation
인스톨러에서 추천하는 폰트를 깔면 hack nerd font가 깔렸을 겁니다.
터미널에 hack nerd font를 폰트로 지정해주면 되요!!
tcsh로 입문해서 요새는 bash쓰고있는데 tmux나 zsh쓰고있는분들보면 넘어가고 싶은 마음이 동하긴 하는데 귀찮이즘때문에 옮겨가질 못하고 있는데 한큐에 해결해주시니 감사합니다
두가지 질문이 있는데요
1. 터미널로 원격접속해서 tmux쓰려고해보니 x11 을 요구하던데 zsh은 상관없나요?
2. 원격접속으로 사용할떄 접속할 서버에서 zsh을 사용하면 터미널의 반응속도가 많이 느려지지는 않을까요?
2. 네트워크가 너무 느리지만 않으면 괜찮더군요. 애저 기준입니다.
당장 쓰고 싶다면 zsh를 쳐보시면 다운로드를 쭈르륵 받으며 적용될거에요
iterm 업데이트 하고 나니 재대로 설지 되는군요 기본 터미널에서 잘 설치되서 이상했었는데... 잘쓰겠슴당
업무용 vdi는 customize 되어 있어서 추가하실 필요 없을 것 같네요^^
RHEL에서는 안되나보군요
일단 인터페이스가 화려해지네요
감사합니다. 잘 사용하겠습니다.
1. 내장된 테마모드 커스텀이 상당히 쉽고 품질이 높으며 빠른 편입니다.
2. Oh-My-Zsh의 로딩속도가 상당히 느린 편인데 비동기로드(프롬프트 로드 후에 로드)를 해서 빠릅니다
3. 내장된 플러그인과 설정, 유틸리티들 - ZSH에 그치지 않고 CLI 환경전반을 다루려 생각하고 있어요.
4. 간단한 추가 플러그인 사용
추가적인 플러그인을 사용하고 싶으면 ~/.zshrc에서
zplugin light 유저/레포 를 사용하면 되는데 간단합니다.
* Oh-My-Zsh에서 가지고 오고 싶으면
zplugin ice svnzplugin snippet OMZ::plugins/디렉토리이름
처럼 하면 되요.
플러그인 커스텀 파일을 지원할까 생각은 하고 있는데 추후 프로젝트 업그레이드 시 사용자 경험 통제가 어려워져서 고민이네요. 아마 핵심 플러그인/추가 플러그인으로 나뉘어서 나올 것 같습니다.
만 기억하시면 되는겁니다
애플이 GPL을 싫어해서 MIT 라이센스로 다 바꾸고 있져.
대표적인게 gcc -> llvm
일단 스크랩하고 이해는 천천히 해보겠습니다...ㄷㄷ
링크가 걸리는데, 테마 충돌만 안일어나면 괜찮을거에요.
세상에... 강좌란에서 쉘 바꾸는 법을 볼 날이 다 오는군요.
여기 macOS bash에서 zsh로 넘어가서 잘 쓰고 있는 사용자 한명 추가요!
꾸미는 맛이 참 좋습니다.
이쁘네요
Traceback (most recent call last): File "/Users/someone/.pyenv/versions/3.7.4/bin/powerline-config", line 20, in <module> pl = config.create_powerline_logger(args) File "/Users/someone/.pyenv/versions/3.7.4/lib/python3.7/site-packages/powerline/bindings/config.py", line 226, in create_powerline_logger common_config = finish_common_config(get_preferred_output_encoding(), config['common']) File "/Users/someone/.pyenv/versions/3.7.4/lib/python3.7/site-packages/powerline/lib/encoding.py", line 49, in get_preferred_output_encoding or locale.getdefaultlocale()[1] File "/Users/someone/.pyenv/versions/3.7.4/lib/python3.7/locale.py", line 568, in getdefaultlocale return _parse_localename(localename) File "/Users/someone/.pyenv/versions/3.7.4/lib/python3.7/locale.py", line 495, in _parse_localename raise ValueError('unknown locale: %s' % localename)ValueError: unknown locale: UTF-8
저도 찾아보면서 수정해야 될 것 같습니다.
https://blog.anvileight.com/posts/valueerror-unknown-locale-utf-8-fixed/
여기 참조해서 ~/.zshenv 파일을 만들고
export LC_ALL=ko_KR.UTF-8
export LANG=ko_KR.UTF-8
두줄을 추가했습니다. 위 링크에서는 ko_KR 대신 en_US 로 되어있습니다만, 이렇게 해도 잘 되네요.
아하. 로케일 설정해주면 되는 거였군여..
근데 자동으로 세팅되게 하는게 조금 애매하군요.
https://github.com/black7375/BlaCk-Void-Zsh/wiki/Inatallation 에 에러 솔루션으로 추가했어요.
좋은 정보 감사합니다.
성능만 생각하면 Alacritty( https://github.com/jwilm/alacritty )가 상당히 좋다고 들었습니다.
평범한 사용자라 별 생각 없이 살고 있었는데 이 글 읽으면서 바로 설치했습니다.
간단한 script인가 했는데 설치하는데만 꽤나 시간이 걸리는군요.
감사합니다. 열심히 써 보겠습니다.
개발용 노트북이 드라이버 문제로 어떤 리눅스도 사용이 힘들어서.. WSL이 유일한 방법입니다 ㅠㅠ
라는 에러가 명령어 칠때마다 나는데 어떻게 해결해야 할까요ㅠㅠ
plugins/urltools/urltools.plugin.zsh
149번 라인을 #으로 비활성화 시켜보세요
oh my zsh 플러그인에서 문제가 생겼나봐요
PR로 해결되었습니다ㅏㅏㅏ
https://github.com/black7375/BlaCk-Void-Zsh/pull/6
가 버그 수정 내용이에요.
최신 버전에서도 뜨는 건가요? ㄷㄷ
실행중이면 zsh-update를 실행하시면 됩니다.
메모장 쓰다가 VS쓰는 느낌 정도? ㅎㅎ
위키에 추가했어요!!
지원하지 않는 유명한 폰트들은 패치버전이 있고요.
혹시 어떤 에러가 나왔는지 알 수 있을까요?
https://packages.ubuntu.com/search?keywords=ack
18.04 부터 ack로 설치가 되는 모양입니다.
debian은 ack로만 검색되는 것을 봐서는 우분투 버전에 따라 예외처리를 해줘야겠네요
---
수정했어요~~
jeongminkim@Jeongui-iMac ~ % brew reinstall xdotool==> Reinstalling xdotool==> Downloading https://homebrew.bintray.com/bottles/xdotool-3.20160805.1.mojave.bottle.tar.gzAlready downloaded: /Users/jeongminkim/Library/Caches/Homebrew/downloads/739e214b98578f632a0450d127ca67e30d2c46c4ebb685171272a8ef13cb86f1--xdotool-3.20160805.1.mojave.bottle.tar.gz==> Pouring xdotool-3.20160805.1.mojave.bottle.tar.gz==> CaveatsYou will probably want to enable XTEST in your X11 server now by running: defaults write org.x.X11 enable_test_extensions -boolean trueFor the source of this useful hint: https://stackoverflow.com/questions/1264210/does-mac-x11-have-the-xtest-extension==> Summary? /usr/local/Cellar/xdotool/3.20160805.1: 10 files, 191.3KB
MacOS Catalina 입니다;;
https://github.com/Homebrew/homebrew-core/blob/master/Formula/xdotool.rb
보니 카타리나는 아직 지원을 안하나봐요.
당분간 맥용 패키지에서 제거하는 걸로..
감사합니다!!
만약 ~/.zsh 내부 파일을 수정하셨으면
git reset --hard HEAD로 되돌릴 수 있어요.
~/.zplugin/bin/zplugin.zsh:2017: parse error near `"$@"'
_powerline-nerd:4: unknown file attribute
뭐일까요?