stringtranslate.com

educación (programa informático)

ed (pronunciado como letras distintas, /ˌiːˈdiː / ) [ 1 ] es un editor de línea parasistemas operativos Unix y similares . Fue una de las primeras partes del sistema operativo Unix que se desarrolló , en agosto de 1969. [2] Sigue siendo parte de los estándares POSIX y Open Group para sistemas operativos basados ​​en Unix, [3] junto con el editor de pantalla completa más sofisticado vi .

Historia e influencia

El editor de texto ed fue uno de los tres primeros elementos clave del sistema operativo Unix ( ensamblador , editor y shell ) desarrollado por Ken Thompson en agosto de 1969 en un PDP-7 en AT&T Bell Labs . [2] Muchas características de ed provienen del editor de texto qed desarrollado en la Universidad de California, Berkeley, alma mater de Thompson . [4] Thompson estaba muy familiarizado con qed y lo había reimplementado en los sistemas CTSS y Multics . Las versiones de qed de Thompson fueron notables por ser las primeras en implementar expresiones regulares . Las expresiones regulares también se implementan en ed, aunque su implementación es considerablemente menos general que la de qed.

Dennis M. Ritchie produjo lo que Doug McIlroy describió más tarde como el ed "definitivo", [5] y aspectos de ed influyeron en ex , que a su vez generó vi . El comando no interactivo de Unix grep se inspiró en un uso especial común de qed y más tarde de ed, donde el comando g/re/prealiza una búsqueda global de expresiones regulares e imprime las líneas que contienen las coincidencias. El editor de flujo de Unix, sed, implementó muchas de las características de scripting de qed que no eran compatibles con ed en Unix. [6] [ verificación fallida ] [7]

Características

Las características de ed incluyen:

Famoso por su brevedad, ed, compatible con terminales de teletipo como Teletype Model 33 , casi no da respuesta visual, [8] y ha sido llamado (por Peter H. Salus ) "el editor más hostil al usuario jamás creado", incluso cuando se lo compara con el contemporáneo (y notoriamente complejo) TECO . [2] Por ejemplo, el mensaje que ed producirá en caso de error, y cuando quiera asegurarse de que el usuario desea salir sin guardar, es "?". No informa el nombre del archivo actual o el número de línea, ni siquiera muestra los resultados de un cambio en el texto, a menos que se solicite. Las versiones anteriores (c. 1981) ni siquiera pedían confirmación cuando se emitía un comando de salida sin que el usuario guardara los cambios. [8] Esta brevedad era apropiada en las primeras versiones de Unix, cuando las consolas eran teletipos , los módems eran lentos y la memoria era valiosa. A medida que la tecnología informática mejoró y se relajaron estas restricciones, los editores con más respuesta visual se convirtieron en la norma.

La página del manual de ed

En la práctica actual, ed rara vez se utiliza de forma interactiva, pero sí se utiliza en algunos scripts de shell . Para uso interactivo, ed fue absorbido por los editores sam , vi y Emacs en la década de 1980. ed se puede encontrar en prácticamente todas las versiones de Unix y Linux disponibles y, como tal, es útil para personas que tienen que trabajar con múltiples versiones de Unix. En los sistemas operativos basados ​​en Unix, algunas utilidades como SQL*Plus ejecutan ed como editor si las variables de entorno EDITOR y VISUAL no están definidas. [9] Si algo sale mal, ed es a veces el único editor disponible. Esta es a menudo la única vez que se usa de forma interactiva.

La versión de ed proporcionada por GNU tiene algunos modificadores para mejorar la retroalimentación. El uso ed -v -p:proporciona un mensaje de aviso simple y permite mensajes de retroalimentación más útiles. [10] El -pmodificador está definido en POSIX desde XPG2 (1987). [3]

Los comandos ed suelen imitarse en otros editores basados ​​en líneas. Por ejemplo, EDLIN en las primeras versiones de MS-DOS y en las versiones de 32 bits de Windows NT tiene una sintaxis algo similar, y los editores de texto de muchos MUD ( LPMud y sus descendientes, por ejemplo) utilizan una sintaxis similar a la de ed. Sin embargo, estos editores suelen tener funciones más limitadas.

Ejemplo

A continuación se muestra un ejemplo de transcripción de una sesión de ed. Para mayor claridad, los comandos y el texto escritos por el usuario se muestran en caracteres normales y el resultado de ed se resalta .

aed es el editor de texto estándar de Unix.Esta es la línea número dos..2yo
.,yoed es el editor de texto estándar de Unix.$ $ Esta es la línea número dos.$w texto.txt633s/two/three/,yoed es el editor de texto estándar de Unix.$ $ Esta es la línea número tres.$w texto.txt65q

El resultado final es un archivo de texto simple text.txtque contiene el siguiente texto:

ed es el editor de texto estándar de Unix.
Esta es la línea número tres.

El comando comienza con un archivo vacío y aagrega texto (todos los comandos ed son letras simples). El comando pone a ed en modo de inserción , insertando los caracteres que siguen y termina con un solo punto en una línea. Las dos líneas que se ingresan antes del punto terminan en el búfer del archivo. El 2icomando también entra en modo de inserción e insertará el texto ingresado (una sola línea vacía en nuestro caso) antes de la línea dos. Todos los comandos pueden tener como prefijo un número de línea para operar en esa línea.

En la línea ,l, la L minúscula representa el comando list. El comando tiene como prefijo un rango, en este caso ,que es un atajo para 1,$. Un rango son dos números de línea separados por una coma ( $significa la última línea). A cambio, ed enumera todas las líneas, desde la primera hasta la última. Estas líneas terminan con signos de dólar, de modo que el espacio en blanco al final de las líneas sea claramente visible.

Una vez que se inserta la línea vacía en la línea 2, la línea que dice "Esta es la línea número dos" es ahora en realidad la tercera línea. Este error se corrige con , un comando de sustitución. Lo aplicará a la línea correcta; después del comando aparece el texto que se debe reemplazar y luego el reemplazo. Ahora se muestra que la lista de todas las líneas con la línea es correcta.3s/two/three/3,l

w text.txtescribe el buffer en el archivo text.txthaciendo que ed responda con 65 , la cantidad de caracteres escritos en el archivo. qfinalizará una sesión ed.

Referencias culturales

El Proyecto GNU tiene numerosos chistes sobre ed alojados en su sitio web. Además, la documentación de glibc señala un código de error llamado EDerrorstr, cuya descripción es simplemente un signo de interrogación, que indica que "el usuario experimentado sabrá qué es lo que está mal". [11]

Véase también

Referencias

  1. ^ Computerphile (6 de julio de 2018), De dónde surgió GREP – Computerphile, archivado desde el original el 11 de diciembre de 2021 , consultado el 21 de octubre de 2020
  2. ^ abc Salus, Peter H. (2005). El demonio, el ñu y el pingüino. Groklaw . Archivado desde el original el 5 de mayo de 2010.
  3. ^ ab ed – Referencia de shell y utilidades, La única especificación de UNIX , versión 4 de The Open Group
  4. ^ DM Ritchie y KL Thompson, "QED Text Editor", MM-70-1373-3 (junio de 1970), reimpreso como "QED Text Editor Reference Manual", MHCC-004, Murray Hill Computing, Bell Laboratories (octubre de 1972).
  5. ^ McIlroy, MD (1987). Un lector de Unix para investigación: extractos anotados del Manual del programador, 1971–1986 (PDF) (Informe técnico). CSTR. Bell Labs. 139.
  6. ^ Raymond, Eric (2003). "El arte de la programación Unix" (PDF) . Archivado (PDF) del original el 15 de junio de 2023. Consultado el 14 de junio de 2023 .
  7. ^ "Sobre la historia temprana y el impacto de Unix". Un tiempo después surgió la demanda de otro programa de propósito especial, gres, para la sustitución: g/re/s. Lee McMahon se encargó de escribirlo y pronto previó que la familia no tendría fin: g/re/d, g/re/a, etc. A medida que su concepto se fue desarrollando, se convirtió en algo habitual…
  8. ^ de Donald A. Norman (1981). "La verdad sobre UNIX" (PDF) . Datamation . Archivado desde el original (PDF) el 16 de abril de 2014.
  9. ^ Administración de SQL*Plus. Consultado el 23/7/2016.
  10. ^ ed(1)  –  Manual de comandos generales de Linux
  11. ^ "La biblioteca GNU C - Códigos de error". www.gnu.org .

Enlaces externos