Jump to content

оболочка Unix

(Перенаправлено из оболочки POSIX )
Окна оболочки tcsh и sh в Mac OS X Leopard [1] рабочий стол

Оболочка Unix — это командной строки интерпретатор или оболочка , которая обеспечивает пользовательский интерфейс командной строки для Unix-подобных операционных систем . Оболочка является одновременно интерактивным командным языком и языком сценариев и используется операционной системой для управления выполнением системы с помощью сценариев оболочки . [2]

Пользователи обычно взаимодействуют с оболочкой Unix, используя эмулятор терминала ; однако прямая работа через последовательные аппаратные соединения или Secure Shell для серверных систем обычно используется . Все оболочки Unix обеспечивают подстановочные знаки файлов , конвейерную обработку , здесь документы , подстановку команд , переменные и структуры управления для проверки условий и итерации .

Концепция

[ редактировать ]

Как правило, оболочка — это программа, которая запускает другие программы в ответ на текстовые команды. Сложная оболочка также может изменить среду, в которой выполняются другие программы, передавая именованные переменные , список параметров или источник входных данных.

В Unix-подобных операционных системах пользователи обычно имеют множество вариантов интерпретаторов командной строки для интерактивных сеансов. Когда пользователь входит в систему в интерактивном режиме, программа оболочки автоматически выполняется на время сеанса. Тип оболочки, который можно настроить для каждого пользователя, обычно хранится в профиле пользователя, например в локальном каталоге. passwd или в распределенной системе конфигурации, такой как NIS или LDAP ; однако пользователь может запустить любую другую доступную оболочку в интерактивном режиме.

В операционных системах с оконной системой , таких как macOS и настольные дистрибутивы Linux , некоторые пользователи могут никогда не использовать оболочку напрямую. В системах Unix оболочка исторически была языком реализации сценариев запуска системы, включая программу, которая запускает оконную систему, настраивает сеть и многие другие важные функции. Однако некоторые поставщики систем заменили традиционную систему запуска на основе оболочки ( init ) другими подходами, такими как systemd .

Ранние снаряды

[ редактировать ]

Первой оболочкой Unix была оболочка Томпсона sh . , написанная Кеном Томпсоном из Bell Labs и распространявшаяся вместе с версиями Unix с 1 по 6 с 1971 по 1975 год [3] Хотя по современным стандартам он был элементарным, он представил многие основные функции, общие для всех более поздних оболочек Unix, включая конвейеризацию, простые структуры управления с использованием if и gotoи подстановочные знаки имени файла. Хотя он и не используется в настоящее время, он все еще доступен как часть некоторых древних систем UNIX.

Он был смоделирован по образцу оболочки Multics , разработанной в 1965 году американским инженером-программистом Глендой Шредер . Оболочка Multics Шрёдера сама была смоделирована по образцу RUNCOM, программы которую Луи Пузен показал команде Multics. Суффикс «rc» в некоторых файлах конфигурации Unix (например, «.vimrc») является остатком RUNCOM-родословной оболочек Unix. [1] [4]

Оболочка PWB или оболочка Mashey, sh , была версией оболочки Thompson, совместимой с предыдущими версиями, дополненной Джоном Маши и другими и распространявшейся вместе с Programmer's Workbench UNIX примерно в 1975–1977 годах. Он был сосредоточен на том, чтобы сделать программирование оболочки практичным, особенно в крупных общих вычислительных центрах. В него были добавлены переменные оболочки (предшественники переменных среды , включая механизм поиска пути, который превратился в $PATH), исполняемые пользователем сценарии оболочки и обработка прерываний. Структуры управления были расширены с if/goto на if/then/else/endif, switch/breaksw/endsw и while/end/break/continue. По мере того как программирование оболочки стало широко распространенным, эти внешние команды были включены в саму оболочку для повышения производительности.

Но наиболее широко распространенными и влиятельными из ранних оболочек Unix были Bourne и C. оболочки Обе оболочки использовались в качестве базы кодирования и модели для многих производных и аналогичных оболочек с расширенными наборами функций. [5]

Оболочка Борна

[ редактировать ]

Оболочка Bourne , sh , была новой оболочкой Unix, разработанной Стивеном Борном из Bell Labs. [6] Распространяемая как оболочка для UNIX версии 7 в 1979 году, она представила остальные основные функции, считавшиеся общими для всех более поздних оболочек Unix, включая здесь документы , подстановку команд , более общие переменные и более обширные встроенные структуры управления . Язык, включая использование перевернутого ключевого слова для обозначения конца блока, был создан под влиянием АЛГОЛА 68 . [7] Традиционно имя программы оболочки Bourne — sh и его путь в иерархии файловой системы Unix: /бин/ш . Но также доступен ряд совместимых аналогов с различными улучшениями и дополнительными функциями. Во многих системах sh может быть символической ссылкой или жесткой ссылкой на одну из этих альтернатив:

Стандарт POSIX определяет свою стандартную оболочку как строгое подмножество оболочки Korn , расширенной версии оболочки Bourne. С точки зрения пользователя активная оболочка Bourne сразу распознавалась по характерному символу приглашения командной строки по умолчанию — знаку доллара ( $ ).

оболочка C

[ редактировать ]

Оболочка C , csh , была смоделирована на языке программирования C, включая структуры управления и грамматику выражений. Он был написан Биллом Джоем, будучи аспирантом Калифорнийского университета в Беркли , и широко распространялся вместе с BSD Unix . [9] [ нужен лучший источник ]

Оболочка C также представила множество функций для интерактивной работы, включая механизмы истории и редактирования , псевдонимы , стеки каталогов , нотацию тильды , cdpath , управление заданиями и хеширование путей . Во многих системах csh может быть символической ссылкой или жесткой ссылкой на оболочку TENEX C (tcsh), улучшенную версию исходной версии Joy. Хотя интерактивные функции csh были скопированы в большинство других оболочек, структура языка не получила широкого распространения. Единственным аналогом является оболочка Hamilton C , написанная Николь Гамильтон, впервые распространяемая на OS/2 в 1988 году и на Windows с 1992 года. [10]

Конфигурационные файлы

[ редактировать ]

Оболочки читают файлы конфигурации в различных обстоятельствах. Эти файлы обычно содержат команды для оболочки и выполняются при загрузке; они обычно используются для установки важных переменных, используемых для поиска исполняемых файлов, таких как $PATH и других, которые контролируют поведение и внешний вид оболочки. В таблице этого раздела показаны файлы конфигурации для популярных оболочек. [11]

Конфигурационный файл ш кш csh ткш бить zsh
/etc/.login авторизоваться авторизоваться
/etc/csh.cshrc да да
/etc/csh.login авторизоваться авторизоваться
~/.tcshrc да
~/.cshrc да да [а]
/etc/ksh.kshrc инт.
/etc/sh.shrc инт. [б]
$ENV (обычно ~/.kshrc ) [12] инт. [с] [д] инт. инт. [и]
~/.логин авторизоваться авторизоваться
~/.выйти авторизоваться авторизоваться
/etc/профиль авторизоваться авторизоваться авторизоваться авторизоваться [ф]
~/.профиль авторизоваться авторизоваться авторизоваться [г] авторизоваться [ф]
~/.bash_profile авторизоваться [г]
~/.bash_login авторизоваться [г]
~/.bash_logout авторизоваться
~/.bashrc int.+n/логин
/etc/zshenv да
/etc/zprofile авторизоваться
/etc/zshrc инт.
/etc/злогин авторизоваться
/etc/zlogout авторизоваться
~/.zshenv да
~/.zпрофиль авторизоваться
~/.zshrc инт.
~/.zlogin авторизоваться
~/.zlogout авторизоваться

Объяснение:

  • пусто означает, что файл вообще не читается оболочкой.
  • «да» означает, что файл всегда читается оболочкой при запуске.
  • «вход» означает, что файл читается, если оболочка является оболочкой входа в систему.
  • «n/login» означает, что файл читается, если оболочка не является оболочкой входа в систему.
  • "инт." означает, что файл читается, если оболочка интерактивна.
  1. ^ только если ~/.tcshrc не найден
  2. ^ Только новые версии Bourne Shell.
  3. ^ Доступно в системах, поддерживающих «опцию пользовательских утилит переносимости»; значением переменной должен быть абсолютный путь, и оно игнорируется, «если реальный и эффективный идентификаторы пользователя или реальные и эффективные идентификаторы группы различны». [13]
  4. ^ $ENV — это $HOME/.shrc в новых версиях Bourne Shell
  5. ^ То же поведение, что и sh , но только если он вызывается как sh (bash 2+) или, начиная с bash 4.2, также, если он вызывается явно в режиме совместимости POSIX (с параметрами --posix или -о позикс ). [14]
  6. ^ Jump up to: а б Только в режиме совместимости sh/ksh (при вызове как bash, sh, ksh)
  7. ^ Jump up to: а б с Первый читаемый файл в порядке ~/.bash_profile , ~/.bash_login и ~/.профиль ; и только ~/.profile, если вызывается как sh или, по крайней мере, начиная с Bash 4.2, если он вызывается явно в режиме совместимости POSIX (с параметрами --posix или -о позикс )

Другие снаряды

[ редактировать ]

Вариации концепции оболочки Unix, которые не происходят от оболочки Bourne или оболочки C, включают следующее: [15]

См. также

[ редактировать ]
  1. ^ Jump up to: а б Том Ван Флек (5 февраля 1995 г.). «Юникс и мультики» . Multicians.org . Проверено 14 августа 2012 г.
  2. ^ Борн, Стивен Р. (октябрь 1983 г.). «Оболочка Unix» . БАЙТ . п. 187 . Проверено 30 января 2015 г.
  3. ^ «Порт V6 Thompson Shell — История» . V6shell.org . Проверено 14 августа 2012 г.
  4. ^ Луи Пузен (25 ноября 2000 г.). «Происхождение ракушки» . Multicians.org . Проверено 14 августа 2012 г.
  5. ^ Николай Безруков (13 августа 2015 г.). «Введение в историю оболочки Unix» . Мягкая панорама. Архивировано из оригинала 8 июня 2022 г. Проверено 21 августа 2016 г.
  6. ^ Борн, Стивен (5 марта 2009 г.). «А-Я языков программирования: оболочка Bourne, или sh» (интервью). Беседовал Говард Дада. Компьютерный мир . Проверено 16 августа 2022 г.
  7. ^ « Re: Возвращение к поздним цветущим людям » . Проверено 20 сентября 2014 г.
  8. ^ Корн, Дэвид Г. (26 октября 1994 г.), «ksh - расширяемый язык высокого уровня» , Труды симпозиума USENIX 1994 г. по языкам очень высокого уровня , Ассоциация USENIX , получено 5 февраля 2015 г. , Вместо изобретения нового скриптового языка, мы создали систему ввода форм, изменив оболочку Bourne, добавив при необходимости встроенные команды.
  9. ^ Харли Хан, Руководство Харли Хана по Unix и Linux: Хронология Unix/Linux .
  10. ^ «Оболочка Hamilton C для примечаний к выпуску Windows 4.0» . Проверено 20 сентября 2014 г.
  11. ^ «Различные оболочки UNIX» . unixnote.com. 2010. Архивировано из оригинала 3 апреля 2016 г. Проверено 21 августа 2016 г.
  12. ^ SCO Unix Group, документация SCO Unixware 7, 22 апреля 2004 г., получено 18 октября 2012 г. .
  13. ^ «Язык команд оболочки» . opengroup.org . Проверено 15 июня 2015 г.
  14. ^ «Справочное руководство Bash: Файлы запуска Bash» . gnu.org . Проверено 15 июня 2015 г.
  15. ^ «Порты FreeBSD: оболочки» . Freebsd.org. 30 марта 2014 г. Архивировано из оригинала 12 января 2021 г. Проверено 5 апреля 2014 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: d119417e77b4394687c8de578ff36c3f__1722040020
URL1:https://arc.ask3.ru/arc/aa/d1/3f/d119417e77b4394687c8de578ff36c3f.html
Заголовок, (Title) документа по адресу, URL1:
Unix shell - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)