2012-09-06 3 views
-1

셸 사용의 백분율을 아는 것이 매우 도움이되는 상황에 직면했습니다. 예를 들어, 내가 분명히* nix 셸 사용의 원형 차트

bash: X%, sh: Y%, csh, tcsh, zsh, ksh, dash, etc.. 

처럼 뭔가를 찾고 있어요, 나는 거기에 여러 가지 합병증을 알고있다 - 등 여러 쉘, "사용"의 정의, 불확실성 및, 그러나 나는 정보통 답을보고 싶다 결과가 끔찍하게 잘못 될 수 있다고하더라도 실제 데이터에서 파생되고 명시된 측정 기준을 기반으로합니다.

환경 설정이 바뀌 었음을 나타내는 기록 데이터가있는 경우 보너스. 어떻게 TIOBE 인덱스에 대한

+1

여러 가지 가능한 측정 값이 있으므로 상당히 다른 답변을 얻을 수 있습니다. 하나는 '주어진 로그인 셸을 가진 사용자 수'입니다. 또 다른 하나는 '속임수에 주어진 껍질로 쓰여진 시스템상의 스크립트의 수'입니다. 다른 하나는 '시스템에서 주어진 셸로 실행되는 프로세스의 수'입니다. 사용자의 컴퓨터, 회사의 컴퓨터 또는 전 세계 (또는 전 세계의 작은 샘플)에서 응답이 필요할 수 있습니다. 첫 번째 통계는 암호 데이터베이스에서 가져옵니다. 두 번째는 컴퓨터에서 파일을 검색합니다. 세 번째 프로세스를 통해 회계. –

+0

어디에서 사용합니까? 네트워크상의 시스템 또는 인터넷 전체에서? 얼마나 많은 사용자가 쉘을 로그인 쉘로 사용하는지 또는 쉘에 얼마나 많은 스크립트가 작성되었는지 알고 싶습니까? – Barmar

+0

어느 메트릭이 사용되는지는 분명하고 전 세계를 찾고 있습니다. 사람들이이 질문에 문제가있는 경우, 이유를 설명하십시오. 제게 그것은 직접적으로 적용 가능한 프로그래밍 질문입니다. –

답변

1

내 생각에 BASH는 이제 선택의 껍질이며 쉘 사용자의 방대한 공유를 구성합니다. 이것은 리눅스의 기본 쉘이며, 리눅스는 유닉스 세계를 거의 장악하고 있습니다. (예, 리눅스는 실제로 유닉스가 아니지만 가까운 곳입니다.)

Csh는 SunOS 및 Mac OS X를 포함하는 BSD 세트의 도메인 이었지만 Mac OS X은 버전 10.4에서 Bash로 전환되었고 Solaris는 POSIX 쉘로 전환되었습니다 (이는 구문에서 Bash와 유사 함).

역사의 비트

...

대부분의 유닉스 사용자는 기본 쉘로 CSH를 사용하지만, Bourne 쉘에서 프로그램. Csh에는 Bourne 쉘에서 앨리어싱 및 명령 행 편집과 같은 많은 기능이 누락되어있어 대화식으로 사용했을 때 유용했습니다. 그러나 Csh는 프로그래밍 쉘이 좋지 않았습니다. Tom Christiansen의 seminal paper on Csh 일종의 Csh 프로그래밍 프로그래밍이 봉인되었습니다. 사실은 BSD 기반 시스템조차도 시작 스크립트 등에서 Bourne 쉘을 사용한다는 것입니다.

Kornshell이 ​​나왔을 때, 저는 다른 많은 사용자들과 교환했습니다. Kornshell은 친숙한 Bourne 셸 구문을 가졌지 만 Csh가 가진 고급 사용자 기능도 갖추고 있습니다. 사실 Kornshell의 명령 내역 능력은 Csh의 명령 내역보다 훨씬 뛰어났습니다. Kornshell의 가장 큰 문제점은 AT & T가 소유하고 있으며 오픈 소스가 아니 었습니다. 거의 모든 상용 Unix 플랫폼 (SunOS 제외)은 Kornshell을 사용할 수있었습니다. 그러나 오픈 소스 플랫폼은 Kornshell을 사용할 수 없습니다.

Bash는 1980 년대 후반 Kornshell의 많은 기능을 갖춘 진정한 OSS 쉘로 개발되었습니다. 그러나 Bash는 POSIX 표준 (Kornshell의 기능을 많이 사용함)을보다 잘 준수하려고 노력했습니다.

나는 (주로 습관 때문에) Kornshell을 선호하지만 더 적은 수의 시스템에서 찾을 수 있습니다. BASH가 가장 많은 리소스를 갖고 있으며 가장 쉽게 사용할 수 있기 때문에 BASH를 배우기 위해 대부분의 새로운 유닉스 팀장에게 말합니다.

내 추천은 Bash vs. Kornshell vs. Bourne Shell vs. Posix에 대해 너무 걱정하지 않는 것이 좋습니다. 그들은 모두 동일합니다. Csh 잊어 버려. 공식 Turbo Csh page은 2004 년 이후로 업데이트되지 않았습니다.

셸 스크립트를 작성하는 경우 모든 Bourne 유형 셸에서 공통적으로 사용되는 기능을 사용하십시오.echo 또는 print (A Kornshell 기능) 대신 printf을 사용하고 [[]] 대신 []을 사용하십시오. 이중 대괄호는 모든 셸간에 완전히 호환되지 않기 때문입니다. 배열도 피하십시오. Bash 4.0은이 버전을 지원하지만 이전 버전은 지원하지 않습니다. Kornshell은 숫자 배열과 문자열 배열을 모두 지원하지만 Bash와는 다르게 선언됩니다. 그것은 여전히 ​​쉘 스크립트의 기능 중 약 90 %를 남깁니다.

게다가 더 강력하고 빠른 스크립팅 언어 인 Python 또는 Perl로 작성하는 것이 좋습니다. 또한 두 플랫폼 모두 플랫폼에 종속적이며 다양한 쉘보다입니다. 나는 셸 스크립트를 작성하지만 수십 줄 이상은 쓰지 않으며 실제 스크립팅 언어로 전환합니다.

+0

시간을내어 downvoted 질문에 대답 해 주셔서 감사합니다. 그것은 경험이 아닌 데이터를 기반으로하고 있지만, 당신은 그 주제를 분명히 알았고 추측을 내게 도와주었습니다. 나는 csh를 무시하고 Bourne 셸을 모으는 옵션을 가지고 있지 않지만, 이제는 훨씬 더 나은 시각을 가지고 있습니다. –