프롬프트 한 줄도 편집기야
셸은 입력한 명령을 곧바로 실행하기 전에 현재 줄을 편집할 수 있게 해. bash는 주로 GNU Readline을 사용하고 zsh는 ZLE라는 줄 편집기를 제공하지만, 기본 Emacs식 키 조합은 많이 겹쳐. 몇 개만 익혀도 긴 경로와 옵션을 화살표 키로 한 글자씩 고치는 시간을 크게 줄일 수 있어.
커서를 빠르게 옮겨
Ctrl+A: 줄 맨 앞으로 이동해.Ctrl+E: 줄 맨 뒤로 이동해.Alt+F/Alt+B: 단어 단위로 앞뒤 이동해.Ctrl+F/Ctrl+B: 글자 단위로 앞뒤 이동해.
터미널 앱이 Option 키를 특수 문자 입력으로 쓰면 Alt 조합이 전달되지 않을 수 있어. 그때는 터미널의 키 전송 설정을 확인해.
삭제한 텍스트도 다시 쓸 수 있어
Ctrl+W: 커서 앞의 단어를 지워.Ctrl+U: 커서 앞부분을 줄 시작까지 지워.Ctrl+K: 커서 뒤를 줄 끝까지 지워.Ctrl+Y: 방금 지운 텍스트를 붙여 넣어.Ctrl+T: 커서 주변의 두 글자를 바꿔.
지우기 조합은 삭제 내용을 kill ring에 보관하므로 같은 옵션을 다른 위치로 옮길 때도 쓸 수 있어.
명령 기록을 검색해 재사용해
Ctrl+R을 누르고 일부 문자열을 입력하면 이전 명령을 역방향으로 찾아. 다시 누르면 더 오래된 일치 항목으로 이동하고, 찾은 줄은 실행 전에 수정할 수 있어. !!은 직전 명령 전체, !$는 직전 명령의 마지막 인자를 확장하지만 실행될 내용을 확인하지 않고 쓰면 엉뚱한 대상에 명령을 반복할 수 있어. 중요한 변경 명령은 확장 결과를 먼저 눈으로 확인해.
프로세스 제어 키는 편집 키와 달라
Ctrl+C: 전경 프로세스에 인터럽트 신호를 보내.Ctrl+Z: 전경 작업을 일시 중지해.Ctrl+D: EOF를 보내며 빈 프롬프트에서는 셸을 종료할 수 있어.Ctrl+L: 화면을 다시 그려.
Ctrl+S로 출력이 멈췄다면 XOFF 흐름 제어일 수 있고 Ctrl+Q로 다시 풀 수 있어. 편집 중인 줄과 실행 중인 프로세스 중 어느 쪽에 키가 전달되는지 구분해야 해.
vi 모드는 선택 사항이야
bash의 set -o vi나 zsh의 bindkey -v로 vi식 편집을 켤 수 있어. Normal 모드의 이동과 삭제에 익숙하다면 긴 명령을 다루기 편하지만, 기본 키 조합과 모드 전환이 섞이면 오히려 혼란스러울 수 있어. 한 방식을 고른 뒤 자주 쓰는 조합을 실제 명령 한 줄에서 반복해 몸에 익혀.