Заметки о Unix: история Unix до readline

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.
Unix и программы, работающие в этой ОС, существуют уже очень давно. В частности, библиотека GNU Readline появилась в 1989 году (как и Bash). Времени существования этой библиотеки (и подобных проектов) вполне достаточно для того чтобы она стала бы распространённым инструментов Unix-оболочек. В наши дни совершенно естественно воспринимать readline как нечто такое, что всегда было в Unix. Но, конечно, на самом деле это не так. Unix в её современном виде ведёт историю от V7 (1979) и 4.2. BSD (1983), поэтому множество Unix-дистрибутивов было разработано до появления readline. Это, в некоторой степени, сделало их такими, какими они были.



(Нельзя сказать, что GNU Readline и Bash были первоисточниками возможностей редактирования и автодополнения команд, да и прочего подобного «в стиле readline». В Unix похожие методы работы восходят, как минимум, к 1983 году, к tcsh. Но оболочка tcsh, по разным причинам, не получила широкого распространения.)

Одним из очевидных последствий отсутствия readline было появление командной оболочки csh. Эта оболочка поддерживала множество инструментов для работы с историей команд. Их работа была основана на внедрение в командную строку особых строк. Обратимся к справке по csh из 4.2. BSD:

Механизмы подстановки из истории команд используют слова из ранее введённых команд в роли частей новых команд. Это упрощает повторение команд или аргументов ранее введённых команд в текущей команде. Благодаря этому упрощается и исправление опечаток в ранее введённых командах — для этого приходится вводить меньше символов, к тому же, такой стиль работы даёт больший уровень уверенности в правильности исправленной команды. Работа системы подстановки из истории основана на использовании символа !, который может быть расположен в любом месте входного потока (при условии того, что не образуются вложенные конструкции).

Пожалуй, самой известной среди пользователей tcsh командой подстановки из истории является !!, которая повторяет предыдущую команду. В Bash есть похожий механизм, cf, и даже сегодня в руководстве по Bash есть указание на сходство cf с csh-версией соответствующего инструмента. Полагаю, что в наше время большинство тех, кто использует Bash, не применяет механизмы Bash для работы с историей команд, а просто прибегает к readline-инструментам, с которыми обычно проще работать.

(Это — очевидное наблюдение, но с течением времени детали прошлого Unix различимы всё слабее, поэтому легко забыть о том, как далеко в прошлое уходит история некоторых из частей этой ОС. По крайней мере, для меня это именно так.)

P.S. У меня возникает такое ощущение, что широкая распространённость механизмов автодополнения команд и имён файлов понемногу влияет на то, какие имена команд и файлов применяют пользователи. Во времена, когда автодополнения не было, очень важным было то, чтобы имена команд и файлов были бы как можно короче. Неважно было то, что они могли быть очень похожи друг на друга, что могло бы привести к тому, что системе автозавершения ввода было бы сложно их различать. Как известно, короткие имена команд пользуются популярностью в Unix. Такие команды можно вводить быстрее, чем более длинные. В окружении V7 это имеет большое значение.

Пользуетесь ли вы tcsh?
Источник: https://habr.com/ru/company/ruvds/blog/542378/


Интересные статьи

Интересные статьи

Для чего вообще нужен docker контейнер? Обычно, во время разработки, для каждого проекта вы настраиваете своё окружение. Но вот произошла такая ситуация: что-то случ...
В прошлом году прочёл пару интересных статей об отменённой Agent — возможного хита Rockstar. Первая история, на основе анонимных интервью, получилась довольно «унылой». П...
Вы можете не знать английского, но слова «hello» и «hi» поймете даже в этом случае. Это одни из самых распространенных слов в английском. Носители языка их используют каждый день. И с...
У Элизабет Пирс была большая мечта. Построить подводный кабель, который дал бы Аляске (а потом – Японии, Гренландии, Канаде, Британии и так далее) доступ к быстрому интернету. Задача действит...
2016 год. Жара. Нижний Новгород. На стоянке ретро-ралли «Пекин — Париж» толпился народ, около огромной La France стоял парень и что-то бормотал, наводя смартфон на каждую деталь. Я прислушалась, ...