SLASH 기술 블로그

zsh 디렉토리 이동 팁 (zsh navigation tips) 본문

백엔드

zsh 디렉토리 이동 팁 (zsh navigation tips)

SLASH 2021. 6. 23. 20:34
반응형

개발을 하다보면 터미널을 사용하는 일이 많다. 특히나 백엔드 작업을 하다보면 설정 파일을 건드리거나, 서버를 빌드하면서 터미널을 자주 사용하게 된다.

 

개발을 할 때 대중적으로 사용되는 맥이나 일반적인 리눅스 배포판에서는 bash를 기본 쉘로 제공하는데, 터미널을 자주 사용하는 경우에는 bash의 기능에서 조금 더 확장된 zsh를 사용하면 좀 더 편하다.

 

나도 zsh를 사용한지 2년 가까이 되어 가는데, 처음 쓸 때는 몰랐던 디렉토리 이동에 대한 여러 팁을 공유하고자 한다. zsh를 처음 쓰는 분들에게 좋은 내용이 되었으면 한다. 짧은 내용이니 가볍게 읽으면 좋을 것 같다.

 

디렉토리 이동

터미널에서 가장 일상적으로 이루어지는 작업이 디렉토리 이동이 아닐까 싶다. 터미널을 쓰는 분들이라면 디렉토리 변경 명령어가 무엇인지 대부분 알고 있을거라 생각한다. 바로 cd.

~ $ mkdir test
~ $ cd test
~/test $

 

zsh에서는 cd를 생략하고 디렉토리 이름만 입력해도 이동이 가능하다. 물론 환경 변수나 실행 파일과 겹칠 경우 그쪽이 우선인 것은 당연하다.

~ $ mkdir test
~ $ test       # 'cd test' 와 동일하다.
~/test $ ~     # 'cd ~'와 동일하다.
~ $

 

이전 디렉토리로 이동

bash나 zsh에서 이전 폴더로 이동할 때는 cd - 명령을 사용한다.

~ $ cd foo
~/foo $ cd -
~ $

 

zsh은 여기서 몇 가지 부가적인 기능과 alias를 제공한다. 먼저 cd를 생략하고 디렉토리 이름만 입력해도 이동이 가능했던 것과 같은 맥락으로, -만 입력해도 이전 디렉토리로 이동이 가능하다.

~ $ foo
~/foo $ -
~ $

 

bash에서 바로 이전 디렉토리로밖에 돌아가지 못했던 것과는 달리, zsh에서는 숫자를 붙여서 여러 이전 디렉토리로 돌아갈 수 있다.

~ $ foo
~/foo $ bar
~/foo/bar $ 2   # alias to 'cd -2'

 

alias 명령을 통해서 확인해보면, 1부터 9까지의 각 숫자에 대해 매핑이 되어 있는 것을 확인할 수 있다. 이외에도 다양한 alias들이 존재한다. 세부적인 내용은 직접 한 번 확인해봐도 좋을 것 같다.

...
1='cd -'
2='cd -2'
3='cd -3'
4='cd -4'
...

 

상위 디렉토리로 이동

상위 디렉토리로 이동하는 방법은 모두 잘 알고 있을 것이다. 상위 디렉토리에 대한 별칭인 .. 를 사용하면 된다. zsh에서는 폴더만 명시해도 이동이 가능하기 때문에 다음과 같은 방법으로도 상위 디렉토리로 이동할 수 있다.

~ $ foo
~/foo $ ..
~ $

 

때로는 상위 디렉토리를 여러 번 타고 올라가야 하는 경우도 있다. 이럴 때는 .. 를 여러 번 반복하는 게 아니라 점의 개수를 늘려서 얼마나 상위로 이동할 것인지 조절할 수 있다. .. 뒤에 점을 하나 더 붙이면 두 단계 위로 움직이고, 2개 더 붙이면 세 단계 위로 움직이는 식이다.

~ $ foo
~/foo $ bar
~/foo/bar $ ...
~ $

 

패턴 매칭

디렉토리 이동을 할 때 편하게 쓰는 기능 중에 하나가 일치하는 폴더를 자동으로 완성시켜주는 auto completion 기능이다. 아래와 같이 폴더 이름의 일부분을 입력하고 키를 누르면 (일반적으로 Tab) 입력한 글자 집합으로 시작하는 폴더를 자동으로 완성시켜주거나, 매칭되는 폴더가 여러 개일 경우 목록을 보여준다.

~ $ mkdir foo-bar-test
~ $ foo- ⇥
~ $ foo-bar-test

 

패턴 매칭을 할 때 글로브 패턴을 쓸 수도 있다. 폴더가 어떤 이름으로 시작하는지는 모르겠는데 어떤 글자가 포함되는지 아는 경우 유용한 방법이다.

~ $ mkdir foo-bar-test
~ $ *-test ⇥
~ $ foo-bar-test

생각보다 그리 많지는 않다. 내가 일상적으로 사용하는 디렉토리 이동 방법들을 조금 이야기해봤다.

 

zsh은 사실 플러그인이 핵심이다. zsh를 사용한다면 필수적으로 설치해서 써야하는 몇 가지 플러그인들이 있다. zsh-autosuggestions, zsh-completions 이 두 가지는 이제 없으면 불편해서 개발하기 어려울 정도. 플러그인에 관해서는 정리가 잘 되있는 글들이 많고, 워낙 다양한 종류가 있어서 직접 찾아보면서 자기만의 터미널을 만들면 좋을 것 같다.

 

@turastory

반응형
Comments