Unix 的创造者肯·汤普森(Ken Thompson)曾被问到,如果让他重来,他会怎么做。他说,“我会用 'e' 来拼写 creat。”
肯指的是什么?是否有“创建”命令?
每个 Linux 用户都经历过这种烦人的事情:你开始输入一个又长又无聊的命令,然后意识到你之前应该执行另一个。如何保存第一个以便稍后执行?
你开始打字
mycommand -a -F --conf /very/long/path --and /another/one /input/file.txt
Run Code Online (Sandbox Code Playgroud)
但是在按“Enter”之前,您意识到您应该cp f.txt /input/file.txt首先完成。
所以,你被你的命令困住了,如果你不按下Enter你将无法使用你的 bash 历史恢复它。
处理这个问题的最佳方法是什么?
在 2013-01-10 Glenn Fowler 将此发布到ast-users 邮件列表:
正如在 AST 和 UWIN 列表中多次指出的那样,AT&T 对 OpenSouce 软件的支持很少,这就是为什么我们很少有人参与我们相当大的 AST 软件集合。尽管如此
ksh,nmake、vczip、UWIN和其他 AST 工具仍在几个 AT&T 项目中继续使用。事实证明,软件并不是唯一缺乏支持的东西:dgk (David Korn)(AT&T 研究员,服务 36 年)和 gsf (Glenn Fowler)(AT&T 研究员,服务 29 年)都已终止,10 月生效10. 我们的第三个主要合作伙伴 Phong Vo(AT&T 研究员,服务 32 年)几个月前离开了 Google。UWIN 维护者 Jeff Fellin 仍在 AT&T 工作,并为一些关键操作提供 UWIN 支持。
dgk 和 gsf 都将继续在 AST 软件上工作,并且实际上可能有更多的时间(至少在短期内)专注于它。
下载站点和邮件组将至少在接下来的几个月内保留在 AT&T 中。我们的 AT&T 同事 dr.ek,AST 用户和错误检测器,将维护该站点。我们已经保护了 astopen.org 域,并且正在研究非 AT&T 托管选项,包括带有错误跟踪功能的存储库。
改变的过程需要时间;用户社区的耐心将不胜感激。在一个基本上稳定了近 30 年的环境中工作后,有 …
大多数手册页不包含一些常见示例是否有原因?他们通常会解释所有可能的选项,但这使得初学者更难理解它“通常”是如何使用的。
为什么 Unix 时间从 1970-01-01 开始?为什么不是 1971-01-01 或任何其他日期?
我注意到基本上我曾经使用过的系统都没有/bin/sh真正的可执行文件。它总是一个符号链接dash,bash在POSIX模式,或者类似的东西。
为什么?使用真正的、原始的有/bin/sh什么缺点?(速度?许可?)
root账户的由来是什么?它是从哪里来的,为什么它仍然被称为 root?
(最初由@lizztheblizz 在 Twitter 上询问。)
在我见过的大多数 shell 脚本中(除了我自己没有写的脚本),我注意到 shebang 设置为#!/bin/sh. 这在旧脚本上并没有让我感到惊讶,但在相当新的脚本上也是如此。
是否有任何理由宁愿/bin/sh过/bin/bash,因为bash几乎是无处不在的,而且往往默认情况下,许多Linux和BSD的机器回去了十多年?
我不认为历史Unix 中的 shell/实用程序或像4.4BSD那样“最近”的东西支持使用双破折号(或两个连续的连字符)作为选项分隔符的结尾。使用FreeBSD,您可以看到例如在2.2.1 版本(1997)的rm 联机帮助页中引入的注释。但这只是一个命令的文档。
查看我能找到的最古老的GNU fileutils 更改日志,我看到了这个1(略有改动):
Tue Aug 28 18:05:24 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
* touch.c (main): Don't interpret first non-option arg as a <---
time if `--' is given (POSIX-required kludge).
* touch.c: Add long-named options.
* Many files: Include <getopt.h> instead of "getopt.h" since
getopt.h will be in the GNU /usr/include.
* install.c: Declare some …Run Code Online (Sandbox Code Playgroud) 来自帖子为什么 rm 可以删除只读文件?我明白那个rm只需要对目录的写权限即可删除文件。但是我发现很难消化我们可以轻松删除所有者和分组不同的文件的行为。
我尝试了以下
mtk : 我的用户名
abc : 创建了一个新用户
$ ls -l file
-rw-rw-r-- 1 mtk mtk 0 Aug 31 15:40 file
$ sudo chown abc file
$ sudo chgrp abc file
$ ls -l file
-rw-rw-r-- 1 abc abc 0 Aug 31 15:40 file
$ rm file
$ ls -l file
<deleted>
Run Code Online (Sandbox Code Playgroud)
我在想这不应该被允许。用户应该只能删除其所有权下的文件吗?有人可以解释为什么允许这样做吗?避免这种情况的方法是什么?我可以认为只限制父目录的写权限以禁止意外删除文件。