삶을 더 편하게 만드는 셸 트릭 (정신 건강도 지켜주는 방법)
4 hours ago
1
- 다양한 키보드 단축키와 명령 조합을 활용해 셸 환경에서 작업 속도와 효율을 높이는 방법 정리
-
CTRL + W, U, K, Y 등 기본 단축키로 줄 편집, CTRL + A/E, ALT + B/F로 커서 이동, reset으로 터미널 복구 가능
- Bash와 Zsh에서는 CTRL + R로 명령 히스토리 검색, !!·!$·ESC+. 등으로 이전 명령 재활용, Brace Expansion과 Globstar로 반복 작업 자동화
-
Process Substitution, tee, bg/disown 등 고급 기능으로 프로세스 제어와 로그 관리 효율화
- 셸을 도구 상자처럼 익숙하게 다루면 생산성과 집중력을 높일 수 있으며, 단축키를 하나씩 습관화하는 것이 핵심임
거의 모든 셸에서 작동하는 기본 단축키와 기능
-
CTRL + W, U, K, Y조합은 커서 기준으로 단어 또는 줄의 앞뒤를 빠르게 삭제하거나 복원하는라인 편집 단축키
-
CTRL + W는 커서 앞의 단어 삭제
-
CTRL + U는 커서부터 줄의 시작까지 잘라내기, CTRL + Y로 다시 붙여넣기 가능
-
CTRL + K는 커서부터 줄 끝까지 잘라내기
-
CTRL + A / E는 줄의 처음과 끝으로 이동, ALT + B / F는 단어 단위로 앞뒤 이동
- 대부분의 터미널에서 기본 활성화되어 있으며, Mac에서는 Option 키를 Meta로 설정해야 작동
-
reset 또는 stty sane 명령은 바이너리 파일을 잘못 출력해 터미널이 깨졌을 때 복구
- 화면이 깨져도 입력은 가능하므로 reset 입력 후 엔터로 복원
-
CTRL + C / D는 각각 명령 중단과 EOF(파일 끝) 신호 전송
-
CTRL + D는 빈 프롬프트에서 누르면 셸 종료
-
CTRL + L은 clear 명령과 동일하게 화면을 즉시 정리
- 현재 입력 중인 명령을 유지한 채 프롬프트를 화면 상단으로 이동
-
cd - 는 이전 디렉터리로 즉시 이동, pushd / popd는 디렉터리 스택을 이용해 여러 위치를 오가며 작업 가능
-
> file.txt는 파일을 비우되 삭제하지 않아 권한과 소유권을 유지
-
$_ 변수는 이전 명령의 마지막 인자를 재사용
- 예: mkdir -p /path/newdir && cd "$_"
-
set -e, set -u는 스크립트 안전성을 높이는 옵션
-
set -e는 오류 발생 시 즉시 종료
-
set -u는 정의되지 않은 변수를 참조할 경우 오류 처리
-
set -euo pipefail 조합은 보다 강력한 보호 기능 제공
Bash와 Zsh에서의 고급 단축키 및 기능
-
CTRL + R은 명령어 히스토리에서 역방향 증분 검색 수행
- 키워드 입력 시 과거 명령을 즉시 찾아 재사용 가능
-
!! 는 이전 명령 전체를 재실행
-
sudo !!로 직전 명령을 관리자 권한으로 재실행 가능
-
CTRL + X, CTRL + E는 현재 입력 중인 명령을 기본 편집기(Vim, Nano 등) 에서 열어 수정 후 실행
- Zsh에서는 별도 설정 필요
-
fc 명령은 이전 명령을 $EDITOR로 열어 수정하는 전통적 방식
-
ESC + . 또는 ALT + . 은 직전 명령의 마지막 인자를 커서 위치에 삽입
- 반복 입력 시 더 이전 명령의 인자까지 순환
-
!$ 는 같은 기능을 비대화식으로 수행
-
Brace Expansion은 반복 입력을 줄이는중괄호 확장 기능
-
cp pf.conf{,.bak} → cp pf.conf pf.conf.bak
-
mv filename.{txt,md} → mv filename.txt filename.md
-
mkdir -p project/{src,tests,docs}로 여러 디렉터리 생성
-
Process Substitution <(command)은 명령 출력을 파일처럼 다룸
- 예: diff <(sort file1.txt) <(sort file2.txt)로 임시 파일 없이 비교
- **Globstar(**)**는 하위 디렉터리까지 재귀적으로 파일 탐색
- Bash에서는 shopt -s globstar로 활성화, Zsh에서는 기본 활성화
- 예: ls **/*.js로 모든 하위 폴더의 JS 파일 탐색
-
CTRL + Z**,** bg**,** disown조합은 프로세스를백그라운드 실행 및 셸 분리
-
CTRL + Z로 일시 중단 → bg로 백그라운드 실행 → disown으로 셸과 분리
- SSH 종료 후에도 프로세스 유지 가능
-
command |& tee file.log는 표준 출력(stdout) 과 표준 오류(stderr) 를 동시에 파이프로 전달
-
|&는 2>&1 |의 축약형
-
tee를 사용해 화면 출력과 로그 저장을 동시에 수행
셸 활용의 핵심 조언
- 셸은 도구 상자이며, 익숙하게 다루면 생산성을 크게 높일 수 있음
- 모든 단축키를 한 번에 익히기보다 하나씩 습관화하는 것이 효과적
- 반복적인 입력과 불필요한 타이핑을 줄여 작업 흐름을 단순화할 수 있음
- 익숙해지면 터미널은 더 이상 장애물이 아니라 자신의 작업 공간이 됨
-
Homepage
-
개발자
- 삶을 더 편하게 만드는 셸 트릭 (정신 건강도 지켜주는 방법)