[ Content | View menu ]

Что означают названия некоторых команд в Unix

Опубликовано 07.12.2008

Знание истории происхождения вещей и их названий, будь это простой карандаш, автомобиль или же команда операционной системы, делает их повседневное использование намного интереснее. В этой заметке я постараюсь осветить некоторые неизвестные широкой публике аспекты наименования нескольких программ, используемых в операционной системе Unix и её родственниках: Solaris, Linux, *BSD и т.д.

По мотивам страницы What does {some strange unix command name} stand for?

awk
Aho, Weinberger, Kerninghan
Первые буквы фамилий разработчиков языка, сотрудников Центра Компьютерных Исследований Bell Labs: Альфред Ахо (руководитель исследований в этом центре с 1963 по 1991 и с 1997 по 2002 годы, сейчас — профессор Колумбийского университета в Нью-Йорке), Питер Вейнбергер (в 1985 году его стилизованный портрет стал своеобразным мемом исследовательского центра Bell Labs) и Брайан Керниган (известен прежде всего как соавтор одной из первых книг про язык C)

grep
Global regular expression print
По одной из версий, название «grep» происходит от команды редактора ed для печати всех строк, соответствующих регулярному выражению (regular expression, re): g/re/p

fgrep
Fixed grep
Команда fgrep ищет заданные фиксированные строки в файлах; список этих строк может быть прочитан из другого файла. «F» означает «fixed». Распространено заблуждение, что «f» означает «fast». Это не так: fgrep может работать медленнее egrep, однако его использование может дать преимущество при поиске бОльшего количества фиксированных подстрок, чем egrep может обработать.

egrep
Extended grep
Команда egrep использует более мощные регулярные выражения, чем grep, а также является самой быстрой из тройки grep, fgrep и egrep.

cat
Catenate
«Catenate», туманное слово, означающее «соединять в последовательности», то есть то, что команда cat делает с одним или несколькими файлами. Никакой связи с аббревиатурой C/A/T (Computer Aided Typesetter, компьютерная система верстки, весьма распространённое на западе сокращение) здесь нет.

nroff
new roff
troff
Typesetter new roff
Система форматирования текстов roff является одной из центральных частей любой Unix системы. Именно благодаря ей происходит подготовка документации man к отображению на экране. Собственно, эволюция Unix неразрывна связана с развитием этой программы. Ее первая версия, под названием RUNOFF, была написана для CTSS (первой операционной системы с разделением машинного времени) в 60-х годах Джеромом Сальтцером, затем была переписана для Multics с ассемблера CTSS на BCPL, чуть позже — на PL/I. В 70-х годах её возможности перестали удовлетворять возросшим потребностям пользователей, поэтому функциональность программы runoff, уже портированной на первый Unix, была значительно расширена Джозефом Осанной, а название сокращено до roff. После этого Брайан Керниган портировал ее с ассемблера PDP-11 на C и в 1976 году выпустил в свет первую версию спецификации Troff User’s Manual. Таким образом roff приобрел классический вид, во многом оставшийся неизменным до сих пор.

Само название «run off» происходит от типографского термина «run off» — «печатать тираж».

tee
Название команды tee происходит от термина «tee» — Т-образное сочленение труб. Сама программа копирует свой стандартный вход в указанный файл и в терминал пользователю, что очень напоминает поведение потока при проходе через такое сочленение.

biff
Программа biff использовалась в BSD-системах для срочного оповещения пользователя, работавшего в консоли, о пришедшей почте. Автором официальной версии происхождения названия является Эрик Купер:

Могу рассказать о происхождении названия biff, если интересно. Бифф был собакой Хейди Стетнер, когда Хейди, я и Билл Джой (один из отцов BSD и сооснователь Sun Microsystems) были студентами в Беркли и ранние версии BSD еще разрабатывались. Бифф был весьма популярен среди обитателей Эванс Холла и прославился тем, что лаял на почтальона, отсюда и название команды

По сведениям из книги «25 лет UNIX» Питера Салюса, выпущенной в 1994 году, пёс Бифф действительно существовал и дал своё имя программе, однако он не лаял на почтальона: Хейди утверждала, что это гнусный поклёп. Бифф был очень дружелюбной собакой и обожал гоняться за мячиками по коридорам общежития. Вместе с Хейди он посещал занятия и однажды даже получил там оценку «B»; его портрет висел на доске объявлений с пояснением, что он работает над dog’торской диссертацией. Бифф умер в 1993 году в возрасте 15 лет.

rc (~/.cshrc или /etc/rc)
runcom
Сочетание «rc» происходит от названия программы RUNCOM из вышеупомянутой системы CTSS. Эта программа запускала программы, перечисленные в файле; и такой файл также назывался runcom, сокращённо «rc».

Впоследствии от RUNCOM произошли многие современные шеллы. В частности, оболочка в Plan 9 так и называлась — rc.

bash
Bourne Again Shell
Игра слов, основанная на схожести звучания «Bourne» (фамилия автора оболочки sh Стивена Борна), и «born» (рождённый). Словосочетание «born again» (рождённый заново, возрождённый), в свою очередь, имеет также и религиозную подоплёку: во многих протестантских конфессиях понятие духовного возрождения является ключевым, да и в православии и католицизме второе, духовное, рождение (более известное как крещение) играет не последнюю роль. Это словосочетание было на слуху благодаря разнообразным американским протестантским движениям и постоянно употреблялось к месту и не к месту. В частности, так называлась книга одного из фигурантов Вотергейтского скандала Чарльза Колсона, выпущенная в 1975 году.

dd
Цитата из отличной статьи DD: команда, которая не похожа на другие:

Команда dd практически ровесник ОС Юникс. Днем рождения последней считается 1 января 1970, и точно известно, что уже в 1970 году утилита dd работала с ленточными накопителями, при помощи которых данные переносили с одной ЭВМ на другую, а также запускали и устанавливали ОС Юникс на популярные тогда мини-ЭВМ PDP/11.

Расшифровка названия команды тоже относится к этим давно ушедшим временам. В языке IBM System/360 JCL был оператор DD ‘Dataset Definition’ (Определение набора данных), имя которого и получила вновь созданная команда.

Расшифровок приходилось встречать много, в частности в рунете популярна расшифровка Disk Dump (не то разгрузка, не то загрузка диска) — версия слабая, так как в описываемые времена ни дисков, ни дампов (что бы под ними не понимали) еще не было. Гораздо ближе к сути команды шутливые расшифровки: «data destroyer» или «delete data», что можно перевести как «Доконай Диск» или «Добей Данные», потому что при неправильном использовании команды раздел или выходной файл мгновенно превращаются в хлам.

vi
Кратчайшее недвусмысленное сокращение для команды перехода в визуальный режим (:visual) в строковом редакторе ex (команда :v выполняет некую команду для строк, не соответствующих заданному шаблону)

vim
Vi IMproved
Улучшенный vi.

apache
Производное от «a patchy server» — на ранних стадиях разработки apache представлял собой набор патчей к NCSA HTTPd 1.3

squid
Squid FAQ:

Жалоба Харриса гласит: «все хорошие уже заняты». Нам нужно было как-то отделить наше детище от программы Harvest. Кодовым именем новой разработки было «squid», так и привязалось.

Традиционный бонус для дочитавших до этого места :)

Слово «карандаш» образовано от тюркского «karadas» — «сланец», «графит» (kara — «черный» и das — «камень»). Первые прототипы карандашей — палочки, изготовленные из смеси свинца с цинком, появились уже в XIV веке. В XVI веке в Англии был обнаружен графит, стержни из которого можно было использовать в качестве пишущего инструмента, обернув их в тряпочку; современный вид (смесь графита с глиной в разных пропорциях внутри деревянного корпуса) карандаш приобрёл в XVIII веке. Первые механические карандаши появились уже в 1869 году. Еще одной важной вехой в развитии карандашной промышленности была мысль о том, что карандаши лучше делать многогранными для избежания их скатывания по наклонной поверхности.

«
»

2 комментария

Write a comment - TrackBack - RSS Comments

  1. Comment by Денис:

    >cat

    Насколько я понимаю, то catenate это цепь, а соединять в последовательности это concatenate, что по-русски часто употребляют как «конкатенация». Хотя на истину в первой инстанции не претендую. Если ошибаюсь – поправьте.

    10.12.2008 @ 15:15
  2. Comment by peter:

    Насколько я понимаю, следует пользоваться словарём, а не придумывать свои переводы общеизвестным словам. https://translate.google.ru/?client=opera&q=catenate&oe=utf-8&ie=UTF-8&sl=en&tl=ru&sa=X&ei=TaWZU5eDMqO7ygOt2IKYAg

    12.06.2014 @ 17:08
Write comment

Я не робот.