Claude와 함께 MIT Missing Semester 강의를 실습하며 정리한 내용입니다.
들어가며
이번 강의는 CLI 환경을 효율적으로 세팅하고 활용하는 방법을 다룬다.
핵심 개념
환경변수
쉘이 동작하는 데 필요한 설정값. 자식 프로세스에 상속된다.
$HOME- 홈 디렉토리$USER- 사용자명$PATH- 프로그램 검색 경로printenv- 전체 환경변수 목록export- 환경변수 설정 (자식 프로세스에도 전달)
쉘 설정 파일
쉘 시작 시 자동으로 읽는 파일:
- zsh →
~/.zshrc - bash →
~/.bashrc,~/.bash_profile
alias, 환경변수, 프롬프트 설정 등을 여기에 넣어두면 영구 적용.
시그널과 잡 컨트롤
프로세스에 보내는 신호:
| 단축키/명령어 | 시그널 | 의미 |
|---|---|---|
Ctrl-C | SIGINT | 중단 요청 |
Ctrl-Z | SIGTSTP | 일시정지 |
kill PID | SIGTERM | 종료 요청 |
kill -9 PID | SIGKILL | 강제 종료 (무시 불가) |
잡 컨트롤 흐름:
command & → 백그라운드 실행 → fg %1 → 포그라운드로 → Ctrl-Z → 일시정지 → bg %1 → 백그라운드로 다시 → kill %1 → 종료
jobs로 현재 잡 목록 확인, pgrep으로 이름으로 프로세스 찾기.
실무 예시: npm run dev &로 서버 띄워놓고 다른 작업하다가, fg로 가져와서 로그 확인.
tmux (터미널 멀티플렉서)
하나의 터미널에서 여러 화면을 분할해서 사용하는 도구.
좌측에 npm run dev, 우측에 git status, 하단에 파일 작업 — 이런 식으로 화면을 분할해서 쓸 수 있다.
킬러 기능은 세션 유지. 터미널을 닫거나 SSH가 끊겨도 세션이 살아있다.
tmux 구조: 세션 > 윈도우(탭) > 페인(분할 영역)
핵심 명령어 (prefix Ctrl-b는 누르고 손 떼고 다음 키를 누르는 두 단계 동작):
| 명령어 | 동작 |
|---|---|
tmux new -s name | 새 세션 |
tmux attach -t name | 세션 재접속 |
tmux ls | 세션 목록 |
Ctrl-b → % | 좌우 분할 |
Ctrl-b → " | 상하 분할 |
Ctrl-b → 방향키 | 페인 이동 |
Ctrl-b → c | 새 윈도우 |
Ctrl-b → n/p | 다음/이전 윈도우 |
Ctrl-b → d | 세션 분리 (detach) |
SSH
원격 서버에 안전하게 접속하는 프로토콜.
ssh <user>@<hostname> # 기본 접속
ssh-keygen -t ed25519 # 키 생성
ssh-copy-id <user>@<hostname> # 서버에 공개키 등록~/.ssh/config에 접속 정보 저장하면 ssh myserver만으로 접속 가능:
Host myserver
HostName xxx.xxx.x.xxx
User <username>
IdentityFile ~/.ssh/id_ed25519포트 포워딩, scp/rsync(파일 전송), mosh(불안정한 네트워크용 SSH) 등도 있다.
Alias
자주 쓰는 긴 명령어에 별칭 붙이기. ~/.zshrc에 넣으면 영구 적용.
alias ll='ls -la'
alias gs='git status'가장 많이 치는 명령어 확인:
history | awk '{print $2}' | sort | uniq -c | sort -rn | head -10Dotfiles
.으로 시작하는 설정 파일들의 총칭 (.zshrc, .gitconfig, .vimrc 등). Git으로 관리하면 머신 간 동기화 가능.
실습 기록
잡 컨트롤
sleep 100 &로 백그라운드 실행 → jobs로 확인 → fg/bg/kill로 제어하는 흐름을 실습.
tmux 블로그 개발 레이아웃
한 줄로 블로그 개발 환경 세팅:
tmux new-session -d -s blog -c ~/kimyeji \; \
send-keys 'npm run dev' C-m \; \
split-window -h -c ~/kimyeji \; \
send-keys 'git status' C-m \; \
split-window -v -c ~/kimyeji \; \
attach왼쪽 개발 서버 / 오른쪽 위 git / 오른쪽 아래 자유 작업.
Alias 등록
history 분석 결과 git이 압도적 1위. 블로그 관련 alias를 ~/.zshrc에 추가:
alias blog='cd ~/kimyeji && npm run dev'
alias gst='git status'
alias gl='git log --oneline -10'