`

登录linux时bash文件的调用过程

阅读更多

在登录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)/etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置。

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

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

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

(5)~/.bash_logout:当每次退出系统(退出bash shell)时,执行该文件. 另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承 /etc/profile中的变量,他们是"父子"关系。

 

~/.bash_profile 是交互式、login 方式进入 bash 运行的
~/.bashrc
是交互式 non-login 方式进入 bash 运行的
通常二者设置大致相同,所以通常前者会调用后者。

分享到:
评论

相关推荐

    linux bash配置文件

    这两个文件都是Bash启动时读取的,但它们各有侧重:`.bashrc`适用于交互式登录会话和非交互式终端,而`.bash_profile`只在用户登录时执行一次。如果`.bash_profile`存在,它会默认加载`.bashrc`,确保全局设置被应用...

    Linux-Bash-Shell快速入门

    运行脚本时,可以使用“./scriptname.sh”来执行当前目录下的脚本文件,或者使用“bash scriptname.sh”来直接调用bash解释器执行脚本。 总的来说,BASH Shell是一个功能强大的工具,它能够帮助Linux和Unix系统管理...

    bash配置文件示例

    `~/.bashrc` 是每个用户主目录下的一个文本文件,它是Bash启动时读取的配置文件之一。这个文件用于设置shell的环境变量、别名、函数和各种自定义设置。`~`代表当前用户的家目录。`bashrc`文件中的指令会在每次打开新...

    linux bash手册(英文,version 4.2)

    Bash是Linux操作系统中最常用的命令行解释器,或者称为shell,它允许用户通过文本界面与系统交互,执行各种任务。Bash是Bourne-Again SHell的缩写,是原始Bourne shell的增强版,由GNU项目开发并作为GNU/Linux系统的...

    linux_bash.txt

    - **交互式 Shell**:当 shell 启动时从终端读取命令,并且 shell 未作为其他程序的一部分被调用时,该 shell 被认为是交互式的。交互式 shell 会提示用户输入命令,并执行相应的操作。 - **登录 Shell**:当一个...

    linux-用bash编写的简单快速文件管理器

    此外,Bash脚本还可能包含错误处理和用户友好的提示信息,确保在执行过程中遇到问题时能够提供反馈。由于这是一个"快速"的文件管理器,可能还会优化性能,比如缓存最近访问的目录或避免不必要的系统调用。 在深入...

    Linux 下 调用 大华SDK

    调用大华SDK时,我们需要确保库文件(如libDahuaSDK.so)正确地被编译和链接,并在运行时能够找到。可以使用`ldd`命令检查程序的动态链接情况,`ldconfig`命令则用于更新动态链接库的查找路径。 环境搭建是关键步骤...

    Linux Shell Scripting with Bash

    ### Linux Shell Scripting with Bash #### 核心知识点解析 **1. Linux Shell Scripting 基础** - **Shell 的概念与作用** - Shell 是一个命令解释器,是用户与操作系统之间的交互界面。 - 用户通过输入命令,...

    linux脚本bash官方手册

    ### Linux脚本bash官方手册知识点概述 #### 一、引言 **Bash**(Bourne Again SHell)是Linux系统中广泛使用的命令行解释器之一,它基于早期的Bourne shell(sh),并增加了许多功能和改进。本文档主要介绍了Bash...

    Linux中profile、bashrc、bash_profile之间的区别和联系

    2..bashrc文件会在bash shell调用另一个bash shell时读取,也就是在shell中再键入bash命令启动一个新shell时就会去读该文件。这样可有效分离登录和子shell所需的环境。但一般 来说都会在.bash_profile里调用.bashrc...

    Linux下使用Java调用Hikvision设备网络SDK的使用指南.pdf

    Linux下使用Java调用Hikvision设备网络SDK使用指南涉及的知识点相当丰富,本指南主要围绕如何在Linux平台下调用海康威视提供的设备网络SDK进行功能调用,重点是利用Java语言实现摄像机的抓拍功能。以下是本指南的...

    linux下的文件过滤驱动

    本文将详细讲解Linux文件过滤驱动的原理、实现方法以及编译和加载过程。 文件过滤驱动的核心功能是在文件系统的I/O操作(如打开、读取、写入、关闭等)发生时插入一个中间层。当用户空间应用程序尝试进行文件操作时...

    linux下生成so文件并且调用so文件的方法

    在Linux环境下,生成和调用共享库(SO文件,即Shared Object)是常见的软件开发实践。SO文件允许多个程序共享同一段代码,节省内存并提高系统效率。下面将详细介绍如何生成SO文件以及如何在应用程序中调用它们。 一...

    oracle用户下.bash_profile文件修改

    该文件是bash shell的配置文件之一,在用户登录时被读取执行,用于设置用户的特定环境。修改.bash_profile文件主要是为了让oracle用户在登录后能够直接使用Oracle数据库相关的命令和环境变量。 .bash_profile文件中...

    Linux使用bash脚本进行日志分析

    但于此同时,在进行交易信息分析时,部分需要根据原始数据计算才能得到的指标无法直接获取,而且日志信息比较杂乱,不便汇总分析,因此需要使用bash脚本对日志进行交易情况分析。 内容包括(bash脚本及注释,日志...

    linux的ubuntu上如何编译C和C++代码写的动态库,以及调用执行

    在Linux的Ubuntu操作系统中,编译C和C++代码以创建动态库(即共享对象库,通常以`.so`结尾)以及调用这些库来执行程序是一个常见的需求。以下是一步步教你如何完成这个过程。 首先,我们需要准备源代码文件。在本例...

    详解Bash命令行处理 Linux命令大全(修改版)

    在Linux操作系统中,Bash(Bourne-Again SHell)是默认的命令行解释器,它是用户与系统交互的主要接口。这篇详尽的“Bash命令行处理 Linux命令大全”将带你深入理解Bash的强大功能,提升你在Linux环境中的工作效率。...

    linux-aliases为bash提供上下文动态分组的别名

    通常,安装过程包括将相关脚本和配置文件移动到用户的`~/.bashrc`或`~/.bash_aliases`文件中,并根据自己的需求进行定制。记得每次修改后要重新加载或重启shell使更改生效。 通过学习和使用`linux-aliases`,你不仅...

Global site tag (gtag.js) - Google Analytics