系统极客一直在努力
专注于操作系统及软件使用教程

bashrc 配置文件自定义指南,如何添加别名、使用函数等

linux

如果你在使用 macOS 或流行的 Linux 发行版,可以在用户主目录中看到许多隐藏文件。这些隐藏文件中最为常用的就是名为.bashrc的配置文件。那什么是 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
history 命令显示日期和时间

添加此行以忽略历史记录中的重复命令:

HISTCONTROL=ignoredups

要配置「活动历史记录」的行数和设置「Bash 历史记录保存行数」,请添加这两行:

HISTSIZE=2000
HISTFILESIZE=2000

也可以将历史记录设置为「追加模式」而不覆盖之前 Bash 历史记录:

shopt -s histappend
自定义 bashrc 配置文件
自定义 bashrc 配置文件

shopt 代表「Shell 选项」,要查看所有默认 Shell 选项,可以执行:

shopt -p
shopt
查看默认 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 中使用别名
.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 选项、别名、函数等,希望能够改善你的工作流程,提高工作效率。

评论 2

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #2

    猪年快乐~

    Ashe4年前 (2019-02-21)回复
  2. #1

    狗年快乐~

    絮沫纷飞5年前 (2018-02-23)回复