Страница 1 из 1

csh и sh

Добавлено: 2010-08-10 16:48:21
icb
Чем отличаются csh и sh?
Почему руту дается csh, а пользователям sh?
Почему не ставится один для всех?

Re: csh и sh

Добавлено: 2010-08-10 16:55:41
Andy
icb писал(а):Чем отличаются csh и sh?
Встроенными возможностями, плюс разная нотация, при скриптовании или настройке шелла.
icb писал(а):Почему руту дается csh, а пользователям sh?
Во FreeBSD csh (точнее tcsh), часть системы, поэтому рут его получает по-умолчанию. Пользователю,
при создании учетной записи можно указать шелл (могу запамятовать, но по-моему тоже предлагается
по-умолчанию tcsh). man useradd (если пользователь уже создан man usermod)
icb писал(а):Почему не ставится один для всех?
А если я не хочу csh, или наоборот - не хочу sh? ;) Или вообще хочу zsh, pdksh поставить? Или bash?

Re: csh и sh

Добавлено: 2010-08-11 8:34:04
zeus4all
согласен есть еще adduser, скрипт в ходе регистрации пользователя даст выбор шела и перечислит в переменных те что с может найти из установленного.

Re: csh и sh

Добавлено: 2010-08-11 8:49:50
icb
Во FreeBSD csh (точнее tcsh), часть системы, поэтому рут его получает по-умолчанию.
В /etc/shells они прописаны отдельно, т.е. они все таки разные?
Пользователю, при создании учетной записи можно указать шелл (могу запамятовать, но по-моему тоже предлагается по-умолчанию tcsh)
По-умолчанию предлагается sh, иначе вопрос бы не возник ;)
А если я не хочу csh, или наоборот - не хочу sh? ;) Или вообще хочу zsh, pdksh поставить? Или bash?
То что указать можно - оно понятно и необходимо. Но почему именно по-умолчанию разные значения?
согласен есть еще adduser, скрипт в ходе регистрации пользователя даст выбор шела и перечислит в переменных те что с может найти из установленного.
Вроде он не ищет, а смотрит список в /etc/shells

Re: csh и sh

Добавлено: 2010-08-11 9:47:31
ivan__
icb писал(а):
Во FreeBSD csh (точнее tcsh), часть системы, поэтому рут его получает по-умолчанию.
В /etc/shells они прописаны отдельно, т.е. они все таки разные?
А ты на сами файлы посмотри :smile:

Re: csh и sh

Добавлено: 2010-08-11 10:25:58
hizel

Код: Выделить всё

man adduser
man pw
man adduser.conf

Re: csh и sh

Добавлено: 2010-08-11 13:01:27
icb
hizel писал(а):

Код: Выделить всё

man adduser
man pw
man adduser.conf
Там нет ответа на мой вопрос.
Как их назначить, почему сделано что их можно назначить и т.п. - это все понятно.
Вопрос в другом: почему по-умолчанию разные значения? Какая в этом логика?

Re: csh и sh

Добавлено: 2010-08-11 15:41:06
zeus4all
логики может и не быть, пришел Вася, говорит, мол "в Вашем полку прибыло", "над чем там работаете,?", "а в курсе что к sh прокачали, я пожалуй впишу в новый релиз етот новый шелл и дам его по умолчанию руту".
icb писал(а):Почему руту дается csh, а пользователям sh?
вообщето пользователю дается тот шелл который ему нужно дать, просто видно по не знанию ключа он не приводится, а по умолчанию подставлен тот шел который был с рождения у ОС, я думаю что просто не было нужды менять стандартную переменную с появлением новых шелов, ибо sh должен быть у каждого и ошибок при случайном не указании шела командой скажем узерадд, не должно возникать. имхо

Re: csh и sh

Добавлено: 2010-08-11 15:57:58
FreeBSP
кстати, обратите внимание что пользователем могут быть и демоны и удаленные программные модули.
а еще sh это стандарт - то что написано на чистом sh по стандарту посикс должно пойти и на посикс-совместимой системе 30+ -летнего возраста. да, он убог и страшен, но это - один из незыблемых стандартов никсов

Re: csh и sh

Добавлено: 2010-08-11 16:22:29
Гость
icb писал(а):почему по-умолчанию разные значения?
у root'а так исторически сложилось[1]. А новым пользователям дается /bin/sh. Стоит отметить, что root (и еще несколько системных пользователей) существуют сразу после установки системы.

[1] несколько месяцев назад jilles@ добавил в sh(1) автодополнение для имен файлов. С этим коммитом ответвилась дискуссия почему бы root'у не поставить дефолтный шелл, как и остальным пользователям.

Re: csh и sh

Добавлено: 2010-08-11 16:26:25
FreeBSP
root будет против =)
а зачем автодополнение в sh в душе не понимаю - стандарт должен оставаться стандартом!

Re: csh и sh

Добавлено: 2010-08-11 16:28:00
icb
Гость писал(а):у root'а так исторически сложилось[1].
Понятно. Тогда действительно актуальным становится
Гость писал(а):почему бы root'у не поставить дефолтный шелл, как и остальным пользователям.

Re: csh и sh

Добавлено: 2010-08-11 16:31:20
Andy
FreeBSP писал(а):а зачем автодополнение в sh в душе не понимаю - стандарт должен оставаться стандартом!
Стандарт не нарушается, а удобство использования расширяется.
to icb:

Код: Выделить всё

ls -lahi /bin/csh 
и

Код: Выделить всё

ls -lahi /bin/csh 
Погляди внимательно, если я правильно помню у них иноды совпадают.

Re: csh и sh

Добавлено: 2010-08-11 17:36:54
Гость
FreeBSP писал(а):стандарт должен оставаться стандартом!
ты сам стандарт-то смотрел? ash имеет несколько расширений, коих нет в POSIX shell. Они при портировании скриптов могут намного больше помешать, чем автодополнение, кое доступно только в интерактивном режиме. Самое неприятное - это несовместимость echo в ash, dash, bash. Например, мне из-за этого пришлось прибегать к таким выкрутасам в stumpish

Код: Выделить всё

# parse C-style backslash sequences by default
if [ "$(echo -e foo)" = foo ]; then
    echo() { builtin echo -e "$@"; }
fi

echo '\0033[1;31m\c'
echo 'Here\c'
echo '\0033[m'
echo 'is\c'
echo an example
Для затравки, пример как bash фейлит где ash работает без проблем - http://pastebin.com/WvQ1qCTM

Disclaimer: под ash я имею ввиду /bin/sh во FreeBSD, а не оригинальный. http://www.in-ulm.de/~mascheck/various/ash/

Re: csh и sh

Добавлено: 2012-05-24 15:32:39
icb
Погляди внимательно, если я правильно помню у них иноды совпадают.
Не совпадают.
Размер бинарника отличается примерно в 2 раза.