linux: bash登录的显示信息设置以及环境配置文件.

本文详细介绍了在Linux系统中,用户如何通过tty1-tty6登录并展示定制化的提示信息,以及不同登录方式(loginshell与no-loginshell)下环境变量的配置差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 1)我们以deepin为例子,除了可以通过图形界面tty7登录以外, tty1-tty6也是可以登录的是,只不过是没有界面的都是通过命令行来进行操作(如果你当前位于图形模式下,可以通过 ctrl + alt + f1 - f6来切换)。

     当我们位于命令行模式的时候,该模式下会显示一些基本的信息在前几行。这个显示的内容我们是可以定制的.

定制该信息的文件位于:

 /etc/issue
 /etc/issue.net
 /etc/motd

我们可以看到这3个文件下的内容还是不同的! 实际上这3个文件的具体功能也是不同.

/etc/issue: 该文件主要是用户通过 tty1-tty6登录linux的时候显示在前面的提示信息.

/etc/issue.net: 是用户通过talent远程连接到linux的时候会显示的提示信息.

注意到了吧 /etc/issue 和 /etc/issue.net都是在登录前显示的提示信息.

/etc/motd: 则是在用户登录成功后显示的信息.

 

2) 当我们登录进去linux后,我们会立即获得很多的可用的环境变量,那么这个环境变量是从哪来的呢? 我们能否配置它呢?

 echo ${PATH}
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/sbin:/usr/sbin

这是笔者电脑下面的PATH这个变量里面的值,可以看到是用 : 来作为分割几个路径.

   1,为什么会这样呢?

    这是因为系统有一些环境配置方案存在,在bsh启动的时候会直接读取这些配置文件,以配置好bash的环境.

这些配置又分为全局配置,以及个人配置.

    全局配置: 顾名思义所有使用这台linux的用户都能使用配置.

    个人配置: 仅当前登入的用户才能使用的配置,如果切换了用户那么该配置就不存在了.

2,在正式进入正题之前我们首先明确2个概念: login shellno-login shell:

   login shell: 在非界面登录的模式下,比如通过tty1-tty6来进行登录,这个时候需要输入完整的用户账号和密码,此时取得的bash就叫做 login shell.

  on-login shell: 在通过图形界面登录后,我们打开终端此时取得的bash就叫做 no-login shell.

3, 为什么要明确 login shell 和 no-login shell呢?

   这是由于这两种情况取得bash的时候,所读取的配置文件不同.

4, login shell取得bash所需要读取的配置文件及其路径

    /etc/profile: 该配置文件可以根据登陆者UID来决定很多重要的数据, 这也是每个使用者登入bash时候一定会读取配置文件.

        该配置文件主要包含了下面的内容:

                      PATH: 该变量根据当前UID,来决定PATH要不要包含sbin的系统指令目录.

                     MAIL: 依据UID,设置当前登入的账户 mailbox 到 /var/spool/mail/账户名.

                     USER: 根据账户设置该变量内容.

                     HOSTNAME: 依据hostname指令决定该变量的内容.

                    HISTSIZE: 历史命令记录笔数.

                   umask: root下默认为022, 一般用户为022.             

除了上面这些 /etc/profile 文件本身,还会读取其他配置文件:

           /etc/profile.d/*.sh :  /etc/profile.d这个目录下的 .sh 文件主要是用来规范bash显示命令的颜色, 以及ls/vi/which等等命令 alias.

           /etc/locale.conf: 这个文件呢是由 /etc/lang.sh来调用的,用来设置当前环境的字符集(character set).             /usr/share/bash-completion/completions/*:  我们使用tab按键补全的时候其实就是该目录下的文件提供的.

        上面读取/加载的配置文件都是全局的面向所有的用户的,由于linux是多用户的,因此每个用户也都有自己的喜好.

     ~/.bash_profile 或者 ~/.bash_login 或者 ~/.profile:  这三个文件只会读取一个假设第一个读取到了就不会再读取第二个,第三个了.

 

5, 说完了login shell, no-login shell呢? 会读取哪些配置呢?

     ~/.bashrc: 该文件在我们通过 no-login shell取得bash的时候便会获取.

         该文件一般用于:

                            (1), 依据不同的UID,给umask设置不同的值.

                            (2),依据不同的UID,加载不同的PS1变量的值.

转载于:https://my.oschina.net/SHIHUAMarryMe/blog/1543876

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值