@ 目录 login shell non-login shell 它们的区别 Linux的环境变量可在多个文件中配置,如/etc/profile,/etc/profile.d/*.sh,~/.bashrc...bash的运行模式可分为login shell和non-login shell。 login shell 例如,我们通过终端,输入用户名、密码,登录系统之后,得到就是一个login shell。...non-login shell 而当我们执行以下命令ssh hadoop103 command,在hadoop103执行command的就是一个non-login shell。...non-login shell启动时会加载~/.bashrc。...所以,无论在login shell或non-login shell环境中,都会加载/etc/profile.d/*.sh文件,这样我们为什么不自定义一个my_env.sh文件用来存放java或者其他的环境变量
(准) 1.shell 会话的 2 种类型 shell 会话存在两种类型,分别为 login shell 会话和 non-login shell 会话。...而我们在 GUI 中启动的终端会话就是一个典型的 non-login shell 会话。 (准) (1)login shell会话 会提示用户输入用户名和密码。...在基于 Debin 的Linux版本中(比如Ubuntu),这是默认值。 (准) (2)non-login shell会话 在 GUI 中启动的终端会话。...② non-login shell继承父类进程的环境 在读取以上启动文件之外,non-login shell还会继承父类进程的环境,父类进程通常是一个 login shell。...⑤ 注意 很多 Linux 发行版本在默认情况下提供了该 PATH 设置。
登录linux的shell其实分两种,login shell和non-login shell,那么login shell 和non-login shell有什么区别呢?...用户输入用户名密码shell才启动,这是login shell,还有一种non-login shell,不需要登录就可以获取bash页面,例如x-window环境下启动终端,不需要输入用户名密码,这是non-login...然后如果/etc/profile存在的话,它会被~/.bashrc调用,这个文件也会被non-login shell读取,该文件的作用是 ①依据不同的UID给出umask值 ②依据不同的UID给出PSI...non-login shell读取配置文件流程 读取~/.bashrc文件,这个文件也会被non-login shell读取,该文件的作用是 ①依据不同的UID给出umask值 ②依据不同的UID给出PSI
Dive into the Big Three: .bashrc: Usage: Non-login shells in Bash (e.g., new terminal sessions)....Often, it sources .bashrc for consistency. .zshrc: Usage: Zsh’s non-login shell sessions....Non-login Shells: Login Shells: Initiated upon user login. Typical with SSH....Non-login Shells: Spawned within an existing session, like a new terminal tab....an existing one, knowledge of these files is foundational for any developer navigating the Unix or Linux
我们登录linux有很多种,bash来交互式执行,或者直接非交互式执行命令。试验后,可以发现,原来这几个的环境变量加载都是不同的。 相关文件: 电脑上和初始化相关的是这几个文件。...+ interactive) 执行脚本,如bash script.sh:非登录+非交互(non-login + non-interactive)) 运行头部有如#!.../executable:非登录+非交互(non-login + non-interactive)) 远程执行脚本,如 ssh user@remote script.sh:非登录+非交互(non-login...+ non-interactive)) 远程执行脚本,同时-t强制分配伪终端,如ssh user@remote -t 'echo $PWD' :非登录+交互(non-login + interactive...) 在图形化界面中打开terminal,Linux上: 非登录+交互(non-login + interactive) 10.在图形化界面中打开terminal,Mac OS X上: 登录+交互(login
一、环境配置文件概述 在Linux上开发或者部署应用时,免不了要设置配置文件,比如安装JDK,需要为java可执行文件配置环境变量。...本文全部是基于CentOS系统写的,其它Linux发行版本可能略有差异。...上图中有好几种配置文件,那么Linux下为何要搞这么多配置文件呢?搞一个不就行了么?...non-login shell 取得bash接口的方法不需要重复登录举动,举例来说,你以X Window登录Linux后,再以X的图形界面启动终端机,此时那个终端接口并没有需要再次输入账号与密码,那个...bash的环境就称为non-login shell。
Linux用户在登陆到Linux服务器时,一些登陆的提示欢迎信息,以及特定的环境配置等等都按预先设定好的配置来生效。...Linux中的这个shell环境会读取很多不同的配置文件来达成上述目的,同时还有登陆shell与非登陆shell的区分。本文对此作简要描述,供大家参考!...时需要完整的登陆流程的,就称为 login shell 比如通过ssh方式连接,或者由tty1 ~ tty6 登陆,需要输入用户的账号与密码,此时取得的 bash 就称为login shell 非登陆shell(non-login...shell): 取得 bash 接口的方法不需要重复登陆的举动 比如你以 X window 登陆 Linux 后, 再以 X 的图形化接口启动终端机,此时该终端接口无需输入账号与密码,...则为non-login shell 比如你在原本的 bash 环境下再次下达 bash 这个命令,同样的也没有输入账号密码, 那第二个 bash (子程序) 也是 non-login shell
什么是 Non-login shell? 如果进入shell的过程不需要登录,则我们称获取的shell为Non-Login shell....了解完Non-login shell和login shell,那让我们看看到底发生了什么?...~/.bash_profile ~/.bash_login ~/.profile 当使用Non-login shell进入bash时,则只是读取 ~/.bashrc 综上所示,明白了Non-login...shell以及Login shell后,让我们看看如何快速获取Login shell和Non-login shell: 1....如何检查当前Shell是Login还是Non-login shell shopt | grep login_shell 4.
Linux允许为不同的场合,分配不同的开机启动程序,这就叫做运行级别(runlevel)。也就是说,启动时根据运行级别,确定要运行哪些程序 ? Linux预置七种运行级别(0-6)。...第七步,打开 non-login shell 老实说,上一步完成以后,Linux的启动过程就算结束了,用户已经可以看到命令行提示符或者图形界面了。但是,为了内容的完整,必须再介绍一下这一步。...这个shell就叫做 non-login shell,意思是它不同于登录时出现的那个shell,不读取/etc/profile和.profile等配置文件。 ?...non-login shell的重要性,不仅在于它是用户最常接触的那个shell,还在于它会读入用户自己的bash配置文件 ~/.bashrc。...你也许会问,要是不进入 non-login shell,岂不是.bashrc就不会运行了,因此bash 也就不能完成定制了?
less 2 cat 3 head tail less less程序可以查看一个文本文件的内容: $ less .bashrc # ~/.bashrc: executed by bash(1) for non-login...下面使用cat查看文件.bashrc内容: $ cat .bashrc # ~/.bashrc: executed by bash(1) for non-login shells. # see /usr...bash-doc) # for examples # 省略 使用-n选项查看行号: $ cat -n .bashrc 1 # ~/.bashrc: executed by bash(1) for non-login...8 esac # 省略 -A选项可以在文档中将Tab用^I显示,将断行符号用$显示: $ cat -A .bashrc # ~/.bashrc: executed by bash(1) for non-login...使用head显示文档的前5行: $ head -n 5 .bashrc # ~/.bashrc: executed by bash(1) for non-login shells. # see /usr
5.2 login shell与non-login shell的区别? login shell和non-login shell是两种shell登录的方式,它们登录后加载的环境配置文件有所不同。...5.2.2 non-login shell 获取bash不需要输入密码的登录过程称为non-login shell。...如在bash中直接输入bash,从而打开一个子bash,这个过程不需要输入密码,因此称为non-login shell。...~/.bashrc:non-login shell会读取的环境配置文件 当用户以non-login方式登录后,只会加载这个文件,该文件会对一些操作加上安全询问: alias rm='rm -i' alias
Linux允许为不同的场合,分配不同的开机启动程序,这就叫做"运行级别"(runlevel)。也就是说,启动时根据"运行级别",确定要运行哪些程序。 ? Linux预置七种运行级别(0-6)。...打开non-login shell 老实说,上一步完成以后,Linux的启动过程就算结束了,用户已经可以看到命令行提示符或者图形界面了。但是,为了内容的完整,必须再介绍一下这一步。...这个shell就叫做 non-login shell,意思是它不同于登录时出现的那个shell,不读取/etc/profile和.profile等配置文件。 ?...non-login shell的重要性,不仅在于它是用户最常接触的那个shell,还在于它会读入用户自己的bash配置文件 ~/.bashrc。...你也许会问,要是不进入 non-login shell,岂不是.bashrc就不会运行了,因此bash 也就不能完成定制了?
Linux允许为不同的场合,分配不同的开机启动程序,这就叫做"运行级别"(runlevel)。也就是说,启动时根据"运行级别",确定要运行哪些程序。 Linux预置七种运行级别(0-6)。...打开non-login shell 老实说,上一步完成以后,Linux的启动过程就算结束了,用户已经可以看到命令行提示符或者图形界面了。但是,为了内容的完整,必须再介绍一下这一步。...这个shell就叫做 non-login shell,意思是它不同于登录时出现的那个shell,不读取/etc/profile和.profile等配置文件。...non-login shell的重要性,不仅在于它是用户最常接触的那个shell,还在于它会读入用户自己的bash配置文件 ~/.bashrc。...你也许会问,要是不进入 non-login shell,岂不是.bashrc就不会运行了,因此bash 也就不能完成定制了?
接触linux系统运维已经好几年了,常常被问到linux系统启动流程问题,刚好今天有空来梳理下这个过程: 一般来说,所有的操作系统的启动流程基本就是: 总的来说,linux系统启动流程可以简单总结为以下几步...打开 non-login shell 老实说,上一步完成以后,Linux的启动过程就算结束了,用户已经可以看到命令行提示符或者图形界面了。但是,为了内容的完整,必须再介绍一下这一步。...这个shell就叫做 non-login shell,意思是它不同于登录时出现的那个shell,不读取/etc/profile和.profile等配置文件。...non-login shell的重要性,不仅在于它是用户最常接触的那个shell,还在于它会读入用户自己的bash配置文件 ~/.bashrc。...你也许会问,要是不进入 non-login shell,岂不是.bashrc就不会运行了,因此bash 也就不能完成定制了?
Linux允许为不同的场合,分配不同的开机启动程序,这就叫做"运行级别"(runlevel)。也就是说,启动时根据"运行级别",确定要运行哪些程序。 ? Linux预置七种运行级别(0-6)。...第七步,打开 non-login shell 老实说,上一步完成以后,Linux的启动过程就算结束了,用户已经可以看到命令行提示符或者图形界面了。但是,为了内容的完整,必须再介绍一下这一步。...这个shell就叫做 non-login shell,意思是它不同于登录时出现的那个shell,不读取/etc/profile和.profile等配置文件。 ?...non-login shell的重要性,不仅在于它是用户最常接触的那个shell,还在于它会读入用户自己的bash配置文件 ~/.bashrc。...你也许会问,要是不进入 non-login shell,岂不是.bashrc就不会运行了,因此bash 也就不能完成定制了?
老高注解: 判断一个shell是不是登录shell,只要你是su -, bash --login这样进入的就行,如果你进入一个terminal而不需要登录,即输入用户名密码,那么他就是一个 non-login...比如你在MAC下打开终端,是不需要登录过程的所以是non-login shell。...推荐大家参考My bashrc, bash aliases, profile and other files的配置; 同时安装Linux下最好的shell :zsh + oh-my-zsh 默认shell
shell 在开始介绍 bash 的配置文件前,我们一定要先知道的就是 login shell 与 non-login shell!...,举例来说,(1)你以 X window 登入 Linux 后, 再以 X 的图形化接口启动终端机,此时那个终端接口并没有需要再次的输入账号与密码,那个 bash 的环 境就称为 non-login shell...为什么要介绍 login, non-login shell 呢?这是因为这两个取得 bash 的情况中,读取的配置文件数据 并不一样所致。...,目前我们使用的 Linux distributions 都帮我们作了最棒的使用者环境了, 所以大家可以不 用担心操作环境的问题。...记不记得我们在第四章讲过几个 Linux 热键啊?没错!
开机出现 pssswd ctrl + d 继续 解决: linux 磁盘挂载目录 /etc/fstab 挂载了不存在的磁盘,需要注释掉后重新启动 2....Linux循环登录:输入密码登录后闪一下又回登录界面 root 密码登录返回登录界面: 解决:注释掉 /root/.bash_profile 文件的所有内容 3. linux 命令 table 补全报错...#重新挂载系统为写入 具体操作: 1.重启系统进入 提示等待几秒后启动系统的这个界面,按e键修改 2.进入修改面板,有几行开头为:if else fi initrd16; 有两行开头为:linux16...和 initrd16; 我们修改linux16 行中的: 删除 rhgb quiet 和后面的内容如:UTF什么的,(也有些用户没有后面的UTF)...~/.bash_profile 是交互式、login 方式进入 bash 运行的~/.bashrc 是交互式 non-login 方式进入 bash 运行的通常二者设置 大致相同,所以通常前者会调用后者
领取专属 10元无门槛券
手把手带您无忧上云