Происхождение названий некоторых команд Unix

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

    Перепечатка моей статьи, написанной, в свою очередь, по мотивам страницы 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, troff


    new roff, 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 приобрел классический вид, во многом оставшийся неизменным до сих пор.

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

    tee


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

    biff


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

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

    rc


    runcom
    Сочетание «rc», используемое в названиях некоторых файлов и каталогов (~/.bashrc или /etc/rc.d), происходит от названия программы 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 году. Еще одной важной вехой в развитии карандашной промышленности была высказанная в конце XIX века мысль о том, что карандаши лучше делать многогранными для избежания их скатывания по наклонной поверхности. После этого карандаши больше не меняли свою форму.
    Поделиться публикацией

    Похожие публикации

    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 37

      +28
      За карандаш — зачет!
        +3
        познавательно
          +6
          Кроме awk и apache ничего интересного так как все содержится в хелпах, доках или на сайте… так что если вы пользуетесь bash, vim или бывали на сайте сквида то все это знаете.
          зато про более интересные вещи ничего не упомянуто, например
          umount — прижившаяся историческая опечатка в команде unmount, баг по сути из которого сделали фичу…
            0
            Мне было интересно прежде всего покопаться в архивах в поисках подтверждения или опровержения той или иной версии, не считая википедии. Про umount думал написать, но ничего про это не нашел.
              0
              В Unix-мире очень любят подобные сокращения-опечатки: команда passwd, системный вызов creat…
                +3
                Пересев много лет назад на линукс, долго искал uNmount. :) Пришлось гуглом воспользоваться.
              +3
              Полезно и познавательно. dd вообще, значит, команда-старушка… Почти у каждой команды своя интересная история, спасибо!
                +3
                Команды и традиции Unix отточены десятилетиями =)
                  +2
                  Команда tar, кстати, почти такая же старая — изначально она предназначена для работы с бэкапами на магнитных лентах (объединяя множество файлов в один и записывая его), а сейчас используется как самый распространённый архиватор для Unix-систем, поддерживая сжатия gz, bz, и другие возможности.

                  «The name „Tar“ comes from this use; it stands for tape archiver.» — www.gnu.org/software/tar/
                    0
                    Сейчас прочитал, что tar использует внешние программы для упаковки результатов своего труда :). Но, всё же, делает это совершенно прозрачно для пользователя.
                      0
                      Есть ещё star, который автоматически определяет тип архива при распаковке. А tar просто склеивает файлы в один с возможностью последующего разделения, в отличие от cat. :D
                        0
                        Современный tar (1.20, по крайней мере) уже сам это делает. То, что старый не умеет так, я узнал, сев за древнюю федору после современной Gentoo.
                  +2
                  biff порадовал.
                    +4
                    Мне происхождение apache понравилось :)
                      0
                      Спасибо за объяснения, а то уже давно все команды вошли в обиход, а происхождения их названий не знаю.
                        0
                        a `wc´?
                          0
                          word count?
                            0
                            слишком тривиально для того, чтобы уделять этому внимание
                            эдак придётся каждую команду из /bin, /sbin, /usr/bin и /usr/sbin расшифровывать, а их там многие тысячи
                              +4
                              ну, для вас тривиально, а для меня буквосочетание «WC» означает уборную
                            +5
                            ls — list segments
                            pwd — print working directory
                            lp — line printer
                            nohup — no hangup
                            sed — stream editor
                            yacc — yet another compiler compiler
                            wc — word count
                              0
                              gcc был когда то GNU C Compiler и только потом стал GNU Compiler Collection…
                              +3
                              Думаю, что cat — скорее всего от конкатенация (склеивание). Разработчик думал примерно так: concatenate -> concat -> cat. :)
                                +1
                                Ещё есть tac — cat наоборот. Переворачивает файл (последняя строка становится первой).
                                  +10
                                  А еще есть мнение, что head, cat и tail вместе образуют кота. :)
                                +1
                                Очень понравилось про dd, сам как-то раз применил от рута %)
                                #dd if=/dev/zero of=/dev/hda
                                  0
                                  А я от обычного пользователя. Каково же было мое удивление, что команда не сказала permission denied… Хорошо, что это были только первые 50М. Потом узнал про софтину testdisk, без которой спасти разметку не представлялось возможным.
                                    0
                                    О, да тестдиск действительно хорош, я про него узнал после использования gpart, который мне в принципе запорол таблицу разделов.
                                  +2
                                  Про vi сказали, про vim тоже, а про emacs забыли. Но в целом за статью спасибо.
                                  Вот варианты расшировки названий этого текстового редактора
                                  Editing MACroS (Изначальная расшифровка)
                                  Eight Megabytes And Continuous Swapping
                                  Escape Meta Alt Control Shift
                                  Eventually Malloc()s All Computer Storage
                                  Emacs Makes Any Computer Slow
                                  Editor for Middle-Aged Computer Scientists
                                  Engine Monitoring And Control System
                                    +1
                                    Я за такие топики. Они помогают быстрее запомнить смысл терминов. Например, хотелось бы узнать, почему
                                    initrd
                                    vmlinuz
                                    grub
                                    lilo
                                      +4
                                      initrd: init ram disk
                                      vmlinuz" ядро первоначальных AT&T Unix называлось unix, когда в BSD написали новое ядро с поддержкой виртуальной памяти, его назвали vmunix, поэтому ядро Linux было названо vmlinux. Затем его сжали и поменяли последнюю букву на z
                                      grub: GRand Unified Bootloader by Erich Boleyn
                                      lilo: Linux Loader
                                      0
                                      Спасибо! очень интересный материал!
                                        0
                                        KDE = K Desktop Environment, где K 1) Просто буква, следующая по алфавиту за L (L означает Linux). Так утверждала справка, когда я пользовался KDE 2) Kool Desktop Environment (заглавие анонса KDE Маттиасом Эттрихом в 1996-м году).
                                        GNOME = GNU Network Object Model Environment
                                        Хотя да, это не совсем команды Unix. :) За топик спасибо, интересно.
                                          0
                                          > K 1) Просто буква, следующая по алфавиту за L
                                          .., K, L,… — так «за» или «после»?
                                            0
                                            Предложенное название KDE расшифровывается просто: Kool Desktop Environment. Почему Kool, а не Cool? По всей видимости, Матиасу Эттриху, «отцу» KDE, это показалось стильным.

                                            Ещё одна версия гласит что KDE это развитие проприетарной среды рабочего стола CDE.
                                            +1
                                            Я до сих пор уверен, что tar произошло от русского затаривать, тарить.
                                            Ну мог быть в группе разработчиков русский человек!
                                              –3
                                              cp?
                                                0
                                                А я думал, что apache назван по имени племени отважных и нустрашимых Апачей

                                                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                Самое читаемое