深入探索Shell配置与环境变量

立即解锁
发布时间: 2025-09-09 01:47:57 阅读量: 14 订阅数: 21 AIGC
PDF

从零开始学Linux系统管理

# 深入探索Shell配置与环境变量 ## 1. 全局与本地配置文件 ### 1.1 全局配置文件 /etc/bashrc `/etc/bashrc` 的作用是设置系统范围的函数和别名,包括终端模拟器类型、命令提示符字符串、umask(定义新文件创建时的默认权限)以及 `$SHELL` 变量(定义bash shell可执行文件的全限定路径和名称)。 需要注意的是,用于bash shell全局配置的默认文件不应被修改。若要修改或添加全局配置,应在 `/etc/profile.d` 目录中添加自定义文件,文件名以 `.sh` 结尾即可,建议取一个容易识别的名字。 ### 1.2 本地配置文件 本地bash配置文件位于每个用户的主目录下,用户可修改这些文件以根据自己的偏好配置shell环境。主要的本地配置文件有 `.bashrc` 和 `.bash_profile`,它们包含一些基本的配置项。 当启动登录shell时,bash首先运行 `/etc/profile`,完成后运行 `~/.bash_profile`。以下是 `~/.bash_profile` 和 `~/.bashrc` 的内容示例: ```bash # ~/.bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/.local/bin:$HOME/bin export PATH ``` ```bash # ~/.bashrc # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi # Uncomment the following line if you don't like systemctl's auto-paging feature: # export SYSTEMD_PAGER= # User specific aliases and functions ``` `~/.bash_profile` 先运行 `~/.bashrc` 以设置别名和函数,然后设置并导出路径,使该路径对所有后续的非登录shell可用。`~/.bashrc` 会调用 `/etc/bashrc`。 ### 1.3 配置文件执行顺序 登录shell启动时的执行顺序如下: ```mermaid graph LR A[/etc/profile] --> B[~/.bash_profile] B --> C[~/.bashrc] C --> D[/etc/bashrc] ``` ## 2. 追踪配置脚本执行顺序 为了测试复杂且相互关联的shell程序或shell程序内过程的执行顺序,可以在每个相关程序的开头添加 `echo` 语句,以显示正在运行的shell程序。 ### 2.1 修改配置文件 以下是需要修改的文件及具体操作: - **/etc/profile**:在 `pathmunge` 过程之后添加 `echo "Running /etc/profile"`。 ```bash # /etc/profile # System wide environment and startup programs, for login setup # Functions and aliases go in /etc/bashrc # It's NOT a good idea to change this file unless you know what you # are doing. It's much better to create a custom.sh shell script in # /etc/profile.d/ to make custom changes to your environment, as this # will prevent the need for merging in future updates. pathmunge () { case ":${PATH}:" in *:"$1":*) ;; *) if [ "$2" = "after" ] ; then PATH=$PATH:$1 else PATH=$1:$PATH fi esac } echo "Running /etc/profile" if [ -x /usr/bin/id ]; then if [ -z "$EUID" ]; then # ksh workaround EUID=`id -u` UID=`id -ru` fi USER="`id -un`" LOGNAME=$USER MAIL="/var/spool/mail/$USER" fi ``` - **/etc/bashrc**:在文件开头添加 `echo "Running /etc/bashrc"`。 ```bash # /etc/bashrc # System wide functions and aliases # Environment stuff goes in /etc/profile # It's NOT a good idea to change this file unless you know what you # are doing. It's much better to create a custom.sh shell script in # /etc/profile.d/ to make custom changes to your environment, as this # will prevent the need for merging in future updates. echo "Running /etc/bashrc" # Prevent doublesourcing if [ -z ".bashrcSOURCED" ]; then .bashrcSOURCED="Y" ``` - **/etc/profile.d/myBashConfig.sh**:创建该文件并添加 `echo "Running /etc/profile.d/myBashConfig.sh"`。 ```bash # /etc/profile.d/myBashConfig.sh echo "Running /etc/profile.d/myBashConfig.sh" ``` - **~/.bash_profile**:在文件开头添加 `echo "Running ~/.bash_profile"`。 ```bash # .bash_profile echo "Running ~/.bash_profile" # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/.local/bin:$HOME/bin export PATH ``` - **~/.bashrc**:在文件开头添加 `echo "Running ~/.bashrc"`。 ```bash # .bashrc echo ```
corwn 最低0.47元/天 解锁专栏
买1年送3月
继续阅读 点击查看下一篇
profit 400次 会员资源下载次数
profit 300万+ 优质博客文章
profit 1000万+ 优质下载资源
profit 1000万+ 优质文库回答
复制全文

相关推荐

吴雄辉

高级架构师
10年武汉大学硕士,操作系统领域资深技术专家,职业生涯早期在一家知名互联网公司,担任操作系统工程师的职位负责操作系统的设计、优化和维护工作;后加入了一家全球知名的科技巨头,担任高级操作系统架构师的职位,负责设计和开发新一代操作系统;如今为一名独立顾问,为多家公司提供操作系统方面的咨询服务。
最低0.47元/天 解锁专栏
买1年送3月
百万级 高质量VIP文章无限畅学
千万级 优质资源任意下载
千万级 优质文库回答免费看
立即解锁

专栏目录

最新推荐

从采集到智能分析:ADS-B航空大数据完整路径全解读

![ADS-B](https://m.media-amazon.com/images/I/51mRWNGJWAL._AC_UF1000,1000_QL80_.jpg) # 摘要 本文系统研究了ADS-B航空数据从采集到智能应用的全流程技术架构与关键方法。首先阐述ADS-B基本原理与系统组成,进而深入探讨基于SDR的信号接收、数据解码与预处理技术,提出针对信号干扰、丢包及时间不同步等问题的优化策略。在数据管理方面,对比时序数据库选型并构建基于Kafka与Flink的实时处理流水线,实现高效存储与流式计算。进一步地,结合卡尔曼滤波、LSTM等算法开展航迹重建、飞行行为分析与轨迹预测,并建立空

行为面试问题与职业建议综合指南

# 行为面试问题与职业建议综合指南 ## 一、常见行为面试问题剖析 ### (一)信任相关问题 在工作中选择信任他人的情况并不少见。比如有一位护士,即便另一位护士已经结束了工作班次,她还是选择信任对方去药房为自己的病人取药。这位被信任的护士很可靠,成功取回了药品,并且直到现在两人仍保持着联系,因为他用行动证明了自己值得信任。 ### (二)引入变革相关问题 #### 1. 实施政策变革的流程 在团队中实施政策变革时,可按以下步骤进行: - 首先,从宏观层面解释政策内容以及实施该政策的原因。 - 接着,鼓励团队成员提出对新政策的疑问或担忧,并及时解决。 - 最后,在政策实施后持续与团队沟通,

UML建模规范权威指南:写出高质量、易维护模型文件的8项标准准则

# 摘要 UML建模在软件工程中具有核心价值,对于系统设计的规范性、可维护性及团队协作效率具有重要意义。本文系统阐述了UML建模的基础理论、核心元素及其标准化准则,分析了高质量模型应遵循的八项标准,并探讨了建模过程中常见的误区与应对策略。文章进一步结合面向对象设计方法,介绍了用例建模、类图设计与交互图表达的实践技巧,讨论了模型版本控制、重构优化及建模工具的应用策略,旨在提升UML模型的可扩展性与可维护性。通过企业级项目中的最佳实践分析,本文为构建规范、高效、可持续演进的UML模型提供了系统性的方法论支持。 # 关键字 UML建模;面向对象设计;模型规范;可维护性;可扩展性;建模工具

机器学习与深度学习入门指南

### 机器学习与深度学习入门指南 #### 1. 机器学习概述 随着电子数据量的不断增加,对自动化数据分析方法的需求也在持续增长,而机器学习方法正好满足了这一需求。机器学习是人工智能的一个子领域,它能让计算机系统自动检测数据中的模式,并利用这些模式预测未来数据、其他感兴趣的结果,或者在不确定的情况下进行决策。 机器学习本质上是一种应用统计学,更侧重于使用计算机系统来估计复杂的统计函数,而不是证明这些函数的置信区间。它在工业、公共和私人组织以及现代社会中推动了许多进步,应用场景广泛,包括图像识别、语音转录、物品匹配、搜索结果筛选等。 每个机器学习工作流程都始于三个基本问题: - 要处理的

DPI感知与高清屏适配:彻底解决高分屏截图模糊

![DPI感知与高清屏适配:彻底解决高分屏截图模糊](https://media.geeksforgeeks.org/wp-content/cdn-uploads/20220203233320/Group-2-4.jpg) # 摘要 随着高分辨率屏幕的普及,DPI感知与高清屏适配成为提升用户体验的关键技术。本文系统阐述了DPI与屏幕缩放的技术原理,分析了高分屏下截图模糊的根本原因,包括图像缩放误差、渲染机制差异及多DPI环境下的兼容性问题。针对上述问题,论文提出了从程序配置、截图技术到图像处理的完整解决方案,涵盖高DPI感知启用、现代图形API应用及GPU加速的图像优化算法。并通过实际开

区块链重构供应商信任机制:应用场景与技术挑战全面曝光

![Tesla Supplier Handbook(特斯拉供应商手册) BMS-0000051 Rev 6.zip](https://media.licdn.com/dms/image/C5612AQGhdcfx59rMkQ/article-cover_image-shrink_600_2000/0/1632922629238?e=2147483647&v=beta&t=jrfO9QsASxVt2BWkvxfqaeSasA7zxaYZ5evc_H9f8mk) # 摘要 区块链技术为重构供应商信任机制提供了全新的技术路径,通过分布式账本、共识机制与智能合约,实现去中心化、可追溯且不可篡改的

【深度长文】多层膜结构中倏逝波传播机制揭秘:透射率影响因素全解析

![计算多层膜结构的透射率,多层膜反射率计算,matlab源码.zip](http://www.caemolding.org/cmm/wp-content/uploads/2019/02/%E5%A1%91%E8%86%A0%E5%85%89%E5%AD%B8%E5%9C%96%E8%A1%A82.png) # 摘要 本文系统研究了多层膜结构中倏逝波的传播特性及其调控方法,涵盖从基础理论到实验验证与应用分析的全过程。首先,基于麦克斯韦方程组,推导了倏逝波在多层介质界面传播的物理机制与数学模型,阐明其衰减行为与模态分类。随后,构建了基于传输矩阵法(TMM)的透射率计算模型,分析了膜层厚度、

基于ROM的地图预置方案:静态关卡数据存储的3种优化策略

![基于ROM的地图预置方案:静态关卡数据存储的3种优化策略](https://nauka.uj.edu.pl/documents/74541952/144269109/kodowanie_900.jpg/e5e75dd5-32de-4ec0-8288-65ec87ba5d12?t=1579688902398) # 摘要 本文系统探讨了静态关卡数据在只读存储器(ROM)中的高效存储与映射机制,聚焦于预置地图数据的结构化表示与优化策略。基于网格地图与图块编码模型,结合ROM的存储特性,提出了分层式图块索引压缩、差量存储与区域复用、位域编码与紧凑布局三项核心优化技术,并详细阐述其在编译期与运

应对中证500调仓冲击的量化策略:高频再平衡算法设计思路与实操建议

# 摘要 本文系统研究中证500指数调仓机制对量化策略设计与执行的影响,结合市场微观结构特征构建高频再平衡策略模型。通过分析调仓周期、成分股变动规律及市场反应统计特性,建立以动态权重调整为核心、融合风险控制因子的数学优化框架,并设计完整的回测体系评估策略绩效。在工程层面,实现涵盖实时数据处理、算法交易引擎与多维度风险控制的自动化系统。进一步提出冲击成本管理、多因子增强及强化学习优化路径,探索跨市场联动策略的应用前景。最后讨论策略实施中的合规要求与未来发展趋势,为量化投资实践提供理论支持与操作指南。 # 关键字 中证500;调仓机制;高频再平衡;算法交易;风险控制;强化学习 参考