bash的配置文件

bash的配置文件

  1. login shell与non-login shell

login shell:就是取得bash时需要完整的登陆流程,就是login shell。如:由tty1登陆,需输入用户名和密码,此时取得的bash就是login shell了。

non-login shell:当然就不需要输入用户名和密码即可打开的Shell,例如:直接命令“bash”就是打开一个新的非登录shell,在Gnome或KDE中打开一个“终端”(terminal)窗口程序也是一个非登录shell。

执行exit命令,退出一个shell(登录或非登录shell);

执行logout命令,退出登录shell(不能退出非登录shell)。

注:上面两个shell不同之处在于这两个取得的bash时,读取的配置文件不同。

  1. 系统设置值 /etc/profile文件(login shell才会读取)

这是系统整体的配置文件,该配置文件可以利用登陆者的UID来决定很多重要的变量信息,这也是每个用户登陆取得bash时一定会读取的配置文件,所以想要对所有用户设置整体环境,可对其进行修改。该文件设置的变量主要有:

  • PATH:会根据UID决定PATH变量要不要含有sbin的系统指令目录;
  • MAIL:根据帐户设置/var/spool/mail/账号名称;
  • USER:根据用户的账号设置此变量内容;
  • HOSTNAME:依据主机的hostname指令设置此变量的内容;
  • HISTSIZE:历史命令记录数,一般设置成50,比较安

/etc/profile不止完成上述内容,还会调用外部的设置资料

  • /etc/inputrc:用来设置bash的热键、[tab]是否有声音等信息;(待测试)
  • /etc/profile.d/*.sh:该目录下的文件规定了bash的操作界面、语系以及一些公共的命令别名。
  • /etc/sysconfig/i18n:这个文件是由/etc/profile.d/lang.sh调用的,是决定bash默认使用何种语系的重要配置文件。
  1. 个人设置值 (login shell才会读)

bash在读取完/etc/profile配置文件后,接下来会读取用户的个人配置文件。在login shell的bash环境中,所读取的个人设定主要有三个,依序分别是:

~/.bash_profile、 ~/.bash_login、 ~/.profile

这三个个人设置文件在个人家目录的几个隐藏文件中.(上面几个文件都是隐藏文件,需要使用ls -al才能显示).

其实bash的login shell设置只会读取上面三个文件中的一个,一般默认是以~/.bash_profile文件名存在.之所以有这么多的文件,是因为其他shell转换过来的用户的习惯,它们的读取的顺序依照上面

~/.bash_profile –> ~/.bash_login –> ~/.profile

的顺序。也就是说,如果~/.bash_profile存在,那么其他两个文件不论是否存在均不会被读取。若~/.bash_profile不存在才会读取~/.bash_login,而前两者均不存在才会读取~/.profile文件。下面介绍一下~/.bash_profile文件的内容(以root用户为例):

[root@backup ~]# cat .bash_profile

# .bash_profile

# Get the aliases and functions

if [ -f ~/.bashrc ]; then                #判断~/.bashrc是否存在,存在则执行该文件

. ~/.bashrc

fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

~/.bash_history

默认情况下,历史命令就记录在这里.而这个文件记录能够记录在这里.而这个文件能够记录多少数据,则与HISTORY变量有关.每次登录bash后,bash会先读取这个文件,将所有的历史命令读入内存,因此,当我们登录bash后,就可以查知上次使用过哪些命令.

~/.bash_logout 

这个文件记录”当我注销后,系统再帮我做完什么操作后才离开”.可以读取这个文件的内容,默认情况下,注销时,bash只是清掉屏幕的消息.不过,也可以将一些备份或者其他你认为重要的工作写在这个文件中.

  1. ~/.bashrc(non-login shell会读取)

当你取得non-login shell时,该bash仅仅会读取~/.bashrc文件,该文件内容为:

[root@backup ~]# cat .bashrc

# .bashrc

 

# User specific aliases and functions

 

alias rm=’rm -i’

alias cp=’cp -i’

alias mv=’mv -i’

 

# Source global definitions

if [ -f /etc/bashrc ]; then

. /etc/bashrc

fi

在该配置文件中看到会读取/etc/bashrc,那么该文件主要用于:

  • 依据不同的UID给出umask的值;
  • 依据不同的UID给出提示字符(就是PS1变量)
  • 调用/etc/profile.d/*.sh的设置
  1. 归纳(整个的login shell的流程

 

实线的方向是主要流程,虚线表示被呼叫的配置文件。从上面流程,我们可以知道在login shell的环境下,最终被读取的配置文件是“~./bashrc”。所以,我们可以将个人需要的设置写在该文件即可。

另外说明一下,由于/etc/profile与~/.bash_profile都是在取得login shell的时候才会读取配置文件,所以,如果你将自己的特定设置写入上述文件后,通常需要退出后再登陆配置文件才能生效。其他我们可以留用source命令或小数点(.)将配置文件的内容读入当前shell环境中。

 

 

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇