이전 글에서는 SSH Alias와 SSH Key를 이용해 ssh nas 한 줄로 NAS에 접속하는 방법을 정리했다.
덕분에 더 이상 IP 주소를 외우거나 비밀번호를 반복 입력할 필요가 없어졌다.
하지만 SSH 접속을 편하게 만들었다고 해서 모든 불편함이 사라지는 것은 아니다.
실제로 NAS를 사용하다 보면 접속보다 더 귀찮은 일이 하나 있다.
바로 원하는 폴더를 찾는 것이다.
경로를 외우고 있는 사람은 생각보다 많지 않다
예를 들어 Docker 프로젝트를 관리한다고 가정해보자.
경로를 정확하게 기억하고 있다면 다음처럼 바로 이동할 수 있다.
cd /volume1/docker/immich하지만 현실은 대부분 그렇지 않다.
몇 주 전에 설치했던 프로젝트라면 어디에 두었는지 기억이 잘 나지 않는 경우가 많다.
결국 다음과 같은 과정을 반복하게 된다.
cd /volume1
lscd docker
ls
cd services
ls
cd immich또는
cd ..
cd ..
ls
cd docker
ls
cd immich이런 식으로 폴더를 하나씩 열어보고, ls로 확인하고, 다시 이동하는 과정을 반복하게 된다.
프로젝트가 늘어날수록 상황은 더 심해진다.
Ghost, Immich, NPM, Wallos, PostgreSQL, Planner 등 여러 서비스를 운영하다 보면 정확한 위치를 기억하기 어려워진다.
결국 우리는 경로를 이동하는 것보다 경로를 찾는 데 더 많은 시간을 쓰게 된다.
그래서 내가 NAS를 사용하면서 가장 만족했던 두 번째 설정이 바로 zoxide다.
zoxide란?
zoxide는 자주 방문하는 폴더를 자동으로 기억해두었다가 짧은 명령어로 이동할 수 있게 해주는 도구다.
쉽게 말하면 다음과 같은 작업을 대신해준다.
기존 방식:
cd ..
cd ..
ls
cd docker
ls
cd immichzoxide 사용 후:
z immich한 줄이면 끝난다.
어떻게 동작할까?
zoxide는 사용자가 방문한 폴더를 자동으로 학습한다.
예를 들어 평소에는 다음과 같이 긴 경로를 입력해서 이동한다고 가정해보자.
cd /volume1/docker/immichzoxide는 이런 방문 기록을 자동으로 기억해둔다.
그 결과 이후에는:
z immich처럼 폴더 이름 일부만 입력해도 해당 위치로 이동할 수 있게 된다.
즉, 사용자가 자주 방문하는 경로를 학습한 뒤 짧은 별칭처럼 사용할 수 있게 해주는 도구라고 생각하면 된다.
zoxide 설치하기
이번 글은 UGREEN NAS 기준으로 작성되었으며, 대부분의 Linux 기반 NAS에서 동일하게 사용할 수 있다.
먼저 다음 명령어를 입력해보자.
apt --version정상적으로 버전 정보가 출력된다면 다음 명령어로 설치할 수 있다.
sudo apt install zoxide만약 command not found가 나온다면 사용하는 NAS 환경에 맞는 설치 방법을 추가로 확인해야 한다.
Bash에 등록하기
설치만으로는 바로 사용할 수 없다.
쉘(Bash)이 시작될 때마다 zoxide를 자동으로 불러오도록 설정해야 한다.
다음 명령어를 실행한다.
echo 'eval "$(zoxide init bash)"' >> ~/.bashrc처음 보면 조금 복잡해 보이지만 의미는 단순하다.
echo: 뒤에 적은 문자열을 그대로 출력하는 명령어'eval "$(zoxide init bash)"': Bash가 시작될 때 zoxide를 사용할 수 있도록 초기화하는 설정>> ~/.bashrc: 출력된 내용을~/.bashrc파일 맨 아래에 추가
즉, 위 명령어는 다음 내용을 .bashrc 파일에 자동으로 추가하는 것과 같다.
eval "$(zoxide init bash)".bashrc는 새로운 터미널이나 SSH 세션이 시작될 때 자동으로 실행되는 설정 파일이다.
따라서 여기에 등록해두면 매번 수동으로 zoxide를 실행할 필요가 없다.
설정을 저장한 뒤에는 현재 터미널에도 바로 적용해야 한다.
source ~/.bashrcsource 명령어는 .bashrc 파일을 다시 읽어오는 역할을 한다.
만약 이 명령어를 실행하지 않으면 SSH를 다시 접속하거나 새 터미널을 열기 전까지는 z 명령어가 동작하지 않을 수 있다.
설치 확인하기
정상적으로 설치되었다면 다음 명령이 동작한다.
zoxide --version예시:
zoxide 0.9.8처음에는 아무것도 기억하지 못한다
설치를 마쳤다고 바로 사용할 수 있는 것은 아니다.
처음에는 학습된 경로가 없기 때문이다.
예를 들어 설치 직후 다음 명령어를 실행하면:
z ghost다음과 같은 메시지가 나올 수 있다.
Error: no match found정상이다.
아직 zoxide가 기억하고 있는 경로가 없다는 의미다.
먼저 한 번 이상 방문해보자
zoxide는 사용자가 실제로 방문한 경로만 기억한다.
따라서 처음 사용하는 폴더라면 최소 한 번은 기존 방식으로 해당 위치에 이동해야 한다.
예를 들어 다음과 같이 이동해보자.
cd /volume1/docker/ghost
cd /volume1/docker/immich
cd /volume1/docker/planner각 폴더에 한 번 이상 방문하면 zoxide가 해당 경로를 기록한다.
그 이후부터는 다음처럼 짧게 이동할 수 있다.
z ghost
z immich
z walloszoxide는 어디로 이동할지 어떻게 결정할까?
보통은 다음처럼 사용하면 된다.
z immich하지만 비슷한 이름의 폴더가 여러 개 있다면 내가 생각한 위치가 아닌 다른 폴더로 이동할 수도 있다.
예를 들어 다음과 같은 경로가 있다고 가정해보자.
/volume1/docker/immich
/volume1/projects/immich-theme
/home/zenn/downloads/immich이 경우 zoxide는 내부 점수를 기준으로 가장 적절하다고 판단한 폴더를 선택한다.
그렇다면 실제로 어디로 이동하게 될까?
다음 명령어로 미리 확인할 수 있다.
zoxide query immich결과 예시:
/volume1/docker/immich이 명령어는
내가 지금 z immich를 입력하면 어느 폴더로 이동하게 되는가?를 미리 보여주는 기능이다.
실제 폴더는 이동하지 않고 그대로 유지한 채 zoxide가 선택한 목적지만 출력한다.
후보 전체 목록 확인하기
비슷한 이름의 폴더가 여러 개 있다면 후보 전체를 확인할 수도 있다.
zoxide query -ls immich예시:
45.2 /volume1/docker/immich
14.2 /volume1/projects/immich-theme
8.0 /home/zenn/downloads/immich현재 키워드와 매칭되는 모든 후보와 함게 점수를 보여준다.
어떤 폴더들이 등록되어 있는지 확인하고 싶을 때 유용하다.
zoxide는 어떤 기준으로 선택할까?
zoxide는 단순히 최근 방문한 폴더만 기억하는 것이 아니다.
방문 횟수(Frequency)와 최근 방문 기록(Recency)을 함께 고려하는 Frecency 알고리즘을 사용한다.
쉽게 말하면:
- 자주 방문할수록 우선순위가 높아진다.
- 최근에 방문할수록 우선순위가 높아진다.
- 오랫동안 방문하지 않으면 우선순위가 낮아진다.
예를 들어 다음 두 폴더가 있다고 가정해보자.
/volume1/docker/immich
/volume1/projects/immich-theme최근 몇 달 동안 대부분 Docker 프로젝트 폴더를 방문했다면:
z immich는 높은 확률로 다음 경로를 선택한다.
/volume1/docker/immich현재 기억 중인 전체 경로 확인하기
현재 zoxide가 기억하고 있는 전체 경로 목록을 확인하려면 다음 명령어를 사용한다.
(s는 스코어를 의미하는것으로 -l만 사용해도 되지만 참고)
zoxide query -ls예시:
/volume1/docker/ghost
/volume1/docker/immich
/volume1/docker/planner
/volume1/docker/wallos어떤 폴더들이 학습되어 있는지 확인할 때 유용하다.
내가 원하는 폴더가 선택되지 않는다면?
zoxide는 방문 횟수와 최근 방문 기록을 기반으로 자동으로 우선순위를 결정한다.
하지만 가끔은 내가 원하는 폴더가 아닌 다른 경로를 선택하는 경우도 있다.
예를 들어 다음과 같은 경로가 있다고 가정해보자.
/volume1/docker/immich
/volume1/projects/immich-theme현재는 다음 명령어가:
z immich/volume1/docker/immich 로 이동하고 있지만,
실제로는 /volume1/projects/immich-theme 를 더 자주 사용하고 싶을 수도 있다.
이럴 때는 해당 경로를 직접 방문해도 되지만, zoxide add 명령어를 이용해 점수를 올릴 수도 있다.
zoxide add /volume1/projects/immich-theme이 명령어를 실행하면 zoxide는 해당 폴더를 방문한 것처럼 기록한다.
즉, 내가 원하는 폴더의 우선순위를 수동으로 높이는 용도로 사용할 수 있다.
반대로 더 이상 사용하지 않는 경로나 잘못 등록된 경로는 제거할 수 있다.
zoxide remove /volume1/projects/immich-theme대부분의 경우에는 자동 학습만으로도 충분하지만, 비슷한 이름의 폴더가 많거나 특정 경로를 우선 사용하고 싶을 때는 add 명령어가 꽤 유용하다.
마치며
SSH Alias와 SSH Key를 설정하면 다음 한 줄로 NAS에 접속할 수 있다.
ssh nas하지만 접속 이후에도 원하는 폴더를 찾기 위해 여러 번 cd와 ls를 반복해야 했었다.
zoxide를 설치하고난 지금은 대부분 다음 한 줄이면 끝난다.
z immichzoxide는 단순히 경로 입력을 줄여주는 도구가 아니라, 폴더 위치를 기억하지 않아도 된다는 점에서 NAS를 자주 사용하는 사람에게는 체감 만족도가 상당히 높은 설정 중 하나라고 생각한다.
0 Comments
댓글은 로그인한 회원만 작성할 수 있습니다.
로그인하러 가기첫 댓글을 남겨보세요.