Discusión: utilidades estándar de UNIX que pocos han usado y están usando actualmente

Hace una semana, Douglas McIlroy, desarrollador de la tubería UNIX y autor del concepto de "programación orientada a componentes", habló sobre programas UNIX interesantes e inusuales que no se usaban ampliamente. La publicación ha lanzado una discusión activa sobre Hacker News. Hemos recopilado lo más interesante y estaremos encantados si te unes a la discusión.


Fotos - Virginia Johnson - Unsplash

Trabajar con texto


En los sistemas operativos tipo UNIX, hay un conjunto estándar de herramientas para formatear texto. La utilidad de error tipográfico le permitió ver un documento para errores tipográficos y hapaks , palabras que aparecen en el material solo una vez. Curiosamente, el programa no utiliza diccionarios para buscar errores tipográficos . Se basa únicamente en la información del archivo y realiza un análisis de frecuencia de trigramas (una secuencia de tres caracteres). En este caso, todos los contadores necesarios se almacenan en una matriz de 26x26x26. Según Douglas McIlroy, esta cantidad de memoria era apenas suficiente para varios contadores de un solo byte. Por lo tanto, para salvarlos, fueron escritos en forma logarítmica.

Hoy, el error tipográfico ha sido reemplazado por correctores ortográficos más modernos y precisos basados ​​en el diccionario. Sin embargo, la herramienta aún se recuerda: hace unos años, un entusiasta introdujo la implementación del error tipográfico en Go. El repositorio aún se está actualizando.

Otra herramienta de documentos de los años 80 es el Writer's Workbench de Lorinda Cherry y Nina McDonald de Bell Labs. Se incluye herramientas para la determinación de las partes del discurso y el estilo del documento, la búsqueda de tautologías y frases excesivamente complejos. Las utilidades se desarrollaron como una ayuda para los estudiantes, y en un momento fueron utilizadasestudiantes de la Universidad Estatal de Colorado en los Estados Unidos. Pero a principios de los años noventa, el escritor del Workbench había sido olvidado porque no estaba incluido en la versión 7 de Unix. Sin embargo, esta herramienta continuó el camino de los imitadores, por ejemplo, Grammatik para PC con IBM.

UNIX también tiene herramientas estándar para simplificar el trabajo con fórmulas. Hay un preprocesador de lenguaje para procesar expresiones matemáticas eqn . Es de destacar que para mostrar una fórmula, es suficiente que el desarrollador la describa con palabras y símbolos simples. Las palabras clave le permiten cambiar los signos matemáticos vertical y horizontalmente, cambiar sus tamaños y otros parámetros. Si pasa la línea a la utilidad:

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

La siguiente fórmula se generará en la salida:

k=1Nk2


En las décadas de 1980 y 1990, eqn ayudó a los profesionales de TI a escribir manuales de software. Pero luego fue reemplazado por el sistema LaTeX, que incluso Habr usa . Pero eqn es la primera herramienta de esta clase, que sigue siendo parte del sistema operativo tipo UNIX.

Trabajar con archivos


En el hilo temático, los residentes de Hacker News notaron varias utilidades raramente utilizadas para trabajar con archivos. Uno de ellos era comm para compararlos. Este es un análogo simplificado de diff , afilado para trabajar en scripts. Fue escrito por el propio Richard Stallman con David MacKenzie.

La salida del programa consta de tres columnas. La primera columna contiene valores que son únicos para el primer archivo, la segunda, exclusiva para el segundo archivo. La tercera columna incluye valores generales. Para que la comunicación funcione correctamente, los documentos que se van a comparar deben estar ordenados léxicamente. Por lo tanto, uno de los residentes del sitio sugirió trabajar con la utilidad de la siguiente forma:

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

Comm es útil para verificar la ortografía de las palabras. Es suficiente compararlos con el documento del diccionario de referencia. Dadas las sutilezas asociadas con la necesidad de ordenar archivos, se cree que Stallman y Mackenzie escribieron su utilidad exclusivamente para este caso de usuario.


Foto - Marnix Hogendoorn - Unsplash

Además, un participante de la discusión en HN notó las capacidades del operador de pegado , que no eran obvias para él. Le permite alternar flujos de datos o dividir un flujo en dos columnas durante la salida:

$ paste <( echo -e 'foo\nbar' ) <( echo -e 'baz\nqux' )
foo     baz
bar     qux
$ echo -e 'foo\nbar\nbaz\nqux' | paste - -
foo     bar
baz     qux

Uno de los usuarios señaló que a menudo éstas no son las más óptimas soluciones para el uso: a partir de FMT , ex y terminando con MLR con jota y RS .

¿Qué características estándar de los sistemas operativos tipo UNIX fueron su descubrimiento?

Sobre lo que escribimos en nuestro blog corporativo:

Cómo se desarrolló el Sistema de nombres de dominio: Era ARPANET
Historia del sistema de nombres de dominio: Primeros servidores
DNS Historia de DNS: Cuándo los nombres de dominio se convirtieron en Historial de pago del
Sistema de nombres de dominio: Protocolos de "guerra"

All Articles