精华内容
下载资源
问答
  • bashrc profile的区别

    2017-01-10 21:56:00
    bashrcprofile的区别 bashrcprofile的差异在于:1. bashrc是在系统启动后就会自动运行。2. profile是在用户登录后才会运行。3. 进行设置后,可运用source bashrc命令更新bashrc,也可运用source profile命令...

    bashrc与profile的区别

    bashrc和profile的差异在于:
    1. bashrc是在系统启动后就会自动运行。
    2. profile是在用户登录后才会运行。
    3. 进行设置后,可运用source bashrc命令更新bashrc,也可运用source profile命令更新profile。
    PS:通常我们修改bashrc,有些linux的发行版本不一定有profile这个文件
    4. /etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是"父子"关系。

    要搞清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相关的几个文件:
    ~/.bash_profile: 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。
    ~/.bash_logout: 当每次退出系统(退出bash shell)时,执行该文件。
    ~/.bash_profile 是交互式、login方式进入bash运行的,~/.bashrc是交互式non-login方式进入bash运行的,通常二者设置大致相同,所以通常前者会调用后者。

    转载于:https://www.cnblogs.com/zwgblog/p/6270975.html

    展开全文
  • 0.相关文件 /etc/bash.bashrc ...这个文件和~/.profile 是差不多的,区别只在于~/.profile 兼容性更好,而~/.bash_profile 是bash专用1 1.文件被使用的时机 在上面提到的四个文件最后加入echo $BASH_...

    0.相关文件

    /etc/bash.bashrc
    /etc/profile
    ~/.bashrc
    ~/.profile

    另外还会有人提到~/.bash_profile
    这个文件和~/.profile 是差不多的,区别只在于~/.profile 兼容性更好,而~/.bash_profile 是bash专用1


    1.文件被使用的时机

    在上面提到的四个文件最后加入echo $BASH_SOURCE 2,然后登陆系统,并且键入bash 以启用子bash

    Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-91-generic x86_64)
    
     * Documentation:  https://help.ubuntu.com
     * Management:     https://landscape.canonical.com
     * Support:        https://ubuntu.com/advantage
    
    Last login: Sat Apr 21 21:49:44 2018 from xx.xx.xx.xx
    
    /etc/bash.bashrc
    /etc/profile
    ~/.bashrc
    ~/.profile
    
    ubuntu@VM-0-5-ubuntu:~$ bash
    /etc/bash.bashrc
    ~/.bashrc
    

    2.文件间相互调用的关系:

    ~/.profile 文件调用了~/.bashrc

    # if running bash
    if [ -n "$BASH_VERSION" ]; then
        # include .bashrc if it exists
        if [ -f "$HOME/.bashrc" ]; then
            . "$HOME/.bashrc"
        fi
    fi

    /etc/.profile 文件同调用了/etc/bash.bashrc

    if [ "$PS1" ]; then
      if [ "$BASH" ] && [ "$BASH" != "/bin/sh" ]; then
        # The file bash.bashrc already sets the default PS1.
        # PS1='\h:\w\$ '
        if [ -f /etc/bash.bashrc ]; then
          . /etc/bash.bashrc
        fi
      else
        if [ "`id -u`" -eq 0 ]; then
          PS1='# '
        else
          PS1='$ '
        fi
      fi
    fi
    
    if [ -d /etc/profile.d ]; then
      for i in /etc/profile.d/*.sh; do
        if [ -r $i ]; then
          . $i
        fi
      done
      unset i
    fi

    另外可以看到/etc/profile 还遍历执行了文件夹/etc/profile.d中的脚本


    3.总结

    • 用户登陆只执行/etc/profile~/.profile ,比如ssh登陆

    • 新进的bash只执行/etc/bash.bashrc~/.bashrc ,比如键入bash

    • 系统的环境变量应该放在/etc/bash.bashrc

    • 用户专属的环境变量该放在~/.bashrc

    不过依然不明白~/.profile这个东西有什么用(非终端操作的环境?桌面系统吗?)


    4.mac的/etc/bashrc默认是不能写的

    如果要写,需要先chmod

    sudo chmod u+x /etc/bashrc
    展开全文
  • /etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.....bash_profile和.bashrc   ~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的...

    /etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置.

     

    当用root之外的其他用户登陆时,执行ls -a

    会出现以下文件:

    .bash_profile和.bashrc

     

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

    ~/.bash_logout:当每次退出系统(退出bash shell)时,执行该文件. 

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

     

    ~/.bash_profile 是交互式、login 方式进入 bash 运行的

    ~/.bashrc 是交互式 non-login 方式进入 bash 运行的

     

    通常二者设置大致相同,所以通常前者会调用后者。

     

    示例:

     su - root;

     cd ~;

     vi .bashrc  添加export JAVA_HOME=123123

     source .bashrc;

    展开全文
  • Linux的环境变量.bash_profile .bashrc profile文件

    万次阅读 多人点赞 2016-06-26 19:19:14
    读取顺序:① /etc/profile、② ~/.bash_profile、③ ~/.bashrc、④ /etc/bashrc。 ① /etc/profile:此文件为系统的每个用户设置环境信息,系统中每个用户登录时都要执行这个脚本,如果系统管理员希望某个...

    Shell变量有局部变量、环境变量之分。局部变量就是指在某个Shell中生效的变量,只在此次登录中有效。环境变量通常又称“全局变量”,虽然在Shell中变量默认就是全局的,但是为了让子Shall继承当前Shell的变量,需要使用export内建命令将其导出为环境变量。

    一、Linux的变量种类


    按变量的生存周期划分:

    • 永久的:需要修改配置文件,变量永久生效。
    • 临时的:使用export命令声明即可,变量在关闭shell时失效。

    在配置永久的环境变量时,又可以按照作用范围分为

    • 用户环境变量
    • 系统环境变量

    系统环境变量对所有系统用户都有效,用户环境变量仅仅对当前的用户有效。

    二、设置环境变量

    1. 直接运行export命令定义变量

           在shell的命令行下直接使用[export 变量名=变量值] 定义变量。该变量只在当前的shell(BASH)或其子shell(BASH)下是有效的,shell关闭了,变量也就失效了,再打开新shell时就没有这个变量,需要使用的话还需要重新定义。

    2. 修改系统环境变量

    系统环境变量一般保存在下面的文件中

    • /etc/profile

    全局(公有)配置,不管是哪个用户,登录时都会读取该文件。

    • /etc/bash.bashrc

    它也是全局(公有)的 bash执行时,不管是何种方式,都会读取此文件。

    • /etc/environment

    不要轻易修改此文件

    3. 修改用户环境变量

    用户环境变量通常被存储在下面的文件中:

    • ~/.profile

    若bash是以login方式执行时,读取~/.bash_profile,若它不存在,则读取~/.bash_login,若前两者不存在,读取~/.profile。

    • ~/.bash_profile 或者~./bash_login

    若bash是以login方式执行时,读取~/.bash_profile,若它不存,则读取~/.bash_login,若前两者不存在,读取 ~/.profile。
    只有bash是以login形式执行时,才会读取.bash_profile,Unbutu默认没有此文件,可新建。 通常该配置文件还会配置成去读取~/.bashrc。

    • ~/.bashrc

    当bash是以non-login形式执行时,读取此文件。若是以login形式执行,则不会读取此文件。

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

    4. 修改环境变量配置文件


    如想将一个路径加入到环境变量(例如$PATH)中,可以像下面这样做(修改/etc/profile):
    sudo vi /etc/profile
    以环境变量PATH为例子,环境变量的声明格式:

    PATH=$PATH:PATH_1:PATH_2:PATH_3:------:PATH_N 
    export PATH

    你可以自己加上指定的路径,中间用冒号隔开。环境变量更改后,在用户下次登陆时生效,如果想立刻生效,则可执行下面的语句:

    $source /etc/profile

    三、环境配置文件的区别

    1. profile、 bashrc、.bash_profile、 .bashrc介绍

    bash会在用户登录时,读取下列四个环境配置文件:

    全局环境变量设置文件:/etc/profile、/etc/bashrc。
    用户环境变量设置文件:~/.bash_profile、~/.bashrc。

    读取顺序:① /etc/profile、② ~/.bash_profile、③ ~/.bashrc、④ /etc/bashrc。

    ① /etc/profile:此文件为系统的每个用户设置环境信息,系统中每个用户登录时都要执行这个脚本,如果系统管理员希望某个设置对所有用户都生效,可以写在这个脚本里,该文件也会从/etc/profile.d目录中的配置文件中搜集shell的设置。
    ② ~/.bash_profile:每个用户都可使用该文件设置专用于自己的shell信息,当用户登录时,该文件仅执行一次。默认情况下,他设置一些环境变量,执行用户的.bashrc文件。
    ③ ~/.bashrc:该文件包含专用于自己的shell信息,当登录时以及每次打开新shell时,该文件被读取。
    ④ /etc/bashrc:为每一个运行bash shell的用户执行此文件,当bash shell被打开时,该文件被读取。

    环境变量配置文件读取顺序

    2 .bashrc和.bash_profile的区别


           .bash_profile会用在登陆shell, .bashrc 使用在交互式非登陆 shell 。简单说来,它们的区别主要是.bash_profile是在你每次登录的时候执行的;.bashrc是在你新开了一个命令行窗口时执行的。
           当通过控制台进行登录(输入用户名和密码):在初始化命令行提示符的时候会执行.bash_profile 来配置你的shell环境。但是如果已经登录到机器,在Gnome或者是KDE也开了一个新的终端窗口(xterm),这时,.bashrc会在窗口命令行提示符出现前被执行。当你在终端敲入/bin/bash时.bashrc也会在这个新的bash实例启动的时候执行。

    3. 建议

           大多数的时候你不想维护两个独立的配置文件,一个登录的一个非登录的shell。当你设置PATH时,你想在两个文件都适用。可以在.bash_profile中调用.bashrc,然后将PATH和其他通用的设置放到.bashrc中。
           要做到这几点,添加以下几行到.bash_profile中:

    if [ -f ~/.bashrc ]; then
        . ~/.bashrc
    fi


           现在,当你从控制台登录机器的时候,.bashrc就会被执行。

    四、常用的环境变量

    BASH Bash Shell的全路径
    CDPATH       用于快速进入某个目录。
    PATH       决定了shell将到哪些目录中寻找命令或程序
    HOME       当前用户主目录
    HISTSIZE       历史记录数
    LOGNAME       当前用户的登录名
    HOSTNAME       指主机的名称
    SHELL       当前用户Shell类型
    LANGUGE       语言相关的环境变量,多语言可以修改此环境变量
    MAIL       当前用户的邮件存放目录
    PS1       基本提示符,对于root用户是#,对于普通用户是$

    Reference

    [1] /etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc
    http://blog.chinaunix.net/uid-26435987-id-3400127.html
    [2] Linux如何修改env看到的环境变量? .bashrc和.bash_profile区别
    http://blog.csdn.net/xifeijian/article/details/13355031
    [3] linux环境变量,bashrc与bashprofile
    http://blog.sina.com.cn/s/blog_43e5ad4e0101ei43.html

    展开全文
  • 用户登录后加载profilebashrc的流程如下: 1)/etc/profile-------->/etc/profile.d/*.sh 2)$HOME/.bash_profile-------->$HOME/.bashrc---------->/etc/bashrc 说明: bash首先执行/etc/profile脚本,/etc/...
  • /etc/profile:此文件为系统的每个.../etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取. ~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时
  • (1)/etc/profile 全局(公有)配置,不管是哪个用户,登录时都会读取该文件。 (2)/ect/bashrc Ubuntu没有此文件,与之对应的是/ect/bash.bashrc 它也是全局(公有)的 bash执行时,不管是何种方式,都会...
  • 执行Makefile 的时候,make clean 把OUTDIR的路径写错了,结果悲剧了,执行了 rm -rf /* 一时间终端界面的彩色shell 为之变色,ll命令也为之失灵。...这个命令备份了bashrc 等文件,让你重振雄风!。
  • profilebashrc profile只在登陆的时候使用一次(当我们使用远程登陆上),而bashrc在每次新打开一个bash的时候都会执行(相当于path环境(登陆上了每次打开终端)) profile里面是环境,而bashrc里面是要执行...
  • bashrc&profile.zip

    2020-07-25 10:23:12
    .bashrc .profile 该文件为Linux User目录下的.bashrc和.profile文件,用于解决①ll,la等命令的alias;②自动加载.bashrc文件。
  • bashrcprofile

    2020-02-18 22:53:34
    bashrcprofile都用于保存用户的环境变量,都是交互式。但bashrc用于交互式non-loginshell,profile用于交互式login shell。 /etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被...
  • bashrcprofile

    2019-06-27 22:46:09
    bashrcprofile都用于保存用户的环境变量,都是交互式。但bashrc用于交互式non-loginshell,profile用于交互式login shell。 在下列情况下,我们可以获得一个login shell: 1.登录系统时获得的顶层shell,无论是...
  • bashrcprofile

    2019-05-17 17:01:47
    /etc/profile,/etc/bashrc 是系统全局环境变量设定 ~/.profile,~/.bashrc用户家目录下的私有环境变量设定 当登入系统时候获得一个shell进程时,其读取环境设定档有三步 首先读入的是全局环境变量设定档/etc/...
  • 理解 bashrcprofile

    2018-03-30 08:06:42
    在一般的 linux 或者 unix 系统中, 都可以通过编辑 bashrcprofile 来设置用户的工作环境,很多文章对于 profilebashrc 也都有使用, 但究竟每个文件都有什么作用和该如何使用呢?首先我们来看系统中的这些文件,...
  • linux关于bashrcprofile的区别

    千次阅读 2016-07-27 14:21:36
    bashrcprofile都用于保存用户的环境信息,bashrc用于交互式non-loginshell,而profile用于交互式login shell。系统中存在许多bashrcprofile文件。/etc/profile,/etc/bashrc 是系统全局环境变量设定~/.profile,...
  • /etc/profile /etc/bashrc #用户级环境配置文件 ~/.bashrc ~/.profile /etc/profile: 用来设置系统环境参数,比如$PATH. 这里面的环境变量是对系统内所有用户生效的。 /etc/bashrc: 这个文件设置系统bash shell...
  • bashrcprofile比较

    2015-02-09 16:36:14
    登录Linux的console操作环境后,会出现一个提示符号,在这个提示符号之后可以输入命令,Linux根据输入的命令会做回应,这一连串的动作是由一... profilebashrc都是Shell的启动设置档,角色类似Microsoft DOS/Windows

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 64,051
精华内容 25,620
关键字:

bashrcprofile