/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_80PATH=$JAVA_HOME/bin:$PATHexport JAVA_HOME PATH保存退出,然后给java.sh分配权限:chmod 755 /etc/profile.d/java.sh
以上是关于/etc/profile和/etc/bashrc、~/.bash_profile和~/.bashrc、.zshrc和.zprofile的区别的主要内容,如果未能解决你的问题,请参考以下文章