ProHoster > Blog > administração > Discussão: utilitários padrão do UNIX que poucas pessoas usaram e ainda usam
Discussão: utilitários padrão do UNIX que poucas pessoas usaram e ainda usam
Há uma semana, Douglas McIlroy, desenvolvedor do pipeline UNIX e criador do conceito de "programação orientada a componentes", Eu disse sobre programas UNIX interessantes e incomuns que não são amplamente utilizados. A publicação lançou uma discussão ativa no Hacker News. Reunimos o que há de mais interessante e ficaremos felizes se você participar da discussão.
Os sistemas operacionais do tipo UNIX possuem um conjunto padrão de ferramentas para formatação de texto. Utilitário erro de datilografia permitiu que você revisasse o documento em busca de erros de digitação e hapaxes - palavras que aparecem no material apenas uma vez. Curiosamente, o programa para encontrar erros de digitação não usa dicionários. Ele se baseia apenas nas informações do arquivo e realiza análises de frequência por meio de trigramas (uma sequência de três caracteres). Neste caso, todos os contadores necessários são armazenados em uma matriz 26x26x26. De acordo com Douglas McIlroy, essa quantidade de memória mal era suficiente para vários contadores de byte único. Portanto, para economizar dinheiro, eles foram escritos na forma logarítmica.
Hoje, o erro de digitação foi substituído por corretores ortográficos baseados em dicionário, mais modernos e precisos. Porém, as pessoas ainda se lembram do instrumento - há alguns anos um entusiasta introduzido implementação de erro de digitação em Go. O repositório ainda está sendo atualizado.
Outra ferramenta para trabalhar com documentos da década de 80 é o pacote Bancada de trabalho do escritor de Lorinda Cherry e Nina McDonald da Bell Labs. Sua composição incluído ferramentas para identificar classes gramaticais e estilo de documento, procurando tautologias e frases desnecessariamente complexas. Os utilitários foram desenvolvidos como auxiliares para os alunos e, ao mesmo tempo, usado estudantes da Colorado State University, nos EUA. Mas no início dos anos noventa, o Writer's Workbench foi esquecido porque não foi incluído na versão 7 do Unix. No entanto, este instrumento continuou o seu caminho até aos imitadores - por exemplo, gramática para IBM PC.
O UNIX também fornece ferramentas padrão para facilitar o trabalho com fórmulas. Existe um pré-processador de linguagem para formatar expressões matemáticas eqn. É notável o fato de que para exibir uma fórmula, o desenvolvedor só precisa descrevê-la em palavras e símbolos simples. Palavras-chave permitem deslocar símbolos matemáticos vertical e horizontalmente, alterar seus tamanhos e outros parâmetros. Se você passar a linha para o utilitário:
sum from { k = 1 } to N { k sup 2 }
A saída irá gerar a seguinte fórmula:
Na década de 1980-1990 eqn ajudou Especialistas em TI escrevem manuais de software. Mais tarde, porém, foi substituído pelo sistema LaTeX, que usa até mesmo Habr. Mas eqn é a primeira ferramenta de sua classe a permanecer parte de sistemas operacionais do tipo UNIX.
Trabalhando com arquivos
Em um tópico temático, os residentes do Hacker News notaram vários utilitários raramente usados para trabalhar com arquivos. Um deles foicomm para compará-los. Este é um análogo simplificado diff, adaptado para trabalhar em scripts. Dele escreveu O próprio Richard Stallman junto com David MacKenzie.
A saída do programa consiste em três colunas. A primeira coluna contém valores exclusivos do primeiro arquivo, a segunda coluna contém valores exclusivos do segundo arquivo. A terceira coluna inclui os valores totais. Para que a comunicação funcione corretamente, os documentos comparados devem ser classificados lexicalmente. Portanto, um dos moradores do local sugerido trabalhe com o utilitário da seguinte forma:
comm <(sort fileA.txt) <(sort fileB.txt)
Comm é conveniente para verificar a ortografia das palavras. Basta compará-los com um documento de dicionário de referência. Considerando as sutilezas associadas à necessidade de classificar arquivos, existe ver, que Stallman e MacKenzie escreveram seu utilitário exclusivamente para este caso de uso.
Também participante da discussão no HN anotado capacidades do operador colar, que não eram óbvios para ele. Ele permite intercalar fluxos de dados ou dividir um fluxo em duas colunas ao gerar:
Um dos usuários notado, que muitas vezes não são utilizadas as soluções mais ideais para realizar estas operações simples: começando com fmt, ex e terminando mlr с coisa mínima и rs.
Quais recursos padrão de sistemas operacionais do tipo UNIX foram uma descoberta para você?