最近在看shell的一些内容,以前总是搞不清楚一些配置文件的含义,这次上网查了下,先学习下
1./etc/profile和用户主目录下的配置文件
用户登陆到shell时,shell会执行一系列初始化动作,其中就包括读取配置文件,然后根据配置文件设置环境信息。这样用户就可以很方便地在环境中加入自定义信息,如设置环境变量。事实上,登陆shell会读两配置个文件,/etc/profile文件和用户主目录下的配置文件,这两个文件的区别是:
/etc/profile文件:为系统的每个用户设置环境信息,对所有用户的登陆shell都有效;
用户主目录下的配置文件:为当前用户设置环境信息,仅对当前用户的登陆shell有效;
2.用户主目录下有哪些配置文件
用户主目录下的配置文件有.profile, .login, .bash_profile, .bash_login。不同的登陆SHELL用不同的配置文件,具体为:
Bourne Shell (sh):使用.profile文件;
Korn Shell (ksh):兼容sh,也使用.profile文件;
C Shell (csh):使用.login文件;
Bourne Again Shell(bash):bash被设计成兼容sh,ksh,并有csh的特征, 所以会在用户的主目录下依次查找.bash_profile,.bash_login,.profile文件,并用找到的第一个作为自己的配置文件;
bash查找这些同义文件的好处是,如果曾经用过Bourne shell,你可以保留它,如果需要加入特定的bash命令,可以将它们放入.bash_profile中并在后面跟一条命令source .profile。登录时,所有特定的bash命令均被执行,然后bash将会调用.profile,执行其保留的命令。即使决定仍使用Bourne shell,也不必修改已存在的文件,类似的方法也可以用于.bash_login和C shell的.login,但由于这些shell基本语法的差异性,这不是一个好主意。
需要注意的是:经过编辑的.bash_profile文件,直到退出再次登录,该文件被重新读取后,.bash_profile中的内容才会生效。
2.Bash的其他几个配置文件
Bash的设计考虑的场景比较齐全,所以除了上面的几个配置文件外,还有如下几个配置文件:
~/.bash_logout文件:每次登录shell退出时文件.bash_logout被读取并执行,它提供了定制用户环境的功能,如删除帐号内的临时文件或记录登录系统所花的时间;
~/.bashrc文件:.bash_profile只被登录shell读取并执行,如果你在命令行上键入bash启动一个新的shell,这个新shell读取的是.bashrc而不是.bash_profile,将登录shell和运行一个子shell所需的配置文件分开可以获得非常灵的配置策略,从而满足不同的应用场景;
/etc/bashrc文件:和~/.bashrc的含义一样,只不过适用于所有的用户;
事实上,很多情况下某些配置文件是一样的,比如.bashrc和.bash_profile,这时只需要在一个配置文件中执行另外一个配置文件就可以了,例如source .bashrc,或 ..bashrc(匿名命令)。
分享到:
相关推荐
其中.bash_profile是最重要的一个配置文件,它在用户每次登录系统时被读取,里面的所有命令都会被bash执行。.profile(由Bourne Shell和Korn Shell使用)和.login(由C Shell使用)两个文件是.bash_profile的同义词,...
1)修改/etc/profile文件 推荐使用这种方法,因为所有用户的shell都有权使用这些环境变量,缺点是可能会给系统带来安全性问题。 这里是针对所有的用户的,所有的shell; [root@test ~]# vim /etc/profile …. expo
安装将此 repo 作为 .bash_profile.d 或其他... 然后将 example_bash_profile.txt 作为 .bash_profile 或 .bashrc 复制到您的主目录中。 如果您没有将 repo 克隆为 bash_profile.d,则需要更改 bash_conf_dir 变量值。
/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置.
方法一:通过修改.bashrc或.bash_profile文件来实现 通过修改home目录下的.bashrc或.bash_profile文件来实现。这两个文件选择其中一个在末尾加入如下一行,具体操作如下: [GeekDevOps@GeekDevOps /]$ cd ~ ...
很棒的自定义 Bash 配置文件我在任何系统上都需要的一堆点文件:D Some Lite Some Full ! 反正银行开!如何使用 sudo wget https://github.com/UltraWalker/AwesomeCustomBashProfile/blob/master/.bash_profile -P...
假如用户的根目录里存在这个文件, bash就在读取完/etc/profile后加载这个配置文件.如果这个文件不存在, bash就会查找另一个用户自定义文件.bash_login并且加载它. 如果.bash_login文件也不存在, 则加载.profile(...
linux在启动过程中,会先执行/etc/profile文件,然后执行用户目录下的~/.bash_...再理清下思路,/etc/profile是全局配置文件,适用于所有用户,其他用户目录的配置文件只适用于某个用户,对其他用户就不起作用了。
用户登陆Linux操作系统的时候,”/etc/profile”, “~/.bash_profile”等配置文件会被自动执行。 执行过程是这样的: 登陆Linux系统时,首先启动”/etc/profile”, 然后启动用户目录下的”~/.bash_profile”, ...
并从 /etc/profile.d 目录的配置文件中搜集shell的设置。 /etc/bashrc: 为每一个运行 bash shell 的用户执行此文件。当 bash shell 被打开时,该文件被读取。 ~/.bash_profile: 每个用户都可使用该文件输入专...
本文将介绍下载所需package包后,如何进行配置环境以及会涉及到的相关操作。 基础知识 Mac系统的环境变量,加载顺序为 a. /etc/profile b. /etc/paths c. ~/.bash_profile d. ~/.bash_login e. ~/.profile f. ~/....
/etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取. ~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该 文件仅仅执行一次!...
快速开始安装Ruby 2.x(例如 ) bundle install或bundle install --path vendor/bundle安装所有软件包将内容空间和访问令牌变量添加到您的Shell的配置文件(.bashrc或.bash_profile)中: export CONTENTFUL_M_SPACE...
这是我的Unix / Linux Shell脚本和配置文件的集合。 我在这里释放它们是为了希望能帮助他人,并希望反过来向他人学习。 安装 大多数用户只想借用他们觉得有趣或有用的代码片段。 但是,如果您想按原样使用整个环境,...
profile-bak[ you @ your_machine ~ ]$ mv -f .bashrc .bashrc-bak[ you @ your_machine ~ ]$ mv -f .vimrc .vimrc-bak[ you @ your_machine ~ ]$ mv -f .emacs .emacs-bak[ you @ your_machine ~ ]$ mv -f .git-...
:OK_hand:添加新的点文件只需cd到您的dotfiles存储库,添加新的dotfiles,然后运行symlink-setup.sh文件摘要自动配置.vimrc .inputrc .hyper.js贝壳.aliases .bash_profile .bash_prompt .bashrc .zshrc .export
.bash_profile登录时运行的Bash脚本 将默认编辑器设置为 启用CLI着色 运行.bashrc以获取别名和PATH更新 .bashrc打开新终端时运行 创建别名 添加帮助程序和polyfill命令 启用git和fab制表符完成 添加自定义的性感...
只需重新加载您的bash配置文件(重新启动cmd或运行source命令) git clone https://github.com/Lissy93/minimal-terminal-prompt.gitcd minimal-terminal-promptcat minimal-terminal-prompt.sh >> ~/.bashrcsource...
Bash.env 版本:1.0.1 Bash.env是一个级联的Bash环境系统。 它为Bash高级用户提供了Bash shell提示主题,方便的功能,别名和工具。 Z-shell很棒,但是在大多数操作系统上并不是标准的。 在您没有管理权限的环境中,...