Я прочитал много статей, в которых говорится, что официальная оболочка в FreeBSD — tcsh
, а в Debian — dash
. Однако, когда я либо echo $shell
(FreeBSD), либо env
в Debian, он говорит, что оболочка csh
в первом случае, либо bash
в Debian.
Это в свежих установках. Я тестировал под учетной записью root и учетной записью обычного пользователя. Также, когда я создаю новую учетную запись в FreeBSD, у меня есть выбор из 3 оболочек; sh
, csh
или tcsh
. Если я не делаю выбора, csh
это значение по умолчанию для учетной записи.
Какая официальная, стандартная оболочка в этих системах? Это tcsh
или csh
в FreeBSD? Это dash
или bash
в Debian?
Это я что-то не так делаю? Или статьи и сайты дезинформируют?
Я хочу изучить две оболочки: одну для Debian и одну для FreeBSD, но не могу найти, какую из них мне следует изучить, поскольку неясно, какая из них является официальной.
Также, пока я искал, какую оболочку мне следует изучить, я нашел это:http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/
Это кто-то, кто нам просто не нравится csh
, или нам действительно следует его избегать csh
?
Я использую последние версии Debian и FreeBSD.
Я начинаю теряться во всех этих вариантах оболочки, они все кажутся мне одинаковыми (за исключением синтаксиса; я имею в виду, что они все предлагают одинаковые возможности). Вот почему я хочу изучить официальную.
решение1
Вам совершенно не нужно использовать оболочку по умолчанию для данной системы. И Debian, и FreeBSD предоставляют ряд различных оболочек, и большинство или все из них доступны в обоих, либо предустановленные, либо легко устанавливаемые.
Следите за именованием. Нередко бывает так, что /bin/csh
на самом деле это tcsh, или /bin/sh
bash, или ksh.
sh
, оболочка Bourne, является старейшей оболочкой Unix, которая до сих пор широко используется. bash
Вероятно, является наиболее широко используемой производной от sh; ksh
и zsh
также широко распространены.
csh
, оболочка C, была разработана для BSD Биллом Джоем. Она имеет некоторые функции, которые делают интерактивное использование более удобным, чем sh
(или, по крайней мере, чем старая версия , sh
существовавшая в то время). tcsh
является производной от csh
, и добавляет много новых функций, большинство из которых нацелены на интерактивное использование. Как вы видели, прочитавcsh.почему бы не, csh и tcsh имеют некоторые проблемы, когда дело доходит до их использования для написания скриптов, а не в интерактивном режиме.
Лично я начинал с csh, а затем перешел на tcsh, когда он стал доступен. Теперь я редко использую csh для скриптинга, предпочитая sh или bash (или Perl для чего-то достаточно сложного).
(Обновление, несколько лет спустя: с тех пор я отказался от tcsh и теперь использую bash в интерактивном режиме.)
Мой совет — выбрать одну оболочку и хорошо ее изучить, используя ее как на FreeBSD, так и на Debian. Если вы выберете tcsh, я думаю, вам придется установить ее на Debian: sudo apt-get install tcsh
. Если вы выберете bash, я не знаю, предустановлена ли она на FreeBSD; если нет, то установить ее должно быть так же просто.
Использовать одну и ту же оболочку в интерактивном режиме и для написания скриптов необязательно, но это поможет избежать путаницы и сократить время обучения.
ksh, вероятно, примерно такой же мощный, как bash, а zsh еще мощнее (и имеет множество функций, на изучение которых я никогда не тратил время).
Я предлагаю bash, как для FreeBSD, так и для Debian (и для любых других Unix-подобных систем, которые вы можете использовать), и для интерактивного использования и скриптинга. Но другие варианты вполне допустимы, и некоторые из них могут подойти вам лучше.