GN⁺: 모든 명령을 Comma로 시작하세요 (2009)
(rhodesmill.org)사용자 정의 명령어 충돌 방지 방법
문제점
- 사용자 정의 쉘 스크립트와 시스템 명령어 간의 이름 충돌 가능성
- 특히 Debian과 같은 많은 명령어를 지원하는 시스템에서 충돌 가능성 증가
해결책
- 사용자 정의 명령어 앞에 쉼표(,)를 붙여서 시스템 명령어와 구분
- 쉼표는 파일 이름에서 특별한 의미가 없어서 안전하게 사용 가능
장점
- 쉼표를 사용하면 명령어 충돌 방지
- 탭 완성 기능을 통해 사용자 정의 명령어 목록을 쉽게 확인 가능
예시
$ ,«tab»
,complete-scp ,go-thpgp ,range
,complete-ssh ,gr ,svn-store-password
,coreoff ,hss ,umount
,coreon ,mount-thpgp ,find
,mount-twt
GN⁺의 의견
- 이 방법은 사용자 정의 명령어와 시스템 명령어 간의 충돌을 효과적으로 방지할 수 있음.
- 쉼표를 사용하는 것은 간단하면서도 강력한 해결책으로, 초급 엔지니어도 쉽게 적용 가능함.
- 이 기법은 특히 많은 명령어를 사용하는 시스템에서 유용함.
- 다른 방법으로는 명령어 앞에 특정 접두사를 붙이는 것도 고려할 수 있음.
- 이 방법을 사용하면 명령어 관리가 더 체계적이고 효율적으로 이루어질 수 있음.
Hacker News 의견
- "comma_nds"라는 이름이 재미있음. 좋은 아이디어라서 사용해볼 생각임.
- 처음에는 별로일 것 같았지만, 특히 탭을 사용해 도구 목록을 나열하는 부분이 마음에 듦. 최근 네임스페이스 충돌이 거의 없었음.
- 쉘 스크립트 이름이 짧고 간결해서 시스템 명령어와 충돌할 가능성이 있었음.
$PATH
의 앞에bin
디렉토리를 두면 문제 해결 가능함. - Vim에서도
,
키가 많이 사용됨. 비슷한 이유로 자주 사용됨. - 문제를 잘 이해하지 못했지만, 자신의 명령어를 자동완성하는 아이디어는 좋음.
- 짧은 커스텀 명령어를 사용함. 시스템 명령어와 충돌해도 상관없음. 충돌 시 다른 이름으로 별칭을 설정함.
- Windows에서 Python 스크립트를 쉽게 실행할 수 있지만, Linux에서는 어려움. Linux는 연관 프로그램 개념이 없어서 불편함.
- 충돌을 피하기 위해 긴 실행 파일 이름을 사용하고 짧은 별칭을 설정하는 방법이 있음. 단점은 탭 완성 기능이 불편함.
- 텍스트 확장기/텍스트 교체 커뮤니티에서도 쉼표로 시작하는 기술이 일반적임.
-
~/.local/bin
에 기억하지 못하는 실행 파일이 많았음. 쉼표로 시작하는 스크립트 이름이 기억을 돕는 데 유용했을 것임.