Linux下做计算常用的别名alias推荐

在Linux下用高斯做计算的过程中,大家经常会使用一些grep命令从log文件中搜索某个字段,查看计算进度。这其中最常用的恐怕要属以下两个:

代码语言:javascript
复制
grep 'SCF Done' a.log
grep 'Maximum F' a.log

第一个是查看计算过程中每一步的电子能量;第二个是查看结构优化过程中受力的变化。然而每次都完整的打出这些命令有些繁琐,偶尔还容易出错。对此,笔者的习惯是在~/.bashrc里定义一些简短的别名,如

代码语言:javascript
复制
alias grepbf="grep 'basis f'"         # 打印基函数数目到屏幕上
alias grepd="grep 'SCF Done'"      # 打印电子能量到屏幕上
alias grepe="grep 'Delta-E='"       # 查看SCF迭代过程能量变化
alias grepfreq="grep 'Frequ'"       # 查看频率(想看第一个频率是否虚频时有用)
alias grepF="grep 'Maximum F'"    # 查看优化过程中受力情况
alias grepn="grep 'ITN='"          # 查看CASSCF迭代过程中的能量变化
alias grepcc="grep 'E(Corr)='"      # 查看CCSD振幅迭代过程中的能量变化
alias grept="grep 'CCSD(T)='"     # 查看CCSD(T)能量
alias grepgib="grep '^ Sum of electronic and thermal Free Energies'" # 打印Gibbs自由能
alias grepSta="grep 'Stationary' -c"   # 查看限制性优化做了几步
alias orca='/opt/orca_4_2_0/orca'    # 执行orca时系统自动替换为绝对路径

这样在以后使用时只需敲入grepd、grepF等命令,简洁许多。类似地,可以定义其他常用软件的命令别名,提高工作效率。还有一些其他常用的系统命令的别名,如

代码语言:javascript
复制
alias rm='rm -i'     # 删除文件时询问
alias lh='ls -lh'    # 显示文件大小(单位K, M, G均有)
alias free='free -h'  # 显示系统内存情况(带单位)

注意较低的CentOS版本不支持free -h,只支持free -g。

另外,再向大家分享一个环境变量的设置:可以将编译器的临时文件目录设置到固态硬盘SSD上(前提是有SSD),这样在编译程序时可以显著加快编译速度。比如笔者的机子上/tmp目录(即ifort的默认临时文件目录)位于机械硬盘上,而笔者机子上还有另一块SSD,挂载分区为/scratch,可使用的目录为/scratch/$USER。因此可以将编译器临时文件目录改至SSD上:

代码语言:javascript
复制
export TMP=/scratch/$USER

这样编译程序就会快很多。