셸 히스토리를 분석하여 자주 사용하는 명령어에 대한 유용한 별칭(alias)을 자동으로 제안하는 스마트 명령행 도구입니다.
Alias Manager는 셸 히스토리 파일들(.bash_history, .zsh_history 등)을 스캔하여 자주 사용되거나 길고 복잡한 명령어들을 찾아내어 더 짧은 별칭으로 만들 수 있도록 도와줍니다. 지능적으로 별칭 이름을 제안하고 셸 설정 파일에 자동으로 추가할 수 있습니다.
- 다중 셸 지원: Bash, Zsh, Fish 및 기타 인기 셸 지원
- 스마트 분석: 명령어 빈도, 길이, 복잡도 분석
- 대화형 모드: 적용 전 제안된 별칭 검토 및 커스터마이징
- 안전한 백업: 설정 파일 자동 백업
- 충돌 감지: 기존 별칭과의 충돌 방지
- 사용량 추적: 별칭 사용량 추적으로 최적화 지원
# 설치
go install github.com/hooneun/alias-manager@latest
# 분석 및 별칭 제안
alias-manager analyze
# 대화형 모드
alias-manager suggest --interactive
# 자동으로 제안 적용
alias-manager apply --auto-
프로젝트 설정
- Go 모듈 초기화
- cobra를 사용한 기본 CLI 구조 설정
- 프로젝트 디렉토리 구조 생성
- 테스트 프레임워크 설정
-
히스토리 파서
- bash 히스토리 파서 구현
- zsh 히스토리 파서 구현
- 다양한 히스토리 형식 지원
- 히스토리 파일 인코딩 문제 처리
-
명령어 분석
- 빈도 분석 알고리즘
- 명령어 길이 점수 계산
- 복잡도 점수 계산 (파이프, 플래그 등)
- 유사한 명령어 패턴 인식
-
별칭 생성
- 스마트 별칭 이름 생성
- 기존 별칭과의 충돌 감지
- 별칭 유효성 검사 및 정제
-
셸 감지
- 현재 셸 타입 감지
- 셸 설정 파일 위치 찾기
- 다중 셸 프로필 지원
-
파일 작업
- 안전한 설정 파일 백업
- 적절한 형식으로 별칭 삽입
- 롤백 기능
-
CLI 명령어
-
analyze- 분석 결과 표시 -
suggest- 별칭 제안 생성 -
apply- 설정 파일에 별칭 적용 -
rollback- 최근 변경사항 되돌리기 -
stats- 사용 통계 표시
-
-
대화형 모드
- 제안 검토를 위한 명령행 인터페이스
- 별칭 이름 커스터마이징
- 일괄 승인/거부
- 별칭 세트 내보내기/가져오기
alias-manager/
├── cmd/ # CLI 명령어
│ ├── root.go
│ ├── analyze.go
│ ├── suggest.go
│ └── apply.go
├── internal/
│ ├── analyzer/ # 명령어 분석 로직
│ ├── parser/ # 히스토리 파일 파서
│ ├── generator/ # 별칭 생성
│ ├── shell/ # 셸별 작업
│ └── config/ # 설정 관리
├── pkg/
│ └── types/ # 공유 타입 및 인터페이스
├── test/ # 테스트 파일 및 픽스처
└── docs/ # 문서
- 단위 테스트: 각 패키지에 대한 포괄적인 테스트 커버리지
- 통합 테스트: 엔드투엔드 워크플로 테스트
- 테스트 픽스처: 다양한 셸의 샘플 히스토리 파일
- 성능 테스트: 대용량 히스토리 파일 처리
분석 결과:
================
별칭 후보 순위:
1. docker ps -a" (23회 사용)
제안 별칭: dps
2. kubectl get pods -n production (18회 사용)
제안 별칭: kgp
3. git log --oneline --graph --decorate --all (15회 사용)
제안 별칭: glog
4. find . -name "*.go" -type f | xargs grep -l (12회 사용)
제안 별칭: findgo
MIT 라이선스 - 자세한 내용은 LICENSE 파일을 참조하세요.