/etc/profile和/etc/bashrc、~/.bash_profile和~/.bashrc、.zshrc和.zprofile的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了/etc/profile和/etc/bashrc、~/.bash_profile和~/.bashrc、.zshrc和.zprofile的区别相关的知识,希望对你有一定的参考价值。

参考技术A

默认情况下,您的 Mac 使用 zsh 或 bash 作为登录 Shell 和交互式 Shell 的命令行解释器:

如何查看自己使用的是哪一个shell

查看系统安装了哪些shell

运行中的Bash有两种模式: login shell 和 non-login shell

登录Shell

非登录Shell

从 macOS Catalina 版开始,您的 Mac 将使用 zsh 作为默认登录 Shell 和交互式 Shell。

1、如何更改默认 Shell

无论您的用户帐户是配置为使用 zsh(推荐)、bash 还是其他 Shell,您都可以从“用户与群组”偏好设置或命令行中更改默认 Shell。

如何在不更改默认 Shell 的情况下使用其他 Shell
如果您不希望“终端”在新的“终端”窗口和标签页中使用默认的登录 Shell,请按照以下步骤操作:
打开“终端”,然后选取“终端”>“偏好设置”。
从“通用”面板中,选择“命令(完整的路径)”。
在提供的栏位中,输入 /etc/shells 中列出的某个 Shell 路径,例如 /bin/zsh、/bin/bash、/bin/csh、/bin/dash、/bin/ksh、/bin/sh 或 /bin/tcsh。

2、在配置文件方面

bash读取的配置文件:

zsh读取的配置文件:

没有电脑不存在,则新建一个配置文件:

当从bash切换为zsh时,如果不想重新配置一遍.zshrc文件,可以__在.zshrc文件中加上 source ~/.bash_profile ,从而直接从.bash_profile文件读取配置。

使环境变量生效

查看变量是否生效

重启所有终端

macOS下打开的shell是登录式交互shell,登录Shell(不管是不是交互式的)文件加载顺序如下:
/etc/profile
~/.bash_profile (,如果安装了zsh,则.bash_profile 文件中的环境变量就无法起到作用,会加载 ~/.zprofile ,这里面可以配置python环境变量等)
~/.bash_login
~/.profile

下面是几个例子:
首先需要明确的是,读取 ~/.bash_profile ,该文件便会去读取 ~/.bashrc ,而 ~/.bashrc 又会去读取 /etc/bashrc 。所以只要读取 ~/.bash_profile ,便会同时读取 ~/.bashrc 与 /etc/bashrc 。

参考:
https://blog.csdn.net/weixin_49539546/article/details/123536394
https://blog.csdn.net/qq_43516969/article/details/107726153?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1-107726153-blog-85060825.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1-107726153-blog-85060825.pc_relevant_default&utm_relevant_index=1

Linux 环境下/etc/profile和/etc/profile.d 的区别

Linux 环境下/etc/profile和/etc/profile.d 的区别

区别:
1. 两个文件都是设置环境变量文件的,/etc/profile是永久性的环境变量,是全局变量,/etc/profile.d/设置所有     用户生效
2. /etc/profile.d/比/etc/profile好维护,不想要什么变量直接删除/etc/profile.d/下对应的shell脚本即可,不用      像/etc/profile需要改动此文件


CentOS 中每个用户都要指定各自的环境变量,这样会比较麻烦,那么如何配置一个环境变量,所有的用户都可以使用呢?

下面以jdk的安装为例

vi  /etc/profile.d/java.sh

在新的java.sh中输入以下内容:


#set java environment

JAVA_HOME=/var/mysoft/jdk1.7.0_80
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH

保存退出,然后给java.sh分配权限:chmod 755 /etc/profile.d/java.sh





以上是关于/etc/profile和/etc/bashrc、~/.bash_profile和~/.bashrc、.zshrc和.zprofile的区别的主要内容,如果未能解决你的问题,请参考以下文章

如何使/etc/profile文件修改后立即生效

如何使/etc/profile文件修改后立即生效

修改/etc/profile或者$HOME/.profile文件后如何立即生效?

source /etc/profile 怎么执行

解决`source /etc/profile`报错问题

如何让/etc/security/user做的修改马上生效