Discusión: utilidades estándar de UNIX que pocos han utilizado y utilizan actualmente

Hace una semana, Douglas McIlroy, desarrollador de la tubería UNIX y autor del concepto de "programación orientada a componentes", contó habló sobre programas UNIX interesantes y poco comunes que no han tenido una amplia aplicación. La publicación generó un debatido activo en Hacker News. Hemos recopilado lo más interesante y nos encantaría que te unieras a la discusión.

Discusión: utilidades estándar de UNIX que pocos han utilizado y utilizan actualmente
Foto — Virginia Johnson — Unsplash

Trabajo con texto

En sistemas operativos similares a UNIX, existe un conjunto estándar de herramientas para formatear texto. La utilidad typo permitía revisar documentos en busca de errores tipográficos y hapax legomena — palabras que aparecen en el material solo una vez. Curiosamente, para buscar errores tipográficos, el programa no usa los diccionarios. Se basa únicamente en la información del archivo y realiza un análisis de frecuencia basado en trigramas (una secuencia de tres caracteres). En este sentido, todos los contadores necesarios se almacenan en un arreglo 26x26x26. Según Douglas McIlroy, tal volumen de memoria apenas era suficiente para algunos contadores de un solo byte. Por lo tanto, por motivos de economía, se escribían en forma logarítmica.

Hoy en día, typo ha sido reemplazado por programas modernos y precisos de verificación ortográfica basados en diccionarios. Sin embargo, el instrumento todavía se recuerda: hace algunos años, un entusiasta presentó implementó typo en Go. El repositorio sigue actualizándose.

Otra herramienta para trabajar con documentos de los 80 es el paquete Writer's Workbench de Lorinda Cherry y Nina McDonald de Bell Labs. Su conjunto incluía herramientas para identificar partes del habla y el estilo del documento, encontrar tautologías y oraciones excesivamente complejas. Las utilidades fueron desarrolladas como apoyo para los estudiantes, y durante un tiempo, utilizaron los estudiantes de la Universidad Estatal de Colorado en EE. UU. Sin embargo, a principios de los noventa, Writer's Workbench fue olvidado porque no se incluyó en Version 7 Unix. Sin embargo, esta herramienta continuó su camino hacia imitadores, como Grammatik para IBM PC.

En UNIX también hay herramientas estándar que simplifican el trabajo con fórmulas. Hay un preprocesador de lenguaje para formatear expresiones matemáticas eqn. Es notable porque, para mostrar una fórmula, el desarrollador solo necesita describirla con palabras y símbolos simples. Las palabras clave permiten desplazar las marcas matemáticas vertical y horizontalmente, cambiar sus tamaños y otros parámetros. Si se pasa a la utilidad una cadena:

suma desde { k = 1 } hasta N { k sup 2 }

La siguiente fórmula será generada:

Discusión: utilidades estándar de UNIX que pocos han utilizado y utilizan actualmente

En los años 1980–1990 eqn ayudó a los especialistas de TI a escribir manuales de software. Pero más tarde fue reemplazada por el sistema LaTeX, que utiliza incluso Habr. Pero eqn es la primera herramienta de su clase que sigue siendo parte de sistemas operativos similares a UNIX.

Trabajar con archivos

En un hilo temático, los residentes de Hacker News mencionaron algunas utilidades poco utilizadas para trabajar con archivos. Una de ellas hubo comm para su comparación. Este es un análogo simplificado diff, diseñado para trabajar en scripts. Su escribió creador, Richard Stallman, junto con David MacKenzie.

La salida del programa consiste en tres columnas. En la primera columna están los valores únicos del primer archivo, en la segunda, los únicos del segundo archivo. La tercera columna incluye los valores comunes. Para que comm funcione correctamente, los documentos a comparar deben estar ordenados léxicamente. Por lo tanto, uno de los residentes del sitio propuso trabajó con la utilidad de la siguiente manera:

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

Comm es conveniente para verificar la escritura de palabras. Solo es necesario compararlas con un documento de referencia como un diccionario. Teniendo en cuenta las sutilezas relacionadas con la necesidad de ordenar archivos, hay opinión, que Stallman y MacKenzie escribieron su utilidad exclusivamente para este caso de uso.

Discusión: utilidades estándar de UNIX que pocos han utilizado y utilizan actualmente
Foto — Marnix Hogendoorn — Unsplash

También participante de la discusión en HN señaló las capacidades del operador paste, que no eran obvias para él. Permite alternar flujos de datos o dividir un flujo en dos columnas al imprimir:

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

Uno de los usuarios observé, que a menudo se utilizan soluciones no optimales para realizar estas operaciones simples: comenzando con fmt, ex y terminando con mlr con jot y rs.

¿Cuáles son las capacidades estándar de los sistemas operativos similares a UNIX que fueron un descubrimiento para usted?

Sobre lo que escribimos en nuestro blog corporativo:

Discusión: utilidades estándar de UNIX que pocos han utilizado y utilizan actualmente ¿Cómo evolucionó el sistema de nombres de dominio: era ARPANET?
Discusión: utilidades estándar de UNIX que pocos han utilizado y utilizan actualmente Historia del sistema de nombres de dominio: los primeros servidores DNS
Discusión: utilidades estándar de UNIX que pocos han utilizado y utilizan actualmente Historia de DNS: cuando los nombres de dominio se volvieron de pago
Discusión: utilidades estándar de UNIX que pocos han utilizado y utilizan actualmente Historia del sistema de nombres de dominio: las "guerras" de los protocolos

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster