Há uma semana, Douglas McIlroy, desenvolvedor do pipeline UNIX e autor do conceito de "programação orientada a componentes", sobre programas UNIX interessantes e incomuns que não obtiveram ampla aplicação. A publicação gerou uma discussão ativa no Hacker News. Coletamos o mais interessante e ficaremos felizes se você se juntar à discussão.
Foto — — Unsplash
Trabalhando com texto
Nos sistemas operacionais similares ao UNIX, há um conjunto padrão de ferramentas para formatação de texto. O utilitário typo permitia verificar o documento quanto a erros de digitação e — palavras que aparecem no material apenas uma vez. Curiosamente, para encontrar erros de digitação, o programa dicionários. Ele se baseia apenas nas informações do arquivo e realiza uma análise de frequência de trigramas (sequência de três caracteres). Enquanto isso, todos os contadores necessários em um array 26x26x26. Segundo Douglas McIlroy, tal quantidade de memória mal era suficiente para alguns contadores de um byte. Portanto, para economizar, eles eram escritos em formato logarítmico.
Hoje, o typo foi substituído por programas de verificação ortográfica mais modernos e precisos baseados em dicionários. No entanto, a ferramenta ainda é lembrada — alguns anos atrás, um entusiasta implementou o typo em Go. O repositório ainda está sendo atualizado.
Outra ferramenta para trabalhar com documentos dos anos 80 é o pacote Writer’s Workbench de Lorinda Cherry e Nina McDonald, do Bell Labs. Ele incluía os alunos da Colorado State University nos EUA. Mas no início dos anos 90, o Writer’s Workbench foi esquecido, pois não foi incluído na Version 7 do Unix. No entanto, essa ferramenta continuou ao longo de suas imitações — por exemplo, Grammatik No UNIX também existem ferramentas padrão que simplificam o trabalho com fórmulas. Existe um pré-processador de linguagem para formatar expressões matemáticas
eqn . Ele se destaca pelo fato de que, para exibir uma fórmula, o desenvolvedor só precisa descrevê-la com palavras e símbolos simples. Palavras-chave permitem deslocar os sinais matemáticos vertical e horizontalmente, alterar seus tamanhos e outros parâmetros. Se você passar para a utilidade uma string:eqn
soma de { k = 1 } a N { k sup 2 }A seguinte fórmula será gerada:

Nos anos 1980-1990 eqn especialistas em TI a escrever manuais de software. Mas depois foi substituído pelo sistema LaTeX, que até mesmo o Habr. Mas eqn é a primeira ferramenta dessa classe, que ainda faz parte dos sistemas operacionais semelhantes ao UNIX.
Trabalhando com arquivos
No tópico relacionado, residentes do Hacker News mencionaram várias utilidades raramente usadas para trabalhar com arquivos. Uma delas comm para sua comparação. É uma versão simplificada de , adaptada para uso em scripts. Sua próprio Richard Stallman (Richard Stallman) junto com David MacKenzie.
A saída do programa consiste em três colunas. A primeira coluna contém valores únicos do primeiro arquivo, a segunda — únicos do segundo arquivo. A terceira coluna inclui valores comuns. Para um funcionamento correto, os documentos comparados devem estar ordenados lexicalmente. Portanto, um dos residentes do espaço trabalhar com a utilidade da seguinte forma:
comm <(sort fileA.txt) <(sort fileB.txt)O comando comm é conveniente para verificar a grafia de palavras. Basta compará-las com um documento de referência dicionário. Considerando as sutilezas relacionadas à necessidade de ordenar arquivos, há , que Stallman e MacKenzie escreveram sua utilidade exclusivamente para este caso de uso.

Foto — — Unsplash
Também participante da discussão no HN as funcionalidades do operador paste, que não eram óbvias para ele. Ele permite alternar fluxos de dados ou dividir um único fluxo em duas colunas na saída:
$ paste <( echo -e 'foonbar' ) <( echo -e 'baznqux' )
foo baz
bar qux
$ echo -e 'foonbarnbaznqux' | paste - -
foo bar
baz qux
Um dos usuários , que muitas vezes, para realizar essas operações simples, utilizam soluções não tão otimizadas: começando com , e terminando com com e .
Quais funcionalidades padrão dos sistemas operacionais semelhantes ao UNIX foram uma descoberta para você?
Sobre o que escrevemos em nosso blog corporativo:
![]()
![]()
![]()
![]()
Fonte: habr.com
