/bin 在有的Unix和Linux系统中是/usr/bin的链接,不过UBuntu系统是两个独立的目录。/bin 存放系统管理员和普通用户都要使用的程序。

/sbin 存放用于系统恢复,系统启动,系统维护等程序

/usr/bin 登录用户可以使用的预装程序一般都放在这里

/usr/share/bin 可以通过web访问的程序一般放在这里

*local* 目录下的都不是系统预装,而是手动编译或者安装的程序

usr 指 Unix System Resource,而不是User

 

/usr/bin与/usr/local/bin区别

通常/usr/bin下面的都是系统预装的可执行程序,会随着系统升级而改变

/usr/local/bin目录是给用户放置自己的可执行程序的地方,推荐放在这里,不会被系统升级而覆盖同名文件

如果两个目录下有相同的可执行程序,谁优先执行受到PATH环境变量的影响,比如我的一台服务器的PATH变量为

 

[plain] view plain copy
 
 print?
  1. echo $PATH  
  2. /usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/dean/bin  


这里/usr/local/bin优先于/usr/bin, 一般都是如此。

 

 

/lib, /usr/lib与/usr/local/lib

/lib目录都是为/bin, /sbin准备的,一般作为开发者不用关心

开发者需要关心下面的事情,一个应用程序启动的时候,会在/lib 和 /usr/lib库中查找动态库,如果动态库没有放在此处,需要用环境变量LD_LIBRARY_PATH指定。比如在程序启动脚本中这样写,就能在/usr/local/lib目录中加载到自己放进去的动态库

 

[plain] view plain copy
 
 print?
  1. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib  



 

注意,这是运行时的环境变量,和程序编译时没有关系。

 

Posted on 2017-08-11 15:29  旅途  阅读(351)  评论(0编辑  收藏  举报