Contents

在Linux中从任何地方执行程序

1. 概述

如果我们编写了一个应用程序,那么如果我们可以从终端的任何位置运行它,那将是理想的,而不管我们当前的位置如何。

在本教程中,我们将探索使程序可以从系统中的任何位置执行的方法。

**有几种方法可以做到这一点,**让我们来看看吧!

2. /bin或*/sbin*怎么样?

Linux 中的大多数程序都位于*/bin/sbin 中。*因此,这些可以从我们系统中的任何地方执行。

我们可以将我们的程序移动到这些文件夹之一。虽然这解决了我们的问题,但这样做是个坏主意,因为/bin/sbin*是保留位置。*

所有基本的 Linux 命令,如cplsmkdir 都位于 /bin 中。fsckdmesg 等系统管理员命令位于*/sbin*中。

**假设我们的程序对操作系统既不是必需的也不是管理员命令,它在这些位置没有位置。**我们也不想在这些目录中乱来。我们可能会不小心弄坏东西。

3. /usr目录

/usr目录包含用户应用程序。这些应用程序是任何用户都可以运行的程序,对操作系统来说不是必需的。

非必要的常规应用程序存储在*/usr/bin中,非必要的系统管理应用程序存储在/usr/sbin*中。

我们可以将我们的程序(一个符号链接)放在这些目录之一中。但是,像yumapt-get 这样的包管理器也使用这些目录来安装应用程序。我们必须小心不要破坏已安装的软件包。

/usr中有一个更好的选择,即*/usr/local*。 这是系统存储本地编译的应用程序的目录,以避免它们干扰包管理器。

4. /opt目录

**最好的选择是将我们的程序放在我们确信它不会干扰其他程序的位置。**我们的主目录将满足此要求,但这会使其他用户无法执行我们的程序。

*幸运的是,Linux 为我们提供了/opt目录,用于存放可选软件包。*我们可以将我们的程序放在/opt的子目录中。但是,默认情况下,/opt中的程序不能从任何地方执行,因为该目录不在我们的PATH上。

5. PATH 变量

** PATH是一个环境变量,它告诉我们的 shell 必须在哪里搜索可执行文件**。通过附加到PATH,我们可以为我们的 shell 添加额外的目录来搜索可执行文件。

例如,当我们将程序放在*/opt/program/中时,我们可以将此行添加到~/.bash_profile*中的配置文件中,以使其在任何地方都可以执行:

export PATH=$PATH:/opt/program/

请注意,我们使用波浪号 (~) 来引用我们的主目录。

为了让所有用户可以在任何地方执行该程序,我们可以将它添加到*/etc/profile*中的全局配置文件设置中。

我们应该注意到/etc/profile~/.bash_profile是特定于 Bash shell 的。其他 shell 可能会使用不同的位置。例如,zsh使用/etc/zshrc~/.zshrc。**