持久化配置

ShellBeginner
立即练习

简介

在之前的实验中,终端关闭后,配置就会消失。这就像住酒店:离开后房间会恢复原状。

如果要保留更改,就需要将其写入指定的配置文件。

这是一个重要的操作习惯。临时更改适合用于试验,但长期生效的 Shell 行为通常应写入启动文件,因为 Shell 会在会话开始时读取这些文件。

不同的 Shell 使用不同的配置文件:

  • Zsh(LabEx 默认 Shell):~/.zshrc。
  • Bash:~/.bashrc。

这一点很重要,因为「Shell」不是唯一的通用程序。每种 Shell 都有自己的约定、启动规则和配置文件。

在本实验中,你将:

  • 修改 Zsh 配置。
  • 切换到 Bash。
  • 修改 Bash 配置。

编辑 Zsh 配置(.zshrc)

LabEx 默认使用的 Shell 是 Zsh。它的配置文件是 ~/.zshrc。

  1. 打开 ~/.zshrc:
nano ~/.zshrc
  1. 滚动到文件末尾,添加以下内容:
alias hellozsh='echo Hello from Zsh'
  1. 保存并退出(Ctrl + O → Enter → Ctrl + X)。

你已经写入了配置,但 Shell 还没有读取它。

编辑配置文件会修改磁盘上的文件,但不会立即改变正在运行的 Shell 的行为。新的设置生效前,Shell 必须重新读取该文件。

重新加载配置(source)

使用 source 强制 Shell 重新加载配置文件。

source 命令会让当前 Shell 从文件中读取命令,并在当前会话中执行这些命令,而不是在新的子进程中执行。

  1. 重新加载配置:
source ~/.zshrc
  1. 测试新别名:
hellozsh

输出:

Hello from Zsh

现在,这个别名已对 Zsh 持久生效。

切换到 Bash

现在,测试不同 Shell 之间的隔离性。

  1. 切换到 Bash:
bash
  1. 尝试运行 Zsh 别名:
hellozsh

输出:command not found。

这是因为 Bash 只会读取 ~/.bashrc。

这很好地说明了 Shell 自定义设置通常只适用于特定的 Shell。为一种 Shell 创建的设置不会自动对所有 Shell 生效。

编辑 Bash 配置(.bashrc)

现在配置 Bash。

  1. 打开 .bashrc:
nano ~/.bashrc
  1. 在文件末尾添加以下别名:
alias hellobash='echo Hello from Bash'
  1. 保存并退出。

  2. 重新加载 Bash 配置:

source ~/.bashrc
  1. 测试该别名:
hellobash

输出:Hello from Bash。

  1. 退出 Bash,返回 Zsh:
exit

总结

在本实验中,你学习了如何永久自定义 Linux 环境:

  • Shell 的差异:不同的 Shell(Zsh、Bash)使用不同的配置文件(.zshrc、.bashrc)。
  • 持久化:在终端会话中进行的更改,除非保存到这些文件中,否则只是临时的。
  • Source:使用 source 可以立即应用更改,而无需重启终端。

现在,无论使用哪种 Shell,你都了解如何自定义自己的环境了!