FreeBSD와 Debian에서는 어떤 쉘을 배워야 합니까?

FreeBSD와 Debian에서는 어떤 쉘을 배워야 합니까?

나는 FreeBSD의 공식 쉘이 tcsh이고 데비안에서는 dash. 그러나 내가 echo $shell(FreeBSD) 또는 Debian에 있을 때 쉘이 첫 번째 경우 또는 Debian에 env있다고 말합니다 .cshbash

이것은 새로 설치한 경우입니다. 저는 루트 계정과 일반 사용자 계정으로 테스트했습니다. 또한 FreeBSD에서 새 계정을 만들 때 3개의 쉘을 선택할 수 있습니다. sh, csh또는 tcsh. 선택하지 않으면 csh계정의 기본값이 됩니다.

해당 시스템의 공식 표준 쉘은 무엇입니까? tcsh아니면 cshFreeBSD에 있나요 ? dash아니면 bash데비안에 있나요 ?

내가 뭔가 잘못하고 있는 걸까? 아니면 기사나 사이트에 잘못된 정보가 있는 걸까요?

두 개의 쉘(Debian용 쉘과 FreeBSD용 쉘)을 배우고 싶지만 어느 것이 공식 쉘인지 명확하지 않기 때문에 어떤 쉘을 배워야 할지 모르겠습니다.

그리고 어떤 쉘을 배워야 할지 검색하던 중 다음을 발견했습니다.http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/ 그냥 좋아하지 않는 사람인가요 csh, 아니면 정말 피해야 할까요 csh?

저는 최신 Debian 및 FreeBSD 버전을 사용하고 있습니다.

나는 이러한 모든 셸 옵션을 잃어버리기 시작합니다. 제 눈에는 모두 동일해 보입니다(구문을 제외하면 모두 동일한 가능성을 제공한다는 뜻입니다). 그래서 공식적인 것을 배우고 싶습니다.

답변1

특정 시스템에 대해 기본 쉘을 사용할 필요가 전혀 없습니다. Debian과 FreeBSD는 모두 다양한 셸을 제공하며 대부분 또는 모두 사전 설치되거나 쉽게 설치할 수 있습니다.

네이밍에 주의하세요. /bin/csh실제로 tcsh가 되거나 /bin/shbash 또는 ksh가 되는 것은 드문 일이 아닙니다 .

shBourne 쉘은 여전히 ​​일반적으로 사용되는 가장 오래된 Unix 쉘입니다. bash아마도 가장 널리 사용되는 sh 파생물일 것입니다. ksh또한 zsh널리 퍼져 있습니다.

cshC 쉘인 은 Bill Joy가 BSD용으로 개발했습니다. 여기에는 sh(또는 적어도 sh당시 존재했던 이전 버전보다) 더 편리한 대화형 사용을 가능하게 하는 몇 가지 기능이 있습니다 . tcsh에서 파생되었으며 csh많은 새로운 기능을 추가하며 대부분은 대화형 사용을 목표로 합니다. 읽어보시다시피csh.whynot, csh 및 tcsh는 대화형이 아닌 스크립팅에 사용할 때 몇 가지 문제가 있습니다.

개인적으로 저는 csh로 시작했다가 tcsh가 출시되자 전환했습니다. 나는 이제 스크립팅에 csh를 거의 사용하지 않고 sh나 bash(또는 상당히 복잡한 작업에는 Perl)를 선호합니다.

(몇 년 후 업데이트: 그 이후로 tcsh를 포기했고 이제는 bash를 대화식으로 사용합니다.)

내 조언은 하나의 쉘을 선택하고 FreeBSD와 Debian 모두에서 사용하여 잘 익히라는 것입니다. tcsh를 선택한다면 Debian: 에 설치해야 할 것 같습니다 sudo apt-get install tcsh. bash를 선택하면 그것이 FreeBSD에 사전 설치되어 있는지 여부는 알 수 없습니다. 그렇지 않은 경우 설치하는 것도 똑같이 간단해야 합니다.

동일한 셸을 대화형 및 스크립팅에 사용할 필요는 없지만 혼동을 피하고 학습 기간을 단축할 수 있습니다.

ksh는 아마도 bash만큼 강력할 것이고, zsh는 훨씬 더 강력할 것입니다(그리고 시간을 들여 배워본 적이 없는 많은 기능을 가지고 있습니다).

저는 FreeBSD와 Debian(그리고 여러분이 사용할 수 있는 다른 Unix 계열 시스템) 모두와 대화형 사용 및 스크립팅 모두에 bash를 제안합니다. 그러나 다른 선택은 완전히 합법적이며 일부는 귀하에게 더 적합할 수도 있습니다.

관련 정보