你的 home 目录下藏着很多隐藏文件。如果你在运行 macOS 或者主流的 Linux 发行版的话,你就会在靠近隐藏文件列表的上方看见一个名为 .bashrc 的文件。那么什么是 .bashrc,编辑 .bashrc 又有什么用呢?

finder-find-bashrc

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

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

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

terminal-edit-bashrc-1

你可以在任何终端文本编辑器上编辑 .bashrc。在接下来的例子中我们将使用 nano

要使用 nano 来编辑 .bashrc,在终端中调用以下命令:

nano ~/.bashrc

如果你之前从没有编辑过 .bashrc 的话,你也许会发现它是空的。这没关系!如果不是的话,你可以随意在任一行添加你的配置。

你对 bashrc 所做的任何修改将在下一次启动终端时生效。如果你想立刻生效的话,运行下面的命令:

source ~/.bashrc

你可以添加到任何 .bashrc 的位置,随意使用命令(通过 #)来组织你的代码。

编辑 .bashrc 需要遵循 bash 脚本格式。如果你不知道如何用 bash 编写脚本的话,有很多在线资料可供查阅。这是一本相当全面的介绍指南,包含一些我们没能在这里提及的 bashrc 的方面。

相关: 如何在 Linux 启动时以 root 权限运行 bash 脚本

有一些有用的小技巧能使你的终端体验将更高效,也更用户友好。

为什么我要编辑 bashrc ?

Bash 提示符

bash 提示符允许你自定义你的终端,并让它在你运行命令时显示提示。自定义的 bash 提示符着实能提高你在终端的工作效率。

看看这些即有用又有趣的 bash 提示符,你可以把它们添加到你的 .bashrc 里。

别名

terminal-edit-bashrc-3

别名允许你使用简写的代码来执行你想要的某种格式的某个命令。让我们用 ls 命令来举个例子吧。ls 命令默认显示你目录里的内容。这挺有用的,不过显示目录的更多信息,或者显示目录下的隐藏内容,往往更加有用。因此,有个常见的别名就是 ll,用来运行 ls -lha 或者其他类似的命令。这样就能显示文件的大部分信息,找出隐藏的文件,并能以“能被人类阅读”的单位显示文件大小,而不是用“块”作为单位。

你需要按照下面这样的格式书写别名:

alias ll = "ls -lha"

左边输入你想设置的别名,右边引号里是要执行的命令。你可以用这种方法来创建命令的短版本,防止出现常见的拼写错误,或者让一个命令总是带上你想要的参数来运行。你也可以用你喜欢的缩写来规避讨厌或容易忘记的语法。这是一些常见的别名的用法,你可以添加到你的 .bashrc 里。

函数

terminal-edit-bashrc-2

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

function_name () {
command_1
command_2
}

下面的命令组合了 mkdir 和 cd 命令。输入 md folder_name 可以在你的工作目录创建一个名为“folder_name”的目录并立刻导航进入。

md () {
mkdir -p $1
cd $1
}

如你所见,函数中的 $1 代表第一个参数,就是你在函数名后紧跟着输入的文本。

总结

不像某些自定义终端的方法,变动 bashrc 是非常直接且低风险的。即使你一不小心全搞砸了,你也可以随时删掉 bashrc 文件然后重新来一遍。试试看吧,你会惊叹于你提高的生产力的。

Linux 的.bashrc 文件详解相关推荐

  1. Linux 的.bashrc 文件详解

    你的 home 目录下藏着很多隐藏文件.如果你在运行 macOS 或者主流的 Linux 发行版的话,你就会在靠近隐藏文件列表的上方看见一个名为 .bashrc 的文件.那么什么是 .bashrc,编 ...

  2. linux语言的说明顺序有哪些,(linux常用头文件详解.doc

    (linux常用头文件详解 linux常用头文件详解 POSIX标准定义的头文件??????? 目录项 ???????? 文件控制 ??? 文件名匹配类型 ??? 路径名模式匹配类型 ??????? ...

  3. ubuntu 20.04 | .bashrc 文件详解

    ubuntu 20.04 | .bashrc 文件详解 1. .bashrc文件简介 2. .bashrc文件编辑 3. 在 .bashrc 文件中定义别名(alias) 4. 在 .bashrc 文 ...

  4. linux /proc目录文件详解

    Linux中/proc目录下文件详解(一) /proc文件系统下的多种文件提供的系统信息不是针对某个特定进程的,而是能够在整个系统范围的上下文中使用.可以使用的文件随系统配置的变化而变化.命令proc ...

  5. Linux /etc/profile文件详解

    linux /etc/profile文件的改变会涉及到系统的环境,也就是有关Linux环境变量的东西,学习Linux要了解Linux profile文件的相关原理,这里对则以文件进行具体分析.这里修改 ...

  6. Linux中service文件详解

    1. 什么是systemd service systemd service是一种以 .service 结尾的配置文件,是一个专用于 Linux 操作系统的系统与服务管理器.简单来说,用于后台以守护精灵 ...

  7. linux中etc目录下没有source,Linux /etc/profile文件详解及修改后如何立即生效(使用source命令)...

    Linux /etc/profile文件的改变会涉及到系统的环境,也就是有关Linux环境变量的东西,学习Linux要了解Linux profile文件的相关原理,这里对则以文件进行具体分析.这里修改 ...

  8. linux7inittab文件不存在,嵌入式linux之inittab文件详解

    一,init进程工作 1. 为init设置信号处理过程 2. 初始化控制台 3. 剖析/etc/inittab文件 4. 执行系统初始化命令行,缺省情况下会使用/etc/init.d/rcS 5. 执 ...

  9. linux /etc/group文件详解

    2019独角兽企业重金招聘Python工程师标准>>> Linux /etc/group文件与/etc/passwd和/etc/shadow文件都是有关于系统管理员对用户和用户组管理 ...

最新文章

  1. 都已经十岁的 Apache Dubbo,还能再乘风破浪吗?
  2. 思想开放-学数学之人必备的特质(转载)
  3. 【Transformer】Do Vision Transformers See Like Convolutional Neural Networks?
  4. 数学知识总结——矩阵
  5. 编译期会出现错误提示有哪些_Webpack 5有哪些值得期待
  6. Kubernetes 小白学习笔记(23)--kubernetes的运维-管理Pod
  7. loadrunner监控linux内存,Loadrunner11监控LINUX服务器
  8. python3 subprocess.Popen监控控制台输出
  9. 《广西经济社会发展报告(2019)》正式发布 聚焦发展热点
  10. 菜鸟入门:Java语言学习
  11. 电脑有网但打不开网页怎么办?
  12. Unity3D教程:播放视频的两种方式
  13. 晶体管分类、符号及作用
  14. 双数据率四线外设接口(Double Transfer Rate Quad Peripheral Interface, DTR QPI)
  15. 如何面对无意义的生活
  16. 4月17日黑客攻击事件简讯
  17. PHP Unicode编码与解码_Unicode转中文_中文转Unicode字符
  18. JAVAWEB开发之工作流详解(一)——Activiti的环境搭建、插件安装、核心API
  19. Windows网络编程 — UDP完成端口的实现
  20. 关于人像美容之祛痘祛斑算法的一些尝试。

热门文章

  1. 请教大家IMEI号手机与包装上面不一致是什么状况
  2. 这里是拉姆达的第一个博客~~
  3. HTML页面实现列表列宽可拉伸改变大小功能
  4. MySQL 几种连表查询详解
  5. leetcode 79. 单词搜索【类似迷宫回溯】
  6. 20144303 《Java程序设计》第二次实验实验报告
  7. 多分类f1分数_多分类的评价指标PRF(Macro-F1/MicroF1/weighted)详解
  8. Java与Python中的正则匹配
  9. 爬虫 某音海外版用户主页翻页x-tt-params加密参数逆向分析
  10. 线性规划求解器 matlab,基于求解器设置线性规划