Это страница обсуждения для обсуждения улучшений в статье Unix shell . Это не форум для общего обсуждения темы статьи. |
|
Найти источники: Google (книги · новости · ученые · бесплатные изображения · ссылки WP) · FENS · JSTOR · TWL |
Эта статья имеет рейтинг Start-class по шкале оценки контента Википедии . Она представляет интерес для следующих WikiProjects : | |||||||||||
|
1) Это описание несколько примитивно и неверно.
2) Лучшее определение можно найти на странице руководства kornshell: Shell — это командный язык программирования, который выполняет команды, считанные с терминала или из файла.
Гениальность в том, что Unix разделяет символьный терминал (и его эмуляцию вроде xterm), где вы печатаете все, и оболочку, которая их выполняет. Терминал обычно удаленный, и в самой простой форме оболочка не видит введенные команды, пока вы не нажмете Enter.
Консоль — это HUI, напрямую подключенный к узлу Unix (клавиатура, графическая карта, экран), где символьный терминал, такой как vt100, представляет собой автономное устройство, состоящее из клавиатуры, экрана и небольшого объема памяти, подключенное через последовательную линию.
Сегодня с использованием графических (X11) терминалов сценарий стал сложнее, но основной принцип тот же.
Употребляемый в DOS термин «командная строка» неверен и не используется в надлежащей документации Unix, поэтому его следует удалить.
3) cmd и аналогичные приложения Windows могут быть совместимы с POSIX, но некоторые Unix-Shell и ссылки не должны быть удалены.
4) Пользователи могут выбрать оболочку входа с помощью cnsh и изменить текущую оболочку с помощью
exec <имя оболочки> например exec zsh
Это две вещи.
5) Нет, не любая программа может быть оболочкой входа. Только тонкие, упомянутые в:
кот /etc/shells/bin/ш/bin/баш/sbin/нологин/bin/tcsh/bin/csh/bin/кш
6) Оболочка отличается от других языков программирования тем, что она почти всегда вызывает внешние команды для реализации функциональности в сочетании с конвейерами/фильтрами...
—Предыдущий неподписанный комментарий добавлен Ahaack29 (обсуждение • вклад ) 04:10, 14 ноября 2007 (UTC)
Мне не нравится, что мы сейчас придумываем свое собственное определение. Я бы предпочел, чтобы lede сначала давал минимальное, прозаическое определение:
Этот исторический маршрут должен позволить нам держаться подальше от семантических проблем, в частности, от вечных дискуссий о том, что является, а что не является Unix-подобным. Q VVERTYVS ( хм? ) 21:53, 23 ноября 2015 (UTC)
Я не смог решить, как правильно здесь называть. Я пытался использовать unix shell как более общий термин, и лучше, чем shell , и использовать такие вещи, как bourne shell, для более частных терминов. комментарии? -- drj
На многих системах Linux (и BSD?) /bin/sh по-прежнему используется по умолчанию, но на самом деле это просто символическая ссылка на /bin/bash или что-то подобное. Возможно, это можно включить?
В Mac OS X v10.4 установлен sh, но bash — оболочка по умолчанию. Dread Lord C y b e r S k u l l ✎☠ 10:49, 2005 1 сентября (UTC)
dash
[2], которая разработана так, чтобы быть небольшой и sh
-совместимой, и может использоваться как символическая ссылка на /bin/sh
; ища ее, я также наткнулся на нечто под названием shish
[3]. Дело в том, что многие скрипты оболочки используют это как свою строку shebang , поэтому они будут работать эффективнее, если вы создадите символическую ссылку на что-то более эффективное. - IMSoP 12:45, 1 сентября 2005 (UTC) Здесь можно было бы разместить гораздо больше. Не нужно много времени, чтобы описать генеалогическое древо различных оболочек Unix и сравнить несколько функций. Действительно ли верно описывать Bourne как просто фактический стандарт? Я помню (но не могу вспомнить подробности), что в ранние дни была «война оболочек», которую выиграл Bourne (над другим конкурентом Bell Labs, я думаю; определенно не csh ). Я предполагаю, что все эти любопытные ссылки на подстраницу под названием bin — просто излишне усердная викификация? Пользователь: Тим Гудвин
Я искал в Википедии, почему unix "shell" так называется. Может быть, было бы хорошей идеей поместить это в... --BilboEd
Я отсортировал список оболочек внизу страницы по совместимости с Bourne, C shell или ни с одной из них. (И прежде чем вы спросите, почему rc и es не получили свою собственную категорию... потому что Bourne и C-shell являются традиционными основными оболочками Unix, в то время как rc , похоже, не так широко используется за пределами Plan 9, а es , единственная совместимая с rc оболочка, по-видимому, была заброшена с 1997 года, вот почему.) Beinsane 07:18, 25 декабря 2005 (UTC)
Просто хотел указать на некоторые неточности на этих страницах. Пожалуйста, отнеситесь ко мне с пониманием, я не знаком с Википедией, и английский не мой родной язык.
Я читаю:
Термин «оболочка» также относится к конкретной программе, а именно к оболочке Bourne, sh.
Это совершенно неверный подход. Я бы сказал так. Термин shell относится к программе sh. sh принимала различные формы в истории Unix от оболочки Thomson, пройдя через оболочки Bourne (все ее реализации) и теперь современные shs. Современные shs теперь определены открытой спецификацией, которая в основном является надмножеством оболочек Bourne. Таким образом, "sh" современных Unix являются той или иной реализацией этой спецификации. Известными реализациями спецификации sh являются ksh (первая и из которой произошла спецификация), bash (когда она называется sh), FreeBSD shs (основанная на оболочке Almquist), zsh (когда она называется sh), pdksh и ее производные (posh, MirBSD ksh...). Некоторые системы, такие как Solaris, имеют более одной программы sh: стандартную и оболочку Bourne для обратной совместимости для скриптов, написанных в синтаксисе Bourne до того, как была выпущена спецификация sh (где-то в начале девяностых).
Оболочка Bourne, как правило, больше не располагается как /bin/sh. Это касается только некоторых очень редких систем (например, Solaris, упомянутого выше). Во многих системах вообще больше нет оболочки Bourne, а когда она есть, она обычно находится либо в нестандартном месте, например, /usr/old/bin, либо имеет другое имя, например, bsh или sh.bourne. Код sh не был сделан свободным до недавнего времени. Вот почему ни одна свободная система Unix никогда не имела его (за исключением ранних BSD, которые были причиной судебных исков, BSD затем приняли оболочку Almquist, которая была свободной реализацией оболочки Bourne, поскольку ее можно было найти в SysV с некоторыми расширениями, и теперь она сделана соответствующей POSIX (современная sh)).
Многие скрипты по-прежнему написаны с использованием синтаксиса, совместимого с Bourne, но только потому, что он является наибольшим общим знаменателем sh прошлых и современных Unix-систем. sh часто путают с оболочкой Bourne, поскольку sh долгое время была оболочкой Bourne на многих системах.
Некоторые комментарии об оболочках Windows. Можно отметить, что все бесплатные оболочки Unix (zsh, bash, pdksh...) доступны для Windows через бесплатное программное обеспечение адаптации Unix Cygwin.
Команда echo $SHELL для определения текущей оболочки неверна. $SHELL — предпочтительная оболочка пользователя. Она инициализируется "login" как оболочка входа пользователя и может быть изменена пользователем, чтобы сообщить приложениям, какая оболочка является его выбором. ps -p "$$" с большей вероятностью сообщит, какая оболочка в данный момент интерпретирует эту командную строку (ps -p $pid для rc/es) — Предыдущий неподписанный комментарий добавлен Stephane Chazelas (обсуждение • contribs ) 16:50, 9 сентября 2006 (UTC)
Спасибо, -- Абдулл ( обсуждение ) 20:38, 3 марта 2010 (UTC)
Hm2k предложил объединить статью об оболочке Unix со статьей об оболочке ( вычислительная техника) и обсудить это здесь.
Многие пользователи систем Unix по-прежнему считают современную оболочку командной строки более удобной для решения многих задач, чем любое приложение с графическим интерфейсом.
Следует удалить. — Предыдущий неподписанный комментарий добавлен 92.7.74.215 (обсуждение) 07:00, 5 января 2011 (UTC)
Чем одна оболочка отличается от другой? В статье объясняется, что такое оболочка, и приводится их список, но в чем разница? Разве одна команда Unix/Linux в одной оболочке не выполняется в другой? - Rolypolyman ( обсуждение ) 05:27, 22 января 2011 (UTC)
Обозначение конвейера существовало в оболочке Unix (например, в пятом издании Unix) до появления оболочки Bourne; в одном из ранних абзацев здесь подразумевается, что оболочка Bourne ввела конвейеры. -- Джек Во
В статье в настоящее время говорится:
Я мог бы попытаться угадать, что это на самом деле означало.
То, что он на самом деле говорит, явно не соответствует действительности. Ничто не мешает обычному пользователю использовать вызов новой оболочки и выбирать любую из оболочек в системе.
Программа chsh, которая изменяет поле оболочки по умолчанию в /etc/passwd, существует уже несколько десятилетий и позволяет обычным пользователям изменять свою оболочку по умолчанию, поэтому даже для изменения оболочки по умолчанию пользователю не требуются права суперпользователя.
Если это имеет значение, ничто не требует, чтобы оболочка по умолчанию для идентификатора пользователя была интерпретатором командной строки. Если в системе есть пользователи, которые настаивают, что они хотят использовать систему только для редактирования, и не хотят разбираться, как использовать другие запутанные программы системы, их оболочка по умолчанию может быть изменена на программу редактирования. Geo Swan ( обсуждение ) 16:55, 14 октября 2011 (UTC)
В разделе Файлы конфигурации для оболочек говорится, что /etc/csh.cshrc и /etc/csh.login используются csh. Похоже, это не относится к csh SunOS 4.1.4. Я проверил это, и на странице руководства для csh сказано:
ФАЙЛЫ ~/.cshrc Читается в начале выполнения каждым оболочка. ~/.login Читается оболочками входа после .cshrc в авторизоваться. ~/.logout Читается оболочками входа при выходе из системы. ~/.history Сохранение истории для использования при следующем входе в систему. /tmp/sh* Временный файл для `<<'. /etc/passwd Источник домашних каталогов для `~name'.
В статье говорится:
В системах Unix оболочка по-прежнему является языком реализации сценариев запуска системы, включая программу, запускающую оконную систему, программы, обеспечивающие доступ к Интернету, и многие другие важные функции.
Я считаю, что это не совсем так. Системщики изо всех сил пытаются исключить роль оболочки в запуске системы. — Предыдущий неподписанный комментарий добавлен 89.67.52.124 (обсуждение) 15:22, 21 июля 2013 (UTC)
— Предыдущий неподписанный комментарий добавлен Theowoll ( обсуждение • вклад ) 18:04, 16 марта 2013 (UTC)
Тот факт, что существует шаблон main , не означает, что его следует использовать в любой ситуации. Использование здесь противоречит тому, что даже указано в документации шаблона. Его не следует использовать для избежания встроенных ссылок. К сожалению, люди делают это постоянно, не изучив достоинства. Эти основные ссылки нарушают поток разделов и статей. Акцент делается на навигации, а не на содержании. Наличие заголовка раздела, затем основной ссылки и еще одного упоминания того же заголовка в первом предложении раздела, часто в самых первых словах, делает стиль плохим. Простой встроенной ссылки вполне достаточно. Kbrose ( talk ) 18:23, 3 апреля 2014 (UTC)
RJaguar3 поставил под сомнение добросовестное использование изображения рабочего стола, File:TcshAndShScreenCapture.png, которое появляется в верхней части этой статьи, утверждая, что "Свободное изображение может быть взято из командной оболочки в Linux без всех несвободных элементов (таких как панель задач внизу изображения)".
Я создал скриншот около 5 лет назад и предложил свои мысли, объяснив, почему я считаю его приемлемым. Но я предполагаю, что каждый волен высказать по этому вопросу свои собственные мысли. Msnicki ( обсуждение ) 21:52, 7 марта 2015 (UTC)
{{Di-replaceable fair use disputed}}
На самом деле оригинальную оболочку UNIX написал Кен Томпсон, а не Стив Борн.
Серьёзное использование оболочки в качестве языка сценариев произошло в 1975 году с появлением [PWB shell], и это описывает историю.
Использование командного языка как языка программирования высокого уровня было докладом на конференции IEEE COMPSAC 1976 года. Прочитайте его, чтобы узнать, какие функции были добавлены в оболочку Томпсона. В то время этот сайт был крупнейшим комплексом UNIX общего пользования в Bell Labs, поэтому там было много пользователей.
Обратите внимание, что дело было не столько в том, что Bourne sh "выиграл" у конкурентов, сколько в том, что я уже расширил PWB SH настолько, насколько это имело смысл, чтобы оставаться совместимым снизу вверх, и провел *много* времени в обсуждениях со Стивом о функциях SH, а с ним и Деннисом о соответствующих функциях ОС, таких как переменные среды, которые закрепились только в начале 1978 года. Многие другие участвовали в совещаниях "целевой группы оболочки". Люди были рады перейти на что-то написанное с нуля (хотя ALgol 68 не был так популярен), но не хотели терять функциональность, которая оказалась полезной за годы использования. Стив потратил много времени на настройку производительности и добавление функций, чтобы получить поддержку от большого сообщества пользователей PWB SH.
Итак, реальная история: 1969 - оболочка Томпсона, в основном для терминального использования и простых скриптов.
1975 - Оболочка PWB, включающая переменные, больше управляющих структур, поиск пути и т. д. ... все необходимое для широкого использования
1977-1978 много обсуждений, у меня до сих пор сохранились некоторые заметки. Функция Environment Variable не была установлена до начала 1978 года, а UNIX V7 появился позже.
1978- - C-shell, особенно важен для интерактивных функций JohnMashey ( обсуждение ) 23:34, 25 сентября 2015 (UTC)
1979 - UNIX V7 с оболочкой Bourne, выпущенной внешней компанией, насколько я помню JohnMashey ( обсуждение ) 02:42, 30 сентября 2015 (UTC)
Действительно ли эта таблица полезна? Я склонен выбросить все это и сократить весь раздел до пары предложений, чтобы объяснить, что поведение оболочки Unix обычно можно настроить с помощью скриптов конфигурации, выполняемых при запуске и выходе. Прежде чем я удалю всю таблицу, что может вызвать недовольство у людей, могу ли я услышать несколько комментариев, пожалуйста? Msnicki ( talk ) 19:03, 24 октября 2015 (UTC)
В https://en.wikipedia.org/wiki/Unix_shell#Early_shells есть предложение:
По мере того, как программирование оболочек становилось все более распространенным, эти внешние команды были включены в саму оболочку для повышения производительности.
Учитывая контекст этого раздела, фраза «эти внешние команды» не имеет смысла – я не думаю, что раздел упоминает внешние команды где-либо еще, кроме этой фразы. Я знаю, что есть некоторые внешние команды, такие как echo
, которые являются внешними командами, а также встроенные команды оболочки.
MeekMark ( обсуждение ) 14:45, 17 июня 2021 г. (UTC)
В статье говорится: «Оболочка скрывает детали базовой операционной системы...»
Это интуитивно понятно, привлекательно и неверно в качестве объяснения происхождения термина. В меморандуме Луи Пузена 1965 года[4] было ясно указано, что «внутри» оболочки находится не операционная система (супервизор), а процедуры, которые она запускала (стр. R-3). Целью его оболочки было создание и последующее взаимодействие с активными процедурами. Это то, что делают и оболочки Unix, заменяя «активную процедуру» на «процесс». — Предыдущий неподписанный комментарий добавлен 170.41.209.67 (обсуждение) 15:54, 26 августа 2022 (UTC)