什么是.bashrc

经常在配置linux各种环境的时候,遇到对bashrc的配置。当时也只是机械地跟着教程,一步步输入指令;遇到的次数多了,想知道.bashrc究竟是何方神圣。于是整理了下其主要功能以及使用方法。

如果你运行一个基于 Unix 或者类 Unix 的操作系统,bash 很有可能是作为默认终端被安装的。虽然存在很多不同的 shell,bash 却是最常见或许也是最主流的。如果你不明白那意味着什么,bash 是一个能解释你输入进终端程序的东西,并且基于你的输入来运行命令。它在一定程度上支持使用脚本来定制功能,这时候就要用到 .bashrc 了。

为了加载你的配置,bash 在每次启动时都会加载 .bashrc 文件的内容。每个用户的 home 目录都有这个 shell 脚本。它用来存储并加载你的终端配置和环境变量。

终端配置可以包含很多不同的东西。最常见的,.bashrc 文件包含用户想要用的别名。别名允许用户通过更短的名字或替代的名字来指向命令,对于经常在终端下工作的人来说这可是一个省时利器。

二、编辑.bashrc

配置内容中,最常见的就是配置别名、配置环境变量(包括系统变量和用户变量)、配置路径等等。当我们要配置.bashrc时,可以通过 nano 或者 vi / vim指令对.bashrc进行编辑。注意编辑bashrc要遵守bash脚本的编辑格式,可以参考下面的编辑指南

An Introduction to Useful Bash Aliases and Functions | DigitalOcean

对bashrc做出任何的修改,都将会在下一次启动终端时候生效。如果希望立即生效,可以执行source指令:

1
source ~/.bashrc

三、.bashrc常用配置内容

经常我们用 # 注释文本,来做出配置内容的分隔

1、配置别名,定制指令

当我们想把一些常用的指令以及相关指令参数,定制为更加精简的指令,就可以用 alias作为别名设置。例如:

1
2
3
4
# ALIASES #
alias ll="ls -lhA"
alias sl="ls"
alias ps="ps aux"

左边输入你想设置的别名,右边引号里是要执行的命令。

2、配置函数,定制指令过程

除了缩短命令名,你也可以用 bash 函数组合多个命令到一个操作。这些命令可以很复杂,但是它们大多遵循这种语法:

1
2
3
4
function _name () {
command_1
command_2
}

虽然是函数的定义方法,但是还是遵守bash命令的调用形式,无需带括号。

下面的命令组合了 mkdir 和 cd 命令。输入 md folder_name 可以在你的工作目录创建一个名为“folder_name”的目录并立刻导航进入。函数中的 $1 代表第一个参数,就是你在函数名后紧跟着输入的文本

1
2
3
4
md () {
mkdir -p $1
cd $1
}

3、环境变量的设置

1
2
3
4
5
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/us/.mujoco/mujoco200/bin:/usr/lib/nvidia-460:${CUDA_HOME}/lib64
export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libGLEW.so
export PATH="/home/us/Downloads/pycharm-2020.1/bin:$PATH"
export PATH="/home/us/Downloads/pycharm-2018.1/bin"
export CUDA_HOME=/usr/local/cuda-11.2