fbpx
维基百科

ed (文本编辑器)

ed是用于Unix类Unix操作系统的行编辑器。它是Unix操作系统在1969年8月开发出来的最初部分[1]。它仍旧是POSIXOpen Group的基于Unix的操作系统标准的一部分[2],与更加完备的全屏幕编辑器vi并列。

ed
ed文本编辑器
原作者Ken Thompson
開發者AT&T贝尔实验室
首次发布1973年, 49–50年前
操作系统Unix类Unix
类型文本编辑器

历史和影响

ed文本编辑器是Unix操作系统最初的三个要件之一:汇编器编辑器shell,它们是Ken Thompson在1969年8月于AT&T贝尔实验室PDP-7上开发的[3]。ed的很多特征来自qed英语QED_(text_editor)文本编辑器,它是Thompson的母校加州大学伯克利分校开发的[4] 。Thompson非常熟悉qed,曾经在CTSSMultics系统上重新实现过它。Thompson版本的qed曾因首先实现了正则表达式而著名。正则表达式也实现于ed中,尽管相比qed中的这里实现的要相当不具一般性。

Dennis M. Ritchie生产了后来Doug McIlroy所描述的“终极”ed[5],ed的各方面转而影响了ex,它依次又产生了vi。非交互式Unix命令grep受到qed和后来的ed常见特定用法的启发,它们的命令g/re/p含义是全局查找正则表达式re并打印包含它的行。Unix流式编辑器sed实现了未被Unix上的ed所支持的qed英语QED (text editor)的很多脚本特征。

特征

ed的特征包括:

  • 在所有Unix系统上必然可获得,在符合单一UNIX规范的系统上是强制的。
  • 模态编辑器,支持命令模式、文本模式和查看模式。
  • 支持正则表达式
  • 通过从标准输入获取命令而达成的强力自动化。

著称于它的简洁性,ed几乎不给予视觉反馈[6],故而曾被Peter H. Salus英语Peter H. Salus称为“曾有过的最仇视用户的编辑器”,即使是比较于同时代的(因复杂而声名狼藉的)TECO英语TECO (text editor)。例如,在有错误的情况,或它想要确认用户希望不保存退出的时候,ed产生的消息就是“?”。它不报告当前文件名或行号,甚至不显示变更文本的结果,除非发出要求。更老版本(大约1981年)在发起退出命令而用户没有保存变更的时候甚至不提示确认[6]。这种简洁性对Unix的早期版本是适当的,那时控制台是电传打字机调制解调器很慢,而内存是珍贵的。计算机技术进步使得这些限制解除了,有更多视觉反馈的编辑器成为常规。

在当前实践中,ed极少交互式使用,但却在一些shell脚本中有所使用。对于交互式使用,ed于1980年代被sam英语Sam_(text_editor)viEmacs编辑器取代。ed事实上可以在所有可获得的Unix和Linux版本上找到,因此对必须在多个版本Unix上工作的人有用。在基于Unix的操作系统上,一些实用工具如SQL Plus英语SQL Plus运行ed作为编辑器,如果EDITOR和VISUAL环境变量没有定义的话[7]。如果在故障的情况下,ed有时是唯一可获得的编辑器。这几乎是它交互式使用的唯一时刻。

ed命令在其他基于行的编辑器中经常被模仿。例如,在早期版本的MS-DOS32-bit版本的Windows NT中,EDLIN英语edlin有某种程度上类似的语法,在很多MUDLPMud英语LPMud和后代)中的文本编辑器使用类似ed的语法。但是这些编辑器典型的在功能上更加有限。

例子

下面是一个ed会话的例子抄录。为了清晰,命令和用户键入的文本使用正常字型,而来自ed的输出被加粗。

a ed is the standard Unix text editor. This is line number two. . 2i   . ,l ed is the standard Unix text editor.$ $ This is line number two.$ 3s/two/three/ ,l ed is the standard Unix text editor.$ $ This is line number three.$ w text 65 q 

最后结果是包含下列文本的一个简单文本文件:

ed is the standard Unix text editor.   This is line number three. 

开始于一个空文件,a命令附加文本,所有ed命令都是单一字母。这个命令安置ed进入“插入模式”,插入随后的字符,并由只有一个单一的点的行终止。在此点终止前键入的两行进入文件缓冲区。2i命令也进入插入模式,并在第2行之前插入键入的文本,这里是空行。所有命令都可以前缀一个行号来在此行上进行操作。

在行,l中,l表示列表命令。这个命令前缀着一个范围,这里是,,它是1,$的简写。范围是由逗号分隔的两个行号,$意味着最后一行。作为回应,ed列出所有行,从最先至最后。这些行用美元号终结,所以在行尾的空白明显可见。

一旦空行被插入到第2行前,读作“This is line number two”的行,现在实际上是第3行。这个错误使用3s/two/three/命令来更正,这是替换命令。3指定应用这个命令的那个行;随后是要被替换的文本,接着是要替代成的文本。现在用,l命令列出的行是正确的了。

w text命令写缓冲区到文件“text”,使得ed用“65”来响应,这是写到文件中的字符数目。q命令结束ed会话。

参见

  • ex (文本编辑器),最初是扩展版本的ed。
  • vi,基于ex的可视全屏幕编辑器.
  • sed,基于ed内脚本特征的标准UNIX流式编辑器。
  • Edlin英语Edlin,受ed影响的标准MS-DOS行编辑器。
  • Sam (文本编辑器)英语Sam_(text_editor)
  • 编辑器之战
  • Unix实用程序列表

引用

  1. ^ Salus, Peter H. The Daemon, the Gnu and the Penguin. Groklaw. 2005 [2019-06-02]. (原始内容于2017-07-04). 
  2. ^ ed – 命令与工具(Commands & Utilities)参考,单一UNIX®规范第7期,由國際開放標準組織发布
  3. ^ The Peter H. Salus, Daemon, the Gnu and the Penguin. Ch. 2 & 3. Thursday, April 14, 2005 @ 10:56 PM EDT. http://www.groklaw.net/article.php?story=20050414215646742 (页面存档备份,存于互联网档案馆) Accessed 10/29/2015.
  4. ^ D. M. Ritchie and K. L. Thompson, "QED Text Editor", MM-70-1373-3 (June 1970), reprinted as "QED Text Editor Reference Manual", MHCC-004, Murray Hill Computing, Bell Laboratories (October 1972).
  5. ^ McIlroy, M. D. A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 (PDF) (Technical report). CSTR. Bell Labs. 1987 [2019-06-02]. 139. (原始内容 (PDF)于2019-11-30). 
  6. ^ 6.0 6.1 Donald A. Norman. The truth about UNIX (PDF). Datamation. 1981 [2019-06-02]. (原始内容 (PDF)于2014-04-16). 
  7. ^ Administering SQL*Plus. https://docs.oracle.com/cd/E11882_01/server.112/e10839/admn_sqlpls.htm#UNXAR166 (页面存档备份,存于互联网档案馆) Accessed 7/23/2016.

外部链接

文本编辑器, ed是用于unix和类unix操作系统的行编辑器, 它是unix操作系统在1969年8月开发出来的最初部分, 它仍旧是posix和open, group的基于unix的操作系统标准的一部分, 与更加完备的全屏幕编辑器vi并列, eded文本编辑器原作者ken, thompson開發者at, t贝尔实验室首次发布1973年, 50年前操作系统unix和类unix类型文本编辑器, 目录, 历史和影响, 特征, 例子, 参见, 引用, 外部链接历史和影响, 编辑ed文本编辑器是unix操作系统最初的三个要件. ed是用于Unix和类Unix操作系统的行编辑器 它是Unix操作系统在1969年8月开发出来的最初部分 1 它仍旧是POSIX和Open Group的基于Unix的操作系统标准的一部分 2 与更加完备的全屏幕编辑器vi并列 eded文本编辑器原作者Ken Thompson開發者AT amp T贝尔实验室首次发布1973年 49 50年前操作系统Unix和类Unix类型文本编辑器 目录 1 历史和影响 2 特征 3 例子 4 参见 5 引用 6 外部链接历史和影响 编辑ed文本编辑器是Unix操作系统最初的三个要件之一 汇编器 编辑器和shell 它们是Ken Thompson在1969年8月于AT amp T贝尔实验室在PDP 7上开发的 3 ed的很多特征来自qed 英语 QED text editor 文本编辑器 它是Thompson的母校加州大学伯克利分校开发的 4 Thompson非常熟悉qed 曾经在CTSS和Multics系统上重新实现过它 Thompson版本的qed曾因首先实现了正则表达式而著名 正则表达式也实现于ed中 尽管相比qed中的这里实现的要相当不具一般性 Dennis M Ritchie生产了后来Doug McIlroy所描述的 终极 ed 5 ed的各方面转而影响了ex 它依次又产生了vi 非交互式Unix命令grep受到qed和后来的ed常见特定用法的启发 它们的命令g re p含义是全局查找正则表达式re并打印包含它的行 Unix流式编辑器sed实现了未被Unix上的ed所支持的qed 英语 QED text editor 的很多脚本特征 特征 编辑ed的特征包括 在所有Unix系统上必然可获得 在符合单一UNIX规范的系统上是强制的 模态编辑器 支持命令模式 文本模式和查看模式 支持正则表达式 通过从标准输入获取命令而达成的强力自动化 著称于它的简洁性 ed几乎不给予视觉反馈 6 故而曾被Peter H Salus 英语 Peter H Salus 称为 曾有过的最仇视用户的编辑器 即使是比较于同时代的 因复杂而声名狼藉的 TECO 英语 TECO text editor 例如 在有错误的情况 或它想要确认用户希望不保存退出的时候 ed产生的消息就是 它不报告当前文件名或行号 甚至不显示变更文本的结果 除非发出要求 更老版本 大约1981年 在发起退出命令而用户没有保存变更的时候甚至不提示确认 6 这种简洁性对Unix的早期版本是适当的 那时控制台是电传打字机 调制解调器很慢 而内存是珍贵的 计算机技术进步使得这些限制解除了 有更多视觉反馈的编辑器成为常规 在当前实践中 ed极少交互式使用 但却在一些shell脚本中有所使用 对于交互式使用 ed于1980年代被sam 英语 Sam text editor vi和Emacs编辑器取代 ed事实上可以在所有可获得的Unix和Linux版本上找到 因此对必须在多个版本Unix上工作的人有用 在基于Unix的操作系统上 一些实用工具如SQL Plus 英语 SQL Plus 运行ed作为编辑器 如果EDITOR和VISUAL环境变量没有定义的话 7 如果在故障的情况下 ed有时是唯一可获得的编辑器 这几乎是它交互式使用的唯一时刻 ed命令在其他基于行的编辑器中经常被模仿 例如 在早期版本的MS DOS和32 bit版本的Windows NT中 EDLIN 英语 edlin 有某种程度上类似的语法 在很多MUD LPMud 英语 LPMud 和后代 中的文本编辑器使用类似ed的语法 但是这些编辑器典型的在功能上更加有限 例子 编辑下面是一个ed会话的例子抄录 为了清晰 命令和用户键入的文本使用正常字型 而来自ed的输出被加粗 a ed is the standard Unix text editor This is line number two 2i l ed is the standard Unix text editor This is line number two 3s two three l ed is the standard Unix text editor This is line number three w text 65 q 最后结果是包含下列文本的一个简单文本文件 ed is the standard Unix text editor This is line number three 开始于一个空文件 a命令附加文本 所有ed命令都是单一字母 这个命令安置ed进入 插入模式 插入随后的字符 并由只有一个单一的点的行终止 在此点终止前键入的两行进入文件缓冲区 2i命令也进入插入模式 并在第2行之前插入键入的文本 这里是空行 所有命令都可以前缀一个行号来在此行上进行操作 在行 l中 l表示列表命令 这个命令前缀着一个范围 这里是 它是1 的简写 范围是由逗号分隔的两个行号 意味着最后一行 作为回应 ed列出所有行 从最先至最后 这些行用美元号终结 所以在行尾的空白明显可见 一旦空行被插入到第2行前 读作 This is line number two 的行 现在实际上是第3行 这个错误使用3s two three 命令来更正 这是替换命令 3指定应用这个命令的那个行 随后是要被替换的文本 接着是要替代成的文本 现在用 l命令列出的行是正确的了 w text命令写缓冲区到文件 text 使得ed用 65 来响应 这是写到文件中的字符数目 q命令结束ed会话 参见 编辑ex 文本编辑器 最初是扩展版本的ed vi 基于ex的可视全屏幕编辑器 sed 基于ed内脚本特征的标准UNIX流式编辑器 Edlin 英语 Edlin 受ed影响的标准MS DOS行编辑器 Sam 文本编辑器 英语 Sam text editor 编辑器之战 Unix实用程序列表引用 编辑 Salus Peter H The Daemon the Gnu and the Penguin Groklaw 2005 2019 06 02 原始内容存档于2017 07 04 ed 命令与工具 Commands amp Utilities 参考 单一UNIX 规范第7期 由國際開放標準組織发布 The Peter H Salus Daemon the Gnu and the Penguin Ch 2 amp 3 Thursday April 14 2005 10 56 PM EDT http www groklaw net article php story 20050414215646742 页面存档备份 存于互联网档案馆 Accessed 10 29 2015 D M Ritchie and K L Thompson QED Text Editor MM 70 1373 3 June 1970 reprinted as QED Text Editor Reference Manual MHCC 004 Murray Hill Computing Bell Laboratories October 1972 McIlroy M D A Research Unix reader annotated excerpts from the Programmer s Manual 1971 1986 PDF Technical report CSTR Bell Labs 1987 2019 06 02 139 原始内容存档 PDF 于2019 11 30 6 0 6 1 Donald A Norman The truth about UNIX PDF Datamation 1981 2019 06 02 原始内容存档 PDF 于2014 04 16 Administering SQL Plus https docs oracle com cd E11882 01 server 112 e10839 admn sqlpls htm UNXAR166 页面存档备份 存于互联网档案馆 Accessed 7 23 2016 外部链接 编辑ed edit text 命令与工具 Commands amp Utilities 参考 单一UNIX 规范第7期 由國際開放標準組織发布 描述ed的Unix第一版手册页 页面存档备份 存于互联网档案馆 GNU ed homepage 页面存档备份 存于互联网档案馆 ed 1 text editor Version 7 Unix Programmer s Manual ed 1 text editor Plan 9通用命令 General Commands 手册页 最初ed的直接后代 Win32版本GNU ed 页面存档备份 存于互联网档案馆 Unix Editors I ed用于脚本的例子 页面存档备份 存于互联网档案馆 ed 幽默 Ed是标准文本编辑器 页面存档备份 存于互联网档案馆 在Berkeley之前的UNIX历史 页面存档备份 存于互联网档案馆 章节3 1描述了ed的历史 取自 https zh wikipedia org w index php title Ed 文本编辑器 amp oldid 63110109, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。