当前位置: 首页 > 面试题库 >

在Mac(UNIX)系统上,PATH是什么?

宗冷勋
2023-03-14
问题内容

我正在尝试建立一个项目,从git风暴:https :
//github.com/nathanmarz/storm/wiki/Setting-up-development-
environment

下载Storm发行版,解压缩,然后将解压后的bin /目录放在PATH中

我的问题是:PATH是什么意思?他们到底要我做什么?

有时我会看到一些/ bin / path,$ PATH或echo PATH。

有人可以解释PATH的概念吗,这样我以后就可以轻松地设置所有内容,而不必盲目地遵循说明?


问题答案:

PATH是UNIX(和类似UNIX,例如GNU / Linux)系统中的一种特殊环境变量,shell经常使用和操纵它(尽管其他事物也可以使用它)。

维基百科上有一个简短的解释,但基本上,它是用来定义在哪里搜索可执行文件的(无论是二进制文件,shell脚本等)。

您可以使用简单的shell命令找出当前PATH设置为什么:

: $; echo $PATH

(注意:: $;用来表示您的shell提示符;对于您来说可能是完全不同的;只要知道您的提示符是什么,那就是我用该字符串表示的含义。)

根据您的系统和先前的配置,该值会有所不同,但是输出的一个非常简单的示例可能是:

/usr/bin:/bin:/usr/local/bin

这是一个用冒号(:)分隔的目录列表,可在其中搜索可执行文件(例如ls,等等)。简而言之,当您尝试从Shell(或以某些方式从其他程序中)执行命令时,
,它将按顺序搜索该列表中的每个目录,以查找您提供的名称的可执行文件,然后运行找到的第一个文件。根据您的问题,这就是概念。

在这里,本文档告诉您要做的就是将解压缩软件的目录(尤其是其bin子目录)添加到$PATH变量中。如何执行此操作取决于您使用的是哪个shell,但是对于大多数(与Bourne兼容)的shell,如果您位于该目录所在的目录中,则应该能够执行以下操作bin

: $; PATH="$PATH:$PWD/bin"; export PATH

除了实际的Bourne壳外,几乎可以将其缩短为:

: $; export PATH="$PATH:$PWD/bin"

(我不会费心解释与CSH兼容的shell(因为:我同意您不使用它们的其他建议),但是如果碰巧是您选择的环境,也可以在其中进行类似的操作由于某些原因。)

据推测,不过,你会想这个保存到一个shell特定的配置文件(可能是~/.profile~/.bashrc~/.zshrc…这取决于你的shell),并没有提及$PWD,而是不管它扩大到。您可能会完成此操作的一种方法是执行以下操作:

: $; echo "export PATH=\"\$PATH:$PWD/bin\""

然后将结果行复制/粘贴到适当的配置文件中。

当然,您还可以通过其他方式生成适当的命令,尤其是当您$PWD当前不在该bin目录所在的位置时。

也可以看看:

  • 关于$PATH(以及更多)的文章
  • superuser.com上的一个相关问题


 类似资料:
  • 本文向大家介绍在i386和x86-64上UNIX和Linux系统调用的调用约定是什么,包括了在i386和x86-64上UNIX和Linux系统调用的调用约定是什么的使用技巧和注意事项,需要的朋友参考一下 系统调用是应用程序和Linux内核之间的基本接口。当Unix / Linux程序执行文件I / O,网络数据传输或调用某个与低级指令直接或间接交互的进程时,就会涉及系统调用。进行这些调用通常涉及使

  • 问题 你想编写一个作为一个在Unix或类Unix系统上面运行的守护进程运行的程序。 解决方案 创建一个正确的守护进程需要一个精确的系统调用序列以及对于细节的控制。 下面的代码展示了怎样定义一个守护进程,可以启动后很容易的停止它。 #!/usr/bin/env python3 # daemon.py import os import sys import atexit import signal

  • 什么是粒子系统? 粒子 是小而简单的图像或网格,由粒子系统负责显示和剧烈移动。每个粒子代表了流体或无形实体的一小部分,所有粒子一起创建实体的完整外观。以烟雾为例,每个粒子是一张微小的烟雾纹理,像小块浮云一样。当许多这种微小浮云被一起布置在场景的某个区域时,整体效果是巨大的、体积填充的云朵。 系统动力学 每个粒子的生命周期是预定好的,通常是几秒钟,在此期间它可以经历各种变化。当粒子系统生成或射出一个

  • 问题内容: 我试图将目录添加到我的路径,以便它始终位于我的Linux路径中。我试过了: 这可行,但是每次我退出终端并启动新的终端实例时,此路径都会丢失,因此我需要再次运行export命令。 我该如何做才能将其永久设置? 问题答案: 有多种方法可以做到这一点。实际解决方案取决于目的。 变量值通常存储在分配列表或在系统或用户会话开始时运行的Shell脚本中。如果使用Shell脚本,则必须使用特定的Sh

  • 本文向大家介绍在Mac系统上配置MySQL以及Squel Pro,包括了在Mac系统上配置MySQL以及Squel Pro的使用技巧和注意事项,需要的朋友参考一下 为了响应nodejs的大红大紫,最近应用其实现了一些server端的功能。数据库方面选择了老少咸宜的MySQL。今后肯定还会有相关应用需求。特此记录Mac系统下如何安装、配置MySQL及其管理工具Squel Pro。 为什么选择MYSQ

  • 本文向大家介绍mac上安装ubuntu双系统教程,包括了mac上安装ubuntu双系统教程的使用技巧和注意事项,需要的朋友参考一下 mac和ubuntu双系统 mac系统安装ubuntu双系统的方法, mac系统要安装ubuntu, 必须使用u盘作为启动盘, 在mac启动的时候引导mac安装ubuntu, 下面为详细的安装方法: 准备:   1:需要一个u盘作为引导盘; 2:使用mac的磁盘管理工