Questions tagged «history»

Unix系统及其主要组件的历史。请不要将此标签用于与外壳相关的问题;使用“命令历史记录”代替。


2
用dd修补二进制文件
我读过几次(下面)这个引用,最近一次是在这里阅读的,并且不断地困惑于如何dd使用它来修补任何东西,更不用说编译器了: 我30年前在学校使用的Unix系统在RAM和磁盘空间方面非常有限。特别是/usr/tmp文件系统非常小,当有人尝试编译大型程序时会导致问题。当然,无论如何,学生都不应该编写“大型程序”。大型程序通常是从“某处”复制的源代码。我们中的许多人都复制/usr/bin/cc到/home/<myname>/cc,并用来dd修补二进制文件,/tmp而不是来使用/usr/tmp更大的二进制文件。当然,这只会使问题变得更糟-这些副本所占用的磁盘空间在当时确实很重要,并且现在会/tmp定期装满,从而阻止其他用户甚至编辑其文件。他们发现发生了什么事后,系统管理员执行了chmod go-r /bin/* /usr/bin/* 它“解决”了问题,并删除了我们所有的C编译器副本。 (强调我的) 该dd手册页只字未提修补和不认为它可能是重新定意要做到这一点呢。 二进制文件真的可以修补dd吗?这有任何历史意义吗?
32 dd  history  patch 

2
为什么Unix手册页使用双反引号代替双引号?
我注意到,Unix实用程序格式化的手册页和其他文档经常使用双反引号,``然后用双单引号引起''来的单引号而不是双引号字符"。单引号被类似地替换。为什么是这样? 以下是几个示例,来自手册页grep: To find all occurrences of the pattern `.Pp' at the beginning of a line: $ grep '^\.Pp' myfile The apostrophes ensure the entire expression is evaluated by grep instead of by the user's shell. The caret `^' matches the null string at the beginning of a line, and …
32 man  history 


2
哪里没有“ export var = value”?
我可能是在1990年代中期在Usenet上发现的(!) export var=value 是Bashism,而可移植的表达是 var=value export var 我一直提倡这一点,但是最近有人挑战了我,我真的找不到任何文档来支持我的坚定信念。 谷歌搜索"export: command not found"似乎并没有提出任何实际有人遇到这个问题的案例,因此即使它是真实的,我想也不是很常见。 (我发现的命中点似乎是新手,他们复制/粘贴了标点符号,并最终使用了'export: command not found或类似的东西,或者试图export与sudo; 一起使用;而新手csh用户则尝试使用Bourne shell语法。) 我可以肯定地说它可以在OS X以及各种Linux发行版上运行,包括shis dash。 sh$ export var=value sh$ echo "$var" value sh$ sh -c 'echo "$var"' # see that it really is exported value 在当今世界,可以安全地说export var=value使用安全吗? 我想了解后果是什么。如果它不能移植到v7“ Bourne classic”中,那就比琐事多了。如果在生产系统中shell确实无法使用此语法,那么了解这一点将很有用。

6
为什么将cp设计为以静默方式覆盖现有文件?[关闭]
我cp使用以下命令进行了测试: $ ls first.html second.html third.html $ cat first.html first $ cat second.html second $ cat third.html third 然后我复制first.html到second.html: $ cp first.html second.html $ cat second.html first 该文件将second.html被静默覆盖,没有任何错误。但是,如果我在桌面GUI中通过拖放具有相同名称的文件来执行此操作,则该文件将first1.html自动添加后缀。这样可以避免意外覆盖现有文件。 为什么不cp遵循这种模式,而不是默默地覆盖文件?
30 cp  history 

1
为什么计划9使用“ snarf”而不是“ copy”?
当您观看有关Plan 9及其acme编辑器的演示时,您可能会注意到复制的名称是narf(不幸的是,我无法找到任何有意义的解释)。 为什么会这样呢? 有什么理由吗?是否已完成为此功能创建唯一名称的操作,因为副本可能不是最佳名称? 参考文献: 维基百科(链接): Snarf,在Blit和Plan 9窗口系统中用于“复制”操作的术语。 cat-v.org(链接): 单击鼠标中键还有另一个菜单。剪切和粘贴很容易解释,Snarf只是“计划9”一词的“复制”。 9fans邮件列表(链接): 在Plan 9和/或Mac OS X下通过plan9port使用acme,是否都可以在acme中打开“文件”,以显示acme snarf缓冲区的当前内容? /dev/snarf 因此,看起来好像有一个snarf缓冲区和一个名为的文件(显然该缓冲区必须有一个文件)/dev/snarf。 9term手册页(链接): 在键盘上键入的字符将替换所选的文本;如果此文本不为空,则将其放置在所有窗口共有但与sam(1)不同的snarf缓冲区中。 (...) 从按钮2上的菜单中选择编辑操作。剪切操作从屏幕上删除所选文本,并将其放入snarf缓冲区;snarf将选择的文本复制到缓冲区中而不删除它;粘贴将选定的文本替换为缓冲区的内容;然后将snarf缓冲区的副本发送到输出点之后,如果缺少则添加最后一个换行符。粘贴有时会发送,并且总是将文本放置在输出点之后;这样放置的文本将完全如上所述。因此,在输出点之后粘贴包含换行符的文本时,最好先打开保持模式。 探索Acme教程(链接): 'Snarf':在大多数其他编辑器中称为复制 snarf的 dictionary.com定义(链接): (非正式)贪婪地吃喝 (同时代)抢夺贪婪的东西,尤其是 没有经过同意 (Unix)通过网络获取一个文件或一组文件。另请参见爆炸。 Inferno第2部分:让我们建立集群!(链接): 在Inferno和Plan 9中,剪贴板被不幸的名称“ snarf buffer”调用。

3
Linux Kernel项目如何在早期阶段跟踪错误?
我们都知道Linus Torvalds是因为Bitkeeper的问题而创建了Git。(至少对我而言)不知道的是,直到那时如何跟踪问题/票证/错误?我尝试过,但没有得到任何有趣的东西。我唯一能就此主题进行的讨论是Linus与使用Bugzilla共享担忧的地方。 推测: -在最初阶段,人们追踪错误的最简单方法是将票放入其自己的分支中,但可以肯定的是,很快它不会因噪音超过好错误而扩大规模。 我已经看过并使用过Bugzilla,除非您有时会知道正确的“关键字”,否则您会很困惑。注意:我对早期(1991-1995年)如何用来跟踪问题特别感兴趣。 我确实看过两个线程,“ Kernel SCM saga ”和“ Trivia:git何时自托管? ”,但是这些都没有提到早期的内核错误跟踪。 我四处搜寻,但无法获得1991-1992年间提供的任何FOSS错误跟踪软件。Bugzilla,Request-tracker和其他工具出现的时间要晚得多,因此它们似乎已经淘汰了。 关键问题 那时候,Linus,子系统维护者和用户如何报告和跟踪错误? 他们是否使用了某些错误跟踪软件,制作了一系列错误并手动提出了有关错误的问题和讨论(这样做会很昂贵且很痛苦)还是只使用电子邮件。 后来,Bugzilla出现了(1998年第一版),这似乎是随后报告错误的主要方法。 希望对过去的事情有一个更清晰的了解。
29 linux  kernel  git  history 

1
/ home目录什么时候出现?
最初在Unix中,/usr用于用户(主)目录。因此,如果我有一个名为的用户alex,我的主目录将为/usr/alex。(有趣的是,Unix的后继计划9仍在中包含用户目录/usr。) 当然,如今,我们将主目录存储在中/home。(至少在GNU / Linux上。我不了解其他Unices,但是OS X不算在内。)这在什么时候成为标准做法?它出现在什么Unix风格中?其他Unices的收养需要多长时间?先后/home已通过大家? 我在这里做了一些搜索,但是什么也没发现。

1
Unix现在是什么?
正如我在Wikipedia上读到的那样,Unix最初是一种革命性的操作系统,主要使用C语言编写,因此可以移植并在不同的硬件上使用。接下来提到Unix的后代,主要是BSD。还讨论了Unix,Minix / Linux的克隆。 但是原始的Unix操作系统发生了什么? 它现在是否已作为操作系统存在,或者仅是像POSIX这样的标准? 请注意,我知道这个答案,但是除了派生的作品外,它没有提到原始Unix的命运。
28 history 

2
cal坏了吗?1752年9月发生了什么?
如果查看输出,cal 9 1752您将看到以下奇怪的输出: September 1752 S M Tu W Th F S 1 2 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 名为“下面的故事CAL 9 1752解释说,” “被复制在90年代初一个新闻列表的出并在存档的有趣的东西集合了计算机的观众由David G.怀斯曼(网络管理员在计算机科学系大学部西安大略省)。 最初在某些旧版本7机器上编写“ cal”命令的人的代码中出现一个错误的错误。当malloc的变量覆盖12个额外的零字节字节时,这显示为一些错误的输出,从而导致上面看到的奇怪的日历输出。 现在,在他的右脑中没有人真正在乎1752年9月的日历。即使在UNIX下也没有1752年的想法,因为直到1970年初UNIX才开始出现。因此,甚至没人知道“ cal ”,直到很晚才出现此错误。到那时,有成千上万的“ cal”副本在周围浮动,其中许多仅是二进制文件。修复所有问题为时已晚。 因此,在1975年中,AT&T的一些高级官员会见了教皇,并达成了协议。追溯地更改了日历,使1752年9月与UNIX现实保持一致。由于历是计数改为向后从1752年9月14日,没有日期后受到了影响。之前的日期全都移动了12天。他们还修复了“ cal”手册页,以将错误记录为功能。 从9月3日到9月13日的11天简直就是记录。他们搜索了历史书籍,发现幸运的是,在那11天中没有发生任何有意义的事情。 总体而言,这整个事件几乎是非事件。后来一位科幻小说家听说了这件事,并将其放到科幻小说的完整作品《天堂的车床》中,我认为这本书与真实发生的情况几乎没有相似之处。 对输出异常的真正解释是什么?
28 history  cal 


2
是否有理由将Zsh数组的第一个元素索引为1而不是0?
根据我对现代编程和脚本语言的经验,我相信大多数程序员通常习惯于将0数组的第一个元素称为索引。 使用1有什么实质性的优势? 我敢肯定,除了Zsh之外,我还听说过更多其他与数组类似的语言;我也很好,因为它同样方便。 但是,由于以前发行和广泛使用的shell脚本语言(例如ksh和bash都使用0), 为什么有人会选择更改此通用“标准”? 我对我的问题的立即回答是“当然不是”。 那么,我能想到的关于外壳的这种“专有功能”的唯一解释是“ 他们只是这样做是为了炫耀更多酷的外壳 ”。 我对Zsh或它的历史一无所知,而我对此琐碎的理论很有可能没有任何意义。 对此有解释吗?还是只是出于个人品味?
27 zsh  history  array 


2
如何记录每个键入的命令
您如何记录有人输入到Shell中的每个命令? 我是在保护自己的基础上询问您是否已登录到他人的服务器并且出现故障,或者是否有人(有意或恶意地)登录到您的服务器。 即使新手也能够分流历史与unset history或创建一个新的外壳,以隐藏自己的踪迹。 我很好奇Linux高级管理员如何跟踪已输入的命令/对系统所做的更改。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.