`

Bash的环境配置文件

阅读更多

    在开始介绍bash的配置文件之前,需要了解的就是login shell与non-login shell。这两个shell区别如下:

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

 

   *  non-login shell:取得bash界面的方法不需要重复登陆的举动。如:在x-window环境下来启动终端,测试终端界面不需要再次输入帐户与密码,那个bash的环境就是non-login shell了;或在原来的bash环境下再次下达bash的这个指令,也不需要输入帐户与密码,那个第二个bash也是non-login shell

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

       ========================================

 

一、系统设置值 /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默认使用何种语系的重要配置文件。

 

 

二、个人设置值 (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@localhost ~]# 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 unset USERNAME


 

  •  ~/.bash_history

      默认情况下,历史命令就记录在这里.而这个文件记录能够记录在这里.而这个文件能够记录多少数据,则与HISTORY变量有关.每次登录bash后,bash会先读取这个文件,将

所有的历史命令读入内存,因此,当我们登录bash后,就可以查知上次使用过哪些命令.更多的历史命令,请参考以前的内容.

 

  •  ~/.bash_logout

      这个文件记录"当我注销后,系统再帮我做完什么操作后才离开".可以读取这个文件

的内容,默认情况下,注销时,bash只是清掉屏幕的消息.不过,也可以将一些备份或者其他你认为重要的工作写在这个文件中.

 

 

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

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

   [root@localhost ~]# 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的设置

 

四、 归纳

  最后我们来看一下整个的login shell的流程:

 

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

    ps:

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

   

 

  • 大小: 22 KB
  • 大小: 7.9 KB
分享到:
评论

相关推荐

    linux bash配置文件

    Bash shell配置文件对于提高工作效率和个性化工作环境至关重要。本文将详细介绍如何理解和利用Bash配置文件以及如何通过vim编辑器进行定制。 标题中的“linux bash配置文件”指的就是用户的Bash初始化脚本,通常...

    bash配置文件示例

    Bash配置文件是自定义Bash环境的关键,允许用户根据个人需求调整命令行体验。本文将深入探讨Bash的基本配置文件及其重要性。 一、`~/.bashrc` 文件详解 `~/.bashrc` 是每个用户主目录下的一个文本文件,它是Bash...

    gentoo的bash配置文件

    总结来说,Gentoo的bash配置文件提供了强大的自定义能力,通过`.bashrc`和`bash.bashrc`,我们可以调整控制台颜色,设置环境变量,定义别名,以及更多其他功能。正确理解和使用这些配置文件,将有助于提升Gentoo用户...

    switchenv:一个用于加载不同bash环境配置文件的命令行工具

    switchenv :bash的环境管理器 在分析工作中,我经常将身份验证凭据放入环境变量中。 这使我可以在不泄露任何秘密的情况下将我的代码检入Github。 因此,例如,我可能在Jupyter笔记本中有一些看起来像这样的代码 ...

    vim 环境配置文件

    本文将深入探讨“vim环境配置文件”的相关知识点,帮助你打造一个高效且个性化的开发环境。 首先,`.vimrc`文件是Vim的配置文件,它位于用户的主目录(通常是`~`),用于存储用户自定义的设置和映射。当你启动Vim时...

    oracle用户下.bash_profile文件修改

    该文件是bash shell的配置文件之一,在用户登录时被读取执行,用于设置用户的特定环境。修改.bash_profile文件主要是为了让oracle用户在登录后能够直接使用Oracle数据库相关的命令和环境变量。 .bash_profile文件中...

    bash配置文件

    在Linux系统中,bash配置文件扮演着非常重要的角色,它们负责管理用户的环境变量、别名以及其他个性化设置。通过这些配置文件,我们可以自定义自己的工作环境,使日常操作更加高效便捷。本文将详细介绍Linux系统中...

    windows下msys2或git-bash终端主题配置文件

    windows下msys2或git-bash终端主题配置文件。 1. msys2环境,请将配置文件放在它的$HOME路径下,举例:C:\msys64\home\...2. git-bash环境,请将配置文件放在windows系统的用户目录下,举例:C:\Users\username\

    mingw跨平台bash环境

    关于“mingw.zip”这个压缩文件,它可能包含了MingW的安装程序或者预配置的Bash环境。解压后,用户通常会找到一个安装向导或者可以直接运行的可执行文件,通过这些文件,用户可以在Windows上快速设置和启动MingW环境...

    环境配置 - Git-Bash

    - "win_bash"可能是一个包含与Git Bash环境配置相关的文件或脚本,例如自定义别名、初始化脚本等。 - 用户可以通过解压这个文件来查看或应用自定义的配置,以优化个人的工作环境。 总的来说,Git Bash为Windows...

    .bash_profile和.bashrc的什么区别

    ".bash_profile和.bashrc的区别" ....bash_profile和.bashrc文件都是非常重要的配置文件,它们之间存在着很大的区别,但它们都是 Bash shell 的配置文件,用于设置用户的shell信息和bash shell的配置信息。

    powerline在tmux,vim,bash中的配置文件

    这个压缩包包含了在TMUX、Vim和Bash环境中配置Powerline所需的基础文件,分别是`.bashrc`、`.tmux.conf`和`.vimrc`。 1. **Powerline**: Powerline 提供了多种风格的提示符,包括系统状态、Git分支、Python虚拟...

    (源码)基于Bash的Linux环境管理利器-快速启动系统配置文件管理器.zip

    # 基于Bash的Linux环境管理利器——快速启动系统配置文件管理器 ## 项目简介 随着服务器开发和维护工作的复杂度日益提高,系统环境管理成为了一个重要环节。我们推出此基于Bash的项目工具,方便开发者对服务器进行...

    Win10 Git Bash闪退的解决方案文件

    9. **创建新用户配置文件**:如果问题出在用户配置上,尝试创建一个新的用户账户,看看新账户下Git Bash是否还会闪退。 提供的压缩包文件“win10 Git Bash闪退问题文件”可能包含一些特定的解决步骤或脚本,根据...

    bash.acp&bash.stx

    在这个场景中,我们关注的是与Bash shell相关的配置文件——"bash.acp"和"bash.stx",这些文件是专门为EditPlus定制的,目的是增强在编辑Bash脚本时的用户体验。 `bash.acp` 文件是EditPlus的语法规则配置文件,...

    ash:恢复您的点文件,bash环境和配置

    恢复您的点文件,bash环境和配置。 建立目录结构。 分叉,克隆,将您的dotfiles复制到ash / conf / home /中,且不带前导点。 # Fork this repo # Clone git clone git@github.com:username/ash # Choose ...

    bash,shell模版 语法 设置文件

    3. **~/.bash_aliases**:虽然不是标准的Bash配置文件,但许多用户喜欢将所有的别名定义单独放在这个文件里,然后在.bashrc或.bash_profile中引入。 4. **/etc/bashrc** 和 `/etc/profile`:系统级的初始化文件,...

    Linux中profile、bashrc、bash_profile之间的区别和联系

    1.上面这三个文件是bash shell的用户环境配置文件,位于用户的主目录下。其中.bash_profile是最重要的一个配置文件,它在用户每次登录系统时被读取,里面的所有命令都会被bash执行。.profile(由Bourne Shell和Korn ...

    bashprofile与bashrc.doc

    `bashprofile`和`bashrc`是两个主要的bash shell配置文件,它们定义了用户登录和使用bash shell时的环境。接下来,我们将深入探讨这两个文件的作用、区别以及它们如何协同工作。 1. `/etc/profile` `/etc/profile`...

    bash-yaml:读取yaml文件并在bash中创建变量

    当涉及到处理结构化数据,如配置文件或元数据时,YAML(YAML Ain't Markup Language)由于其简洁和易读性,变得越来越流行。本文将深入探讨如何使用Bash与YAML文件交互,特别是如何在Bash脚本中读取YAML文件并创建...

Global site tag (gtag.js) - Google Analytics