如果你在使用 macOS 或流行的 Linux 发行版,可以在用户主目录中看到许多隐藏文件。这些隐藏文件中最为常用的就是名为.bashrc的配置文件。那什么是 bashrc 配置文件?为什么编辑 bashrc 配置文件有助于提高用户效率呢?下面系统极客就为大家详细介绍。
什么是 bashrc 配置文件
.bashrc 配置文件
如果你运行的是基于 Unix 或类 Unix 操作系统,一般情况下都将 bash 作为默认的终端 Shell(虽然 Shell 种类很多,但 Bash 还是最为常见和流行的)。Bash 将在「终端」中对用户输入的命令进行解释并执行,且允许使用脚本进行一定程度的自定义,这就是.bashrc配置文件的作用。
简单来说,就是可以通过 bashrc 配置文件对命令进行自定义,可快速通过用户自定义的命令来执行带参数的命令甚至脚本。
为了加载用户「首选项」,bash 在每次启动时都会自动载入 bashrc 配置文件中的内容,这个.bashrc隐藏配置文件可以在每个用户的「主目录」中找到。它用于保存和加载不同用户的「终端首选项」和「环境变量」。
「终端首选项」可以包含许多不同的内容,最常见的使用方式就是,可以在 bashrc 中写入命令的别名,以便使用更短的或替代名称的引用命令,这对经常使用「终端」来执行特定命令的用户来说可以大大节省时间并提高效率。
自定义 .bashrc 配置文件的主要好处有:
- 添加「别名」可以让更快地输入和执行命令,以节省时间。
- 添加「函数」可以保存和重复执行复杂的代码。
- 可以显示有用的系统信息。
- 可以自定义 Bash 提示信息。
如何编辑 bashrc 配置文件
.bashrc就是一个纯文本,你可以在终端中使用任何文本编辑器对 bashrc 配置文件进行编辑。要使用 nano 或 vim 编辑 bashrc 的话可以在终端中执行如下命令:
vim ~/.bashrc
如果.bashrc文件是空的,没关系,你可以自行手动写入内容。
用户对 bashrc 所作的任何更改将在您下次启动「终端」时生效,如果想立即生效可以手动执行如下命令刷新:
source ~/.bashrc
对 bashrc 文件的编辑必需遵循 bash 脚本格式。
您可以将日期和时间格式添加到 bash 历史记录当中:
HISTTIMEFORMAT="%F %T “
history 命令显示日期和时间
添加此行以忽略历史记录中的重复命令:
HISTCONTROL=ignoredups
要配置「活动历史记录」的行数和设置「Bash 历史记录保存行数」,请添加这两行:
HISTSIZE=2000
HISTFILESIZE=2000
也可以将历史记录设置为「追加模式」而不覆盖之前 Bash 历史记录:
shopt -s histappend
自定义 bashrc 配置文件
shopt 代表「Shell 选项」,要查看所有默认 Shell 选项,可以执行:
shopt -p
查看默认 Shell 选项
我们可以创建一些变量来为 Bash 提示添加颜色:
blk='\[\033[01;30m\]' # 黑色
red='\[\033[01;31m\]' # 红色
grn='\[\033[01;32m\]' # 绿色
ylw='\[\033[01;33m\]' # 黄色
blu='\[\033[01;34m\]' # 蓝色
pur='\[\033[01;35m\]' # 紫色
cyn='\[\033[01;36m\]' # 青色
wht='\[\033[01;37m\]' # 白色
clr='\[\033[00m\]' # 重置
下面添加的这条配置给所有 Vim 用户,它将允许你在命令行中使用 vim 命令。 这始终是我添加到.bashrc的第一行:
set -o vi
如何在 .bashrc 中使用别名
我们可以为经常执行的(带参数)复杂命令配置别名,使用别名可以节省时间并提高工作效率。我们以ls命令为例:默认情况下,ls只显示目录的内容,但同时显示目录信息和隐藏文件通常更有用。因此出现了一个最为常用的别名——ll,执行它就相当于执行ls -alF命令,可以查看关于文件的大部分细节并显示隐藏文件。
.bashrc 中使用别名
创建别名的语法是alias 别名 =’原本的命令’ ,下面系统极客为大家列出一些常见的可用于创建别名的命令:
如果经常使用 Git,为它创建别名一个很不错的选择:
# 查看 Git 状态
alias gs='git status'
# 将文件添加到 Git
alias ga='git add'
# 将所有文件添加到 Git
alias gaa='git add --all'
# 提交对代码的更改
alias gc='git commit'
# 查看 Git 日志
alias gl='git log --oneline'
# 创建一个新的 Git分支并同时转移到新的分支
alias gb='git checkout -b'
# 查看差异
alias gd='git diff'
以下是一些其他有用的别名:
# 转到父文件夹
alias ..='cd ..;pwd'
# 上移两级文件夹
alias ...='cd ../..;pwd'
# 上移三级文件夹
alias ....='cd ../../..;pwd'
# 使用 c 清屏
alias c='clear'
# 使用 h 查看 bash 历史记录
alias h='history'
# 更好地显示目录结构
alias tree='tree --dirsfirst -F'
# 通过输入月份的前三个英文字母来查看日历
alias jan='cal -m 01'
alias feb='cal -m 02'
alias mar='cal -m 03'
alias apr='cal -m 04'
alias may='cal -m 05'
alias jun='cal -m 06'
alias jul='cal -m 07'
alias aug='cal -m 08'
alias sep='cal -m 09'
alias oct='cal -m 10'
alias nov='cal -m 11'
alias dec='cal -m 12'
使用月份简写查看日历
如何在 .bashrc 中使用函数
当别名不符合你的复杂需求时,函数非常适合更复杂的代码,以下是基本的函数语法:
function funct_name() {
# 代码;
}
例如,要在目录中找到大文件并排序,可以使用以下方法:
function find_largest_files() {
du -h -x -s -- * | sort -r -h | head -20;
}
使用自定义函数查找大文件
甚至利用函数再加互联网服务的 API 来查询天气预报:
function weather_report() {
local response=$(curl --silent 'https://api.openweathermap.org/data/2.5/weather?q=Chengdu,cn&APPID=YOUR_API_KEY')
local status=$(echo $response | jq -r '.cod')
case $status in
200) printf "Location: %s %s\n" "$(echo $response | jq '.name') $(echo $response | jq '.sys.country')"
printf "Forecast: %s\n" "$(echo $response | jq '.weather[].description')"
printf "Temperature: %.1f°F\n" "$(echo $response | jq '.main.temp')"
printf "Temp Min: %.1f°F\n" "$(echo $response | jq '.main.temp_min')"
printf "Temp Max: %.1f°F\n" "$(echo $response | jq '.main.temp_max')"
;;
401) echo "401 error"
;;
*) echo "error"
;;
esac
}
使用自定义函数与在线服务查看天气
配置 .bashrc 显示有用的系统信息
当你打开「终端」时,可以按自己的需要显示一些有用的系统信息:
clear
printf "\n"
printf " %s\n" "用户名: $(echo $USER)"
printf " %s\n" "日期: $(date)"
printf " %s\n" "运行时间: $(uptime -p)"
printf " %s\n" "主机名: $(hostname -f)"
printf " %s\n" "内核: $(uname -rms)"
printf " %s\n" "包个数: $(dpkg --get-selections | wc -l)"
printf " %s\n" "分辨率: $(xrandr | awk '/\*/{printf $1" "}')"
printf " %s\n" "内存: $(free -m -h | awk '/内存/{print $3"/"$2}')"
printf "\n"
配置 .bashrc 显示系统信息
自定义 Bash 提示信息
bash 提示可以对用户终端进行自定义设置,让它在运行命令时显示提示,定制的 bash 提示可以让用户在终端中的工作更高效。要自定义 Bash 提示可以通过 Easy Bash Prompt Generator 网站快速生成。
本文总结了如何配置.bashrc 选项、别名、函数等,希望能够改善你的工作流程,提高工作效率。