Документ взят из кэша поисковой машины. Адрес оригинального документа : http://uneex.lorien.cs.msu.su/LecturesCMC/LinuxShell2008/04/01ShellHistory
Дата изменения: Unknown
Дата индексирования: Sun Apr 10 05:57:01 2016
Кодировка: UTF-8
LecturesCMC/LinuxShell2008/04/01ShellHistory - UNИX

Хронология шеллов

Лектор открыл новый класс мышей, есть такая китайская фирма а4. Они стоят рублей 100-200-300, у них никаких закидонов, они сами собой определяются, дешево и сердито.

У нас в позапрошлый раз про перенаправление ввода-вывода. Лектору пришло в голову, что больщую часть курса можно найти в мане по шеллу, но не все маны по шеллу одинаково банальны. Мы так бодро взялись за то, что умеет шелл, и в конце лектор начал рассказывать, что умеет зыш или баш. Здесь разумно вспомнить дерево разнообразных шеллов на предмет того, чтобы в них ориентироваться, и поговорить о явлении под названием башизм. Вспоминая первое сборище, лектор патлся набросать концепцию упр.компьютеров с ком. строки. Шелл это интегратор, есть много инструментов, которые работают с системой, есть два пространства имен, ФС и тест в них, а мы же, когда говорим про управление, должны вообразить клей или конструктор, всякии винтики-шпунтики-резиновые-колекчки, с помощью которых собираются решения. Главное свойство, которое мы требуем от шелла --- быть конструктором.

Мы возвращаемся к функциям оболочки. Такую оболочку быстро изобрели, собственно sh, автор Стивен Борн, это была довольна простая штука, и целью создания такого довольно простого, БСД-лайк шелла, была оболочка. Две другие задачи практически не рассматривались. Поскольку доволно скоро выяснилось, что эти три составляющие --- важная вещь, было изобретен альтернативный шелл, csh, у которого был синтаксис, другой, похожий на язык С, дабы не умножать сущности сверх необходимости. Но поскольку С был предназначен для других целей, трудно придумать области, где они были одинаково хороши, и он не был похож на язык С, люди путались, синтаксис у него был странненьким, но даже в области программирования цыш был лучше ш, в области редактирования тоже.

Довольно долго эта парочка существовала в таком виде, но и тогда стало ясно, что программировать лучше на шелле, а не на с-шелле. В недрах коммерческих юниксов разрабтывался ksh, который сейчас pdksh (public domain ksh), он продолжал sh, в него включены были многие функции, которые есть в sh, была лучше редактирование, скриптование, но он долгое время был несвободный, поэтому нужно было что-то предпринимать. В то же врем появился bash --- Bourne Again SHell, это была уже весьма продвинутая программа, написанная с помощью библиотеки readline. Там феерически был доработан интерфейс ком. строки, язык программирования, глубоко были доработаны средства интеграции. Параллельно с этим вышла ветка tcsh, которая перекрывала баш по всем статьям, кроме одного, синтаксис там был с-шелльный, и лет десять назад считалось, что работать надо в tcsh, программировать в шелле. Ну и zsh, самый продвинутый. Где-то в это время случилось знаменательное событие --- свойства sh были стандартизованы в POSIX. В каком-то классич представлении ни одна из этих программ не совместима с POSIX, наиболее похожи bash и zsh в режиме POSIX, но есть еще два проекта --- sh в FreeBSD, что же касаемо дистрибутивов Linux, dash/ash, это программы, которые считаются в достаточной степени совместимы с POSIX, чтобы на них программировать. Есть одно отличие такая нудность в трактовке посиха.

Обратите внимание, что все это идет в развитии. Все эти программные продукты пишутся, развиваются. Тот факт, что существует стандарт, не мешает пользоваться нестандартными фичами, кроме того, удобство командной строки в стандарте не прописано. Тем не менее, если писать, то писать наиболее близко к стандарту, чтобы понимали все. Что же касается Линукса, то вероятность наличия там баша близится к 100 процентам, и есть такое явления, под названием башизм, когда пишут на баше. Среди крутых это считается моветоном. Еще одним моветоном, даже большим, сччитается работа с терминалом, считая, что это линукс терминал, то есть, жестко забитый еск-последоватекльности в скрипте для линух-терминалов.

Мы будем придерживаться мана по ash, но будем делать лирические отступления в область других шеллов, где этого недостаточно. В чем особенность --- неполное описание, постоянные ссылки на ПОСИХ. При этом этот мануал становится читаемым, в нем 25 страниц, в отличие от 400 страниц по zsh.

Лектор преупреждает о том, что считается моветоном писать использование фич баша. Тем не менее, лектор удивился, сколько штук включено в посих. Хотя, лектор напоминает, что и у баша, и у зыша есть ключ, котрый запускает их в компатибилити мод.


Сведения о ресурсах

Готовность (%)

Продолжительность (ак. ч.)

Подготовка (календ. ч.)

Полный текст (раб. д.)

Предварительные знания

Level

Maintainer

Start date

End date

0

1

1

1

1

PavelSutyrin, ОльгаТочилкина, MaximByshevskiKonopko


CategoryLectures CategoryCmc CategoryUneex

LecturesCMC/LinuxShell2008/04/01ShellHistory (последним исправлял пользователь eSyr 2008-07-24 22:12:34)