저는 여행을 많이 다니는 기술자이고 홈 서버에 항상 안정적으로 연결되어 있지는 않습니다. 나는 일부 컴퓨터에서 zsh와 bash 사이를 전환하는 경향이 있습니다.
쉘 간 쉘 별칭 및 변수 표준화에 대한 제안이나 권장 사항이 있습니까?
답변1
기본적인 것은 도트 파일을 버전 제어에 두는 것입니다. 새 기계를 사용할 때 확인하십시오.
cd
git clone https://github.com/saterhater/home.git
컴퓨터에 버전 제어 도구가 없으면 최소한 읽기 전용 버전을 다운로드해야 할 수도 있습니다. Github는 이 프로세스를 자동화합니다. 이러한 기능을 제공하지 않는 다른 호스트를 사용하는 경우 zip 파일 생성을 커밋 후크로 사용하세요.
cd
wget -O - https://github.com/saterhater/home/archive/master.zip | unzip -
파일의 내용에 관해서는 분명히 이식 가능한지 확인해야 합니다. 마법의 비밀은 없고 단지 몇 가지 트릭만 있을 뿐입니다.
- 사용 중인 쉘뿐만 아니라 이전 버전의 쉘에서 파일을 테스트하십시오. 난 항상이전 Debian 버전을 사용하는 Chroot다양한 버전의 다양한 소프트웨어를 얻으세요(개인 구성은 원칙적으로 bash 1.14 및 zsh 2.5에서 작동해야 하지만 몇 년 동안 그렇게 오래된 버전을 사용하지 않았습니다).
- 일반적이지 않은 종속성에 의존하는 경우 VCS에 체크인하거나 일부 자동화를 작성하여 다운로드하세요.
- 일부 기능이 있을 때 사용하고 싶지만 없을 때 대체할 수 있는 경우 버전 번호 대신 기능을 테스트하세요. 더 강력합니다(예: 일부 시스템에는 야간 빌드가 있을 수 있음).
bash와 zsh 간에는 주로 별칭과 일부 기능을 공유할 수 있습니다. 키 바인딩 및 프롬프트 설정은 공유할 수 없습니다. Bash 완성은 이전 버전이 아닌 zsh에서 사용할 수 있습니다. zsh가 수행 하지 않는 자동 분할 및 따옴표가 없는 변수를 활용하는 일부 코드가 있는 경우 emulate -L ksh
쉘이 zsh가 아닌 경우 zsh가 함수 실행 중에 ksh 호환 모드로 전환되도록 실행할 수 있습니다. emulate
변수가 존재하는지 테스트할 수 있습니다).:
ZSH_VERSION