Hom's Blog


环境变量的加载设置和常见环境变量

环境变量有助于不同电脑间使用同样命令或语句时能自动根据情况进行变化. 因此是很重要的. 对于个人用户而言,写在~/.bashrc 中export出去,登录后就自带各种变量了(马上起效source ~/.bashrc即可.)~一般约定, 环境变量使用全大写作为变量名.

设置环境变量

  • sh系列(sh,bash,zsh等)
export AMBERHOME="/home/hom/amber"
export PATH="~/bin:$PATH"
MYLOCAL="/home/hom/local"
export MYLOCAL MYOTHER 
  • csh系列(csh,tcsh)
setenv AMBERHOME "/home/hom/amber"
set PATH=(~/bin $PATH) #因为是已有的

shell配置文件的加载

  • /etc/profile : 系统所有用户登录shell时执行.针对登录的shell(正常登录,su - user, su -l username,sh脚本第一行后面跟--login)而不是非登录shell(例如su username,子shell). 一般是每个用户最基础的设置,例如shell的风格等, 设定系统基础环境变量, 运行命令或脚本.
  • /etc/profile.d/*.sh : 一般在profile中时被加载,不是必须的,里面是各种配置.如果profile里进行加载,可以十分方便在该文件夹内新增相应的sh文件进行加载, 统一配置, 例如各个软件的配置.比修改profile和bashrc更好(小改无所谓,大改改这里)
  • /etc/bashrc (或/etc/csh.cshrc等) : sh/csh在加载时进行处理.不建议修改, 会影响所有shell. 一般用来处理如一些登录shell后的alias,变量等, 有很多系统不加载…
  • ~/.bash_profile : 就是个人用户定义的登录时加载的profile版本,只会在登录时加载一次.
  • ~/.bashrc (或cshrc等) : 就是个人用户定义的bash配置版本, 每个shell开始时均加载一次
加载顺序:
  • 登录shell: /etc/profile (/etc/profile.d/*.sh) -> $HOME/.profile -> $HOME/.bashrc [ -> /etc/bashrc/ ],其实没有很硬性的, 例如有些加载是.bash_profile而不是.profile, 有些把/etc/bashrc执行放在profile.d内, 有些甚至不执行/etc/bashrc. 但总体登录先执行/etc/profile, 总是执行.bashrc是肯定的.

  • 非登录shell: ~/.bashrc [-> /etc/bashrc -> /etc/profile.d/*.sh] 一般profile.d在bashrc中也会执行. 至于/etc/bashrc运行与否,就看.bashrc了.

  • csh/tcsh: /etc/csh.cshrc -> /etc/csh.login -> $HOME/.cshrc -> $HOME/.login

其实一般而已, 会更改.bashrc, 然后 [ -r ~/.bashrc ] && . ~/.bashrc 这样去执行也是可以的~

系统相关

  • HOME : 用户默认文件夹
  • PATH : 一般为可执行文件的路径
  • SHELL : 登录shell的路径
  • PS1 : 命令行提示符

编译运行相关

  • CC 和 CXX/C++ ,F77/FC: C和C++, F77,FortranC 编译器路径
  • CFLAGS , CXXFLAGS , FFLAGS : 编译器命令行选项的字符串形式.
  • C_INCLUDE_PATH 和 CPLUS_INCLUDE_PATH: C/Cpp编译搜索头文件所在(-I选项)
  • LDFLAGS : 动态链接库相关选项的字符串化
  • LD_LIBRARY_PATH : 动态链接库地址,默认就是/lib, /usr/lib/ , /usr/local/lib
  • LD_PRELOAD: 预加载的动态链接库,
  • LIBRARY_PATH : 库地址, 一般是静态链接库,也可以两者都有,一般默认搜索/lib, /usr/lib/ , /usr/local/lib这些
  • PYTHONPATH : python搜索py库路径.
  • PKG_CONFIG_PATH,用来查找库的存放,链接信息(.pc文件), 编译相关,一般指向一个pkgconfig文件

CMake 参数

  • CMAKE_C_COMPILER, CMAKE_CXX_COMPILER : C/C++编译器,路径字符串指定
  • CMAKE_C_FLAGS, CMAKE_CXX_FLAGS : C/C++编译选项字符串. 还有更多FLAGS如: CMAKE_C_FLAGS_DEBUG(MINSIZEREL,RELEASE,RELWITHDEBINFO)对于不同编译生成版本的选项.
  • CMAKE_INSTALL_PREFIX : 很重要选项, configure的--prefix="~/bin" 选项同效, 指定make install编译后生成的位置.
  • CMAKE_INSTALL_RPATH : 安装后动态库(runtime)加载路径,gcc的-rpath选项(这个是写在执行文件信息内的而非LD_LIBRARAY_PATH那种指定搜索路径)

软件相关

  • AMBERHOME : AMBER程序的目录
  • g09root=~/software : g09文件夹所在的文件夹(就是不包含g09的..)
  • GAUSS_SCRDIR=/tmp/g09 : 高斯09的临时文件所在.
  • BABEL_DATADIR=”/usr/local/share/openbabel/2.3.90” : OpenBabel 数据文件所在
  • BABEL_LIBDIR=”/usr/local/lib/openbabel/2.3.90” : OpenBabel 库文件所在

自定义

export WORKDIR_PATH="~"
export DESKTOP_PATH="~/Desktop"
export MYGIT_PATH="/Users/Hom/MyGit"
export MYGIT_ALL="platinhom.github.com CADDHom DailyTools HomPDF MolShow"
export GHPAGE_PATH="${MYGIT_PATH}/platinhom.github.com"
export GIT_DAILYTOOLS_PATH="${MYGIT_PATH}/DailyTools"
export GIT_CADDHOM_PATH="${MYGIT_PATH}/CADDHom"
export GIT_MOLSHOW_PATH="${MYGIT_PATH}/MolShow"
export GIT_HOMPDF_PATH="${MYGIT_PATH}/HomPDF"
export dt="$GIT_DAILYTOOLS_PATH/scripts"
export PATH="$HOME/bin:$PATH:$dt:$GIT_DAILYTOOLS_PATH/bin"
export HPCC='zhaozx@gateway.hpcc.msu.edu:~'


◆ 本文地址: http://platinhom.github.io/2015/10/14/EnvirVar/, 转载请注明 ◆

前一篇: MBI workshop 2:Multiple Faces of Biomolecular Electrostatics
后一篇: GIT教程(ZZ自廖雪峰)


Contact: Hom / 已阅读()
Source 类别: IT  标签: System  Shell