关于protoc触发的关于$PATH中路径先后顺序影响的思考
2016-03-16 13:28
351 查看
一、加载顺序:/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行
并从/etc/profile.d目录的配置文件中搜集shell的设置.
/etc/bash.bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取
~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该
文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件.
~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该
该文件被读取1. 图形模式登录时,顺序读取:/etc/profile和~/.profile
2. 图形模式登录后,打开终端时,顺序读取:/etc/bash.bashrc和~/.bashrc
3. 文本模式登录时,顺序读取:/etc/bash.bashrc,/etc/profile和~/.bash_profile
4. 从其它用户su到该用户,则分两种情况:
(1)如果带-l参数(或-参数,--login参数),如:su -l username,则bash是lonin的,它将顺序读取以下配置文件:/etc/bash.bashrc,/etc/profile和~/.bash_profile。
(2)如果没有带-l参数,则bash是non-login的,它将顺序读取:/etc/bash.bashrc和~/.bashrc
5. 注销时,或退出su登录的用户,如果是longin方式,那么bash会读取:~/.bash_logout
6. 执行自定义的shell文件时,若使用“bash -l a.sh”的方式,则bash会读取行:/etc/profile和~/.bash_profile,若使用其它方式,如:bash a.sh, ./a.sh,sh a.sh(这个不属于bash shell),则不会读取上面的任何文件。
7. 上面的例子凡是读取到~/.bash_profile的,若该文件不存在,则读取~/.bash_login,若前两者不存在,读取~/.profile。 例如:添加静态库和共享库还包括以下方法:vim /etc/profileexport PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfigexport PATH=$PATH:/usr/local/cuda-7.5/binsource /etc/profile
应注意,在ubuntu远程界面中登录终端是,只读取/etc/bash.bashrc,而/etc/profile不被读取,而直接远程登录终端,/etc/profile、/etc/bash.bashrc、~/.profile/等都被读取。
而且,需要加source使其生效(电脑重启后需要):
即使再次登录依然有效:
source /etc/profile
说明:/etc/profile和/etc/bash.bashrc都被读取了一遍。
而且,开启另一个终端,原有/etc/profile不起作用,且/etc/profile只能在root才读取。
vim ~/.profilesource ~/.profile
source ~/.profile
二、PATH路径先后顺序的影响
可见,/usr/bin的protoc为2.5版本,而/usr/local/bin的版本为3.0版本远程桌面:
远程shell,通过在~/.profile中写入以下,否则也是不能获取:/usr/local/lib/protobuf3.0
经实践,通过远程shell编译的protobuf文件为3.0版本,不能再远程桌面使用,需要远程桌面2.5版本编译才可。
显然,问题出在$PATH路径上,对于ql,先读取/usr/bin,故为2.5,对于root,先读取/usr/local/bin,故为3.0,这也是为什么远程shell的也为3.0。
并从/etc/profile.d目录的配置文件中搜集shell的设置.
/etc/bash.bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取
~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该
文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件.
~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该
该文件被读取1. 图形模式登录时,顺序读取:/etc/profile和~/.profile
2. 图形模式登录后,打开终端时,顺序读取:/etc/bash.bashrc和~/.bashrc
3. 文本模式登录时,顺序读取:/etc/bash.bashrc,/etc/profile和~/.bash_profile
4. 从其它用户su到该用户,则分两种情况:
(1)如果带-l参数(或-参数,--login参数),如:su -l username,则bash是lonin的,它将顺序读取以下配置文件:/etc/bash.bashrc,/etc/profile和~/.bash_profile。
(2)如果没有带-l参数,则bash是non-login的,它将顺序读取:/etc/bash.bashrc和~/.bashrc
5. 注销时,或退出su登录的用户,如果是longin方式,那么bash会读取:~/.bash_logout
6. 执行自定义的shell文件时,若使用“bash -l a.sh”的方式,则bash会读取行:/etc/profile和~/.bash_profile,若使用其它方式,如:bash a.sh, ./a.sh,sh a.sh(这个不属于bash shell),则不会读取上面的任何文件。
7. 上面的例子凡是读取到~/.bash_profile的,若该文件不存在,则读取~/.bash_login,若前两者不存在,读取~/.profile。 例如:添加静态库和共享库还包括以下方法:vim /etc/profileexport PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfigexport PATH=$PATH:/usr/local/cuda-7.5/binsource /etc/profile
应注意,在ubuntu远程界面中登录终端是,只读取/etc/bash.bashrc,而/etc/profile不被读取,而直接远程登录终端,/etc/profile、/etc/bash.bashrc、~/.profile/等都被读取。
而且,需要加source使其生效(电脑重启后需要):
即使再次登录依然有效:
source /etc/profile
说明:/etc/profile和/etc/bash.bashrc都被读取了一遍。
而且,开启另一个终端,原有/etc/profile不起作用,且/etc/profile只能在root才读取。
vim ~/.profilesource ~/.profile
source ~/.profile
二、PATH路径先后顺序的影响
可见,/usr/bin的protoc为2.5版本,而/usr/local/bin的版本为3.0版本远程桌面:
远程shell,通过在~/.profile中写入以下,否则也是不能获取:/usr/local/lib/protobuf3.0
经实践,通过远程shell编译的protobuf文件为3.0版本,不能再远程桌面使用,需要远程桌面2.5版本编译才可。
显然,问题出在$PATH路径上,对于ql,先读取/usr/bin,故为2.5,对于root,先读取/usr/local/bin,故为3.0,这也是为什么远程shell的也为3.0。
相关文章推荐
- ubuntu双网卡设置:系统的网络服务与此版本的网络管理器不兼容
- Sicily 1140 国王的遗产
- 菜鸟跑通doppia(一)
- 操作html字符串
- 哈夫曼树详解
- 差分布线原则
- 菜鸟前来报道
- openstack在公司应用情况
- cocos2d-x shader(1)-基本概念与使用
- c# ora-00177
- Git学习(二) Git使用教程
- IOS 使用高德地图一次定位
- Teradata:SAS,R,文本文件导入导出
- Spring中加载ApplicationContext.xml文件的方式
- EventBus 3.0的用法详解
- muduo_net库源码分析(25)
- 老司机解说Go语言之数据结构
- 搜集的动植物分类、检索网站
- 三北斗网络校时服务器
- Maven仓库(本地仓库、中央仓库)概述