`
java_2007
  • 浏览: 121427 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Linux、Unix 中Bash环境变量设置

 
阅读更多

和Bash的环境设定有关的文件有
/etc/profile (主要)
$HOME/.bash_profile (主要)
$HOME/.bash_login
$HOME/.profile
$HOME/.bash_logout (主要)
$HOME/.bashrc (主要)
/etc/bashrc

说明如下:

  • 登入(login)时
  1. 先执行 /etc/profile
  2. 接着bash会检查使用者的自家目录中,是否有 .bash_profile 或者 .bash_login或者 .profile,若有,则会执行其中一个,执行顺序为:
  3. .bash_profile 最优先
  4. .bash_login其次
  5. .profile 最后

这三个档案只有在登入时,才会被bash读取

 

  • 登出(exit/logout)时

bash会检查使用者自家目录中是否有 .bash_logout,若有,则bash会执行其中的指令

  • 登入后启动一个新的 shell :

此时我们称之为一个 subshell, 也就是说在命令列中键入 bash, 除了原先登入时的bash之外, 又另外启动了一个新的 bash shell.
bash 会检查使用者的自家目录中是否有 .bashrc,若有则予以执行

  • 测试:

在各档中加入 echo 指令, 以观察其执行顺序.

各文件用途说明

  • /etc/profile 由 root 所控制, 用来设定适合全体使用者的shell环境
  • 若使用者自己觉得 /etc/profile 的设定, 并不合意, 可以修改自家目录中的 .bash_profile
  • 既然有了 .bash_profile, 为何要有 .bash_login 及 .profile ?这是因为有些人可能是从 Bourne shell 移转过来的, 那么, 只要将 Bourne shell 主要的起动档 .profile 移到自家目录中, 放弃使用 .bash_profile 及 .bash_login 即可继续沿用以前的设定环境
  • .bash_login 存在理由或许和 c shell 有关, 但因为 bash 和 c shell 二者语法并不完全相容, 因此, 并不建议将 c shell 的启动档直接移过来使用.
  • .bashrc 则是用来设定 subshell 的环境的, 之所以要有这个 .bashrc 是为免 subshell产生时, 又重覆将 /etc/profile 执行一次. 我们发现 .bashrc 中已预先会去执行 /etc/bashrc的指令, 这表示, 或许 root 会将产生 subshell 时的环境设好了,使用者只要沿用 /etc/bashrc的内容, 应该不会有任何问题.
  • .bash_logout 是使用者登出主机之前, 会去执行的设定档, 如果使用者希望在他登出系统之后, 能帮他自动处理一些琐事, 比如: 清除临时文件, 清除屏幕等, 可以在这个档案中加以设定.
分享到:
评论

相关推荐

    如何在 Linux 上运行命令前临时清空 Bash 环境变量

     你可以在 Linux 或类 Unix 系统中使用 env 命令设置并打印环境。env 命令可以按命令行指定的变量来修改环境,之后再执行程序。  如何显示当前环境?  打开终端应用程序并输入下面的其中一个命令:  ...

    Linux中Bash环境变量的配置方法

    Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令...bash(全称 Bourne Again Shell): LinuxOS 默认的,它是 Bourne Shell 的扩展。 与 Bourne Shell 完全兼容,并且在 Bourne She

    Ruby基本的环境变量设置以及常用解释器命令介绍

    ENV 对象包含了所有当前设置的环境变量列表。 对于 Unix,使用 env 命令来查看所有环境变量的列表。 HOSTNAME=ip-72-167-112-17.ip.secureserver.net RUBYPATH=/usr/bin SHELL=/bin/bash TERM=xterm HISTSIZE=...

    学习 bash 第二版(英文版).chm

    它是流行的 Unix Bourne shell 的免费可用替代产品,供全球 Linux 用户选用。《学习 bash》正是 bash 的权威指南。内容预览: 第一张:bash 基础。 第二章:命令行编辑。 第三章:定制用户环境。 第四章:基础 shell...

    linux Shell入门:掌握Linux,OS X,Unix的Shell环境

    在Linux或类Unix系统中,每个用户和进程都运行在一个特定环境中。这个环境包含了变量、设置、别名、函数以及更多的东西。下面是对Shell环境下一些常用命令的简单介绍,包括每个命令如何使用的例子,以及在命令行下...

    UnixUtils:Windows下使用的常用Unix命令行工具

    \windows目录下,用管理员方式运行CMD,CD到C:\windows\unixutils目录,执行 busybox --install,将busybox的部分补充命令展开,在windows高级系统设置中将c:\windows\unixutils添加到系统环境变量中即可。

    用Rust编写的类似bash的Unix shell-Linux开发

    文档环境变量内置命令完成RC文件历史记录功能ru Cicada Unix Shell Cicada是用Rust编写的简单Unix shell。 文档安装cicada环境变量Cicada Builtins完成RC文件历史记录作业控制自定义提示脚本使用Docker试用cicada $ ...

    LINUX与UNIX SHELL编程指南

    014-环境和shell变量.PDF 015-引号.PDF 016-shell脚本介绍.PDF 017-条件测试.PDF 018-控制流结构.PDF 019-shell 函数.PDF 020-向脚本传递参数.PDF 021-创建屏幕输出.PDF 022-创建屏幕输入.PDF 023-调试脚本.PDF 024-...

    用Gow在Windows使用Linux命令 (Gow – The lightweight alternative to Cygwin)

    来源 : http://linux.solidot.org/article.pl?sid=10/08/08/1417245 ...用户下载一个 Win 安装程序并安装后,它会自动设置好相应的环境变量,这样无论在哪个目录下都能使用这些命令了。详细介绍见这里

    RED HAT LINUX 6大全

    第1章 Red Hat Linux和UNIX简介 1 1.1 Linux的优点 2 1.2 版权和保证 3 1.3 在哪里可以获取Red Hat Linux 3 1.4 系统需求 3 1.5 小结 4 第2章 Red Hat系统的安装 5 2.1 准备,认真准备 5 2.2 安装Red Hat Linux 6 ...

    Linux下Shell编程

    Shell是一种具备特殊功能的程序, 它是介于使用者和 UNIX/Linux 操作系统之核心程序(kernel)间的一个接口。 为了对用户屏蔽内核的复杂性,也为了保护内核以免用户误操作造成损害,在内核的周围建了一个外壳(shell)...

    ARM_Linux启动分析.pdf

    提取并分析核心启动参数(从环境变量中读取参数,设置相应标志位等待处理,(parse_options()) 控制台初始化(为输出信息而先于PCI初始化,console_init()) 剖析器数据结构初始化(prof_buffer和prof_len变量) ...

    redhat linux教材20课程学习文档

    1.4 Linux 与 Unix的比较 1.5 Linux 的发行版本和内核版本 1.6 Linux 的适用场合 1.7 Linux 的未来 第二章 Linux系统基本原理 2.1 Linux的体系结构以图来表现 2.2 基本特点 2.2.1 单核心 2.2.2 多用户的操作系统 ...

    Linux脚本

    Shell变量的命名没有标准约定,但是全大写的名称通常表示环境变量或从全局配置文件读取的变量。 通常,局部变量是全小写的,且各组成部分之间用下划线分隔。 参考:UNIX和LINUX系统管理手册(第4版)>第2章脚本和...

    direnv:整理您的.profile

    direnv-整理您的.profile direnv是您的shell的扩展。...类似于Unix的操作系统(macOS,Linux等) 受支持的外壳(bash,zsh,tcsh,fish,elvish) 基本安装 在大多数发行版中已经打包了direnv。 有关详细信

    linux下shell编程

    Shell是一种具备特殊功能的程序, 它是介于使用者和 UNIX/Linux 操作系统之核心程序(kernel)间的一个接口。 为了对用户屏蔽内核的复杂性,也为了保护内核以免用户误操作造成损害,在内核的周围建了一个外壳(shell)...

    入门学习Linux常用必会60个命令实例详解doc/txt

    从图1中可以看到,笔者系统中可以使用的Shell有bash(缺省)、csh、sh、tcsh四种。 exit 1.作用 exit命令的作用是退出系统,它的使用权限是所有用户。 2.格式 exit 3.参数 exit命令没有参数,运行后退出系统...

    plugin-hbase:使用 Graphdat 监控您的 HBase 实例

    设置JAVA_HOME环境变量通过在 Linux/UNIX 平台上运行以下命令来确保JAVA_HOME环境变量: $ echo $JAVA_HOME ` 或者在 Windows 上从 cmd shell: bash % set JAVA_HOME 2. 如果JAVA_HOME未设置,则为目标操作系统进行...

    cmd操作命令和linux命令大全收集

    CMD命令:开始->运行->键入cmd或command(在命令行里可以看到系统版本、文件系统版本) 命令大全 1. gpedit.msc-----组策略 ...set 指定环境变量名称=要指派给变量的字符 设置环境变量 set 显示当前所有的环境变量...

    2009 达内Unix学习笔记

    $ 取环境变量的值。 | 管道。把前一命令的输出作为后一命令的输入,把几个命令连接起来。 |经常跟tee连用,tee 把内容保存到文档并显示出来。 三、通用后接命令符 -a 所有(all)。 -e 所有(every),比a更...

Global site tag (gtag.js) - Google Analytics