--- title: atuin — 셸 히스토리 검색·동기화 date: 2026-01-19 time: 12:00 model: admin category: programs author_type: human summary: 셸 히스토리를 SQLite로 저장해 언제든 빠르게 검색하고, 원하면 기기 간 암호화 동기화까지 하는 도구 tags: 프로그램, 모던 CLI 도구, atuin --- **💬 "atuin 명령어"** atuin은 **셸 히스토리를 SQLite 데이터베이스로 대체하는 도구**입니다. 수천 줄짜리 평범한 히스토리 파일을 구조화해, 명령어·디렉터리·종료 코드·실행 시점까지 함께 저장하고 언제든 빠르게 검색할 수 있습니다. Rust로 만들어졌으며, 원하면 기기 간 히스토리를 종단간 암호화(E2E)로 동기화합니다. 기본 셸의 `Ctrl+R` 검색을 훨씬 강력한 인터랙티브 검색으로 바꿔줍니다. - **개념**: 셸 히스토리를 SQLite로 저장해 명령어·디렉터리·시점을 함께 구조화합니다. - **주요 기능**: 전체 히스토리 검색, 디렉터리·사용자별 필터, 통계, 기기 간 암호화 동기화를 제공합니다. - **장점**: `Ctrl+R` 한 번으로 과거 명령을 즉시 찾고, 같은 명령을 여러 서버에서 재사용할 수 있습니다. - **활용**: "그저께 그 서버에서 쓴 그 명령"을 기억할 때 사용합니다. ## 기본 사용법 atuin은 설치 후 셸에 통합하면, 기존 히스토리 검색 단축키를 그대로 사용하면서 더 강력한 검색을 얻습니다. ### 1. 가입·로그인 → 셸 통합 처음 실행하면 계정을 만들고 셸 설정 파일에 자동으로 통합해 줍니다. ``` atuin register --username 내아이디 --email me@example.com atuin login atuin import # 기존 히스토리를 가져옴 ``` ### 2. 검색 사용법 (Ctrl+R) 이제 평소처럼 `Ctrl+R`을 누르면 인터랙티브 검색 UI가 뜹니다. 화살표로 이동, Enter로 실행, Esc로 취소합니다. ``` # Ctrl+R 로 검색, 또는 아래처럼 명령으로 검색 atuin search "docker ps" atuin search --directory /var/log ``` ### 3. 통계·동기화 히스토리 규모를 확인하고 기기 간 동기화합니다. ``` atuin stats atuin sync # 서버와 동기화 atuin history list # 최근 히스토리 나열 ``` ## 설치 및 다운로드 atuin은 공식 설치 스크립트·cargo·패키지 매니저로 설치합니다. | 환경 | 명령 | | --- | --- | | 공식 원라이너 (Linux/macOS) | curl -LsSf https://atuin.sh/install.sh | sh | | cargo | cargo install atuin | | Ubuntu/Debian (패키지) | sudo apt install atuin | | macOS (Homebrew) | brew install atuin | 설치 확인은 `atuin --version`, 셸 통합은 `atuin init` 출력을 셸 rc 파일에 넣거나 가입 시 자동으로 추가됩니다. ## 자주 쓰는 명령 | 명령·키 | 설명 | | --- | --- | | atuin search "키워드" | 전체 히스토리에서 명령어를 검색합니다 | | atuin search --directory ~/proj | 특정 디렉터리에서 실행한 명령만 검색합니다 | | atuin stats | 가장 많이 쓴 명령·디렉터리 통계를 보여줍니다 | | atuin sync | 서버와 히스토리를 동기화합니다 | | atuin import | 기존 bash/zsh 히스토리를 가져옵니다 | ## 필수 명령어 조합 3가지 - `atuin search "git" | head` — 과거 git 명령을 모아 확인 - `atuin search --directory /etc` — 그 서버에서 /etc 아래에 입력한 명령 검색 - `atuin stats | head` — 내가 가장 자주 쓰는 명령 파악 **💬 "실제 서버에서 atuin을 사용하는 예시"** 실제 운영 서버에서 히스토리 검색이 필요한 상황을 순서대로 정리했습니다. ### 1단계 · 히스토리 가져오기 기존 히스토리를 atuin으로 옮깁니다. ``` atuin import && atuin stats ``` ### 2단계 · 잊어버린 명령 검색 몇 주 전 입력한 배포 명령을 찾습니다. ``` atuin search "deploy" ``` ### 3단계 · 특정 디렉터리 명령만 설정 파일을 만진 기록을 추적합니다. ``` atuin search --directory ~/workspace ``` ## 실무에서는 이렇게 씁니다 ### 1. 잊어버린 긴 명령 재사용 **상황** — 며칠 전 실행한 복잡한 rsync 명령을 찾습니다. ``` atuin search "rsync --delete" ``` **결과** — 과거 입력한 전체 rsync 명령과 실행 시점·결과가 함께 나옵니다. **포인트** — 복사해 바로 재실행하므로 오타·누락을 막습니다. ### 2. 서버별 히스토리 추적 **상황** — 특정 서버에서 무엇을 했는지 감사합니다. ``` atuin search --directory /var/www ``` **결과** — 그 경로에서 실행한 명령 목록이 시점과 함께 정리됩니다. **포인트** — 장애 원인 추적·작업 이력 정리에 활용합니다. ## 주의할 점 - 기기 간 동기화는 Atuin 서버 계정이 필요하며, 히스토리가 외부 서버에 저장됩니다(암호화되지만 공용 서버는 신중히 선택). - 동기화가 필요 없다면 로컬 SQLite만 사용해도 검색은 그대로 동작합니다. - 쉘 rc 파일(`~/.bashrc` 등)이 자동 수정되므로, 설정 버전 관리를 쓰면 커밋 대상에 포함합니다. --- 원문(HTML): https://games.cursorai.co.kr/programs/linux/modern/atuin.html