code 명령: PATH에 없을 때 등록하는 두 가지 방법
터미널에서 VS Code로 뭔가를 열려고 code .을 쳤는데 command not found: code가 떴습니다. VS Code는 이미 깔려 있었습니다. /Applications/Visual Studio Code.app에 앱 자체는 멀쩡히 있었고, 문제는 그 앱을 실행하는 code 명령이 PATH 어디에도 없다는 것이었습니다.
VS Code는 앱을 /Applications에 넣는다고 해서 code 명령까지 저절로 PATH에 들어오지 않습니다. which code로 확인해서 못 찾으면 앱은 있는데 명령만 없는 상태라고 보면 됩니다.
고치는 두 가지 방법
첫 번째는 VS Code 안에서 하는 방법입니다. ⌘⇧P로 명령 팔레트를 열고 Shell Command: Install 'code' command in PATH를 찾아 실행합니다(한국어 UI에서는 셸 명령: PATH에 'code' 명령 설치). 이 명령이 /usr/local/bin/code에 심볼릭 링크를 만들어 줍니다.
두 번째는 관리자 권한 없이 ~/.zshrc에 한 줄을 추가하는 방법입니다.
export PATH="$PATH:/Applications/Visual Studio Code.app/Contents/Resources/app/bin"추가한 뒤 source ~/.zshrc로 지금 셸에 바로 반영합니다. 새 터미널을 열 때마다 자동으로 적용되니 한 번만 해두면 됩니다.
자주 쓰는 형태
| 명령 | 동작 |
|---|---|
code . |
현재 폴더를 새 창으로 연다 |
code 파일 |
파일 하나를 연다 |
code -r . |
지금 열려 있는 창에서 연다 |
code -n . |
항상 새 창을 연다 |
code -d a b |
두 파일을 비교한다 |
code -w 파일 |
편집기를 닫을 때까지 터미널이 기다린다 |
-w는 편집기가 닫힐 때까지 호출한 쪽이 멈춰 있어야 하는 경우, 예를 들어 git이 커밋 메시지 편집기를 열어 두고 기다려야 하는 상황에 씁니다.
비밀값을 다룰 때도 이 명령을 씁니다
Claude Code 세션에서 API 키 같은 비밀값을 받을 때가 그렇습니다. 채팅창에 붙여넣게 하면 값이 대화 기록에 영구히 남으니, scratchpad에 빈 템플릿 파일 하나를 만들어 두고 ! code 경로로 편집기를 열어 그 안에 붙여넣게 합니다. !는 Claude Code 프롬프트에서 셸 명령을 실행하는 접두어입니다. 파일에 값을 저장한 뒤에는 원문 대신 마스킹한 형태로만 확인하고, 다 쓰면 파일을 지웁니다.
함께 읽기
- 새 맥북 개발 환경 세팅: git clone이 가져오지 않는 것들맥북을 새로 받고 하던 프로젝트를 이어서 하려 했습니다. 리포를 클론하고 npm install 을 돌린 다음 개발 서버를 띄웠는데, 브라우저에 이게 떴습니다.
- xcode-select와 DEVELOPER_DIR: 어느 쪽이 정석일까?Expo 앱을 iOS 시뮬레이터에 띄우려고 도구부터 점검했는데, 결과가 앞뒤가 안 맞았습니다.
- git worktree로 여러 브랜치를 동시에 작업하는 방법개발 중에는 현재 작업을 유지한 채 다른 브랜치에서 긴급 수정이나 리뷰를 해야 할 때가 있습니다. 이때 매번 stash를 하거나 브랜치를 바꾸면 작업 흐름이 끊깁니다. git worktree는 이런 상황에서 매우 유용한 도구입니다.
- cmux와 Orca 비교: 터미널을 늘릴 것인가, 시도를 늘릴 것인가두 앱의 소개 문구는 거의 같습니다. 코딩 에이전트를 여러 개 동시에 돌린다는 것입니다. 그런데 cmux는 Swift와 AppKit으로 짠 macOS 전용 앱이고, Orca는 Electron으로 짜서 Windows와 Linux, 심지어 휴대폰까지 갑니다. 라이선스도 GPL-3.0과 MIT로 갈립니다.
- colima 자동 기동: brew services가 10초마다 재실행되는 이유개발기에 도커를 새로 깔 일이 생겼습니다. 컨테이너 하나만 돌리면 되는 일이라 가볍게 끝날 줄 알았는데, 설치 자체는 5분이었고 그 뒤에 두 가지를 더 고쳐야 했습니다. 하나는 깃 저장소가 더러워진 것이고, 하나는 코어 하나의 2.8%가 계속 타고 있던 것입니다.