다양한 쉘 스크립트가 다양한 OS에 매핑되는 방식

다양한 쉘 스크립트가 다양한 OS에 매핑되는 방식

Linux를 처음 접하고 쉘 스크립팅에 대해 몇 가지 질문이 있습니다.

  • 껍데기
  • C 쉘
  • 배쉬 쉘
  • 본 쉘
  • 콘 껍질

"껍질"이 너무 많습니다! 이들 각각에 대해 내 Linux 시스템이 어떤 인터프리터로 구성되어 있는지 어떻게 알 수 있습니까? 를 지원하지 않는 경우 korn이를 지원하도록 시스템을 어떻게 구성해야 합니까?

또한 이러한 쉘 중 가장 "활성"(가장 자주 업데이트 및 유지 관리되는) 쉘은 무엇입니까?

미리 감사드립니다!

답변1

당신이 해결한 문제는 우리가 다음과 같은 개념을 갖게 된 바로 그 이유입니다.POSIX 호환 쉘그리고 "이식 가능한" 코드를 만드는 능력. 해당 링크에 제시된 POSIX 호환 구문을 준수하는 한 코드 이식성이 보장됩니다.

그렇긴 하지만, 대상 독자가 Linux뿐이라면 내가 본 모든 Linux 배포판은 bash기본 셸로 제공되므로 Bash 3.x 호환 스크립트가 거의 모든 Linux 배포판에서 작동할 것이라고 상당히 확신할 수 있습니다. .

답변2

최초의 UNIX는 AT&T에서 탄생했습니다. 첫 번째 쉘은 Bourne 쉘이었습니다. 매우 멋있었지만 몇 가지 심각한 한계가 있었습니다.

언제 사람들이버클리UNIX를 사용하기 시작했고 더 좋게 만들려고 노력하다가 C 쉘이 나왔습니다. 다른 프로그래밍 언어를 사용했습니다(비록 그 자체로 결함이 있지만) 그러나 대화식 사용에서는 훨씬 더 좋았습니다. 대화형 사용의 이점으로 인해 Berkeley UNIX의 파생 UNIX에서 매우 인기가 있었습니다.

C 셸(또는 csh)은 tcsh라는 오픈 소스 복제본을 생성했습니다. csh를 사용한다면 아마도 'true' 또는 원본 csh를 사용하지 않고 tcsh를 사용하게 될 것입니다.

한편, UNIX 직원들은 가만히 앉아만 있지 않았습니다. Dave Korn(좋은 사람)은 Korn 쉘이라는 새로운 쉘을 만들었습니다. 이는 Bourne Shell이 ​​만든 프로그래밍 모델을 따랐습니다(아마도 csh 모델보다 우수함). 그것은 매우 인기를 얻었고 많은 사람들의 일상적인 쉘이 되었습니다. 이는 UNIX 사양에도 포함되었습니다. 이로 인해 pdksh라는 상당히 인기 있는 오픈 소스 복제본이 생성되었습니다. 이 복제본은 거의 100% 호환되지는 않습니다. 결국 AT&T는 코드를 오픈 소스로 공개했습니다.

GNU 직원들은 자신만의 UNIX 같은 시스템을 만들고 싶었기 때문에 라이센스 문제에 대해 걱정하지 않고 포함할 수 있는 쉘이 필요했습니다. 그들은 bash, Bourne Again SHell을 만들었습니다. 원래 Bourne과 대부분 호환되고 Csh와 Ksh의 아이디어를 모두 취한 이 제품은 사용 편의성과 모든 Linux에 함께 제공된다는 점에서 인기를 얻었습니다. 여러 버전이 있었는데, 버전 2가 가장 사용하기 쉬운 버전이었고, 이제 새로운 기능이 포함된 버전 4가 출시되었습니다.

그런 다음 zsh가 나왔습니다. 그것도 Bourne 쉘 구문을 따르고 Bourne 쉘, ksh, csh 및 bash의 장점을 복사했습니다. 틀림없이 다른 쉘에서는 볼 수 없는 기능을 갖춘 가장 진보된 구문을 가지고 있습니다.

TL;DR그렇다면 무엇을 사용해야 할까요? 시작 스크립트를 코딩하는 경우 POSIX/Original Bourne과 호환되는 /bin/sh를 사용하려고 합니다. 언어는 드물지만 /usr과 같은 디스크를 사용할 수 없는 경우에도 실행됩니다.

시작 스크립트가 아닌 경우 선택의 여지가 좀 더 있습니다. 컴퓨터만 사용 중인 경우 현재 사용 가능한 모든 것을 사용하세요. 당신은 당신의 기계를 제어합니다. 다른 사람에게 나눠주기 위해 글을 쓴다면 /bin/sh나 bash를 사용하겠습니다. /bin/sh 간단하지만 항상 사용할 수 있습니다. bash는 오픈 소스이므로 거의 항상 사용할 수 있으며, 어디에나 있을 수 있을 만큼 오래되었지만 몇 가지 새로운 기능을 가질 만큼 충분히 새롭습니다. Csh는 모든 곳에서 사용할 수 없으며 zsh도 마찬가지입니다.

관련 정보