博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.bashrc与.bash_profile区别
阅读量:4223 次
发布时间:2019-05-26

本文共 1329 字,大约阅读时间需要 4 分钟。

如果您在记忆命令行上花费大量时间,则很可能需要自定义shell环境。 这可能意味着创建别名,添加新目录,或更改shell提示符的外观。

您可能遇到过一些教程,他们说可以将您的配置放入.bashrc.bash_profile或bash shell读取和执行的另一个配置文件中。

在本文中,我们将讨论Bash启动文件以及.bashrc.bash_profile文件之间的区别。

交互式登录和非登录shell

当被调用时,Bash从一组启动文件中读取并执行命令。 读取什么文件取决于shell是作为交互式登录shell还是非登录shell的调用。

shell可以是交互式的,也可以是非交互式的。

简而言之,交互式shell是读取和写入用户终端的shell程序,而非交互式shell程序是与终端无关的shell程序,例如执行脚本时。

交互式shell程序可以是登录shell程序,也可以是非登录shell程序。

当用户通过ssh或本地远程登录到终端,或者使用--login选项启动Bash时,将调用交互式登录shell。 也可以从交互式登录shell调用交互式非登录shell,例如在shell提示符下键入bash或打开新的Gnome终端选项卡时。

Bash启动文件

当作为交互式登录shell调用时,Bash查找/etc/profile文件,如果,它将运行文件中列出的命令。 然后Bash按照列出的顺序搜索~/.bash_profile~/.bash_login~/.profile文件,并从找到的第一个可读文件中执行命令。

当Bash作为交互式非登录shell程序调用时,它会从~/.bashrc中读取并执行命令(如果该文件存在并且可读)。

.bashrc和.bash_profile之间的差异

当Bash作为交互式登录shell调用时,将读取并执行.bash_profile

对于交互式非登录shell,则执行.bashrc

仅应运行一次的命令应该使用.bash_profile ,例如自定义$PATH 。

将每次启动新Shell时应该运行的命令放在.bashrc文件中。 这包括您的,自定义提示,等。

通常,~/.bash_profile包含以下类似于.bashrc文件来源的行。 这意味着每次您登录到终端时,都会读取并执行两个文件。

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

Copy

大多数Linux发行版都使用~/.profile而不是~/.bash_profile。 所有Shell程序都读取~/.profile文件,而Bash仅读取~/.bash_profile文件。

如果您的系统上没有任何启动文件,则可以该文件。

结论

.bash_profile.bashrc是包含shell命令的文件,这些命令在调用Bash时运行。 .bash_profile在交互式登录shell上读取并执行,.bashrc在非登录shell上执行。

查看Bash手册,以获取有关的更多信息。

如果您有任何问题或反馈,请随时发表评论。

如果你喜欢我们的内容可以选择在下方二维码中捐赠我们,或者点击广告予以支持,感谢你的支持

转载地址:http://dwemi.baihongyu.com/

你可能感兴趣的文章
图解YU12、I420、YV12、NV12、NV21、YUV420P、YUV420SP、YUV422P、YUV444P的区别
查看>>
QNX简介
查看>>
MQTT协议基本介绍
查看>>
进程和线程是操作系统基本概念,了解一下
查看>>
SSL与TLS的区别以及介绍
查看>>
HTTPS、TLS、SSL、HTTP区别和关系
查看>>
Kafka 入门三问
查看>>
c/c++ 内存泄漏检测,开源工具valgrind使用整理
查看>>
RTSP协议、RTMP协议、HTTP协议的区别
查看>>
h264 sps pps详解
查看>>
AAC的ADTS头信息介绍
查看>>
MediaMuxer和MediaExtractor类(音频和视频数据的混合和分离)
查看>>
Linux下zip加密压缩
查看>>
Java中的ReentrantLock和synchronized两种锁定机制的对比
查看>>
视频会议及流媒体十大开源项目
查看>>
adb 用法大全
查看>>
经常用到的Android UI、开源项目及库
查看>>
第一次有人把5G讲的这么简单明了!
查看>>
RTSP/RTMP/HTTP/ QUIC/UDT/SRT
查看>>
Android Rxjava:这是一篇 清晰 & 易懂的Rxjava 入门教程
查看>>