您的位置:

Python工程师必知:usr/local/bin与usr/bin有何区别?

一、定义与区别

/usr/bin与/usr/local/bin这两个目录,都是Linux下默认的存放可执行文件的目录,二者的不同之处在于/usr/bin存放的是系统级应用程序,而/usr/local/bin目录中则存放的是用户级别的应用程序。这样做的好处是可以使系统级别与用户级别的应用程序相互分离,防止出现混乱。

但是有一个小细节:/usr/local/bin被搜索的时间要优于/usr/bin。这表示在找寻应用程序时,首先搜索用户级应用程序,当找不到时才会转而从系统级应用程序中查找。

二、应用场景

通常情况下,/usr/bin目录的应用程序都是由系统管理员预先安装的,这些应用程序对于系统和所有用户都是必不可少的。而/usr/local/bin目录中的应用程序,则是由普通用户自己安装的,并且在很多情况下都只会对该用户自己有用。

例如,假设你在开发Python应用程序,并使用virtualenv环境来创建Python虚拟环境。在virtualenv虚拟环境中安装的Python程序就会安装到/usr/local/bin目录中。由于不同虚拟环境可能会使用不同的Python版本和库,因此将/usr/local/bin目录添加到用户的PATH环境变量中,这可以使用户在不同虚拟环境之间切换时能够轻松使用相应的Python程序。

三、如何添加路径

在Linux中,当我们在终端输入命令的时候,会通过环境变量PATH来寻找该命令所在的路径。如果想要添加新的路径到PATH变量中,可以打开并编辑~/.bashrc文件:

$ vim ~/.bashrc

接着使用export命令添加新的路径到PATH变量中:

export PATH=$PATH:/your/new/path

这里的/your/new/path就是你要添加的新路径。

四、小结

在Linux系统中,/usr/bin与/usr/local/bin是存放可执行文件的两个默认目录,区别在于/usr/bin存放系统级别的应用程序,而/usr/local/bin中存放用户级别的应用程序,并且优先搜索用户级别的应用程序。通常情况下,我们应该尽可能地将可执行文件安装到/usr/local/bin目录中,并将该目录添加到用户的PATH变量中,这样可以方便用户在不同的虚拟环境中切换,并避免与系统级别的应用程序混乱。