技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> Linux --> .bash_pfofile、.bash_logout和.bashrc

.bash_pfofile、.bash_logout和.bashrc

浏览:3507次  出处信息

Linux环境下,.bash_profile、.bash_logout和.bashrc这些文件对bash有特殊含义。它们在用户登录或调用另一bash shell时给出了一种自动建立其登录账号环境的方式,并且允许退出时执行各种命令。

之前一直搞不懂 .bash_profile和.bashrc之间的关系是啥样子的。今天抽空看了一下书,记录一下。

首先,有的兄弟可能会奇怪的说,自己的主目录下面并没有这几个文件。那初始环境用的是啥子呢?如果这些文件不存在,用户登录使用默认系统文件 /etc/profile ,请看一下这个文件是否存在吧。

.bash_profile文件

.bash_profile是最重要的文件,该文件在用户每次登录到系统时被读取,其中包含的命令被bash执行。

该文件定义了用户登录账号的基本环境:包括PATH的路径及一些alias别名设置等。

如果更改了自己.bash_profile文件的内容,那么直到退出并再次登录,该文件被重新读取后,更改才会生效。如果您性子较急的话,请使用 source .bash_profile 让其更改立即生效。

我个人的.bash_profile文件配置如下:

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
#PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
export PS1
export PAGER=less
export BLOCKSIZE=K
export HISTFILE=~/.bash_history
export RSYNC_RSH=ssh
export PHPADMIN_HOME=$HOME/htdocs/phpMyAdmin
export OAUTH_HOME=$HOME/htdocs/oauth

alias ls='ls --color=auto'
alias ll='ls -lGA'
alias vdiff='vim +"DirDiff"'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
alias rm='rm -i'
alias mv='mv -i'
alias cp='cp -i'
alias sco='svn co'
alias sci='svn ci -m ""'
alias sup='svn up'
alias st="svn st"
alias kg='qpkg info'
alias aconf='pushd .; cd /usr/local/apache2/conf/include'
alias alog='pushd .; cd /usr/local/apache2/logs'
alias abin='pushd .; cd /usr/local/apache2/bin'
alias bk='popd'
alias his='history'
alias hisgrep='history | grep'

.bashrc文件

上面介绍了.bash_profile,那么.bashrc又是干啥的?

.bash_profile文件只被登录shell读取并执行,也就是说,如果您的初始shell为cshell。那么当您执行bash切换到bash环境时,并不会读取.bash_profile。此时读取的是.bashrc文件。

bash

.bash_logout文件

这个文件我更改的最少,因为几乎用不到。

.bash_logout文件是在每次登录shell退出时被读取并执行。

该文件提供了定制用户环境的功能。即如果执行诸如删除账号内临时文件或记录登录系统所花时间等命令,则可将这些命令放在.bash_logtou内。

如果该文件不存在则退出时不再执行其他命令。

总结

说白了,这三个文件可以简单归结如下:

  1. .bash_profile 类似于编程中的构造函数,当登录shell时,shell会寻找该文件做环境初始化。
  2. .bashrc 是.bash_profile的替补。
  3. .bash_logout 类似于编程中的析构函数,当登录shell退出时,shell会寻找该文件,并按其指示办事。

建议继续学习:

  1. Bash的模式和配置文件加载    (阅读:23430)
  2. Bash脚本15分钟进阶教程    (阅读:7557)
  3. bash shell里反斜杠(backslash)和字符串原文输出(无转义)    (阅读:6719)
  4. Bash 小技巧:给目录加上书签,快速切换目录    (阅读:6588)
  5. Bash如何取得当前正在执行的脚本的绝对路径?    (阅读:4895)
  6. 【总结】美化bash,python的soap client,python获取系统编码函数    (阅读:4340)
  7. .bash_profile和.bashrc的什么区别    (阅读:4246)
  8. Bash Shell 快捷键    (阅读:4019)
  9. bash下利用trap捕捉信号量    (阅读:3853)
  10. FreeBSD更改csh为bash产生错误的解决办法    (阅读:2156)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1