유닉스 쉘의 비교


9

주요 유닉스 쉘 (bash, ksh, tcsh, zsh 등) 중에서 서로를 사용해야하는 강력한 이유가 있습니까?

  • 가장 대화 형 / 명령 줄 친화적 인 것은 무엇입니까?
  • 스크립트 작성에 가장 도움이되고 직관적 인 것은 무엇입니까?
  • 하나의 쉘이 다른 쉘이 제공하지 않는 주요 내장 기능이 있습니까?
  • 이 쉘들 중 어떤 것이 어떤 유형의 기능에는 좋지만 다른 기능에는 적합하지 않습니까? 아니면 모두 다재다능하고 유연합니까?
  • 개인적인 취향의 문제 일까?

원하는 경우이 커뮤니티 위키를 만들 수 있습니다.

답변:


17

흐름:

  • bash— Bourne은 대부분의 Linux 배포에서 기본 쉘인 다시 쉘입니다. 괜찮은 기능;
  • zsh — 가장 기능이 풍부하지만 여전히 거의 사용되지 않습니다.
  • ksh — Solaris, AIX 및 기타 몇 가지 다른 유니스의 기본 쉘.
  • tcsh — 다양한 * BSD 플레이버 유니스의 기본 쉘;

역사적인:

  • sh— 원래 Bourne 쉘 (1977 년 출시). bash가 더 이상 사용하지 않습니다.
  • csh— 원본 C 쉘 (1978 년 출시). tcsh 및 ksh에서 사용되지 않습니다.

bash, ksh 및 zsh는 sh 구문에서 파생되는 반면 tcsh는 csh 구문에서 파생됩니다. 이것은 매우 다른 두 가지 구문입니다.

기능 차트 (wiki).


sh를 통해 스크립트를 실행하는 것이 일반적으로 bash보다 훨씬 빠르기 때문에 대부분의 스크립트는 일반적으로 sh 호환으로 작성됩니다.
Mikeage

어떻게한다는거야? Linux에서 / bin / sh는 / bin / bash에 symlink입니다.
vartec

2
/ 빈은 / SH 항상 / 빈 / bash는 심볼릭 링크 아니다
브래드 길버트

1
bash를 "sh"로 인스턴스화하면 bash 명령의 서브 세트를 지원하는 "sh"모드에서 실행됩니다. "sh"구문은 POSIX 표준이라고 생각합니다.
duffbeer703 2:08에

데비안에서는 '/ bin / sh'대신 'dash'를 사용할 수 있습니다.
drybjed

9

물고기 는 다른 것보다 아마도 더 흥미로운 새로운 껍질입니다. 왜냐하면 그것은 더 많은 기능을 가지고 있기 때문이 아니라 기본적으로 작동하기 때문이며 물고기는 유용성을 위해 노력하기 때문입니다.

몇 가지 스크린 샷 ( 1 , 2 , 3 , 4 )으로 일반적인 아이디어를 얻을 수 있습니다.

fish는 이제 직장에서 Mac의 기본 쉘입니다. 그림을 이동.


2

sh/ 이외의 쉘을 배우려면을 bash사용하십시오 zsh. 나는 누군가가 그것이 가장 강력하고 기능이 풍부한 대안 쉘이라고 진지하게 경쟁한다고 생각하지 않습니다. 그것이 단지 부풀어 오른 것인지 여부는 여전히 논쟁의 여지가 있습니다.

에 대한 좋은 소식은 들었지만 fish귀찮게하려고 노력한 적이 없습니다.

내가 아는 관리자 는 모든 비용으로 피해야 할 가증 한 사람으로 간주 csh되며 tcsh, 어느 한 쪽 껍질을 통해 나 자신을 강요하지는 않았음에도 불구하고 그들과 동의합니다.


2

bash를 가장 일반적으로 사용하는 것이 좋습니다 (일반적으로 Linux 기본값). 개인적으로 저는 zsh를 대화 형 쉘로 좋아합니다. 훌륭한 완성 기능이 있습니다. 예를 들어, 호스트 목록을 설정할 수 있으며 ssh Ser [tab]과 같은 작업을 수행하면 해당 호스트 중 하나를 자동 완성하는 것을 시도합니다. 또한 재귀 글로브가 있으므로 현재 및 하위 디렉토리에서 모든 jpeg 파일을 찾으려면을 사용할 수 있습니다 ls -ld **/*.jpg. zsh (사람의 .zshrc 파일 검색)에는 많은 재미있는 기능이 있으며 'bash 호환'으로 설정할 수 있으므로 둘 사이를 쉽게 전환 할 수 있습니다. 이것을 GNU Screen과 결합하면 명령 행이 꽤 즐거워 질 것입니다.


1

다른 질문을 잊지 마십시오 가장 일반적인 유닉스 / 리눅스 쉘 -가장 인기있는 쉘은 아마도 이유 때문에 가장 인기가 있습니다 ;-)

가치있는 일을 위해 대부분의 사람들은 쉘 사이를 자주 전환하지 않기 때문에 다양한 옵션을 잘 비교하기가 어렵습니다. 당신은 다른 사람들이 자신이 좋아하는 껍질의 미덕을 옹호하는 것을 보게 될 것입니다. 다른 쉘에 대해들은 바가 거의 없기 때문에 모두 동일한 기본 기능 (I / O 리디렉션, 명령 기록 등)을 제공하므로 개인 취향이 큰 구성 요소가 될 수 있습니다.


1

언급되지 않은 ZSH를 사용해야하는 강력한 이유는 vi 모드와 emacs 모드 입니다.

쉘에서 vi 근육 메모리를 사용하는 것을 좋아하는 사람들에게 이것은 킬러 기능입니다.

그리고 이맥스를 선호하는 사람들에게는 그 키 바인딩도 사용할 수 있지만, 진정한 이맥스 신자들은 아마도 이맥스가 가장 좋아하는 쉘이라고 말할 것입니다.

;-)


0

매일 사용하는 것을 선호하는 것은 실제로 개인적인 취향의 수학자이지만, 스크립트를 작성할 때 이식성을 위해 posix를 준수하려고합니다.


0

우즈 투는 기본적으로 "sh"를 "dash"로 설정하여 과거 POSIX 호환성 문제를 일으켰습니다. 반향 명령은 약간 다릅니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.