ed (pronunciado como letras distintas, / ˌ i d i / ) [1] es un editor de línea para Unix y Unix-como sistemas operativos. Fue una de las primeras partes del sistema operativo Unix que se desarrolló en agosto de 1969. [2] Sigue siendo parte de losestándares POSIX y Open Group para sistemas operativos basados en Unix, [3] junto con la pantalla completa más sofisticada. editor vi .
Autor (es) original (es) | Ken Thompson |
---|---|
Desarrollador (es) | Laboratorios AT&T Bell |
Versión inicial | 1973, hace 47–48 años |
Sistema operativo | Unix , similar a Unix , Plan 9 |
Plataforma | Multiplataforma |
Tipo | Editor de texto |
Historia e influencia
El editor de texto ed fue uno de los primeros tres 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 . [4] Muchas características de la educación provienen del editor de texto qed desarrollado en el alma mater de Thompson, Universidad de California, Berkeley . [5] Thompson estaba muy familiarizado con qed y lo había vuelto a implementar en los sistemas CTSS y Multics . Las versiones de qed de Thompson fueron notables como las primeras en implementar expresiones regulares . Las expresiones regulares también se implementan en ed, aunque su implementación es considerablemente menos general que en qed.
Dennis M. Ritchie produjo lo que Doug McIlroy describió más tarde como la ed "definitiva", [6] y algunos aspectos de la educación pasaron a influir en ex , que a su vez dio lugar a vi . El comando grep de Unix no interactivo se inspiró en un uso especial común de qed y posterior ed, donde el comando g / re / p significa buscar globalmente la expresión regular re e imprimir las líneas que la contienen. 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.
Características
Las características de ed incluyen:
- disponible en prácticamente todos los sistemas Unix (y obligatorio en los sistemas que cumplen con la Especificación Única de Unix ).
- soporte para expresiones regulares
- Se puede lograr una automatización potente alimentando comandos desde la entrada estándar
(In) famoso por su concisión, ed casi no ofrece retroalimentación visual, [7] y ha sido llamado (por Peter H. Salus ) "el editor más hostil al usuario jamás creado", incluso cuando se compara con el contemporáneo (y notoriamente complejo ) TECO . [2] Por ejemplo, el mensaje que ed producirá en caso de error, o cuando quiere asegurarse de que el usuario desea salir sin guardar, es "?". No informa el nombre de 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. [7] Esta concisión era apropiada en las primeras versiones de Unix, cuando las consolas eran teletipos , los módems eran lentos y la memoria era preciosa. A medida que la tecnología informática mejoró y se aflojaron estas limitaciones, los editores con más retroalimentación visual se convirtieron en la norma.
En la práctica actual, ed rara vez se usa de forma interactiva, pero se usa en algunos scripts de shell . Para uso interactivo, ed fue incluido 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 las personas que tienen que trabajar con varias 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. [8] Si algo sale mal, ed es a veces el único editor disponible. A menudo, este es el único momento en el que se utiliza de forma interactiva.
Además, la versión de ed proporcionada por GNU tiene algunos interruptores para mejorar la retroalimentación. El uso ed -v -p:
proporciona un aviso simple y permite mensajes de retroalimentación más útiles. [9] El -p
cambio se define en POSIX desde XPG2 (1987). [3]
Los comandos ed a menudo se imitan en otros editores basados en líneas. Por ejemplo, EDLIN en las primeras versiones de MS-DOS y versiones de 32 bits de Windows NT tiene una sintaxis algo similar, y los editores de texto en muchos MUD ( LPMud y descendientes, por ejemplo) usan una sintaxis similar a ed. Sin embargo, estos editores suelen tener una función más limitada.
Ejemplo
Aquí hay una transcripción de ejemplo de una sesión de educación. Para mayor claridad, los comandos y el texto escrito por el usuario están en la cara normal, y se enfatiza la salida de ed .
aed es el editor de texto estándar de Unix.Esta es la línea número dos..2i ., led es el editor de texto estándar de Unix. $ $ Esta es la línea número dos. $3s / dos / tres /, led es el editor de texto estándar de Unix. $ $ Esta es la línea número tres. $w textosesenta y cincoq
El resultado final es un archivo de texto simple que contiene el siguiente texto:
ed es el editor de texto estándar de Unix. Esta es la línea número tres.
Comenzado con un archivo vacío, el a
comando agrega texto (todos los comandos ed son letras simples). El comando pone 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 2i
comando 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, por lo que el espacio en blanco al final de las líneas es claramente visible.
Una vez que la línea vacía se inserta 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 3s/two/three/
un comando de sustitución. La 3
aplicará a la línea correcta; después del comando está el texto que se reemplazará y luego el reemplazo. La lista de todas las líneas con ,l
la línea se muestra ahora para ser correcta.
w text
escribe el búfer en el archivo "texto" haciendo que ed responda con 65 , el número de caracteres escritos en el archivo. q
terminará una sesión de educación.
Referencias culturales
El proyecto GNU tiene numerosos chistes sobre ed alojados en su sitio web. Además, un código de error llamado ED
se define en glibc : cuando se le pide que imprima su descripción (errorstr), la biblioteca devuelve un único signo de interrogación. La documentación es simplemente "el usuario experimentado sabrá qué está mal". [10]
Ver también
- ex (editor de texto) , originalmente un ex tendía versión del ed
- vi , la vi sual editor de pantalla completa basada en ex
- sed , el estándar de UNIX s tream ed itor basado en las funciones de scripting en ed
- Edlin , el editor de línea estándar de MS-DOS que se inspiró en ed
- Sam (editor de texto)
- Guerra del editor
- Lista de comandos de Unix
Referencias
- ↑ Computerphile (2018-07-06), Where GREP Came From - Computerphile , consultado el 21 de octubre de 2020
- ^ a b Salus, Peter H. (2005). El demonio, el ñu y el pingüino . Groklaw .
- ^ a b - Referencia de comandos y utilidades, la especificación única de UNIX , número 7 de The Open Group
- ↑ Peter H. Salus, Daemon, Gnu y Penguin. Ch. 2 y 3. Jueves, 14 de abril de 2005 a las 10:56 PM EDT. http://www.groklaw.net/article.php?story=20050414215646742 Consultado el 29/10/2015.
- ^ DM Ritchie y KL Thompson, "Editor de texto QED", MM-70-1373-3 (junio de 1970), reimpreso como "Manual de referencia del editor de texto QED", MHCC-004, Murray Hill Computing, Bell Laboratories (octubre de 1972).
- ^ McIlroy, MD (1987). Un lector de investigación Unix: extractos comentados del Manual del programador, 1971–1986 (PDF) (Informe técnico). CSTR. Bell Labs. 139.
- ^ a b Donald A. Norman (1981). "La verdad sobre UNIX" (PDF) . Datamación .
- ^ Administración de SQL * Plus. https://docs.oracle.com/cd/E11882_01/server.112/e10839/admn_sqlpls.htm#UNXAR166 Consultado el 23 de julio de 2016.
- ^ - Manual de comandos generales de Linux
- ^ "La biblioteca GNU C - Códigos de error" . ftp.gnu.org .
enlaces externos
- : editar texto - Referencia de comandos y utilidades, La especificación única de UNIX , Edición 7 de The Open Group
- Página del manual de Unix First Edition que describe ed .
- : editor de texto - Manual del programador de Unix versión 7
- : editor de texto - Manual del programador de Plan 9 , Volumen 1, un descendiente directo de la ed original.
- Página de inicio de GNU ed
- GNU ed para Win32
- Editores de Unix I
- Ejemplos de ed en scripts
- ed Humor ("Ed es el editor de texto estándar")
- Una historia de UNIX antes de Berkeley, la sección 3.1 describe la historia de ed.