当寻找的路径,可执行文件或检查,如果你在Unix shell中输入命令的名称会发生什么,有不同的公用事业过多(which,type,command,whence,where,whereis,whatis,hash,等)。
我们经常听说which应该避免。为什么?我们应该用什么来代替?
众所周知,apt-get具有超级牛的力量,aptitude但不:
$ apt-get --help | grep -i cow
This APT has Super Cow Powers.
$ aptitude --help | grep -i cow
This aptitude does not have Super Cow Powers.
Run Code Online (Sandbox Code Playgroud)
当然,APT 有一个复活节彩蛋来搭配它:
$ apt-get moo
(__)
(oo)
/------\/
/ | ||
* /\---/\
~~ ~~
...."Have you mooed today?"...
Run Code Online (Sandbox Code Playgroud)
我很好奇,这个复活节彩蛋背后有什么故事吗?它的历史是什么?我知道它已经在 apt 中使用了很长时间——从旧 Debian 版本中的 apt 源的快速 grep 中,它在 Debian 2.2(土豆;apt 0.3.19)和 Debian 3.0(woody;apt 0.5.4)之间的某个时间获得了它。
编辑:根据Debian-Devel 邮件列表上Jacob Kuntz的消息,它于 2001 年 2 月在 apt …
的wheel在* nix计算机组通常是指基团与某种根状的访问。我听说在某些 *nix 上它是有权运行的用户组su,但在 Linux 上似乎是任何人(尽管您自然需要 root 密码)。在我使用的 Linux 发行版上,它似乎是默认情况下有权使用的组sudo;他们有一个条目sudoers:
%wheel ALL=(ALL) ALL
Run Code Online (Sandbox Code Playgroud)
但这都是切线的。我的实际问题是:为什么叫这个组wheel?之前听过各种解释,不知道对不对。有谁知道这个词的实际历史?
越来越多的tar存档使用xz基于 LZMA2的格式进行压缩,而不是传统的bzip2(bz2)压缩。事实上,kernel.org于2013 年 12 月 27日晚发布了“再见 bzip2 ”公告,表明内核源代码将从此时起以 tar.gz 和 tar.xz 格式发布 - 并在网站主页上发布直接提供的是在tar.xz.
是否有任何具体原因可以解释为什么会发生这种情况以及gzip在这种情况下的相关性是什么?
因此,有许多不同版本的 Unix:HP-UX、AIX、BSD 等。 Linux 被认为是 Unix 克隆,而不是 Unix 的实现。所有“真正的”Unices 都是原版的真正后代吗?如果不是,Linux 与 Unix 的区别是什么?
如果您运行hash它,它会显示自上次重置哈希后运行的所有命令的路径 ( hash -r)
[root@c04c ~]# hash
hash: hash table empty
[root@c04c ~]# whoami
root
[root@c04c ~]# hash
hits command
1 /usr/bin/whoami
[root@c04c ~]# whoami
root
[root@c04c ~]# hash
hits command
2 /usr/bin/whoami
Run Code Online (Sandbox Code Playgroud)
根据手册页,哈希的目的是:
/usr/bin/hash 实用程序影响当前 shell 环境记住找到的实用程序位置的方式。根据指定的参数,它将实用程序位置添加到其记住的位置列表或清除列表的内容。当没有指定参数时,它报告列表的内容。该
-r选项会导致外壳忘记所有记住的位置。散列不报告作为 shell 内置程序提供的实用程序。
除了查看我输入了多少次命令之外,我看不到hash.
它甚至出现在 thegeekstuff.com 的前 15 个有用命令中
在哪些方面hash有用?
在整个 POSIX 规范中,都有规定 ( 1 , 2 , 3 ...) 允许实现/特别处理以 2 开头的路径。
POSIX 应用程序(根据 POSIX 规范编写的应用程序可移植到所有 POSIX 兼容系统)不能假设//foo/bar与 相同/foo/bar(尽管他们可以假设///foo/bar与 相同/foo/bar)。
现在那些//foo特殊对待的 POSIX 系统(历史悠久且仍在维护)是什么?我相信(我现在被证明是错误的)微软为他们的 Unix 变体 (XENIX) 和可能的 Windows POSIX 层推送了 POSIX 条款(有人能证实吗?)。
它被 Cygwin 使用,Cygwin 也是 Microsoft Windows 的类似 POSIX 的层。是否有任何非 Microsoft Windows 系统?开放虚拟机?
在//foo/bar特殊的系统上,它用于什么?//host/path用于网络文件系统访问?虚拟文件系统?
某些运行在类 Unix 系统上的应用程序(如果不是系统的 API)是否会//foo/bar特别处理路径(在它们否则将其/foo/bar视为文件系统上的路径的上下文中)?
编辑,此后我在奥斯汀组邮件列表上询问了//foo/bar有关规范中处理起源的问题,并且讨论很有趣(至少从考古学的角度来看)。
Linux只是一个内核,如果用户要使用它,那么他们需要一个完整的发行版。话虽如此,当没有 Linux 发行版时,Linux 的第一个版本是如何使用的?