Абмеркаванне: стандартныя UNIX-утыліты, якія мала хто выкарыстоўваў і выкарыстоўвае зараз

Тыдзень таму Дуглас Макілрай (Douglas McIlroy), распрацоўшчык канвеера UNIX і аўтар паняцця "кампанентна-арыентаванае праграмаванне", распавёў аб цікавых і незвычайных UNIX-праграмах, не якія знайшлі шырокага ўжывання. Публікацыя запусціла актыўнае абмеркаванне <br>Hacker News. Мы сабралі самае цікавае і будзем рады, калі вы далучыцеся да дыскусіі.

Абмеркаванне: стандартныя UNIX-утыліты, якія мала хто выкарыстоўваў і выкарыстоўвае зараз
Фота Virginia Johnson - Unsplash

Праца з тэкстам

У UNIX-падобных аперацыйных сістэмах ёсць стандартны набор прылад для фарматавання тэксту. Утыліта памылка друку дазваляла праглядаць дакумент на наяўнасць памылак друку і гапаксаў - слоў, якія сустракаюцца ў матэрыяле толькі адзін раз. Што цікава, для пошуку памылак друку праграма не выкарыстоўвае слоўнікі. Яна абапіраецца толькі на інфармацыю ў файле і праводзіць частотны аналіз па триграммам (паслядоўнасць з трох знакаў). Пры гэтым усе неабходныя лічыльнікі захоўваюцца у масіве 26x26x26. Па словах Дугласа Макілроя, такога аб'ёму памяці ледзь хапала для некалькіх аднабайтных лічыльнікаў. Таму ў мэтах эканоміі іх пісалі ў лагарыфмічным выглядзе.

Сёння typo замянілі больш сучасныя і дакладныя праграмы праверкі правапісу на аснове слоўнікаў. Аднак пра інструмент усё яшчэ памятаюць - некалькі гадоў таму энтузіяст прадставіў рэалізацыю typo на Go. Рэпазітар абнаўляецца да гэтага часу.

Яшчэ адна прылада для працы з дакументамі з 80-х - пакет Writer's Workbench ад Лорынды Чэры (Lorinda Cherry) і Ніны Макдональд (Nina McDonald) з Bell Labs. У яго склад ўваходзілі інструменты для вызначэння частак гаворкі і стылю дакумента, пошуку таўталогій і залішне складаных прапаноў. Утыліты распрацоўвалі ў якасці дапаможніка для студэнтаў, і адзін час іх выкарыстоўвалі навучэнцы Дзяржаўнага універсітэта Каларада ў ЗША. Але да пачатку дзевяностых аб Writer's Workbench забыліся, таму што яго не ўлучылі ў Version 7 Unix. Аднак гэты інструмент працягнуў дарогу пераймальнікам - напрыклад, Граматыка для IBM PC.

У UNIX таксама маюцца стандартныя сродкі, якія спрашчаюць працу з формуламі. Ёсць прэпрацэсар мовы для афармлення матэматычных выразаў eqn. Ён адметны тым, што для адлюстравання формулы распрацоўніку дастаткова апісаць яе простымі словамі і сімваламі. Ключавыя словы дазваляюць ссоўваць матэматычныя знакі па вертыкалі і гарызанталі, змяняць іх памеры і іншыя параметры. Калі перадаць утыліце радок:

sum from { k = 1 } to N { k sup 2 }

На выхадзе будзе згенеравана наступная формула:

Абмеркаванне: стандартныя UNIX-утыліты, якія мала хто выкарыстоўваў і выкарыстоўвае зараз

У 1980–1990-х eqn дапамагаў ІТ-адмыслоўцам пісаць мануалы да праграмнага забеспячэння. Але пазней яго замяніла сістэма LaTeX, якую выкарыстоўвае нават Habr. Але eqn - гэта першая прылада падобнага класа, які застаецца часткай UNIX-падобных АС.

Праца з файламі

У тэматычным трэдзе рэзідэнты Hacker News адзначылі некалькі рэдка выкарыстоўваных утыліт для працы з файламі. Адной з іх была Прдч для іх параўнання. Гэта - спрошчаны аналаг розніца, заменчаны пад працу ў скрыптах. Яго напісаў сам Рычард Столман (Richard Stallman) разам з Дэвідам Макензі (David MacKenzie).

Вывад праграмы складаецца з трох слупкоў. У першую калонку трапляюць значэння, унікальныя для першага файла, у другой - унікальныя для другога файла. Трэці слупок уключае агульныя значэнні. Для карэктнай працы comm параўноўваныя дакументы павінны быць лексічна адсартаваны. Таму адзін з рэзідэнтаў пляцоўкі прапанаваў працаваць з утылітай у наступным выглядзе:

comm <(sort fileA.txt) <(sort fileB.txt)

Comm зручна выкарыстоўваць для праверкі напісання слоў. Дастаткова параўноўваць іх з эталонным дакументам-слоўнікам. Улічваючы тонкасці, звязаныя з неабходнасцю сартавання файлаў, ёсць меркаванне, што Столман і Макензі напісалі сваю ўтыліту выключна для гэтага юзкейса.

Абмеркаванне: стандартныя UNIX-утыліты, якія мала хто выкарыстоўваў і выкарыстоўвае зараз
Фота Marnix Hogendoorn - Unsplash

Таксама ўдзельнік абмеркавання на HN адзначыў магчымасці аператара ўстаўляць, якія былі для яго невідавочныя. Ён дазваляе чаргаваць струмені дадзеных ці падзяліць адзін струмень на дзве калонкі пры выснове:

$ paste <( echo -e 'foonbar' ) <( echo -e 'baznqux' )
foo     baz
bar     qux
$ echo -e 'foonbarnbaznqux' | paste - -
foo     bar
baz     qux

Адзін з карыстальнікаў заўважыў, што часта для выканання гэтых простых аперацый ужываюць не самыя аптымальныя рашэнні: пачынальна з фмт, ex і заканчваючы mlr с j и rs.

Якія стандартныя магчымасці UNIX-падобных аперацыйных сістэм сталі адкрыццём для вас?

Пра што мы пішам у нашым карпаратыўным блогу:

Абмеркаванне: стандартныя UNIX-утыліты, якія мала хто выкарыстоўваў і выкарыстоўвае зараз Як развівалася сістэма даменных імёнаў: эра ARPANET
Абмеркаванне: стандартныя UNIX-утыліты, якія мала хто выкарыстоўваў і выкарыстоўвае зараз Гісторыя сістэмы даменных імёнаў: першыя DNS-серверы
Абмеркаванне: стандартныя UNIX-утыліты, якія мала хто выкарыстоўваў і выкарыстоўвае зараз Гісторыя DNS: калі даменныя імёны сталі платнымі
Абмеркаванне: стандартныя UNIX-утыліты, якія мала хто выкарыстоўваў і выкарыстоўвае зараз Гісторыя сістэмы даменных імёнаў: "вайны" пратаколаў

Крыніца: habr.com

Дадаць каментар