linux etc下的profile和/etc/bashrc

2023-11-13

/etc/profile的设置方法对所有登录的用户都有效。
~/.bashrc只对当前用户有效。

上面两个都是配置文件,开机后,系统会先读取/etc/profile,再读~/.bashrc。
不同的用户~/.bashrc文件可以有不同的设置,而/etc/profile则是共用一个,只有root才能修改。
~/.bashrc对/etc/profile有追加覆盖的效果。

Shell俗称壳(用来区别于内核),是指“提供使用者使用界面”的软件,就是一个命令行解释器。

bash 是一个为GNU项目编写的Unix shell,也就是linux用的shell。

就是说,bash是一种shell。

①/etc/profile: 
该文件登录操作系统时,为每个用户设置环境信息,当用户第一次登录时,该文件被执行。也就是说这个文件对每个shell都有效,用于获取系统的环境信息。

<code class="hljs vhdl has-numbering" style="display: block; padding: 0px; background: transparent; color: inherit; box-sizing: border-box; font-family: "Source Code Pro", monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal;"># /etc/profile

# System wide environment <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">and</span> startup programs, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">for</span> login setup
# Functions <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">and</span> aliases go <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">in</span> /etc/bashrc

# It<span class="hljs-attribute" style="box-sizing: border-box;">'s</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">NOT</span> a good idea <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">to</span> change this <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">file</span> unless you know what you
# are doing. It<span class="hljs-attribute" style="box-sizing: border-box;">'s</span> much better <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">to</span> create a custom.sh shell script <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">in</span>
# /etc/profile.d/ <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">to</span> make custom changes <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">to</span> your environment, as this
# will prevent the need <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">for</span> merging <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">in</span> future updates.</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li></ul>

②/etc/bashrc: 
为每一个运行bash shell的用户执行此文件,当bash shell被打开时,该文件被读取。也就是说,当用户shell执行了bash时,运行这个文件。

<code class="hljs vala has-numbering" style="display: block; padding: 0px; background: transparent; color: inherit; box-sizing: border-box; font-family: "Source Code Pro", monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal;"><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># /etc/bashrc</span>

<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># System wide functions and aliases</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># Environment stuff goes in /etc/profile</span>

<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># It's NOT a good idea to change this file unless you know what you</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># are doing. It's much better to create a custom.sh shell script in</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># /etc/profile.d/ to make custom changes to your environment, as this</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># will prevent the need for merging in future updates.</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li></ul>

③~/.bashrc 
该文件存储的是专属于个人bash shell的信息,当登录时以及每次打开一个新的shell时,执行这个文件。在这个文件里可以自定义用户专属的个人信息。

那么在用户登录系统时候,相关的文件执行顺序是什么呢。 
在刚登录Linux时,首先启动 /etc/profile 文件,然后再启动用户目录下的 ~/.bash_profile、 ~/.bash_login或 ~/.profile文件中的其中一个,执行的顺序为:~/.bash_profile、 ~/.bash_login、 ~/.profile。如果 ~/.bash_profile文件存在的话,一般还会执行 ~/.bashrc文件。

===============================================

1. 修改/etc/profile文件

特点:所有用户的shell都有权使用你配置好的环境变量

说明:如果你的电脑仅用作开发,建议使用此配置,因为所有用户的shell都有权使用你配置好的环境变量,所以有可能会给系统带来安全性问题。

[plain]  view plain  copy
  1. #1:编辑/etc/profile  
  2. bixiaopeng@bixiaopengtekiMacBook-Pro ~$ vim /etc/profile     
  3. #2:在profile末尾加入你需要配置的环境变量:  
  4. ANDROID_HOME=/Volumes/warehouse/dev-tools/adt-bundle-mac-x86_64-20130522/sdk/tools  

2. 修改.bashrc文件

特点: 环境变量只对某个用户有效
说明: 这种方法更为安全,它可以把使用这些环境变量的权限控制到用户级别,如果你需要给某个用户权限使用这些环境变量,只需修改其用户主目录下的.bashrc文件就可以了
[plain]  view plain  copy
  1. #1:编辑~.bashrc  
  2. bixiaopeng@bixiaopengtekiMacBook-Pro ~$ vim ~/.bashrc     
[plain]  view plain  copy
  1. #2:在.bashrc文件末尾加入:set ANDROID_HOME=/Volumes/warehouse/dev-tools/adt-bundle-mac-x86_64-20130522/sdk/tools  
  2. export ANDROID_HOME  

3.修改.bash_profile 文件

特点:当用户登录时,该文件仅仅执行一次,mac ox中此文件类似.bashrc
说明:如果更改了.bash_profile文件,需要退出后再次登录,该文件被重新读取后,更改才会生效。使用 source .bash_profile 可以让其立即生效。
[plain]  view plain  copy
  1. #1.修改.bash_profile  
  2. bixiaopeng@bixiaopengtekiMacBook-Pro ~$ vim .bash_profile   
  3. #2.修改文件  
  4. ANDROID_HOME=/Volumes/warehouse/dev-tools/adt-bundle-mac-x86_64-20130522/sdk  

4. 直接在shell下设置变量

特点:临时有效
说明:这种方法仅针对临时使用,如果重新打开一个shell,设置就无法生效,而且以后要使用的时候又要重新设置

[plain]  view plain  copy
  1. #终端执行下列命令:  
  2. bixiaopeng@bixiaopengtekiMacBook-Pro ~$ export ANDROID_HOME=/Volumes/warehouse/dev-tools/adt-bundle-mac-x86_64-20130522/sdk/tools  
  3.  

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux etc下的profile和/etc/bashrc 的相关文章

随机推荐

  • 数字电路延时

    文章目录 名词定义 RC延时模型 Elmore延时 线性延时模型 路径逻辑努力 小结 附录 DC综合 作为一名数字电路设计工程师 为了避免设计一些垃圾出来 应该深入理解为什么一个电路具有延时以及如何修改这个电路以改善延时 设计者还必须有一些
  • 如何查看IntelliJ IDEA的版本信息

    作者 13 GitHub https github com ZHENFENG13 版权声明 本文为原创文章 未经允许不得转载 IDEA的版本信息问题 额 说实在的 这篇文章十三一开始也不是很想整理的 因为这并不是个很大的问题 不仅仅不是个大
  • Django高级扩展之文件上传

    文件上传是一个比较常用的网站功能 在服务器端 Django会使用一个叫作request FILES的对象来处理上传的文件 目录 存储路径 创建存储目录 配置settings py 上传单文件 配置url 上传文件模板 视图方法 显示上传页面
  • typora插件_Typora+zotero搞定Markdown随写随引

    使用工具及简要安装 Typora 超级好用的免费Markdown编辑器 在尝试了多款Markdown软件之后 我选择了它 下载链接 Typora官网 https www typora io Zotero 文献管理软件 插件Better Bi
  • char与signed char, unsigned char的区别

    一 开始 今天有一个困扰的问题 就是char与signed char unsigned char这三者的区别 二 三者之间 1 ANSI C 提供了3种字符类型 分别是char signed char unsigned char 而不是像s
  • matlab中的mod和rem的异同

    rem和mod是求余的 但是算法不同 差异在哪呢 就在于分别使用了fix和floor 函数fix和floor都是圆整用的 fix是向0的方向圆整 如fix 1 5 1 fix 1 5 1 而floor是向下圆整 如floor 1 5 2 f
  • Maven下Junit的使用

    创建Maven项目 在pom xml中添加引用包Junit
  • 示波器的原理和使用

    1 示波器简介 示波器是一种用来测量交流电或脉冲电流波的形状的仪器 由电子管放大器 扫描振荡器 阴极射线管等组成 除观测电流的波形外 还可以测定频率 电压强度等 凡可以变为电效应的周期性物理过程都可以用示波器进行观测 2 示波器的分类 模拟
  • 前端html后端java_前端html向后端java传递数据的几种方式(暂时使用到)

    注 data 类型可按照具体场景 具体定义 不仅仅只有下面的传递方式 1 删除 前段传递方式为dataType JSON type DELETE 前段 ajax url interfaces deleteAccessRule id type
  • win10 Face_recognition教程

    文章目录 1 pip加速下载 更改pip镜像源 2 face recognition配置 1 安装dlib 2 安装face recognition modules 3 安装face recognition 4 人脸识别开源项目集锦 htt
  • HashMap的使用

    put方法 Hashmap的put方法放值 可以单次向HashMap中添加一个键值对 没有顺序 HashMap
  • 微信小程序开发笔记一

    微信小程序开发笔记 一 微信小程序的结构 1 初识小程序 2 快捷键 3 查阅文档 二 常用组件 1 input组件 2 button组件 三 小程序中的函数 1 函数的两种定义方法 2 带参函数 3 js中的默认函数 4 其它常用函数 四
  • vue在原有的类名上,动态渲染添加新类名

    vue在原有的类名上 动态渲染添加新类名
  • Redis相关-03

    Redis相关 03 Redis配置文件详解 持久化 RDB操作 持久化 AOF操作 Redis订阅发布 Redis集群环境搭建 主从复制 宕机手动配置主机 哨兵模式 缓存穿透以及雪崩 一 Redis配置文件详解 1 单位说明 Note o
  • S7-1500系列博途中使用SCL语言编程方法简介

    SCL Structured Contorl Language 结构化控制语言 在TIA博途软件中 默认支持SCL语言 在建立程序块时可以直接选择SCL语言 SCL语言类似计算机高级语言 如果你有C Java C Python这种高级语言的
  • gradle 历史版本下载链接

    https gradle org releases
  • 阿里云解决外网不能访问

    开发十年 就只剩下这套Java开发体系了 gt gt gt 1 未配置该端口安全策略 配置如下后 所有ip都可以访问 全部端口都可以使用了 如果只需要特定ip或端口开放也可以进行设置 2 防火墙的原因 我写了关于centos开启防火墙和开放
  • C# 1. 介绍

    1 介绍 C 读作 See Sharp 是一种简洁 现代 面向对象且类型安全的编程语言 C 起源于 C 语言家族 因此 对于 C C 和 Java 程序员 可以很快熟悉这种新的语言 C 已经分别由 ECMA International 和
  • 启动VMware虚拟机时出现黑屏解决办法

    以管理员身份运行 命令提示符 gt 输入命令 netsh winsock reset gt 运行后重启电脑 gt Enjoy it 上述命令作用 重置winsock网络规范
  • linux etc下的profile和/etc/bashrc

    etc profile的设置方法对所有登录的用户都有效 bashrc只对当前用户有效 上面两个都是配置文件 开机后 系统会先读取 etc profile 再读 bashrc 不同的用户 bashrc文件可以有不同的设置 而 etc prof