Post

11. UX 향상을 위한 설정

11. UX 향상을 위한 설정

SSH 키 기반 인증 설정 (윈도우, VS Code)

목적: 원격 서버에 비밀번호 없이 안전하게 접속하기 위해 SSH 키 기반 인증 설정

1. 윈도우(클라이언트)에서 키 생성하기

  • 키 만들기 (ed25519 암호화 방식)
1
ssh-keygen -t ed25519 -C "windows-pc"
  • “Enter file in which to save…”: 그냥 Enter
  • “Enter passphrase…”: 그냥 Enter

2. 공개 키 복사하기

1
Get-Content ~\.ssh\id_ed25519.pub
  • 화면에 ssh-ed25519 AAAA... 로 시작하는 긴 문자열을 전체 복사(Ctrl+C)

3. 원격 서버(리눅스)에서 공개 키 등록하기

  • 서버 접속
1
2
mkdir -p ~/.ssh
echo "아까_복사한_내용_붙여넣기(Ctrl+V)" >> ~/.ssh/authorized_keys
  • echo 뒤에 따옴표(“)를 열고 붙여넣은 뒤 따옴표를 닫으면 됨
  • 권한 설정: 권한이 너무 열려 있으면 SSH가 보안상 키를 무시하므로, 아래 명령어를 실행해야 함
1
2
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

4. VS Code SSH Config 파일 수정

1
2
3
4
Host my-server
    HostName 192.168.0.100  (실제 서버 IP)
    User ubuntu             (서버 유저 ID)
    IdentityFile ~/.ssh/id_ed25519

Zsh (Z Shell) + Oh My Zsh

목적: 기본 bash 셸보다 향상된 기능과 사용자 경험 제공

1. Zsh 설치

1
2
sudo apt update
sudo apt install zsh -y

2. Oh My Zsh 설치

1
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
  • 기본 쉘을 Zsh로 바꾸고 싶다면 설치 중간에 기본 쉘을 zsh로 변경할지 묻는다면 ‘y’ 입력

3. 필수 플러그인 2개 설치

  • zsh-syntax-highlighting: 명령어 구문 강조
  • zsh-autosuggestions: 명령어 자동 완성
1
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
1
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

4. 설정 파일에 적용

1
nano ~/.zshrc
  • plugins=(git) 부분을 찾아서 다음과 같이 수정
1
plugins=(git zsh-syntax-highlighting zsh-autosuggestions)
  • 저장 후 종료 (Ctrl+X, Y, Enter)

fzf

목적: 명령어 라인에서 파일 및 디렉토리 탐색을 빠르게 하기 위해 fzf 설치

1. fzf 설치

1
2
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install
  • 설치 옵션: 모든 옵션에 대해 ‘y’ 입력
1
source ~/.zshrc

2. 사용법

  • 파일 탐색: Ctrl + T
  • 명령어 히스토리 검색: Ctrl + R

bat (cat 대체)

목적: 향상된 파일 내용 출력 기능 제공

1. bat 설치

1
2
sudo apt update
sudo apt install bat -y
  • 설치 확인: batcat --version 입력 후 버전 정보 출력되면 성공

2. Aliases 설정

1
2
3
4
5
6
7
8
nano ~/.zshrc

# 아래 내용 입력
alias cat='batcat'

# 저장 후 종료 (Ctrl+X, Y, Enter)
# 설정 적용
source ~/.zshrc

3. cat 작동 확인

1
cat ~/.zshrc

eza (ls 대체)

목적: 향상된 디렉토리 및 파일 목록 출력 기능 제공

1. eza 설치

1
2
3
4
5
6
7
8
9
10
11
12
sudo apt update
sudo apt install -y gpg

sudo mkdir -p /etc/apt/keyrings
wget -qO- https://raw.githubusercontent.com/eza-community/eza/main/deb.asc | sudo gpg --dearmor -o /etc/apt/keyrings/gierens.gpg

echo "deb [signed-by=/etc/apt/keyrings/gierens.gpg] http://deb.gierens.de stable main" | sudo tee /etc/apt/sources.list.d/gierens.list

sudo chmod 644 /etc/apt/keyrings/gierens.gpg /etc/apt/sources.list.d/gierens.list

sudo apt update
sudo apt install -y eza
  • 설치 확인: eza --version 입력 후 버전 정보 출력되면 성공

2. Font 설정

  • eza에서 아이콘을 제대로 표시하려면 Nerd Font 설치 필요
  • 원격으로 접속했다면 클라이언트 PC에 Nerd Font 설치 필요
  • Nerd Font 설치 및 터미널 폰트 설정 방법은 여기 참고
  • 아래는 Linux에서 Meslo Nerd Font 설치 예시
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 1. 폰트 저장할 폴더 생성
mkdir -p ~/.local/share/fonts

# 2. Meslo Nerd Font 다운로드 (가장 호환성 좋음)
cd ~/.local/share/fonts
wget https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/Meslo.zip

# 3. 압축 풀기 (unzip이 없다면 'sudo apt install unzip' 먼저 실행)
unzip -o Meslo.zip

# 4. 다운로드한 압축 파일 삭제 (청소)
rm Meslo.zip

# 5. 시스템에 폰트 캐시 갱신 (폰트 등록)
fc-cache -fv
  • VS Code
    • Ctrl + , (설정 열기)
    • 검색창에 terminal font 입력
    • Terminal > Integrated: Font Family 항목에 MesloLGS Nerd Font라고 입력

tmux

목적: 터미널 멀티플렉서로 여러 터미널 세션을 하나의 창에서 관리

1. tmux 설치

1
2
sudo apt update
sudo apt install tmux -y

2. 기본 개념

  • 세션(Session): tmux의 가장 상위 개념, 여러 창(Window)을 포함
  • 창(Window): 세션 내에서 여러 패널(Pane)을 포함
  • 패널(Pane): 창 내에서 실제 터미널이 실행되는 영역

3. 실전 명령어 & 단축키

  • 모든 단축키는 Ctrl + b를 먼저 누른 후 실행

세션 관리

  • 새 세션 생성: tmux new -s 세션이름
  • 세션 목록 보기: tmux ls
  • 최근 세션 접속: tmux attach
  • 세션에 접속: tmux attach -t 세션이름
  • 세션 강제 종료: tmux kill-session -t 세션이름

화면 분할

  • Prefix (Ctrl + b) 누른 후:
    • 수평 분할: %
    • 수직 분할: "
    • 현재 화면 닫기: x
    • 분할 화면 간 이동: 방향키

윈도우(탭) 관리

  • Prefix (Ctrl + b) 누른 후:
    • 새 창 생성: c
    • 창 간 이동: n (다음), p (이전)
    • 창 목록 보기: w
    • 현재 창 닫기: &

기타 필수 기능

  • Prefix (Ctrl + b) 누른 후:
    • 세션 유지한 채 나가기 (detach): d
    • 스크롤 모드 진입 (방향키로 이동, q로 종료): [

4. 마우스 설정

1
nano ~/.tmux.conf
1
set -g mouse on
  • 저장 후 종료 (Ctrl+X, Y, Enter)
1
2
3
# session이 없으면 에러가 나오는데, 무시해도 됨
# session 만들면 자동 적용됨
tmux source-file ~/.tmux.conf
  • 마우스로 창/패널 크기 조절 및 선택 가능

추천 Aliases 설정

목적: 자주 사용하는 명령어를 짧게 줄여서 입력하기 위해 Aliases 설정

1. 설정 파일 열기

1
nano ~/.zshrc

2. 자주 사용하는 Aliases 추가

1
2
3
4
5
6
7
8
9
# Aliases
alias cat='bat'
alias ls='eza --icons --git'
alias ll='eza -l --icons --git -a'
alias c='clear'
alias h='history'
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

3. 설정 적용

1
source ~/.zshrc

This post is licensed under CC BY 4.0 by the author.