bash
➜ zsh
- 더 빨라진 쉘
zsh
은 수많은 플러그인과 테마가 지원되는 쉘입니다. 이제 bash
쉘을 그만 쓰고 zsh
을 사용해보겠습니다.
zsh
은 oh-my-zsh
을 설치해야만 그 진가를 발휘하는데, 그 설치법은 튜토리얼 에 이미 설명했기 때문에 여기에서는 zsh
을 사용하면 얼마나 생산성이 향상되는지만 가볍게 알아보겠습니다.
테마
zsh
은 정말 수많은 테마를 갖고 있습니다.
!!! tip
[https://github.com/ohmyzsh/ohmyzsh/wiki/External-themes](https://github.com/ohmyzsh/ohmyzsh/wiki/External-themes) 에 들어가서 마음에 드는 테마가 있는지 볼 수 있어요.
제가 보여드릴 zsh
테마는 다음과 같은 alien-minimal 입니다.
zsh
기본 기능
zsh
테마는 단순히 bash
쉘 프롬프트보다 더 멋있기 때문에 사용해야 하는 것도 있지만 수많은 기능들도 제공하기 때문에 사용해야 합니다. 그 수많은 기능 중 다음 두 가지 기능만 알아보겠습니다.
!!! note ""
다음과 같이 `git` 브랜치를 프롬프트에 보여준다.
<img src="https://user-images.githubusercontent.com/16812446/81711439-a748ae00-94ae-11ea-87b3-2d044af66c6a.png" width="70%" height="auto">
위와 같이 프롬프트 우측에 `master` 가 `dev` 로 바뀌고 다시 `master`로 바뀌었습니다.
이렇게 `git` 으로 레포지토리를 관리하다가 실험적인 기능을 테스트해야 해서 새로운 `branch` 인 `dev` 를 만들고 이주했을 때, `zsh` 의 프롬프트가 우측에 현재 상주하고 있는 `branch` 정보를 알려줍니다.
그래서 매번 `git branch` 를 입력하여 현재 상주하고 있는 `branch` 가 어떤 건지 확인할 필요가 없습니다.
프로그램의 리턴값이 정상값 `0` 이 아닐경우 프롬프트에 보여준다.
<img src="https://user-images.githubusercontent.com/16812446/81711915-0e666280-94af-11ea-9da8-d30192e5e16e.png" width="50%" height="auto">
위와 같이 `ls` 명령어를 입력하면 정상 종료 코드 `0` 가 반환되지만 존재하지 않는 명령어 `lss` 가 입력되면 비정상 종료 코드 `127` 이 반환됩니다.
`zsh` 프롬프트는 그러한 비정상 종료 코드를 보여주고 프로그램이 비정상적으로 종료되었을 때 프롬프트 색깔을 다른 색깔로 바꿔줍니다.
tab-completion
기능
이 기능은 명령어의 부분만 입력하고
Tab
을 눌렀을 때 zsh
이 알아서 명령어를 추천해주는 기능입니다.
!!! note ""
다음과 같이 `cd` 만 누르고 <kbd>Tab</kbd> 을 누르면 명령어를 추천을 해주고, `cd` 를 선택하고 다시 <kbd>Tab</kbd> 을 누르니까 이동할 레포지토리를 추천해줍니다. 우리가 해야 할 일은 단지 <kbd>Enter</kbd> 를 누르는 것 뿐이죠.
![render1589349092346](https://user-images.githubusercontent.com/16812446/81776326-98531180-9529-11ea-871e-d3001579bfe2.gif)
다음과 같이 특정 디렉토리만 입력하고 나서 <kbd>Tab</kbd> 을 누르면 하위 디렉토리를 추천해줍니다.
![render1589349132365](https://user-images.githubusercontent.com/16812446/81776480-cf292780-9529-11ea-8ffd-4e457a71e6de.gif)
auto-completion
기능
이 기능은 사용자가 길고 복잡한 경로를 이동해야 할때 그것을 특정할 수 있는 문자만 입력하고
Tab
을 누르면 자동으로 완성해주는 zsh
의 기능입니다.
!!! note ""
`/usr/lib/gcc/x86_64-linux-gnu/9.3.0` 의 경로로 이동해야 하는 경우라고 가정하겠습니다.
```shell
$ cd /usr/lib/gcc/x86_64-linux-gnu/9.3.0
```
하지만 이건 너무 길어서 짜증나서 견딜 수가 없습니다. 그러니까 다음 명령어만 입력하고 <kbd>Tab</kbd> 을 누릅니다.
```shell
$ cd /u/l/g/x/9
```
그러면 다음과 같이 `zsh` 이 경로를 지가 알아서 완성시켜 줍니다.
![](https://user-images.githubusercontent.com/16812446/81776742-51b1e700-952a-11ea-986d-4169235ff0ef.gif)
z
명령어
z
명령어는 사용자가 자주 이동하는 디렉토리 경로의 통계를 내어서 사용자가 이동하는 경로를 특정할 수 있는 짧은 경로만 입력해도 이동할 수 있게끔 해주는 너무너무 편리 한 zsh
플러그인입니다.
단 z
명령어를 사용하기 위해서는 반드시 한 번 이상은 그 경로로 이동한 적이 있어야 합니다. 왜냐하면 z
이 사용자가 이동한 경로를 분석하고 통계를 낼 기회를 줘야하기 때문이죠.
auto-suggestions
기능
이 기능은 가장 최근에 실행한 명령어를 기억하여 사용자가 그 명령어와 비슷한 타자를 친다면 자동으로 완성된 명령어를 추천해주는 zsh
플러그인입니다. 이 기능은 긴 명령어를 반복해야 할 때 너무 편합 니다.
사용법도 매우 간단합니다. 명령어를 입력하다 보면 auto-suggestions
이 희미한 글씨로 완성된 명령어를 추천하는데 그것을 실행하길 원했다면
→
를 눌러서 명령어를 완성시키면 됩니다.
만약 auto-suggestions
이 추천한 명령어 전부를 원하지 않고 부분적인 것만 원한다면
Ctrl
+
→
를 누르면 됩니다.
'알아두면 편한 개발지식' 카테고리의 다른 글
맞춤형 Linux 서버 초기 설정 (0) | 2021.07.08 |
---|---|
CLI 초기 설정 (0) | 2021.05.11 |
vim (0) | 2021.01.28 |
SQLlight (0) | 2021.01.28 |
C++ google style convention 과 CppCoreGuidelines (0) | 2020.08.23 |