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
     
  • 相关阅读:
    2019.6.20刷题统计
    36 线程 队列 守护线程 互斥锁 死锁 可重入锁 信号量
    35 守护进程 互斥锁 IPC 共享内存 的方式 生产者消费者模型
    34 进程 pid ppid 并发与并行,阻塞与非阻塞 join函数 process对象 孤儿进程与僵尸进程
    33 udp 域名 进程
    32 粘包 文件传输
    31 socket客户端. 服务器 异常 语法
    30 网络编程
    29 元类 异常
    26 封装 反射 常用内置函数
  • 原文地址:https://www.cnblogs.com/xiaorenwu702/p/6102139.html
Copyright © 2011-2022 走看看