在登录Linux时要执行文件的过程如下:

在刚登录Linux时,首先启动 /etc/profile 文件,然后再启动用户目录下的 ~/.bash_profile、 ~/.bash_login或 ~/.profile文件中的其中一个,执行的顺序为:~/.bash_profile、 ~/.bash_login、 ~/.profile。如果 ~/.bash_profile文件存在的话,一般还会执行 ~/.bashrc文件。因为在 ~/.bash_profile文件中一般会有下面的代码:

if [ -f ~/.bashrc ] ; then

. ./bashrc

fi

~/.bashrc中,一般还会有以下代码:

if [ -f /etc/bashrc ] ; then

. /bashrc

fi

所以,~/.bashrc会调用 /etc/bashrc文件。最后,在退出shell时,还会执行 ~/.bash_logout文件。

执行顺序为:/etc /profile -> (~/.bash_profile | ~/.bash_login | ~/.profile) -> ~/.bashrc -> /etc/bashrc -> ~/.bash_logout

#################################################################

1.登录shell

所谓登录shell,指的是当用户登录系统时所取的那个 shell。登录shell属于交互式shell。

登录shell将查找4个不同的启动文件来处理其中的命令。 bash shell处理文件的顺序如下:

1: /etc/profile

2:/etc/profile.d等待配置文件

3: $HOME/.bash_profile

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 ubuntu使用.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

Ubuntu Linux系统环境变量配置文件介绍在Ubuntu中有如下几个文件可以设置环境变量

/etc/profile:在登录时,操作系统定制用户环境时使用的第一个文件 ,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。

/etc /environment:在登录时操作系统使用的第二个文件, 系统在读取你自己的profile前,设置环境文件的环境变量。

~/.profile: 在登录时用到的第三个文件 是.profile文件,每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。

/etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.

~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。

linux如何启动文件夹,linux 下常见启动文件配置相关推荐

  1. java settings文件夹_windows下打开.m2文件夹,没有找到setting.xml

    Frank作家 2018-03-15 10:07 已采纳 那就自己创建一个 手动创建本地仓库的存放路径,例如:D:\Java\m2\repository: 在windows的环境变量中增加了新的用户变 ...

  2. cmd跳转文件夹 win10_win10下在当前文件夹位置打开CMD

    win10下在当前文件夹位置打开CMD win10下在当前文件夹位置打开CMD 我们想要在win10下打开命令行并且进入到当前文件夹的位置,这里提供几种方法. win+r -> cmd -> ...

  3. nodejs 遍历目录(文件夹)下的所有文件

    nodejs 遍历目录 const path = require('path') const fs = require('fs') // 服务器端的jquery,用于选择字符 eg: $('.titl ...

  4. 如何在linux系统下对文件夹名有空格的文件

    在5261Windows操作系统中可以轻易地创建\移动\删除文件4102夹名带有空格的文件夹, 而在linux则需要进行一些特殊的处理才能1653实现以上功能. (1)创建文件夹 mkdir my\ ...

  5. linux 解压zip 空格,如何在linux系统下对文件夹名有空格的文件夹进行操作,linux空格...

    如何在linux系统下对文件夹名有空格的文件夹进行操作,linux空格 在Windows操作系统中可以轻易地创建\移动\删除文件夹名带有空格的文件夹, 而在linux则需要进行一些特殊的处理才能实现以 ...

  6. linux移动新建文件夹,Linux(centos)新建,删除,移动文件夹和文件的命令

    1.新建文件夹 mkdir 文件名 新建一个名为test的文件夹在home下 view source1 mkdir /home/test 2.新建文本 在home下新建一个test.sh脚本 vi / ...

  7. centos7删除文件夹命令_centos彻底删除文件夹、文件命令

    [1]新建文件夹 格式:mkdir 文件名 view source1 mkdir /home/test     新建一个名为test的文件夹在home下 [2]新建文本 vi /home/test.s ...

  8. centos7删除文件夹命令_centos彻底删除文件夹、文件命令(centos 新建、删除、移动、复制等命令)讲解...

    centos彻底删除文件夹.文件命令(centos 新建.删除.移动.复制等命令)讲解: 1.新建文件夹 mkdir 文件名 新建一个名为test的文件夹在home下 view source1 mkd ...

  9. linux 删除tmp文件夹,Linux下tmp文件夹的文件自动删除的问题(转)

    场景: 近日发现有一台机器tmp文件夹下放置的文件无辜丢失,而且排查发现是自动丢失,并且,只是删除10天之前的文件. 本来以为是哪位写了一个自动执行脚本, find了一下10天前的文件删除了. 结果, ...

  10. linux邮箱发文件夹,Linux下使用mail命令发送邮件

    Linux服务器mail程序本身就是调用sendmail来进行邮件发送的,sendmail服务器提供对外的邮件发送功能.CentOS默认不能发送邮件,需要发送邮件的童鞋可以安装一个sendmail程序 ...

最新文章

  1. MPB:中大李文均组-河口水体和沉积物中微生物的分离培养与鉴定
  2. yum安装php5.6 nginx,CentOS 7 yum安装 Nginx1.16 + MySQL5.5 PHP5.6
  3. 一起讨论系统架构设计师考试大纲中样题参考答案
  4. ssm 项目cannot resolve package_前端工程化之创建项目
  5. 利润最高的6个产品都能创造富豪
  6. php取mysql某列的值,php – 获取MYSQL中某些列为null的表中的值
  7. fun-函数的数据类型小结
  8. wireshark分析ICMP数据包
  9. java一键生成《数据库设计文档》
  10. 【渝粤教育】广东开放大学 建设工程法规 形成性考核 (32)
  11. Java计算某年某月天数_编程计算某年某月某日是该年的第多少天。例如:2016年3月2日是2016的 第62 天。(java)...
  12. 谈谈基于模型的设计(Model-Based Design)
  13. 电偶极子的MATLAB场模拟
  14. 电气比例阀原理(液压气动控制基础系列)
  15. 大数据学习路线(完整详细版)
  16. 2019人工智能企业100强
  17. 【Java八股文之进阶篇(三)】多线程编程核心之锁框架(一)
  18. Vert.x(vertx) 事件总线(EventBus)与 远程服务调用
  19. 软件开发中的详细设计
  20. Python的解包知识

热门文章

  1. 导出excel加粗_Python办公自动化|从Word到Excel
  2. yarn 更新_YARN-HA配置
  3. 生成树协议实验报告_STP生成树协议
  4. java中exec命令,使用Java中的Runtime.exec()執行Windows命令
  5. Hadoop,Yarn,Zookeeper,kafka数据仓库集群命令集合
  6. 攻防世界(pwn)--Mary_Morton 利用格式化字符串+栈溢出破解Canary的保护机制
  7. Python中defaultdict函数的使用方法
  8. Python 中的hash
  9. python获取当前文件夹下所有文件名
  10. tensorflow tf.device() (返回指定要用于新创建的操作的默认设备的上下文管理器)