为什么Linux的/ usr和/ tmp目录的拼写没有拼写?


34

我经常开始考虑这个问题,但从未找到一个好的答案。为什么这两个Unix目录不/user/temp呢?

下面的所有其他目录root似乎正是它们可能会猜到的,但是这两个目录似乎很奇怪,我总是会猜它们为userand temp

拼写有历史原因吗?


2
有人告诉我这是Unix的遗留物。基于这个假设,我猜想大多数这样的截断都是基于突出的音节。

17
一次,有人问肯·汤普森(Ken Thompson),他在重新设计Unix时是否会做其他不同的事情,他回答说:“我会用e拼写创造物。”
mattdm

3
“根目录下的所有其他目录似乎正是人们所猜想的那样”->在我看来,这不是真的。除,和以外boot,其他所有内容都将缩短。也缺少元音 homemediarootmnt
phunehehe 2011年

7
我以为'u'是元音...
Shickadance先生2011年

1
@先生。Shickadance:是的。
0xC0000022L

Answers:


49

是的,有原因。它们是明显的用户和临时用户。passwd与resolv.conf相似。Unix是一种专家友好,用户敌对的操作系统。

当300波特调制解调器成为标准时,我还是一个学生。我当时很羡慕我的同学,因为我在工作时从Control Data获得了一个Silent 700终端。您会看到键入每个字符并等待其回显的延迟。每个字符都被计数;我也认为这促进了Leet演讲的开始。

来自vi的hjkl的历史鲜为人知。vi是由Bill Joy在同一年的UCB研究生期间开发的。Cory Hall的ADM 3a终端在这些字母上方具有箭头键


22
我认为,在设计时,“专家友好,用户敌对”的想法不是目标的一部分。而是,所有用户都是专家,因此没有有意义的区别。
mattdm 2011年

7
大声笑“经验友好,用户敌对”。这让我开心。+1!
nico

5
只是一个小音符(无论如何都不是更正)。尽管有时将其发音为“用户”,但/ usr表示“通用系统资源”或“ unix系统资源”。无论哪种情况,它都在Unix的古老历史迷雾中丢失了:)
luis.espinal 2011年

20
在创建/ usr时,其含义是用户目录和主目录位于此处。Unix /通用系统资源实际上是一个反义词。
jlliagre 2011年

2
当Unix出现时300 bps很繁琐。那里有75 bps的链接,由笨重,缓慢的机电式电传打字机(通常是Teletype®ASR-33)处理。
Alexios 2012年

20

它们是来自Unix的保留。内存和磁盘空间不足。砍掉一些元音和其他缩写可以真正节省开支。几个磁盘块或几个字节可能意味着能否运行程序有所不同。(我曾经不得不将程序修剪24个字节,然后才能运行。)

正如汤姆指出的,终端速度很慢。1200波特被引入为高速。我使用了一个使用半速电传打字机(55波特或5 cps)作为控制台的系统。

在运行图形界面的系统上,一般来说没什么大不了的,因为普通用户不会在其中闲逛。这些目录通常在hier手册页中有详细记录。

更改为更长的名称会对现有程序造成很多问题。这也将限制脚本的可移植性。将多个名称链接到同一目录可能会比没有帮助更令人困惑。

编辑:在其上开发Unix的PDP-7具有4KW内存和最大32KW的基本配置。18位宽的单词。输入是电传打字机,因此速度可能是110波特或10cps,大约100个单词,比语音慢得多。


8
我不购买mmory nd dsk spc,但速度较慢。只要您有别名-为什么不?
用户未知

@user未知:然后您就年轻了,永远不必担心内存或磁盘空间。我的第一台计算机现在已有30年的历史-惊叹于规格。

1
我从未深入编写或检查过文件系统,但是文件系统中文件/目录的名称是否会或多或少地占用空间,取决于1个字符?文件本身总是占据一定大小的倍数-今天为4k。因此,大多数包含/ usr或/ tmp路径的文件都不会有效地变小或变大,具体取决于单个文件e。好吧-有时它们会,然后它们会增长到整个块状,但很少。在RAM中?我不知道。
用户未知,

1
而且打字会更烦人。“ temporary vs tmp” ugh ...为什么有人想要他们更长一点?
xenoterracide

4
现代的Unix目录具有可变长度的条目。回到Research Unix,目录条目是固定的16个字节:文件名14个,索引节点号2个。当/ usr等被标准化时,它可能会更小。
geekosaur 2011年

5

我很惊讶没有人发表评论/user。这很明显:因为它不是“用户”,所以是“通用系统资源”。

至于/tmp,它更短,更容易键入。C程序员习惯于在可能的情况下使用短名称,因为它们最终会在程序中多次键入短名称。出于相同的原因,通常有一个名为“ tmp”而不是“ temp”的临时变量,您可以在for循环中使用“ i”作为索引,而不是“ index”或“ counter”。


22
在创建/ usr时,其含义是用户目录和主目录位于此处。Unix /通用系统资源实际上是一个反义词。
jlliagre 2011年

3
@jlliagre太好了。我发现了另一个实际上具有权威性来源的线程。us.generation-nt.com/answer/…–
Shawn J. Goff

2
大多数早期的C程序员都是最早的FORTRAN程序员。在Fortran IV中键入整数的方式是,以从'i'到'n'的字符开头标识符,其他所有内容均为实数。因此,循环索引通常为i,j或k;这对于我们科学的程序员那时所处理的矩阵已经足够了。
Tom Murphy

@TomMurphy,大多数以C开头的人可能是汇编语言程序员,或者是BCPL或B用户。RATFOR是为可怜的人发明的,这些人手头上没有一种体面的语言。Kernighan和Plaugher所著的“软件工具”一书是用RATFOR编写的(并列出了完整的预处理器)。仍然非常值得一读。
vonbrand

1
/usr不是“通用系统资源”,而是用户。参见Youtube:AT&T档案:UNIX操作系统(大约在1982年生产),在该时间大约13分35秒时,Brian W. Kernighan/usr/bwk清楚地将其发音为“ user-bwk”,并将/usr其发音为“ slash-user” 。在13分30秒处,/ usr也清楚地暗示是图中包含主目录的位置。我认为您没有比这更权威的了。
CVn

4

没有人提到的一个因素是,鉴于当时的键盘技术,使用更易于键入的短名称具有很大的优势。打印user主场迎战usr,即使是110-BPS电传,可能不是一个巨大的交易; 必须键入多余的字母可能更重要。


1

根目录下的所有其他目录似乎正是人们所猜想的那样,

还有/ var,/ mnt和/ opt;)

但是这两个看起来很奇怪,我会一直把它们当作用户和临时用户。

差不多好了。正如肖恩所说,“用户”代表“通用系统资源”(尽管根据Google的其他资源表示,它代表“ Unix系统资源”)。

拼写有历史原因吗?

捷径,缩写。请记住,任何操作系统中的命令都旨在以交互方式和程序方式进行访问。特别是对于快速脚本编写是主要关注点的系统管理,缩写词,助记符与完整拼写的单词/命令一样好(甚至更好)。

同样,回到过去,如果您是通过一个糖蜜缓慢的调制解调器远程连接的,那么在这里刮几个元音就可以使您的生活更轻松(如果您是系统管理员,想要弄清楚到底是怎么回事,就不会那么痛苦了)远程盒是错误的。)

如前所述,它不是/ usr和/ tmp唯一的(请参阅/ var,/ mnt和/ opt)。

而且,它不是Unix独有的。以DOS为例(例如,chkdsk。)去除元音的助记符是一个强大而便捷的概念。

即使在自然语言(如闪族语言)中,也存在这种概念(词根被3个辅音组普遍且几乎毫无歧义地识别。)这是一种固有的人为管理信息的机制。


/ var,/ mnt和/ opt后来才出现。但是,/ bin,/ dev和/ etc处于UNIX的早期,出于同一原因,人们指出-因为tty速度很慢,而且并非全部都是CRT和磁盘空间。有使用胶带纸,小(空间明智)昂贵的驱动器甚至8"软盘启动UNIX系统一再空间对于那些正处于一个溢价。
Arcege

1
可以说,闪族语言实际上并不使用辅音,而是使用带有不确定元音的音节。因此,根音节提供了语义,而特定的元音则增加了语法意义。
ninjalj 2013年
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.