Mac和Ubuntu系统下.bash_profile和.bashrc文件
Mac和Ubuntu系统下.bash_profile和.bashrc文件
本文部分参考Josh Staiger文章。
- Mac和Ubuntu系统下bash_profile和bashrc文件
- 前言
- login shell 和 non-login shell
- login shell
- non-login shell
- 为什么需要两种不同文件
- Mac例外
- 建议
前言
我平时使用Ubuntu或者Mac。当设置shell的PATH
或者其他环境变量时,你可以放在.bashrc
和.bash_profile
其中的任何一个文件里,如果文件不存在你还可以创建一个,但是两个文件的启动有何区别?
以Ubuntu为例.bash_profile
在login shell 启动时执行而.bashrc
在non-login shell 启动时执行。(Mac 情况不同,后文提到)
login shell 和 non-login shell
login shell
用户登录(输入用户名密码)时打开的shell,就叫做login shell。用户登录主要分三种:
命令行登录
依次寻找下面三个文件。
~/.bash_profile
~/.bash_login
~/.profile
需要注意的是,这三个文件只要有一个存在,就不再读入后面的文件了。
ssh登录
和命令行登录情况相同
图形界面登录
只加载 /etc/profile
和 ~/.profile
。也就是说,~/.bash_profile
不管有没有,都不会运行。
non-login shell
用户进入操作系统以后,常常会再手动开启一个shell。这个shell就叫做 non-login shell,意思是它不同于登录时出现的那个shell,不读取/etc/profile
和.profile
等配置文件。
non-login shell会读入用户自己的bash配置文件 ~/.bashrc
。大多数时候,我们对于bash的定制,都是写在这个文件里面的。
为什么需要两种不同文件
比如你想在登录时打印一些电脑诊断信息(内存使用,在线用户等等)。你只想在每次登录的时候看到,所以将相关代码写入.bash_profile
如果你写入.bashrc
则你每次打开terminal都会打印这些信息。
Mac例外
Mac的Terminal打开的每个新shell默认为login shell只加载.bash_profile
。而且,不管是ssh登录,还是在图形界面里启动shell窗口,都是如此。
建议
将下面的脚本加入.bash_profile
if [ -f ~/.bashrc ]; then. ~/.bashrc
fi
注:第二行开头的那个点,是source命令的简写形式,表示运行某个文件,写成source ~/.bashrc
也是可以的。[ -f ~/.bashrc ]
中括号内侧有空格。
这样执行.bash_profile
时也会执行.bashrc
。
Mac和Ubuntu系统下.bash_profile和.bashrc文件相关推荐
- u盘在ubuntu系统下突然变成只读文件
今天在ubuntu跑完代码以后,使用u盘拷贝数据,之后直接拔了u盘,打算转到另一台windows电脑上.此时发现windows下面无法打开拷贝的文件,于是再次将u盘插入ubuntu,发现此时在ubun ...
- Ubuntu系统下如何创建.txt文件
问题 在Ubutnu系统下,右键桌面会发现并没有创建文本文件的选项. 解决 首先进入模板 会发现里面是空的 然后右键在终端打开 输入如下指令 sudo gedit 文本文件 保存即可 这个时候在模板文 ...
- 树莓派ubuntu系统下修改config.txt文件 树莓派config.txt文件修改记录
原文:https://www.raspberrypi.org/documentation/configuration/config-txt.md 译文:http://my.oschina.net/fu ...
- Ubuntu系统下通过命令查找文件或文件夹
https://blog.csdn.net/qq_17498785/article/details/82992481
- 双系统:在ubuntu系统下想要移动文件到其他位置/计算机或者系统根目录下提示权限不够的解决方式
打开一个终端输入: sudo nautilus 然后会跳出一个带有权限的文件管理器: 然后再打开一个正常的文件夹进行拖拽就好了
- Ubuntu系统下MRIcroN、FSL6.0.5、Freesurfer7.1.1、ANTs、MRtrix3、AFNI的安装详解——核磁共振数据处理必备
Ubuntu系统下MRIcroN.FSL6.0.5.Freesurfer7.1.1.ANTs.MRtrix3.AFNI的安装详解 一.安装MRIcroN 二. FSL6.0.5完整安装与FSLeyes ...
- Ubuntu系统下有效的安装gcc/icc
Ubuntu下安装ICC编译器的方法说明 前提:Ubuntu系统的安装 自行百度 CSDN 1:在Ubuntu系统下安装gcc编译和make 输入 sudo apt-get updat sudo ap ...
- windows下wsl2中的ubuntu和ubuntu系统下docker使用gpu的异同
windows下wsl2中的ubuntu和ubuntu系统下docker使用gpu的异同 介绍ubuntu系统下配置docker下GPU使用环境的文章很多,本文算是一个比较性梳理. 主要比较一下wsl ...
- ④ESP8266 开发学习笔记_By_GYC 【Ubuntu系统下ESP8266 开发环境搭建】
目录 ④ESP8266 开发学习笔记_By_GYC [Ubuntu系统下ESP8266 开发环境搭建] 一.安装前准备 1.乐鑫官方的ESP-IDF 编程指南 2.ESP-IDF风格的ESP8266 ...
最新文章
- NEUQ 字符串 第九届“图灵杯”NEUQ-ACM程序设计竞赛个人赛
- java 同步锁_java线程中的同步锁和互斥锁有什么区别?
- 一个在Windows下的ping脚本(使用WMI 的Win32_PingStatus 实现)
- Jmeter中JDBC链接配置 JDBC Connection Configuration
- 使用vagrant 安装kubernetes 无法下载box源解决办法
- python爬虫本科容易找工作吗_python爬虫基础学完了,我真的能找到一份工作吗?...
- 日志分析工具 Log Parser
- 匹配特殊字符的正则表达式
- 【Demo 0003】Java基础-数组
- Navicat for PostgreSQL 怎么维护数据库和表
- cms不支持mysql_CMS不要让MySQL为你流泪
- POJ1753-Flip Game
- 设计模式详解(链接)
- 【股价预测】基于matlab最小二乘法股票价格预测【含Matlab源码 348期】
- 大数据与云计算的关系
- 如何成为优秀的网络工程师,怎么做到含金量高?
- Java总结及面试题
- 怎样用计算机解决问题,如何用计算机解决问题.ppt
- Hibernate逍遥游记-第13章 映射实体关联关系-005双向多对多(使用组件类集合\composite-element\)...
- 1133 - 数组基础-统计频次
热门文章
- MissingServletRequestPartException: Required request part ‘file‘ is not pres
- 高频前端面试题汇总之计算机网络篇
- 深度学习中的各种tricks_1.0_label_smoothing
- 电网能量交换的关键设备——630kW储能变流器介绍
- 储能变电站互动系统通讯协议 (征求意见稿)
- GP2Y0A21YK0F距离传感器输出特性分析及其使用(IIC总线与PCF8591AD转换)+Proteus仿真(附源码)
- 洛谷P1914 小书童——凯撒密码经典解法
- 信息学奥赛一本通 细胞
- 为什么要用企业邮箱?企业邮箱能给公司带来哪些好处?
- 迅为I.MX6ULL开发板镜像烧写