【/etc/profile、~/.bashrc、~/.bash_profile区别以及配置history记录】

目录

  • /etc/profile、~/.bashrc、~/.bash_profile区别
      • `/etc/profile`
      • `~/.bash_profile`
      • `~/.bashrc`
      • 加载顺序和关系
      • 示例
        • `/etc/profile`
        • `~/.bash_profile`(用户级别)
        • `~/.bashrc`(用户级别)
  • history记录配置
      • 修改 `/etc/profile`
      • 确保用户的 `~/.bash_profile` 加载 `/etc/profile`
      • 重新加载配置
      • 验证配置
      • 注意事项

/etc/profile、/.bashrc、/.bash_profile区别

在 Linux 系统中,/etc/profile 和用户的 ~/.bashrc~/.bash_profile 文件都是用于配置 shell 环境的脚本文件,但它们的作用范围和加载时机有所不同。以下是它们的主要区别和用途:

/etc/profile

  • 作用范围:系统级别。/etc/profile 文件对系统中的所有用户生效。
  • 加载时机:当用户登录时,/etc/profile 会被所有兼容 POSIX 的 shell(如 Bash、sh)加载。它通常用于设置系统范围的环境变量和执行系统范围的初始化脚本。
  • 用途:适用于需要对所有用户生效的配置,例如全局环境变量、系统路径设置等。

~/.bash_profile

  • 作用范围:用户级别。~/.bash_profile 文件只对当前用户生效。
  • 加载时机:当用户登录时,Bash shell 会加载 ~/.bash_profile。它通常用于设置用户特定的环境变量和执行用户特定的初始化脚本。
  • 用途:适用于需要对单个用户生效的配置,例如用户特定的环境变量、别名等。

~/.bashrc

  • 作用范围:用户级别。~/.bashrc 文件只对当前用户生效。
  • 加载时机:每次启动一个新的非登录交互式 shell 时,Bash shell 会加载 ~/.bashrc。例如,当你在终端中打开一个新的 shell 会话时,~/.bashrc 会被加载。
  • 用途:适用于需要对单个用户的每个交互式 shell 会话生效的配置,例如别名、函数、命令提示符设置等。

加载顺序和关系

  • 登录 shell:当用户登录时,Bash shell 会按以下顺序加载配置文件:

    1. /etc/profile
    2. 用户的 ~/.bash_profile~/.bash_login~/.profile(Bash 会按这个顺序查找并加载第一个找到的文件)
  • 非登录交互式 shell:当用户启动一个新的非登录交互式 shell 时,Bash shell 会加载:

    1. 用户的 ~/.bashrc

通常,~/.bash_profile 会包含一行代码来加载 ~/.bashrc,以确保登录 shell 也能加载 ~/.bashrc 中的配置。例如:

if [ -f ~/.bashrc ]; then. ~/.bashrc
fi

示例

假设你希望设置一些全局环境变量,并为每个用户设置一些特定的别名和函数。你可以按以下方式配置:

/etc/profile
# 设置全局环境变量
export PATH="/usr/local/bin:$PATH"
export EDITOR="vim"
~/.bash_profile(用户级别)
# 加载 ~/.bashrc
if [ -f ~/.bashrc ]; then. ~/.bashrc
fi# 设置用户特定的环境变量
export PATH="$HOME/bin:$PATH"
~/.bashrc(用户级别)
# 设置别名
alias ll='ls -la'
alias gs='git status'# 设置命令提示符
PS1='\u@\h:\w\$ '# 加载其他配置文件
if [ -f ~/.bash_aliases ]; then. ~/.bash_aliases
fi

通过这种方式,你可以确保全局配置和用户特定配置都能正确加载和生效。

history记录配置

要为所有用户设置 Bash 历史记录的条目数为 100,000 条,你需要在系统级别进行配置。可以通过修改 /etc/profile 文件来实现,这样所有用户在登录时都会加载这个配置。

修改 /etc/profile

  1. 编辑 /etc/profile 文件

    使用你喜欢的文本编辑器(如 vimnano 等)打开 /etc/profile 文件:

    sudo vim /etc/profile
    
  2. 添加或修改以下内容

    在文件的末尾添加以下行,以设置 HISTSIZEHISTFILESIZE 环境变量:

    # 设置所有用户的历史记录条目数
    HISTSIZE=100000
    HISTFILESIZE=100000
    
  3. 保存并关闭文件

    保存文件并退出编辑器。

确保用户的 ~/.bash_profile 加载 /etc/profile

通常情况下,用户的 ~/.bash_profile 会自动加载 /etc/profile。但为了确保这一点,你可以检查或添加以下内容到每个用户的 ~/.bash_profile 文件中:

# 加载系统级别的配置
if [ -f /etc/profile ]; then. /etc/profile
fi

重新加载配置

要使更改立即生效,你可以重新加载 /etc/profile 文件,或者让用户重新登录。重新加载 /etc/profile 文件可以通过以下命令:

source /etc/profile

验证配置

你可以通过以下命令来验证配置是否生效:

echo $HISTSIZE
echo $HISTFILESIZE

这两个命令应该输出 100000,表示配置已生效。

注意事项

  • 磁盘空间:设置如此大的历史记录条目数可能会占用较多的磁盘空间,特别是对于活跃用户。请确保系统有足够的磁盘空间来存储这些历史记录。
  • 性能:虽然大多数现代系统可以处理大量的历史记录,但在极端情况下,处理非常大的历史记录文件可能会影响性能。

通过上述步骤,你可以确保所有用户的 Bash 历史记录条目数都设置为 100,000 条。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/45665.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TCP网络传输控制协议

目录 什么是TCP TCP的特点 TCP通信步骤 三次握手(建立连接) 数据传输 四次挥手(连接释放) 为什么要进行三次握手?两次握手行不行?一次握手行不行? 为什么是四次挥手?三次、两…

【Dison夏令营 Day 17】使用 Python Turtle 的 24 游戏求解器

24 点 是一个数学谜题,用基本算术运算符(、-、、)将 4 个数字运算成 24。例如,给定 4 个数字 1,5,5,5,我们可以得到表达式 (5-(15))5,等于 24。 我们可以用 Python 程序暴力解决这个问题。最多有 245444 7…

Vue的生命周期函数有哪些?详细说明

Vue.js 的生命周期函数包括以下几个阶段,每个阶段都有相应的钩子函数可以用来在特定时机执行自定义的逻辑。这些生命周期钩子函数使得我们可以在组件的不同阶段进行操作,从而管理组件的状态和行为。 1. beforeCreate: - 描述:…

【游戏客户端】大话slg玩法架构(三)建筑控件

【游戏客户端】大话slg玩法架构(三)建筑控件 大家好,我是Lampard家杰~~ 今天我们继续给大家分享SLG玩法的实现架构,关于SLG玩法的介绍可以参考这篇上一篇文章:【游戏客户端】制作率土之滨Like玩法 PS:和之前…

谈谈软件交互设计

谈谈软件交互设计 交互设计的由来 交互设计(Interaction Design)这一概念,最初是由IDEO创始人之一Bill.Moggridge(莫格里奇)1984年在一次会议上提出。他设计了世界上第一台笔记本电脑Compass,并写作出版了在交互设计领域影响深远的《Designing Interactions》一书,被称…

使用 Akshare 下载国内的期货(主力连续)、股票和指数的历史行情数据

本文介绍如何使用 akshare 下载国内期货、股票和指数的历史行情数据。 Akshare 是一个丰富的金融数据查询的 Python 库,提供了大量的金融数据接口。本文将详细介绍如何使用 Akshare 下载期货、股票和指数数据,并提供完整的代码示例,以求大家…

当需要在不同操作系统和编程语言环境中共享和处理 XML 数据时,可能会遇到哪些兼容性问题,以及如何解决?

在不同操作系统和编程语言环境中共享和处理 XML 数据时,可能会遇到以下兼容性问题: 编码问题:不同操作系统和编程语言对于 XML 文件的默认编码可能不同。如果使用不同的编码方式,可能会导致乱码或无法正确解析 XML 数据。解决方法…

Java算法题-找到数组所有左边数都比它小, 右边数都比它大的数

实例1: 输入:[1,2,4,3,7,8,9] 输出:[1,2,7,8,9] 条件一:左边的数都比他小 条件二:右边的数都不比他大 思路:遍历两次,一次从左往右,找到满足条件一的数,一次从后往前找到满足条件二的数,两次遍…

微服务架构实战:案例分析与解决方案探讨

摘要 微服务架构以其模块化和灵活性在软件开发领域迅速崛起。然而,这种架构模式并非没有挑战。本文通过深入分析几个实际的微服务项目案例,探讨了在设计、开发和部署过程中遇到的问题,以及相应的解决方案。同时,文章还展示了微服…

请不要把「团队」二字挂在嘴边上

请不要把「团队」二字挂在嘴边上 什么是团队? 团队(Team)是由 基层和 管理层人员组成的一个 共同体,它合理利用每一个 成员的知识和技能协同工作,解决问题,达到 共同的目标。 团队的构成要素总结为5P,分别为目标、人、 定位、权限、计划。 群体不是团队 “团队”和“…

智能合约和分布式应用管理系统:技术革新与未来展望

引言 随着区块链技术的不断发展,智能合约和分布式应用(DApps)逐渐成为数字经济中的重要组成部分。智能合约是一种自执行的协议,能够在预设条件满足时自动执行代码,而无需人工干预或中介机构。这种自动化和信任机制极大…

使用Apache服务部署静态网站

前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除 目录 一、网站服务程序 ​二、配置服务文件参数 ​三、SELinux安全子系统 四、个人用户主页功能 ​五、虚拟网站主机功能 六、Apache的访问控制…

DOM 实例:深入理解文档对象模型

DOM 实例:深入理解文档对象模型 引言 文档对象模型(DOM,Document Object Model)是处理可扩展标记语言(XML)的标准编程接口。在网页开发中,DOM 被广泛应用于 HTML 和 XML 文档的交互。本文将深入探讨 DOM 的概念、实例及其在网页编程中的应用。 DOM 基础概念 什么是 …

nx上darknet的使用-目标检测-在python中的使用

1 内置的代码 在darknet中已经内置了两个py文件 darknet_video.py与darknet_images.py用法类似,都是改一改给的参数就行了,我们说一下几个关键的参数 input 要预测哪张图像weights 要使用哪个权重config_file 要使用哪个cfg文件data_file 要使用哪个da…

基于AT89C51单片机篮球计时计分器的设计(含文档、源码与proteus仿真,以及系统详细介绍)

本篇文章论述的是基于AT89C51单片机篮球计时计分器的设计的详情介绍,如果对您有帮助的话,还请关注一下哦,如果有资源方面的需要可以联系我。 目录 绪论 原理图 ​编辑 仿真图 系统总体设计图 代码实现 系统论文 资源下载 绪论 本次…

postgresql创建只读权限的用户

在PostgreSQL中,创建具有只读权限的用户是一个常见的安全需求,以确保某些用户只能查询数据库中的数据,而不能修改或删除数据。以下是如何在PostgreSQL中创建只读用户的方法: 以下是创建PostgreSQL只读用户的步骤: 使…

cf957---D. Test of Love

恩科尔愿意为朱伦做任何事,甚至愿意游过鳄鱼出没的沼泽。我们决定测试一下这份爱。恩科尔必须游过一条宽 11 米、长 𝑛𝑛 米的河流。 河水非常冷。因此,***(即从 00 游到 𝑛1𝑛1 的整个过程)恩科尔在水里游…

通用详情页的打造

背景介绍 大家都知道,详情页承载了站内的核心流量。它的量级到底有多大呢? 我们来看一下,日均播放次数数亿次,这么大的流量,其重要程度可想而知。 在这样一个页面,每一个功能都是大量业务的汇总点。 作为…

【Web开发手礼】探索Web开发的魅力(三)-html基础标签(3)

上述主要是对html标签的介绍和一些基本练习可以当作日常笔记收藏一下!!! 目录 前言 html基础标签 前言 上述主要是对html标签的介绍和一些基本练习可以当作日常笔记收藏一下!!! 提示:以下是本…

克隆某个特定的分支而不是默认分支(master)

当你克隆一个远程仓库时,默认情况下 Git 会克隆整个仓库并将 master(或 main,取决于默认分支的名称)分支检出为当前分支。如果你想直接克隆某个特定的分支而不是默认分支,可以使用 --branch 或 -b 选项来指定分支。 克…