2008-11-03 23 views
10

Solo por diversión ... Tiendo a mantenerme alerta buscando acertijos fortuitos durante el día. Una de las cosas que me encanta de Linux es la cantidad infinita de inteligencia que incorpora, desde su elegante simplicidad hasta los comentarios en sus páginas de manual.Etimología de comandos de Linux

¿Se pueden articular las reglas no escritas que dictan cómo se nombran los nuevos comandos, o proporcionan algo de historia detrás de los comandos comunes? ¿Qué comando esencial falta en las distribuciones stock linux? ¿Qué haría y qué nombre le darías?

Ejemplos:

  • cat se utiliza para catenate archivos. Ha sido reemplazado por dog en algunas distribuciones.
  • ssh proporciona un shell seguro, pero no puede ser una coincidencia que justo pide que se pronuncia "ssssshhhhh!"

Bono Puzzle: Uno de nuestros clientes de largo plazo era MCI y su dirección de envío era 1101 Summit Ave. Ahora, MCI era una gran compañía y probablemente podría haber elegido cualquier dirección ... ¿por qué 1101? Sorprendentemente, tengo nunca encontré con un empleado de MCI que sabía esta respuesta ... ¡pero ellos no tenían SO en ese momento!

EDITAR: Antes de esto se sale de control: por favor haga no ¡simplemente liste los comandos! Estoy buscando respuestas a las preguntas en cursiva arriba. ¡Gracias!

Respuesta

21

especie de respuesta broma, pero citando a http://www.mindspring.com/~blackhart/requium.html:

Sólo he podido llegar a un algoritmo para la creación de nombres de comandos Unix: pensar en una buena Inglés palabra para describir lo que quieres hacer, luego piensa en un sinónimo cercano o parcial sinónimo, tira todas las vocales, acorta arbitrariamente lo que queda, y luego, finalmente, como un regalo para el programador alfabetizado, tal vez reinserte una de las vocales faltantes

+4

Es cierto. internet download => web get => wbgt => wgt => wget –

+0

+1 para publicar el primer algoritmo. –

+0

+1 Increíblemente gracioso ... :-) ... y un algoritmo. – blunders

20

MCI = 1101 en números romanos ... Nunca ha hecho clic que hasta ahora :)

+0

Lo obvio a menudo se pasa por alto. +500 Geekpoints! –

+1

+1 por estar despierto antes de tomar mi café Eche un vistazo al número 800 en latas de productos Coke. :-) –

1

Sé de las herramientas más y menos que esté claramente relacionado. Muestran el contenido de un archivo en trozos pequeños para que puedan mostrarse en una pantalla. Y en este caso, menos es más que más.

+0

Bueno, menos IS es más después de todo. –

+0

Y luego está la mayoría ... :-) – agnul

3

Muchos comandos UNIX tenían históricamente nombres cortos, por lo que había que escribir menos en la terminal en los días en que se usaban teletipos lentos, hasta cierto punto la tradición se ha estancado incluso hoy en día.

En cuanto a la cosa de MCI, tenían varias direcciones comenzando con 1101, MCI es 1101 en números romanos.

+0

+1 para la lección de historia, que es lo que espero encontrar en estas respuestas. –

0

sed = s TREAM ed itor ... pero no puedo evitar pensar, Eso no es lo que SED! ¿Coincidencia?

4

zsh fue el inicio de sesión de su autor Zhong Shao

4

sustitución del generador de analizadores sintácticos yacc de GNU se llama bisonte.

En una nota relacionada, recientemente hicimos un pequeño cambio en el comando tee para insertar marcas de tiempo en su salida para depurar un problema desagradable. Lo que llamamos el nuevo comando?teetime, por supuesto :-)

+1

En el paquete moreutils, también hay un comando "pee": "entrada estándar en T para tubos" – oliver

+0

Tengo una variante menor en 'byacc' - el YACC de Berkeley - que llamo 'kayak'. –

7

grep era del comando ed, g/re/p o Búsqueda global de expresión regular e impresión.

yacc, por supuesto, era otro compilador de compiladores.

perl fue la Extracción práctica y el Idioma del informe (ver también los comentarios).

roff fue una simple contracción de 'runoff' (un sistema similar que existía en otras máquinas que no son de Unix); troff fue 'typsetting roff' o más o menos; Supongo que nroff fue 'roff no-typesetting'; tbl es una contracción simple de 'tabla'; eqn es una contracción simple de 'ecuación'; grap es una simple contracción de 'gráfico' (y por qué se consideró necesario dejar caer la 'h' sigue siendo un misterio para mí); pic es probablemente una simple contracción de 'imagen'; refer es una contracción simple de 'referencias'; y chem es una contracción simple de 'química' (o 'química', o ...).

Idealmente, el nombre era corto, (casi) pronunciable, y (si conocía el secreto) al menos semi-mnemónico. Eso todavía se aplica hoy, hasta cierto punto. Los nombres de los programas se eligen sobre la base del uso del autor.


responder directamente a la pregunta - ¿Qué comando falta (y tiene un nombre caprichoso) ...

$ dribbler -h 
Usage: dribbler [-hV][-s sleep][-f file][-m message][-o openstr] 
    -V   Print version information and exit 
    -f file  Write to named file 
    -h   Print this help message and exit 
    -m message Write message on each line of output 
    -o openstr Flags passed to fopen() 
    -s sleep  Sleep for given interval between writes 

Es una contraparte sin entusiasmo a yes. Mientras que yes escribe cosas tan rápido como puede a la tubería de salida, por el contrario, dribbler envía un regate de información, suficiente para mantener un proceso en el extremo receptor un poco activo, pero no lo suficiente como para inundar el sistema.


Otro comando de la que yo soy aficionado es bombard:

bombardeo - bombardean un programa que se está probando con señales

bombard [-s sig][-rvV][-t mintime][-T maxtime][-i iterations] -- cmd [args ...] 

Bombard ejecuta el programa de ensayos designados por `[cmd args ...] 'y lo somete a una o más señales. Se puede usar para realizar pruebas estocásticas de las características de manejo de señal de un programa.

La opción '-s' especifica qué señal se envía; el valor predeterminado es SIGINT. La opción '-V' imprime el número de versión del programa y sale. La opción '-r' envía repetidamente la señal. La opción '-i' especifica cuántas veces se debe repetir la señal; el valor predeterminado es 1000 si se especifica '-r' y '-i' no. Si no se especifica la opción '-r', la bandera no tiene efecto.La opción '-v' imprime información detallada sobre el resultado de cada ejecución del programa de prueba. La opción '-t' especifica el retraso mínimo (en segundos) antes de la señalización; el valor predeterminado es 0. La opción '-T' especifica el retraso máximo (en segundos) antes de la señalización. Se recomienda encarecidamente el separador '--' para separar los controles para bombardear del comando y sus argumentos.

Si solo se especifica '-t', entonces bombard duerme durante el tiempo especificado y luego envía señales al proceso. Si se especifican ambos '-t' y '-T', entonces bombard duerme durante un período aleatorio en el rango especificado y luego envía señales al proceso.

Obviamente, todos los tiempos están sujetos a las idiosincrasias del algoritmo de programación del kernel.


+4

"Extracción práctica y lenguaje de informes" es realmente una historia atrás; el nombre realmente proviene de la Parábola de la Perla. – mipadi

+0

La que había visto era 'Patologically Eclectic Rubbish Lister' – ConcernedOfTunbridgeWells

+0

Desearía poder +1 comentario de mipadi para el uso de 'backronym' –

8
  • ed = Editor
  • ex = extendida (ed)
  • vi = visual (el comando: visual en ex)
  • vim = Vi IMproved
  • vil = VI Como Emacs

  • TECO = Editor de texto y COrrector

  • MACroS Emacs = Edición (TECO)
7

La utilidad "más" fue nombrado debido a la rápida después de cada página. La utilidad "menor" es otra aplicación de buscapersonas, llamada así porque "menos es más".

Los remitentes tienen una larga historia de nombres funky. Elm era "correo electrónico". Pine es el acrónimo "el pino ya no es olmo". Balsa debe ser liviano.

No Linux, pero la herramienta Mac OS X para pegar varios binarios de arquitectura única en un solo binario de arquitectura múltiple (también conocido como un binario "gordo") se llama "lipo".

+1

Es curioso, siempre asumí que se llama "menos" porque puedes desplazarte hacia atrás (para ver menos del archivo) y hacia adelante. ¡Grandes ejemplos! –

2

Sobre el codificador LAME MP3, lo que representa L AME Un In't un M p3 E ncoder :)

1

El estilo prolijo VMS 'opción = modo de' comandos para 'dd' se pusieron porque alguien se quejó de las opciones crípticas cortas en los comandos de Unix.

1

pic - basado en texto de imagen lengua generación de interfaz para troff CIP - GUI que leer/archivos generados pic

The Blit terminal no es el Bell Labs terminal inteligente, sino simplemente de la operación BitBlt. The Mgr Window Manager supuestamente significa "gerente". Cuando comencé a trabajar con/on it, todavía había personas que llamaban a munger del verbo to mung(e).

2

ChecK fsck = Sistema de archivos (tenga en cuenta la regla previamente documentada de descartar todas las vocales y consonantes tantos como sea posible.

más comúnmente utilizado en mi experiencia como profanity y sólo he oído que pronunció en dos maneras diferentes : "FSCK" (es decir, cojo) y "F-Suck" (correcto)

+0

Tengo una tercera pronunciación para ofrecer: "fisk" –

+0

Y "fossick", que es lo que hace alrededor del sistema de archivos, buscando problemas. –

+0

Lo he estado pronunciando como fusk –

5

no olvidemos la "no es" esquema de nombres recursivo:.

  • pino = P ine I s n ot E lm (aunque uno de los autores originales niega esto y que ahora se encuentra oficialmente "P ine I nternet N EWS y E -mail ")

  • vino = W ine Esn ot un E mulator

y por supuesto:

  • GNU = G NU es N ot U nix (aunque no un comando per se)
7

tac enumera un archivo en orden de línea inversa, es decir, el resultado de cat hacia atrás.

+0

¡Excelente! +1 para aumentar mi vocabulario. –

1

This answer a la pregunta pastel de bodas me dio una nueva visión sobre lo que es realmente la motivación detrás de esos nombres ....

martial crontab:

# DO NOT EDIT THIS FILE - until death 
# (/marriage/crontab.XXX installed on Sat Apr 4 11:26:10 2009) 
# (Cron version V5.0 -- $Id: crontab.c,v 1.12 2004/01/23 18:56:42 vixie Exp $) 
0 21 * * * unzip; strip; touch; grep; finger; mount; fsck; more; yes; umount; sleep 
2

awk lleva el nombre de las iniciales de sus autores: Alfred V. Aho, Peter J. Weinberger y Brian W. Kernighan.

+0

Siempre pensé que se llamaba así por su sintaxis AWKward. –

Cuestiones relacionadas