19.linux-bashrc-VS-bash_profile

Northword2020年11月3日
  • Linux
大约 3 分钟

19.linux-bashrc-VS-bash_profile

环境变量

自定义命令提示符

通过修改 PS1 变量实现:

 \u 显示当前用户账号
 \v BASH的版本信息
 
 \H 完整的主机名称。例如:hostname为aliyun.alibaba.clound,则这个名称就是aliyun.alibaba.clound
 \h 仅取主机的第一个名字,例如:hostname为aliyun.alibaba.clound,则这个名称就是aliyun
 
 \W 只显示当前路径最后一个目录
 \w 显示当前绝对路径(当前用户目录会以 ~代替)
 
 \t 显示时间为24小时格式,如:14:19:34
 \T 显示时间为12小时格式,如:02:19:34
 \A 显示时间为24小时格式但是不带秒,如:14:19
 \d 代表日期,格式为weekday month date,例如:"Mon Aug1"
 
 $PWD 显示当前全路径
 # 显示命令行提示符号,一般使用'$'或者'#'
 sudo echo "export PS1='[\u@\h \w]# '" >> /etc/profile
 # 如果想要在用户家目录的时候显示为~则可以将$PWD换为\w
export PS1='[\u@\h \w]\$ '

# 效果
[scujh_zjb@scu ~/311]$ pwd
/home/scujh_zjb/311
[scujh_zjb@scu ~/311]$

自用备份:

# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

# Uncomment the following line if you don't like systemctl's auto-paging feature:
# export SYSTEMD_PAGER=

# User specific aliases and functions

## PATH
PATH=/opt/apps/vasptool/bin:${PATH}
PATH=/opt/apps/vasptool/vtstscripts-978:${PATH}
PATH=/opt/apps/anaconda3/bin:${PATH}
PATH=/home/scujh_zjb/apps/bin:${PATH}
PATH=/home/scujh_zjb/apps/scripts:${PATH}
export PATH

## TimeZone
export TZ='Asia/Shanghai'
export TIME_STYLE='+%Y-%m-%d %H:%M:%S'   # 时区与时间显示格式本地化

## alisa
alias ..='cd ..'
alias ...='cd ../..'
alias cd..='cd ..'
alias cppbs='cp ~/vasp_cpu.pbs . && ls --color' 
alias qq='qstat -a'

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias ll='ls -lh'  # ll 列出的文件大小使用合适的单位表示,默认为 kb
cdpwd() {
  cd "${1}";
  # pwd;
  # echo -e "\033[36m`pwd` \033[0m";
  # echo -e "\033[47;30m `pwd` \033[0m";
  ls --color;
}
alias cd='cdpwd'

alias ls='echo -e "\033[36m`pwd` \033[0m" && ls --color'
#alias vi='vim'

alias viewmail='vi /var/spool/mail/scujh_zjb'

export PS1='[\u@\h \w]\$ '

linux 中 . bashrc 与 . bash_profile 的区别

具体参考 关于“.bash_profile”和“.bashrc”区别的总结 | CSDNopen in new window

由此可见,“profile”系列文件的主要目的在于为“登录 shell”设置环境变量和启动程序;而“rc”系列文件的主要目的在于设置功能和别名。

顺便提一句,Linux 中“rc”是英文“run command”的缩写,表示文件中存放需要执行的命令。其实这也非常符合逻辑,设置功能就要执行 shopt 命令,而设置别名要执行 alias 命令。与“rc”系列互补,“profile”系列用来设置环境变量,它不会去调用这两个命令,但却经常需要使用 export 语句。不信你可以看一看这两个文件。

如果你想对 bash 的功能进行设置或者是定义一些别名,推荐你修改 ~/.bashrc 文件,这样无论你以何种方式打开 shell,你的配置都会生效。而如果你要更改一些环境变量,推荐你修改 ~/.bash_profile 文件,因为考虑到 shell 的继承特性,这些更改确实只应该被执行一次(而不是多次)。针对所有用户进行全局设置,推荐你在 /etc/profile.d 目录下添加以 .sh 结尾的文件,而不是去修改全局 startup 文件。