it-swarm-ko.tech

zsh와 비교 한 bash의 고유 기능

나는 꽤 오랫동안 (shsh 이전과 csh 이전) zsh 사용자였습니다. 나는 그것에 매우 만족하지만 zsh에 존재하지 않는 강력한 bash 기능이 있는지 궁금합니다. 반대로 bash에는 존재하지 않는 zsh 기능이 있습니까? 내 현재 느낌은 배쉬가 더 낫다는 것입니다.

  • 이미 익숙하고 새로운 구문을 배우고 싶지 않다면.
  • 기본적으로 대부분의 모든 * nix 시스템에 존재하지만 zsh는 추가 설치 일 수 있습니다.

여기서 종교적 전투를 시작하지 않기 때문에 쉘 중 하나에 만 존재하는 기능을 찾고 있습니다.

67
Tim

zsh는 벌 칸용입니다. ;-)

진지하게 : bash 4.0에는 이전에 zsh에서만 발견 된 몇 가지 기능이 있습니다.

% ls /usr/src/**/Makefile

다음과 같습니다.

% find /usr/src -name "Makefile"

그러나 분명히 더 강력합니다.

내 경험상 bash의 프로그래밍 가능 완료는 적어도 일부 경우 (예 : 적성을 위해 데비안 패키지 완성)보다 zsh보다 약간 우수합니다.

bash는 Alt + .을 (를) 삽입하려면 !$

zsh has expansion of all variables, so you can use e.g.

% rm !$<Tab>
</ code>

이를 위해. zsh는 또한 백틱에서 명령을 확장 할 수 있으므로

% cat `echo blubb | sed 's/u/a/'`<Tab>

수확량

% cat blabb

rm *, 제거 할 대상을 볼 수 있으며 명령에서 하나 또는 두 개의 파일을 제거하여 삭제되지 않도록 할 수 있습니다.

또한 니스 : stdin에서 읽지 않지만 파일 이름을 기대하는 다른 명령에 대한 명령 출력을 사용합니다.

% diff <(sort foo) <(sort bar)

내가 읽은 것에서 bash-completion은 ssh-agent를 사용하는 경우 ssh를 통한 원격 파일 이름 완성을 지원합니다. 이는 zsh로 전환 해야하는 좋은 이유였습니다.

Zsh의 별명은 처음이 아닌 전체 행에서 작동하도록 정의 할 수 있습니다.

별명 % -g ... = "../ .."
 % cd ... 
40
0x89

Bash는 FreeBSD, OpenBSD 또는 NetBSD에 기본적으로 설치되어 있지 않으며, Solaris 10 (OpenSolaris에 기본값이 있음), AIX를 마지막으로 사용했을 때에도 기본적으로 설치되지 않습니다. 또는 HP-UX 서버는 기본적으로 설치되지 않았습니다.

또한 OpenSolaris에서/bin/sh는 bash가 아닙니다. ksh입니다. 소프트웨어 포터로서 가장 큰 문제는/bin/sh가 bash이고 bash 확장 구문을 허용하는 사람들입니다. 이것은 대부분의 Linux 배포판에서 해당되는 것처럼 보이지만 다른 곳에서는 그렇지 않으며 실제로 성가시다.

16
X-Istence

나는 bash 사용자이지만 zsh의 기능 중 하나 인 RPS1이 매우 멋지다는 것을 알았습니다.

생각해 내다:

  • PS1 : 왼쪽 정렬 프롬프트
  • RPS1 : 올바른 정렬 프롬프트

견본:

같은 것을 사용할 때

PS1=’%B(%h) %m%#%b ‘
RPS1=’(%20<…<%~)'

프롬프트가 왼쪽에 표시되고 현재 디렉토리가 오른쪽으로 푸시됩니다. 현재 라인이 너무 길어지면 사라집니다! zsh가 RPS1에 낮은 우선 순위를 부여 할만큼 똑똑하기 때문입니다.

이 예제의 스크린 샷은 http://imgur.com/OAZhC 에서 볼 수 있습니다.

12
Chucky

Zsh에는 맞춤법이 수정되었습니다. 당신이 편지 (또는 그 이상)라면, 그것은 당신이 의미하는 것을 알아낼 것입니다.

또한 더 강력한 탭 완성 기능이 있습니다.

Zsh에는 대화식 구성 유틸리티가있어 원하는 방식으로 설정할 수 있습니다.

일부 속도 테스트는 zsh가 더 빠르다고 말하지만 차이점은 없습니다.

9
Magus

Zsh가 지원하지 않는 bash 기능을 모르겠습니다. zsh의 디자인 목표는 bash가 추가하는 모든 기능을 지원하는 것으로 보입니다.

나는 여전히 zsh 대신 bash를 사용합니다. zsh가 bash가 지원하지 않는 강력한 기능은 거의 없습니다. 수년간 zsh에 문제가 있거나 특정 sysetms에 존재하지 않는 zsh 문제로 인해 전환 할 가치가 없습니다.

마지막으로 모든 유닉스 시스템에서 동일한 쉘을 사용할 수 있습니다. 절대 사용하지 않을 기능에 대해서는 이것을 깨울 가치가 없습니다.

Bash에없는 zsh에있는 기능은 대부분 귀엽지 만 일상적으로 중요한 기능은 아닙니다.

6
carlito

bash에는 zsh에만 있었던 많은 기능이 있습니다. 최근 우분투 사용자가 발견 한 것처럼 bash를 사용하여 '스마트 탭 완성'을 할 수 있습니다.

3
Rory

프로세스 대체와 확장 글 로빙은 내가 가장 놓치게 될 두 가지 기능입니다. 프롬프트 설정도 꽤 멋지다-명령 줄에 복잡한 문장을 입력 할 때 중첩 수준을 볼 수 있습니다. 자동 로딩은 모든 쉘에 많은 기능을 포함시킬 수 있습니다.

1
tdavies

Vi 모드 지원으로 인해 zsh의 팬이지만 널리 사용되지 않는다는 것을 알게되었습니다. zsh가 다른 쉘에서 인기있는 기능을 가져 와서 결합하는 것을 좋아한다고 생각합니다 (따라서 bash 및 csh 관련 항목은 모두 zsh에서 사용할 수 있습니다).

누군가는 zsh를 사용하여 괴짜 요소를 조정하고 있다고 말했지만 그 소문을 확인하거나 거부 할 수는 없습니다.

0
Milner