2025年6月

/usr/local/sbin 和 /usr/local/bin 是Linux系统中的两个目录,它们的区别如下:

用途

  •  /usr/local/sbin :通常用于存放系统管理员使用的本地可执行程序,这些程序一般是系统管理工具或服务相关的二进制文件,普通用户可能没有执行权限。
  •  /usr/local/bin :用于存放本地安装的可执行程序,供所有用户使用,只要用户有执行权限即可运行其中的程序。

执行权限

  •  /usr/local/sbin :一般只有管理员(root用户)或特定的系统管理用户组才有执行权限,以确保系统管理工具的安全性和稳定性,防止普通用户误操作或滥用。
  •  /usr/local/bin :根据文件的权限设置,普通用户通常也可以有执行权限,方便用户使用本地安装的各种应用程序。

例如,当你在本地安装了一些服务程序,如Nginx服务器,其可执行文件可能会被安装到 /usr/local/sbin 目录,而一些用户级别的工具,如特定的文本处理程序,则可能会被安装到 /usr/local/bin 目录。

在默认情况下, /usr/local/bin 的优先级通常高于 /usr/bin 。

这是因为在Linux系统中, PATH 环境变量中目录的顺序决定了可执行文件的搜索优先级,而 /usr/local/bin 通常在 /usr/bin 之前。当你输入 python3 时,系统会按照 PATH 中目录的顺序依次查找可执行文件,所以会先找到 /usr/local/bin 下的 python3 软链接并执行。

不过, PATH 的设置可能因系统配置和用户自定义而有所不同。如果 /usr/bin 在 PATH 中排在 /usr/local/bin 之前,那么就会先执行 /usr/bin 下的 python3 。你可以通过查看 PATH 环境变量的值来确定具体的搜索顺序,命令为 echo $PATH 。

/usr/bin 和 /usr/local/bin 是Linux系统中用于存放可执行文件的两个不同目录,它们的区别如下:

软件来源

  •  /usr/bin :通常包含系统预装的、由Linux发行版提供的标准可执行程序和命令,这些软件是系统正常运行所必需的,如文本编辑器、文件管理工具等。
  •  /usr/local/bin :主要用于存放用户自行安装的软件的可执行文件,这些软件可能是从源代码编译安装,或者是通过一些非官方的包管理方式安装的。

软件管理

  •  /usr/bin :目录中的软件由系统的包管理工具进行管理和维护,当系统进行升级或更新时,这些软件会被自动更新或升级。
  •  /usr/local/bin :目录中的软件一般不受系统包管理工具的直接管理,需要用户手动进行安装、更新和卸载操作。

系统升级影响

  •  /usr/bin :系统升级可能会对该目录中的文件进行替换、更新或删除操作,以保证系统软件的版本与发行版的更新保持一致。
  •  /usr/local/bin :系统升级通常不会影响该目录中的文件,用户需要自行关注软件的更新情况并进行相应处理,以避免与系统升级产生潜在冲突。

要查看Linux中软链接所指向的可执行文件,可以使用以下方法:

使用 ls -l 命令

使用 ls -l 命令查看软链接的详细信息,命令输出中软链接的文件名后会显示其指向的目标文件或目录,例如:

plaintext

lrwxrwxrwx 1 user user 12 Jun 10 10:00 mylink -> /bin/python3
 

这里 mylink 是软链接,它指向 /bin/python3 可执行文件。

使用 readlink 命令

 readlink 命令可以直接输出软链接指向的目标路径,如 readlink mylink ,会输出 /bin/python3 。如果软链接指向的是一个可执行文件,那么输出的就是该可执行文件的路径。

使用 file 命令

 file 命令也能显示软链接指向的文件类型及相关信息,执行 file mylink ,输出可能类似于 mylink: symbolic link to /bin/python3 ,明确指出软链接指向的可执行文件路径。

在Linux系统中安装多个Python版本后,想使用原先的Python 3.11版本,可通过以下几种方法实现:

使用alias命令

通过 alias 命令为Python 3.11设置别名,如在终端输入 alias python3.11='/usr/bin/python3.11' (假设Python 3.11的可执行文件路径是 /usr/bin/python3.11 )。之后,要使用Python 3.11时,直接输入 python3.11 即可。

使用update - alternatives命令

若系统支持 update - alternatives 命令,可先使用 sudo update - alternatives --install /usr/bin/python python /usr/bin/python3.11 <优先级> (将 <优先级> 替换为数字,数字越大优先级越高)将Python 3.11添加到备选项中。然后执行 sudo update - alternatives --config python ,根据提示选择Python 3.11对应的选项,即可将其设置为当前使用的版本。

设置PATH环境变量

打开 ~/.bashrc 或 ~/.bash_profile 文件,在其中添加 export PATH="/path/to/python3.11/bin:$PATH" ,将 /path/to/python3.11/bin 替换为Python 3.11的安装路径下的 bin 目录。保存文件后,执行 source ~/.bashrc 或 source ~/.bash_profile 使环境变量生效。

使用pyenv工具

如果安装了 pyenv ,可先通过 pyenv install 3.11 安装Python 3.11(若已安装可省略),然后使用 pyenv global 3.11 将Python 3.11设置为全局使用的版本,或者在特定项目目录下使用 pyenv local 3.11 将其设置为该目录下的本地版本。