csh и sh

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
icb
лейтенант
Сообщения: 751
Зарегистрирован: 2008-07-15 16:11:11

csh и sh

Непрочитанное сообщение icb » 2010-08-10 16:48:21

Чем отличаются csh и sh?
Почему руту дается csh, а пользователям sh?
Почему не ставится один для всех?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Andy
ст. лейтенант
Сообщения: 1117
Зарегистрирован: 2007-03-04 7:48:58
Откуда: Mytischi

Re: csh и sh

Непрочитанное сообщение Andy » 2010-08-10 16:55:41

icb писал(а):Чем отличаются csh и sh?
Встроенными возможностями, плюс разная нотация, при скриптовании или настройке шелла.
icb писал(а):Почему руту дается csh, а пользователям sh?
Во FreeBSD csh (точнее tcsh), часть системы, поэтому рут его получает по-умолчанию. Пользователю,
при создании учетной записи можно указать шелл (могу запамятовать, но по-моему тоже предлагается
по-умолчанию tcsh). man useradd (если пользователь уже создан man usermod)
icb писал(а):Почему не ставится один для всех?
А если я не хочу csh, или наоборот - не хочу sh? ;) Или вообще хочу zsh, pdksh поставить? Или bash?
Jul 16 19:37:15 freebsd sshd[4152]: Invalid user idiot from 210.75.200.104

Аватара пользователя
zeus4all
сержант
Сообщения: 261
Зарегистрирован: 2009-10-07 18:48:34
Откуда: Далекий космос

Re: csh и sh

Непрочитанное сообщение zeus4all » 2010-08-11 8:34:04

согласен есть еще adduser, скрипт в ходе регистрации пользователя даст выбор шела и перечислит в переменных те что с может найти из установленного.
Историю пишут победители, поэтому в ней не упоминаются проигравшие. (с) Артур Дрекслер
Я знаю только то, что ничего не знаю. (с) Сократ
Если тебе плюют в спину, значит ты впереди. (с) Конфуций

icb
лейтенант
Сообщения: 751
Зарегистрирован: 2008-07-15 16:11:11

Re: csh и sh

Непрочитанное сообщение icb » 2010-08-11 8:49:50

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

ivan__
сержант
Сообщения: 234
Зарегистрирован: 2009-08-11 15:48:32
Откуда: Питер

Re: csh и sh

Непрочитанное сообщение ivan__ » 2010-08-11 9:47:31

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

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: csh и sh

Непрочитанное сообщение hizel » 2010-08-11 10:25:58

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

man adduser
man pw
man adduser.conf
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

icb
лейтенант
Сообщения: 751
Зарегистрирован: 2008-07-15 16:11:11

Re: csh и sh

Непрочитанное сообщение icb » 2010-08-11 13:01:27

hizel писал(а):

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

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

Аватара пользователя
zeus4all
сержант
Сообщения: 261
Зарегистрирован: 2009-10-07 18:48:34
Откуда: Далекий космос

Re: csh и sh

Непрочитанное сообщение zeus4all » 2010-08-11 15:41:06

логики может и не быть, пришел Вася, говорит, мол "в Вашем полку прибыло", "над чем там работаете,?", "а в курсе что к sh прокачали, я пожалуй впишу в новый релиз етот новый шелл и дам его по умолчанию руту".
icb писал(а):Почему руту дается csh, а пользователям sh?
вообщето пользователю дается тот шелл который ему нужно дать, просто видно по не знанию ключа он не приводится, а по умолчанию подставлен тот шел который был с рождения у ОС, я думаю что просто не было нужды менять стандартную переменную с появлением новых шелов, ибо sh должен быть у каждого и ошибок при случайном не указании шела командой скажем узерадд, не должно возникать. имхо
Историю пишут победители, поэтому в ней не упоминаются проигравшие. (с) Артур Дрекслер
Я знаю только то, что ничего не знаю. (с) Сократ
Если тебе плюют в спину, значит ты впереди. (с) Конфуций

Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

Re: csh и sh

Непрочитанное сообщение FreeBSP » 2010-08-11 15:57:58

кстати, обратите внимание что пользователем могут быть и демоны и удаленные программные модули.
а еще sh это стандарт - то что написано на чистом sh по стандарту посикс должно пойти и на посикс-совместимой системе 30+ -летнего возраста. да, он убог и страшен, но это - один из незыблемых стандартов никсов
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!

Гость
проходил мимо

Re: csh и sh

Непрочитанное сообщение Гость » 2010-08-11 16:22:29

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

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

Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

Re: csh и sh

Непрочитанное сообщение FreeBSP » 2010-08-11 16:26:25

root будет против =)
а зачем автодополнение в sh в душе не понимаю - стандарт должен оставаться стандартом!
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!

icb
лейтенант
Сообщения: 751
Зарегистрирован: 2008-07-15 16:11:11

Re: csh и sh

Непрочитанное сообщение icb » 2010-08-11 16:28:00

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

Andy
ст. лейтенант
Сообщения: 1117
Зарегистрирован: 2007-03-04 7:48:58
Откуда: Mytischi

Re: csh и sh

Непрочитанное сообщение Andy » 2010-08-11 16:31:20

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

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

ls -lahi /bin/csh 
и

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

ls -lahi /bin/csh 
Погляди внимательно, если я правильно помню у них иноды совпадают.
Jul 16 19:37:15 freebsd sshd[4152]: Invalid user idiot from 210.75.200.104

Гость
проходил мимо

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/

icb
лейтенант
Сообщения: 751
Зарегистрирован: 2008-07-15 16:11:11

Re: csh и sh

Непрочитанное сообщение icb » 2012-05-24 15:32:39

Погляди внимательно, если я правильно помню у них иноды совпадают.
Не совпадают.
Размер бинарника отличается примерно в 2 раза.