网站首页 > 技术教程 正文
Linux 系统中配置文件的区别
在 Linux 系统中,bash 或其他 shell 使用多个配置文件来配置用户的交互式登录或非登录 shell 环境。这些配置文件包括 /etc/profile,~/.bash_profile,~/.profile,~/.bash_login,~/.bashrc,~/.bash_history 和 ~/.bash_logout。
一、配置文件类型
这些配置文件主要分为两大类:
- 系统配置文件: /etc/profile
- 用户配置文件: ~/.bash_profile, ~/.profile, ~/.bash_login, ~/.bashrc, ~/.bash_history, ~/.bash_logout
二、配置文件作用
在理解配置文件之前,需要先了解交互式登录 shell 和非登录 shell 的区别。
- 交互式 shell: 与用户的终端交互,可以读取和写入用户的终端。
- 非交互式 shell: 不与终端关联,通常用于执行 shell 脚本。
交互式 shell 又可以分为:
- 交互式登录 shell: 系统启动后第一次启动的 shell,或者使用 --login 参数启动的 shell,以及通过 SSH 远程登录的 shell 都属于登录 shell。
- 交互式非登录 shell: 在已有的 shell 中打开新的子 shell,或者打开新的终端标签页,都属于非登录 shell。
三、交互式登录 Shell 和非登录 Shell
交互式登录 shell
当启动交互式登录 shell 时,Bash 会按照以下顺序读取配置文件:
- /etc/profile:系统配置文件,对所有用户生效。
- ~/.bash_profile、~/.profile、~/.bash_login:用户配置文件,只对当前用户生效。如果 ~/.bash_profile 存在,则不会读取 ~/.profile 和 ~/.bash_login。
- ~/.bashrc_history:保存用户在终端输入的命令历史记录。
- ~/.bashrc_logout:当登录 shell 退出时执行的清理文件。
交互式非登录 shell
当启动交互式非登录 shell 时,Bash 只会读取以下配置文件:
- ~/.bashrc:用户配置文件,只对当前用户生效。
- ~/.bash_history:保存用户在终端输入的命令历史记录。
- ~/.bash_logout:当登录 shell 退出时执行的清理文件。
四、配置文件加载顺序
以下代码演示了在 bash 中加载配置文件的顺序:
# 编辑配置文件,在文件末尾添加 echo 命令输出文件名
echo 'echo "~/.bash_profile"' >> ~/.bash_profile
echo 'echo "~/.bashrc"' >> ~/.bashrc
echo 'echo "/etc/profile"' >> /etc/profile
# 打开一个新的子 shell,观察输出结果
bash --login
相关文件名类别及其描述:
文件名 | 描述 |
/etc/profile | 存储系统级别的环境变量、别名、函数等,对所有用户生效。 |
~/.bash_profile | 存储用户级别的环境变量、别名、函数等,只对当前用户生效,在登录 shell 启动时加载。 |
~/.profile | 如果 ~/.bash_profile 不存在,则会读取该文件。 |
~/.bash_login | 如果 ~/.profile 也不存在,则会读取该文件。 |
~/.bashrc | 存储用户级别的环境变量、别名、函数等,只对当前用户生效,在非登录 shell 启动时加载。 |
~/.bash_history | 存储用户在终端输入的命令历史记录。 |
~/.bash_logout | 当登录 shell 退出时执行的清理文件。 |
五、~/.bash_profile和 ~/.bashrc的区别
- ~/.bash_profile 通常用于设置只在登录时需要执行一次的命令,例如:
- 设置文本编辑器
- 设置终端布局
- 定义环境变量
- ~/.bashrc 通常用于设置每次打开新的终端都需要执行的命令,例如:
- 定义别名
- 定义函数
- 设置 PS1 变量
了解 Linux 系统中不同配置文件的作用和加载顺序,可以帮助我们更好地配置 shell 环境,提高工作效率。
来源:
https://linuxtldr.com/difference-between-bash-profiles/
VirtualBox 7.1.2 发布,修复多项问题并提升性能
VirtualBox 7.1.2 已于 2024 年 9 月 26 日发布,这是一个维护版本,主要修复了以下问题并进行了一些改进:
界面改进:
- 增加了多窗口布局,并修复了与翻译相关的问题。
- 修复了使用无人值守安装创建的虚拟机无法彻底删除的问题。
- 增加了更改远程显示安全方法的选项。
- 移除了 macOS/Arm 用户界面上的“测试版”标签。
网络增强:
- 修复了 Windows 主机上 NAT 网络性能缓慢的问题(错误 #22164 和 #22180)。
- 修复了在域为空时某些客户机出现的 DHCP 问题。
3D 图形优化:
- 修复了在虚拟机设置中启用 3D 加速的问题。
- 修复了 Windows 虚拟机黑屏的问题。
- 修复了由于视图处理不正确导致的渲染问题。
- 增加了为 Arm 平台虚拟机启用 3D 加速功能的可能性。
其他改进:
- 修复了加载由 7.0.x 创建的保存状态时出现的问题。
- 修复了使用旧版 BIOS 处理 NVRAM 状态不正确以及在删除虚拟机时删除 NVRAM 的问题。
- 修复了在虚拟机从未启动时查询 UEFI 安全启动状态的问题。
- 修复了客户机添加程序自动升级时的错误消息。
- 修复了使用 XPCOM 绑定构建代码的问题(错误 #22174)。
总的来说,VirtualBox 7.1.2 提升了稳定性、性能和用户体验,建议所有用户升级到此版本。
来源: https://www.virtualbox.org/wiki/Changelog-7.1#v02
更多内容请查阅 :
x-cmd blog (daily) | [241004] Linux 系统中配置文件的区别 | VirtualBox 7.1.2 发布,修复多项问题并提升性能
猜你喜欢
- 2024-10-28 虚拟机用户福利:Win10已经兼容VirtualBox
- 2024-10-28 推荐6款强大的虚拟机软件 让你在 Mac 上完美使用 Windows
- 2024-10-28 如何在Virtualbox 安装 windows 系统
- 2024-10-28 免费开源虚拟机VirtualBox 7.0.12发布:修复TPM和黑屏问题
- 2024-10-28 Virtualbox 虚拟机设定Nested Virtualization
- 2024-10-28 免费虚拟机VirtualBox 7.0.8发布:初步支持Linux Kernel 6.3
- 2024-10-28 在 Windows 上安装 VirtualBox 虚拟机
- 2024-10-28 【SpringBoot后端开发】 第二部分 虚拟机软件(Virtual Box)
- 2024-10-28 如何在 OpenSUSE 上安装 VirtualBox 7?
- 2024-10-28 国产操作系统上安装使用virtualbox | 统信 | 麒麟 | 中科方德
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)