C.W.K.
Stream
Lesson 05 of 10 · published

PATH 관리

~10 min · path, homebrew, ordering

Level 0창 구경꾼
0 XP0/95 lessons0/14 achievements
0/100 XP to next level100 XP to go0% complete

모든 command 를 결정하는 목록

$PATH 는 콜론 구분 디렉터리 목록. shell 이 왼쪽부터 걷고 실행파일 찾아. 새로 깔린 게 다 추가돼 — 순서 관리가 여러 Python / Node / brew 가 안 충돌하게 하는 핵심.

Append vs prepend

  • export PATH="$PATH:/new/dir" — append. 동명 시스템 도구가 없을 때만 새 도구 잡힘.
  • export PATH="/new/dir:$PATH" — prepend. 새 도구가 이김. Homebrew, pyenv, mise 가 원하는 형태.

Apple Silicon Homebrew 의 댄스

Apple Silicon Homebrew 는 /opt/homebrew/bin. ~/.zprofile 에:

eval "$(/opt/homebrew/bin/brew shellenv)"

한 줄이 PATH, MANPATH, INFOPATH, 몇 가지 brew 변수까지 atomic 하게 설정. 신선한 Mac 에서 공식 설치 스크립트가 이걸 자동으로 써줘.

Deduplicate

같은 파일 두 번 source 하면 항목이 반복될 수 있음. zsh 의 typeset -U path 선언이 자동 dedupe. 한 번 선언하면 PATH 추가 마다 unique 해.

점검

echo $PATH | tr ':' '\n'
echo $PATH | tr ':' '\n' | sort | uniq -d  # 중복?
type python3       # 누가 이김?

프로젝트별 PATH override

direnv (다음 다음 레슨) 가 프로젝트 로컬 .envrc 로 그 디렉터리에서만 자기 bin 을 PATH 앞에 끼워넣음. mise (modern-tools) 와 합치면 프로젝트마다 툴체인을 가져가도 글로벌 env 가 안 오염돼.

Code

권장 .zprofile 스니펫·zsh
# Apple Silicon Homebrew
eval "$(/opt/homebrew/bin/brew shellenv)"
# Auto-dedupe PATH and FPATH
typeset -U path fpath
# Per-user bin
path=("$HOME/.local/bin" "$HOME/bin" $path)

External links

Exercise

echo $PATH | tr ':' '\n' 로 읽기. echo $PATH | tr ':' '\n' | sort | uniq -d 로 중복 찾기. .zprofile 에 typeset -U path 추가, 새 터미널 열고 다시 dup 체크.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.