19.linux-bashrc-VS-bash_profile
大约 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”区别的总结 | CSDN。
由此可见,“profile”系列文件的主要目的在于为“登录 shell”设置环境变量和启动程序;而“rc”系列文件的主要目的在于设置功能和别名。
顺便提一句,Linux 中“rc”是英文“run command”的缩写,表示文件中存放需要执行的命令。其实这也非常符合逻辑,设置功能就要执行
shopt
命令,而设置别名要执行alias
命令。与“rc”系列互补,“profile”系列用来设置环境变量,它不会去调用这两个命令,但却经常需要使用export
语句。不信你可以看一看这两个文件。如果你想对 bash 的功能进行设置或者是定义一些别名,推荐你修改
~/.bashrc
文件,这样无论你以何种方式打开 shell,你的配置都会生效。而如果你要更改一些环境变量,推荐你修改~/.bash_profile
文件,因为考虑到 shell 的继承特性,这些更改确实只应该被执行一次(而不是多次)。针对所有用户进行全局设置,推荐你在/etc/profile.d
目录下添加以.sh
结尾的文件,而不是去修改全局 startup 文件。