Discussão: utilitários UNIX padrão que quase ninguém usou e ainda usa hoje

Há uma semana, Douglas McIlroy, desenvolvedor do pipeline UNIX e autor do conceito de "programação orientada a componentes", contou 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.

Discussão: utilitários UNIX padrão que quase ninguém usou e ainda usa hoje
Foto — Virginia Johnson — 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 hapax legomena — palavras que aparecem no material apenas uma vez. Curiosamente, para encontrar erros de digitação, o programa não usa 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 são armazenados 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 apresentou 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 ferramentas para identificação de partes do discurso e estilo do documento, pesquisa de tautologias e frases excessivamente complexas. As utilidades foram desenvolvidas como suporte para estudantes, e houve um tempo em que 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, foram usados Grammatik para IBM PC. 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:

Discussão: utilitários UNIX padrão que quase ninguém usou e ainda usa hoje

Nos anos 1980-1990 eqn ajudou especialistas em TI a escrever manuais de software. Mas depois foi substituído pelo sistema LaTeX, que usa 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 havia comm para sua comparação. É uma versão simplificada de diff, adaptada para uso em scripts. Sua escreveu 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 um patch escrito à mão para correçã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á opinião, que Stallman e MacKenzie escreveram sua utilidade exclusivamente para este caso de uso.

Discussão: utilitários UNIX padrão que quase ninguém usou e ainda usa hoje
Foto — Marnix Hogendoorn — Unsplash

Também participante da discussão no HN observou 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 notou, que muitas vezes, para realizar essas operações simples, utilizam soluções não tão otimizadas: começando com fmt, ex e terminando com mlr com foi adicionada a capacidade de gerar um fluxo infinito de dados aleatórios, respeitando os limites especificados; e rs.

Quais funcionalidades padrão dos sistemas operacionais semelhantes ao UNIX foram uma descoberta para você?

Sobre o que escrevemos em nosso blog corporativo:

Discussão: utilitários UNIX padrão que quase ninguém usou e ainda usa hoje Como evoluiu o sistema de nomes de domínio: a era ARPANET
Discussão: utilitários UNIX padrão que quase ninguém usou e ainda usa hoje História do sistema de nomes de domínio: primeiros servidores DNS
Discussão: utilitários UNIX padrão que quase ninguém usou e ainda usa hoje A história do DNS: quando os nomes de domínio se tornaram pagos
Discussão: utilitários UNIX padrão que quase ninguém usou e ainda usa hoje A história do sistema de nomes de domínio: as 'guerras' dos protocolos

Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster