如何修改我的用户PROFILE文件以将我创建的脚本文件夹附加到PATH变量的末尾?

时间:2012-02-20 20:40:06

标签: linux unix solaris

如何修改我的用户PROFILE文件以将我创建的脚本文件夹附加到PATH变量的末尾?
我不完全确定这意味着什么。任何人都可以解释  谢谢:))

3 个答案:

答案 0 :(得分:28)

在unix / linux系统中,您有一个用户ID('john')和一个主目录('/ home / john')。主目录有一个缩写,代字号:〜(在目录路径的开头)意味着与你的主目录(“/ home / john”)相同。

在主目录中有几个以句点开头的文件(也就是点文件,因为它们以点开头,即句点)。当您登录时,开始为您提供命令行的shell(即,在键入命令时处理命令行的程序)会查找这些文件并使用其内容读取它们以初始化您的shell环境。您可以通过在命令行输入以下命令来查看这些文件(如果存在):

cd
ls -a

没有args的cd意味着'将当前目录更改为我的HOME目录。 ls命令列出目录中的文件(以及其他内容); -a选项显示“显示隐藏文件”。隐藏文件是以句点开头的文件 - 这是unix / linux中用来“隐藏”文件的惯例。

.profile(大声说它通常发音为'dot profile')文件就是一个用于初始化环境的点文件。

shell使用PATH环境变量来搜索可执行文件(程序)。

您可以谷歌搜索“如何在个人资料中更新PATH”和类似内容,以了解有关该主题的更多信息。

这是.profile文件中的典型代码段;其目的是允许您运行存储在/ usr / mypackage / bin目录中的程序。

PATH="/usr/mypackage/bin:$PATH"
export PATH

在PATH上放置目录允许您只键入一个程序名称('myprogram')来代替较长的表单('/ usr / mypackage / bin / myprogram')。

您可以使用echo $PATH查看此代码段的效果;它将显示PATH变量的整个值。该值应该是以冒号分隔的路径(目录)列表。一个简单的例子:

echo $PATH
/usr/mypackage/bin:/usr/bin:/bin

这应该让你立足于开始调查细节。尝试搜索“如何设置我的linux / unix登录”,“什么是.profile文件”等主题,以了解更多信息。

建议在设置PATH的值时使用双引号来封装可能位于路径中项目名称中的任何“常用”字符。单引号不适用于此,因为它们会阻止$ PATH的评估(这是在定义新路径值时为现有路径提供的)。有关引号的更多信息,请here is one discussion of single vs double quotes

答案 1 :(得分:2)

catcd等内置程序只需输入命令即可。但是,它们位于某个文件夹中,例如/usr/bin/。自己动手,输入cat

,查看which cat所在的文件夹

当您输入此类命令时,您的shell需要一个文件夹列表,在该文件夹中,它必须查找刚刚输入的命令。它使用$PATH变量来存储此列表。您可以输入echo $PATH

来查看

现在,如果关闭shell,$PATH变量就会消失。当您重新打开shell时,它会启动一定数量的脚本,其中一个是.profile脚本。在此脚本中,加载了$PATH变量。因此,您可以调整.profile文件,以永久保存$PATH。为此,只需编辑此文件并修改定义$PATH的行(例如pico ~/.profile)。

在您的特定情况下,将脚本文件夹添加到这样的$PATH,可以让您只需编写脚本的名称而不是整个打击垫。

答案 2 :(得分:1)

当您尝试运行程序/命令时,PATH变量存储shell搜索程序/命令的目录列表。您可以通过键入以下命令从命令行访问其值:

echo $PATH

修改它时要小心,否则可能会干扰您从命令行运行程序的能力。要在不修改原始值的情况下添加新目录,可以在文件中添加一行,例如:

PATH=$PATH:/directory_to_add

其中'directory_to_add'是您要添加到路径的目录($ PATH告诉shell插入PATH的值)。然后,如果在命令行中键入文件夹中的一个脚本的名称,它将运行而无需键入完整路径名(只要它具有执行权限)。

注意 - 您的配置文件可以在〜/ .profile找到,您可以使用文本编辑器添加上面的行并重新保存文件。然后,在您的主目录中键入sh ./.profile,您的路径现在应该包含所需的目录。