我这学期要上 linux 课,其中一个实验室问题是:
使用 set 命令找出路径中的所有目录。
通常,我只是$PATH
用来找出路径中的目录。但是,显然问题是要求我们使用 set。我以前从未使用过 set 并去 doman set
来了解一些关于命令的信息,但是令我惊讶的是我的 shell (bash) 没有 set 的条目。但是,我看到这里有一个设置手册页http://linuxcommand.org/lc3_man_pages/seth.html所以这是我的第一个问题:为什么我使用命令时没有条目man set
?
我在一个讨论板上发帖说,如果我只是输入set
它,它会吐出一堆看起来像rails
我在我的机器上安装的信息的功能。不知道那里发生了什么......我的教授解释说 set 是一个“内置”功能,这就是为什么它可能没有手册页中的文档。
在网上看了一点 set 文档之后,我仍然不知道如何让它吐出我$PATH
的东西,在做了一些研究之后,我还没有发现任何set
在我需要使用它的上下文中真正解释得很好的东西
需要明确的是,我并不是简单地在这里寻求答案,将我指向正确方向的一般性解释将非常有帮助。
长话短说
为什么我可以在线找到一个 man 条目,
set
但是当我使用该命令时man set
,我的终端中没有可用的文档。set
在我的目录中查找目录的一般方法可能是什么PATH
谢谢!
编辑:完整的问题:
- 使用 set 命令找出“PATH”中的所有目录。您将获得大量数据,并且需要通过管道传输到另一个命令以过滤出您想要的数据。请注意 PATH 是大写的。在下面粘贴或键入这些目录。你会得到一堆数据,所以看看你是否可以挖掘它来得到答案。
你是正确的,它
set
是一个内置的 shell:这意味着它的文档在 bash 的手册页中(在SHELL BUILTIN COMMANDS
部分)而不是在它自己的手册页中。更简单地说,您可以通过键入来获取基本使用信息从 shell 提示符。至于用它来“找出你路径中的所有目录”,有一些上下文会很有用——我真的无法想象你的导师/老师可能打算做什么,除了可能使用
set -- $PATH
(使用合适的IFS
字段分隔符)将路径元素分配给 shell 的位置参数,然后打印它们。有一个手动条目
set
:源自POSIX 标准规范的set
. 要查看它,您必须已经manpages-posix-dev
安装(manpages-posix
当然可以,但您最好同时安装两者)。然后你可以这样做:或者访问在线 Ubuntu 联机帮助页:http: //manpages.ubuntu.com/set.1posix
如果可能,请尽量选择该站点的联机帮助页,因为它反映了可以在您的 Ubuntu 系统上使用的联机帮助页。其他网站可能会有显着差异。
您的教授可能打算将
grep
命令与set
. 由于某些原因,这不是正确的方法™。grep
可用于从另一个命令或文件的输出中过滤掉行。Andset
的默认输出是 ... 在您的 shell 中设置的每个变量及其值,包括PATH
.最后,您在查看 Bash 文档时忘记单击下一步。