zoukankan      html  css  js  c++  java
  • 登陆shell与交互式非登陆shell的区别

    登录shell
    所谓登录shell,指的是当用户登录系统时所取的那个shell,登录shell属于交互式shell。
    登录shell将查找4个不同的启动文件来处理其中的命令。 bash shell处理文件的顺序如下:
    1:/etc/profile 2:/etc/profile.d等待配置文件 3:$HOME/.bash_profile 会加载$HOME/.bashrc和/etc/bashrc 4:$HOME/.bash_login 5:$HOME/.profile
    /etc/profile是bash shell在系统上的主默认启动文件,全局系统环境配置文件,系统上每一个用户在登陆时都将执行此文件。通过设置这个文件, 超级用户可以为全系统内的所有bash用户建立默认特征。不同 Linux版本在此文件放置的命令不尽相同, 在redflag中,该文件设置了几个重要的变量, 如:PATH USER LOGNAME MAIL HOSTNAME HISTSIZE  INPUTRC,详情可以查看具体的文件。
    其余3个文件具备相同的功能——提供特定于用户的启动文件,大多数Linux版本只使用其中之一。如:RedFlag使.bash_profile  Ubantu使用.profile . 
     shell依次查找~/.bash_profile、
     ~/.bash_login、
     ~/.profile(~是用户主目录的速记符),
     并执行它找到的首个文件中的命令。
     可以将命令放置在这些文件中以覆盖掉/etc/profile文件中的默认设置。
     也就是后面的文件可以覆盖或者修改前面的设置 。
     2. 交互式非登录shell
     如果启动了一个bash shell而没有登入系统(如在CLI提示符中键入bash),则启动了一个交互式非登录shell.
     而登录shell的初始化文件(比如.bash_profile)通常会运行这个文件。这样,登录shell和非登录shell都可以使用.bashrc中的命令。
     如以X Window环境登录Linux时,在X环境所起动的终端,那些shell都是非登录shell.
     在交互式非登录shell中并不执行前面提到的初始化文件中的命令。然而,交互式非登录shell从登录shell继承了由这些初始化文件设置的 shell变量。
     (1) $HOME/.bashrc
     交互式非登录shell执行~/.bashrc文件中的命令.在每次执行shell脚本时,都会重新读取这个文件,所以是最完整的。
     但是万事都不是一样的,debain系列的是不同的,如ubuntu
     /etc/profile-->/etc/environment-->$HOME/.profile
    要配置java等变量时,都/etc/environment中
     
     
    相关命令:
    >bash #启动一个新bash
     
    >login #登录 bash 当出现"login:" 时输入用户名
     
    >logout #退出登录 bash
     
  • 相关阅读:
    IIS笔记-Application Request Route(ARR)
    UE4笔记-UStructToJsonObjectString首字母自动转换为小写的问题及解决方法
    Electron/Nodejs开发笔记-功能问题记录及指南
    Net笔记-EF/EF Core/Dapper等ORM开发记录
    C/C++和C#混合编程笔记-DLL调用与IPC等mixed问题记录
    CImg笔记
    Net/Net Core笔记 WebAPI/MVC一些bug和处理
    Net-Net Core 3.0 gRPC 开发不完全笔记
    UE4-PixelStreaming不完全开发笔记
    UE4-开发中遇到的问题和处理方法
  • 原文地址:https://www.cnblogs.com/xiaorenwu702/p/6102139.html
Copyright © 2011-2022 走看看