login shell 和 non-login shell

来源:互联网 发布:ubuntu改装win10 编辑:程序博客网 时间:2024/05/18 02:50

        shell 会话分为两种类型:login shell 和 non-login shell

        所谓login shell就是指登录时需要输入用户名与密码的shell。例如,在ubuntu 12.04中,ctrl+alt+F2会启动一个 login shell。所谓non-login shell 是指登录时不需要输入用户名与密码的shell。例如,我使用的ubunutu 12.04桌面版中,ctrl+alt+T打开终端时,不需要的登录。

        login shell 登录时依次读取配置文件:/etc/.profile~/.bash_profile(或~/bash_login,或~/.profile),在这些文件中可以设置环境变量。non-login shell登录时依次读取:/etc/bash.bashrc~/.bashrc ,在这些文件中也可以设置环境变量。同时non-login shell 还会从父进程继承环境变量。

         注:linux的发行版本不同,上述启动文件的读取会有所差异。例如ubuntu 12.04中,login shell启动时也会读取~/.bashrc 


        我们可以在启动文件中设置自己需要的环境变量,一般在~/.bash_profile(或~/bash_login,或~/.profile)和~/.bashrc中设置。例如:我们为python添加模块搜索路径时,需要设置环境变量PYTHONPATH。我们可以在~/.bashrc中添加用户变量:

PYTHONPATH="/home/用户名/python"          #我想添加路径/home/用户名/python

export PYTHONPATH#利用export 将用户变量变成环境变量

0 0
原创粉丝点击