`
java-mans
  • 浏览: 11452895 次
文章分类
社区版块
存档分类
最新评论

bashrc与profile的区别(安装JDK时学习收集)

 
阅读更多

要搞清bashrc与profile的区别,首先要弄明白什么是交互式shell和非交互式shell,什么是login shell 和non-login shell。

交互式模式就是shell等待你的输入,并且执行你提交的命令。这种模式被称作交互式是因为shell与用户进行交互。这种模式也是大多数用户非常熟悉的:登录、执行一些命令、签退。当你签退后,shell也终止了。 shell也可以运行在另外一种模式:非交互式模式。在这种模式下,shell不与你进行交互,而是读取存放在文件中的命令,并且执行它们。当它读到文件的结尾,shell也就终止了。

bashrc与profile都用于保存用户的环境信息,bashrc用于交互式non-loginshell,而profile用于交互式login shell。系统中存在许多bashrc和profile文件,下面逐一介绍:

/etc/pro此文件为系统的每个用户设置环境信息,当第一个用户登录时,该文件被执行.
并从/etc/profile.d目录的配置文件中搜集shell的设置.
/etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取。有些linux版本中的/etc目录下已经没有了bashrc文件。
~/. pro每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该
文件仅仅执行一次!默认情况下,它设置一些环境变量,然后执行用户的.bashrc文件.
~/.bashrc:该文件包含专用于某个用户的bash shell的bash信息,当该用户登录时以及每次打开新的shell时,该文件被读取.

另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是"父子"关系.


.bashrc:非登陆用户使用,如ssh,xterm等,使用exit退出的

.bash_profile:供登陆用户使用(longin),使用 logout退出。

* /etc/bashrc 存有整个系统的别名和功能;
* /etc/profile 存有整个系统的环境参数和启动程式;
* $HOME/.bashrc 存有用户的的别名和功能;
* $HOME/.bash_profile 存有用户的环境参数和启动程式;
* $HOME/.bash_logout 存有退出系统时的结束方式;
* $HOME/.inputrc 存有主要绑定数值和其他位元数值;

# /etc/profile

# System wide environment and startup programs
# --整个系统环境和启动程式
#
# Functions and aliases go in /etc/bashrc
# --/etc/bashhrc中的功能和别名
#
# This file sets the following features:
# --这个文档设定下列功能:
#
# o path --路径
# o prompts --提示符
# o a few environment variables --几个环境变数
# o colour ls --ls 的颜色
# o less behaviour --设定less的功能
# o keyboard settings --键盘设置
#
# Users can override these settings and/or add others in their
# $HOME/.bash_profile
# 用户可在$HOME/.bash_profile中取消这些设定和(或)增加其他设定

_________________________________________________________________

此处为 /etc/bashrc:
_________________________________________________________________

# /etc/bashrc

# System wide functions and aliases
# 整个系统的功能和别名
#
# Environment stuff goes in /etc/profile
# /etc/profile中的环境参数

_________________________________________________________________

此处为 .bashrc:
_________________________________________________________________

# $HOME/.bashrc
# Source global definitions

# this is needed to notify the user that they are in non-login shell
# 需要以下设定,以便通知处於不登录(non-login)外围程序(shell)中的用户

_________________________________________________________________

此处为.bash_profile
_________________________________________________________________

# $HOME/.bash_profile

# User specific environment and startup programs
# 用户特定的环境参数和启动程式
#
# This file contains user-defined settings that override
# those in /etc/profile
# 这个文档中存有用户自订的设置,可取代/etc/profile 中的数值
#
# Get aliases and functions
# 设定别名和功能
#

1. Login Shell
A login shell means that you got the shell after authenticating to the system, usually by giving your user name and password.

Files read:
/etc/profile
~/.bash_profile, ~/.bash_login or ~/.profile: first existing readable file is read
~/.bash_logout upon logout.


2. Non-Login Shell
A non-login shell means that you did not have to authenticate to the system. For instance, when you open a terminal using an icon, or a menu item, that is a non-login shell.

Files read:
~/.bashrc
This file is usually referred to in ~/.bash_profile:
if [ -f ~/.bashrc ]; then . ~/.bashrc; fi

3。总结

如果你在用那个shell之前有login,那个就是login shell,比如tty, 如果没有,就是non-login!比如一般的xterm



分享到:
评论

相关推荐

    JDK 环境变量配置

    1. windows环境下的配置 JAVA_HOME=C:\Program Files\Java\jdk1.6.0_23 CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;... 如果新启动脚本环境变量没有生效,在 ~/.bashrc 文件中增加 source /etc/profile

    Linux下JAVA-HOME配置指南.pptx.pptx

    JAVA_HOME的定义 JAVA_HOME是一个环境变量,它指向的是JDK(Java Development Kit)的安装目录,对于...通常在Linux系统中,我们可以通过修改bashrc或bash_profile文件来设置JAVA_HOME,使其指向正确的JDK安装目录。

    搭建开源code review gerrit+git+repo服务器

    1.Java环境 gerrit依赖,用于安装gerrit环境。 下载:jdk-8u181-linux-x64.tar.gz ...配置:vim ~/.bashrc(针对当前用户) or vim /etc/profile(针对所有用户,推荐)

    Storm实战常见问题及解决方案

    需要配置环境变量,通常情况下出于经验,我们往往会修改/etc/profile的值进行环境变量配置,但这在安装JDK以及后面安装的storm集群、zookeeper集群以及metaq集群时会出问题,这时候我们需要在/etc/.bashrc文件中加入...

    Linux 环境变量详解及实例

    ~/.bash_profile && ~/.bashrc 用户登陆Linux操作系统的时候,”/etc/profile”, “~/.bash_profile”等配置文件会被自动执行。 执行过程是这样的: 登陆Linux系统时,首先启动”/etc/profile”, 然后启动用户...

    CentOS7搭建gerrit 代码审查服务方法

    adduser gerrit;passwd gerrit;创建gerrit专用工作目录:mkdir /home/gerrit 步骤二:配置Java环境 1) 从官网下载JDK:...3) 设置环境变量,编辑/etc/profile或~/.bashrc文件在文件末尾添加如下配置 e

    Java健身管理系统源码-open-lmis:-以前的版本-OpenLMIS(开放式物流管理信息系统)第2版核心软件,用于管理中低收入国家医疗

    Java健身管理系统源码 稳定的 发展 OpenLMIS(开放式物流管理信息系统)是一种用于管理中低收入国家医疗商品分销的共享...的人应该导出以下内容(或包含在$HOME/.bash_profile或$HOME/.profile或$HOME/.bashrc或$HOME/

    MQTT协议

    修改环境变量在 ~/.bashrc 或者 /etc/profile最后加上 当有了java命令时,java环境就搭建好了(记得把bin下所有的文件加上可执行权限) 从这个网站下载apache-apollo文件 下载链接 注意选择好自己的系统 我这里选择...

    openboard:100%FOSS键盘,基于AOSP

    APK开发Linux 安装java: sudo pacman -S jdk8-openjdk jre8-openjdk jre8-openjdk-headless 安装Android SDK: sudo pacman -S snapdsudo snap install androidsdk 在~/.bash_profile或~/.bashrc配置您的SDK位置: ...

Global site tag (gtag.js) - Google Analytics