如何在Linux系统中从任何位置执行程序?
Linux是一个广泛使用的开源操作系统,它允许用户灵活地在系统中的任何位置执行程序。与其他操作系统不同,Linux没有固定的程序目录,用户可以从任何位置访问程序。对于需要在多个位置运行特定程序的用户来说,此功能非常有利。要在Linux中从任何位置执行程序,用户需要设置PATH环境变量,该变量包含Linux搜索可执行文件的位置。Linux中包含程序的目录包括/usr/bin、/usr/local/bin和/sbin。/usr/bin目录包含大多数用户应用程序,而/usr/local/bin目录包含本地安装的程序。/sbin目录包含重要的系统管理程序,只有root用户才能访问它。了解这些目录以及如何在Linux中从任何位置执行程序对于高效且富有成效的Linux用户至关重要。
关于Linux中的/bin或/sbin
大多数Linux程序都位于/bin或/sbin目录中。因此,它们可以从我们系统的任何位置运行。
我们可以将我们的程序放在这些目录中的一个。虽然这解决了我们的问题,但这并不是一个好主意,因为/bin和/sbin是保留目录。
/bin包含所有基本的Linux命令,例如cp、ls和mkdir。/sbin包含系统管理员命令,例如fsck和dmesg。
如果我们的软件不是操作系统或管理员命令所必需的,那么它就不应该放在这些目录中。我们也不想在这些目录中乱动。我们可能会无意中破坏某些东西。
Linux中的/usr目录
大部分用户应用程序和实用程序都位于/usr目录下。它与根目录不同,可以挂载到不同的磁盘或分区上。/usr目录被划分为子目录,例如/usr/bin、/usr/sbin和/usr/local。
/usr/bin目录包含用户级二进制文件,这些文件对于系统启动或运行不是必需的。这些程序通常作为操作系统初始安装的一部分或作为以后的软件包安装。ls、cp、mv、rm和其他常用程序都位于此目录中。
/usr/sbin目录包含系统二进制文件,这些文件对于系统正常运行是必需的。这些应用程序并非供普通用户使用,而是供系统管理员使用。mount、fsck、fdisk和其他常用应用程序都位于此目录中。
/usr/local目录是本地安装软件的地方。系统管理员经常使用此目录来安装官方软件包存储库中未包含的自定义软件。本地二进制文件位于/usr/local/bin目录中,而本地系统二进制文件位于/usr/local/sbin目录中。
Linux中的/opt目录
/opt目录代表可选或补充软件,是Linux系统中常用的目录。供应商或开发人员通常使用此目录来安装官方软件包存储库中未包含的可选软件。
/opt目录用于未包含在操作系统默认安装或供应商提供的软件包中的软件。这是一个单独的区域,我们可以在这里安装发行版的包管理器没有提供但必须在系统范围内可用的软件。
供应商或开发人员负责组织/opt目录中安装的文件。软件可以放在子目录中,供应商决定产品的最佳命名约定。例如,软件可以安装在/opt/myapp/bin、/opt/myapp/lib或/opt/myapp/doc等目录结构中。
/opt目录对于需要特殊安装过程、不是开源软件或仅以二进制形式提供的软件很有用。Oracle数据库、Google Chrome和Adobe Acrobat Reader是通常安装在/opt下的软件示例。
虽然/opt目录不是定义Linux文件系统结构的文件系统层次结构标准(FHS)的必需组件,但大多数Linux发行版都普遍使用它。
在/opt目录中安装软件的优点是:它可以将软件与系统的默认目录(例如/usr和/bin)分开。这确保软件不会覆盖或与任何系统文件或程序冲突。此外,包管理器不会自动更新/opt下安装的应用程序,这取决于我们的需求,可能是一个优点或缺点。
Linux中的PATH变量
shell在PATH环境变量中列出的文件夹中查找可执行文件。当用户在终端中键入命令时,shell会在PATH变量中提到的每个目录中搜索可执行文件。如果找到该文件,则运行它。如果找不到该文件,shell将生成错误。
通常,PATH在用户的bashrc或.zshrc shell配置文件中指定。默认情况下,/bin、/usr/bin和/usr/local/bin文件夹包含在PATH变量中。系统管理员可以根据需要向PATH变量添加其他目录。
要向PATH变量添加目录,请使用export命令。例如,要将/opt/myprogram/bin目录添加到PATH变量,请键入:
export PATH=$PATH:/opt/myprogram/bin
此命令扩展PATH变量的当前值,以包含/opt/myprogram/bin位置。
结论
Linux允许我们从系统中的任何位置执行程序,使其成为一个灵活且可定制的操作系统。了解包含程序的目录以及PATH环境变量的工作方式对于有效使用Linux至关重要。通过了解如何在任何位置执行程序,用户可以充分利用Linux的灵活性和强大功能。