Skip to content

Zsh 초기 μ„€μ • κ°€μ΄λ“œ

zshλ₯Ό 처음 μ‹€ν–‰ν•  λ•Œ λ‚˜νƒ€λ‚˜λŠ” μ„€μ • λ§ˆλ²•μ‚¬ (zsh-newuser-install) μ™„λ²½ κ°€μ΄λ“œμž…λ‹ˆλ‹€.

πŸ“‹ μ„€μ • μˆœμ„œ κ°œμš”

메인 메뉴
β”œβ”€β”€ (1) νžˆμŠ€ν† λ¦¬ μ„€μ • βœ… ꢌμž₯
β”œβ”€β”€ (2) μžλ™μ™„μ„± μ‹œμŠ€ν…œ βœ… ꢌμž₯  
β”œβ”€β”€ (3) ν‚€ 바인딩 μ„€μ • βœ… ꢌμž₯
β”œβ”€β”€ (4) μ…Έ μ˜΅μ…˜ μ„€μ • βœ… ꢌμž₯
└── (0) μ„€μ • μ €μž₯ 및 μ™„λ£Œ

1️⃣ νžˆμŠ€ν† λ¦¬ μ„€μ • (History Configuration)

μ§„ν–‰ κ³Όμ •

  1. 메인 λ©”λ‰΄μ—μ„œ 1 선택
  2. κΈ°λ³Έ μ„€μ • 확인 ν›„ 0 μ„ νƒν•˜μ—¬ 메인 λ©”λ‰΄λ‘œ 볡귀

κΈ°λ³Έ μ„€μ •κ°’ (ꢌμž₯)

HISTSIZE=1000        # μ…Έ λ©”λͺ¨λ¦¬μ— μ €μž₯ν•  λͺ…λ Ήμ–΄ 수
HISTFILE=~/.histfile  # νžˆμŠ€ν† λ¦¬ 파일 μœ„μΉ˜
SAVEHIST=1000        # νŒŒμΌμ— μ €μž₯ν•  λͺ…λ Ήμ–΄ 수

의미

  • HISTSIZE: ν˜„μž¬ μ„Έμ…˜μ—μ„œ κΈ°μ–΅ν•  λͺ…λ Ήμ–΄ 개수
  • HISTFILE: λͺ…λ Ήμ–΄ 기둝을 μ €μž₯ν•  파일
  • SAVEHIST: νŒŒμΌμ— 영ꡬ μ €μž₯ν•  λͺ…λ Ήμ–΄ 개수

2️⃣ μžλ™μ™„μ„± μ‹œμŠ€ν…œ (Completion System)

μ§„ν–‰ κ³Όμ •

  1. 메인 λ©”λ‰΄μ—μ„œ 2 선택
  2. 1 선택 (κΈ°λ³Έ μ˜΅μ…˜μœΌλ‘œ ν™œμ„±ν™”)

κΈ°λŠ₯

  • TAB ν‚€λ‘œ λͺ…λ Ήμ–΄, 파일λͺ…, μ˜΅μ…˜ μžλ™μ™„μ„±
  • 맀우 κ°•λ ₯ν•œ μ»¨ν…μŠ€νŠΈ 인식 μ™„μ„± κΈ°λŠ₯

μ˜ˆμ‹œ

cd Do<TAB>        # β†’ Documents/
git che<TAB>      # β†’ checkout
npm in<TAB>       # β†’ install
ssh user@<TAB>    # β†’ μ•Œλ €μ§„ 호슀트 λͺ©λ‘

3️⃣ ν‚€ 바인딩 μ„€μ • (Key Bindings)

μ§„ν–‰ κ³Όμ •

  1. 메인 λ©”λ‰΄μ—μ„œ 3 선택
  2. 0 선택 (Emacs μŠ€νƒ€μΌ μœ μ§€ - ꢌμž₯)

Emacs μŠ€νƒ€μΌ μ£Όμš” 단좕킀

단좕킀 κΈ°λŠ₯
Ctrl+A μ€„μ˜ 맨 μ•žμœΌλ‘œ 이동
Ctrl+E μ€„μ˜ 맨 λ’€λ‘œ 이동
Ctrl+U μ»€μ„œλΆ€ν„° 쀄 μ‹œμž‘κΉŒμ§€ μ‚­μ œ
Ctrl+K μ»€μ„œλΆ€ν„° 쀄 λκΉŒμ§€ μ‚­μ œ
Ctrl+W 단어 μ‚­μ œ
Ctrl+L ν™”λ©΄ 정리

선택 κΈ°μ€€

  • Emacs μŠ€νƒ€μΌ: 일반 μ‚¬μš©μž ꢌμž₯ (직관적)
  • Vi μŠ€νƒ€μΌ: vim/vi 에디터에 맀우 μ΅μˆ™ν•œ 경우

4️⃣ μ…Έ μ˜΅μ…˜ μ„€μ • (Shell Options)

μ§„ν–‰ κ³Όμ •

  1. 메인 λ©”λ‰΄μ—μ„œ 4 선택
  2. 각 μ˜΅μ…˜μ„ μˆœμ„œλŒ€λ‘œ μ„€μ •

ꢌμž₯ μ„€μ •

βœ… autocd (1번) - 디렉토리 κ°„νŽΈ 이동

# 선택: (s) to set it (turn it on)

κΈ°λŠ₯: 디렉토리 μ΄λ¦„λ§Œ μž…λ ₯해도 cd 없이 이동

# κΈ°μ‘΄ 방식
cd /home/username/Documents

# autocd ν™œμ„±ν™” μ‹œ
/home/username/Documents  # λ°”λ‘œ 이동!

βœ… notify (5번) - λ°±κ·ΈλΌμš΄λ“œ μž‘μ—… μ•Œλ¦Ό

# 선택: (s) to set it (turn it on)

κΈ°λŠ₯: λ°±κ·ΈλΌμš΄λ“œ μž‘μ—… μ™„λ£Œ/μƒνƒœ λ³€κ²½ μ‹œ μ¦‰μ‹œ μ•Œλ¦Ό

⚠️ nomatch (3번) - νŒ¨ν„΄ 맀치 였λ₯˜ (선택적)

# 선택: (s) to set it (turn it on) - μ•ˆμ „μ„± μ„ ν˜Έ μ‹œ
# 선택: (u) to unset it (turn it off) - μœ μ—°μ„± μ„ ν˜Έ μ‹œ

κΈ°λŠ₯: μ™€μΌλ“œμΉ΄λ“œ νŒ¨ν„΄μ΄ λ§€μΉ˜λ˜μ§€ μ•Šμ„ λ•Œ 였λ₯˜ λ°œμƒ - μž₯점: μ˜€νƒ€λ‚˜ μ‹€μˆ˜ λ°©μ§€ - 단점: λ•Œλ‘œλŠ” 번거둜울 수 있음

❌ beep (4번) - 였λ₯˜ μ‹œ λΉ„ν”„μŒ (λΉ„κΆŒμž₯)

# 선택: (u) to unset it (turn it off)

이유: μ†ŒμŒμœΌλ‘œ μΈν•œ λΆˆνŽΈν•¨

❌ extendedglob (2번) - ν™•μž₯ κΈ€λ‘­ (κ³ κΈ‰ μ‚¬μš©μžλ§Œ)

# 선택: (n) neither - κΈ°λ³Έκ°’ μœ μ§€

이유: 일반 μ‚¬μš©μžμ—κ²ŒλŠ” λΆˆν•„μš”ν•œ λ³΅μž‘μ„±

μ„€μ • μ™„λ£Œ

λͺ¨λ“  μ˜΅μ…˜ μ„€μ • ν›„ 0 μ„ νƒν•˜μ—¬ 메인 λ©”λ‰΄λ‘œ 볡귀


5️⃣ μ΅œμ’… μ €μž₯ 및 μ™„λ£Œ

메인 λ©”λ‰΄μ—μ„œ μ΅œμ’… 확인

(1) Configure settings for history... (Unsaved changes.)
(2) Use the new completion system... (Unsaved changes.)  
(3) Configure how keys behave... (Unsaved changes.)
(4) Pick some of the more common shell options... (Unsaved changes.)
(0) Exit, saving the new settings.

μ €μž₯ 및 μ™„λ£Œ

0 μ„ νƒν•˜μ—¬ λͺ¨λ“  μ„€μ • μ €μž₯


🎯 μ΅œμ’… κ²°κ³Ό

μ„€μ • μ™„λ£Œ ν›„ ~/.zshrc 파일이 μƒμ„±λ˜λ©° λ‹€μŒ κΈ°λŠ₯듀이 ν™œμ„±ν™”λ©λ‹ˆλ‹€:

βœ… ν™œμ„±ν™”λœ κΈ°λŠ₯λ“€

  • νžˆμŠ€ν† λ¦¬ 관리: 1000개 λͺ…λ Ήμ–΄ 기둝
  • TAB μžλ™μ™„μ„±: κ°•λ ₯ν•œ μ»¨ν…μŠ€νŠΈ 인식 μ™„μ„±
  • Emacs 단좕킀: νŽΈλ¦¬ν•œ 라인 νŽΈμ§‘
  • autocd: 디렉토리 μ΄λ¦„λ§ŒμœΌλ‘œ 이동
  • notify: λ°±κ·ΈλΌμš΄λ“œ μž‘μ—… μ•Œλ¦Ό

πŸ”§ μΆ”ν›„ μ„€μ • λ³€κ²½ 방법

μ¦‰μ‹œ λ³€κ²½ (ν˜„μž¬ μ„Έμ…˜λ§Œ)

setopt autocd      # μ˜΅μ…˜ 켜기
unsetopt autocd    # μ˜΅μ…˜ 끄기
setopt | grep auto # ν˜„μž¬ μ„€μ • 확인

영ꡬ λ³€κ²½ (~/.zshrc μˆ˜μ •)

nano ~/.zshrc      # 파일 νŽΈμ§‘
source ~/.zshrc    # μ„€μ • λ‹€μ‹œ λ‘œλ“œ

μ„€μ • λ§ˆλ²•μ‚¬ μž¬μ‹€ν–‰

autoload -Uz zsh-newuser-install
zsh-newuser-install

πŸ“š μΆ”κ°€ 팁

μ„€μ • 확인

# ν˜„μž¬ ν™œμ„±ν™”λœ μ˜΅μ…˜λ“€ 확인
setopt

# νŠΉμ • μ˜΅μ…˜ 확인
setopt | grep -E "(autocd|notify|nomatch)"

# zsh 버전 확인
zsh --version

도움말

man zsh          # zsh 맀뉴얼
man zshoptions   # μ˜΅μ…˜ 상세 μ„€λͺ…
man zshcompsys   # μžλ™μ™„μ„± μ‹œμŠ€ν…œ μ„€λͺ…

이제 κ°•λ ₯ν•˜κ³  νŽΈλ¦¬ν•œ zsh ν™˜κ²½μ΄ μ€€λΉ„λ˜μ—ˆμŠ΅λ‹ˆλ‹€! πŸš€