linux下/etc/profile、/etc/bashrc、~/.bashrc 和~/.bash_profile文件的区别

这个一定要理解登录式shell和非登录式shell的区别,前者是完全切换用户,后者是不完全,就算切换过来了,你pwd时家目录还是之前的家目录,所以

登录式顺序为:/etc/bashrc---/etc/profile.d/*.sh----~/.bash_profile---~/.bashrc_profile----~/.bashrc-----/etc/bashrc

  非登录式:~/.bashrc-----/etc/bashrc-/etc/profile.d/*.sh

  1. /etc/profile: 
    该文件登录操作系统时,为每个用户设置环境信息,当用户第一次登录时,该文件被执行。也就是说这个文件对当前每个shell都有效,如果此时su 其他用户没有- ,则切过去的用户无法使用你alias的别名,应为是他是登陆时就产生的,用于获取系统的环境信息。
  2. /etc/bashrc:为每一个运行bash shell的用户执行此文件,当bash shell被打开时,该文件被读取。也就是说,当用户shell执行了bash时,就运行这个文件,无论你su切换其他用户加-还是不加-alias都有效。

3、`/.bashrc该文件存储的是专属于个人bash shell的信息,当登录时以及每次打开一个新的shell时,执行这个文件。在这个文件里可以自定义用户专属的个人信息。

1、环境变量配置原因

环境变量:指定一个目录,运行软件或程序的时候,相关程序会按照目录寻找相关文件

原因:使你可以在非安装目录运行软件

2、环境变量的设置方法

(1) 控制台,仅临时有效,仅针对于当前shell

  • $PATH="$PATH:/opt/tomcat"

需要给某个用户权限只需要在其个人主目录想修改即可。修改方法类似于/etc/profile文件

3、~/.bashrc、~/.bash_profile、~/.bash.profile和/etc/bashrc和/etc/profile的区别

1 # /etc/profile
2
3 # System wide environment and startup programs, for login setup
4 # Functions and aliases go in /etc/bashrc
5
6 # It‘s NOT a good idea to change this file unless you know what you
7 # are doing. It‘s much better to create a custom.sh shell script in
8 # /etc/profile.d/ to make custom changes to your environment, as this
9 # will prevent the need for merging in future updates.

②/ etc / bashrc:
  为每一个运行bash shell的用户执行此文件,当bash shell被打开时,该文件被读取。也就是说,当用户shell执行了bash时,运   行这个文件。

1 # /etc/bashrc
2
3 # System wide functions and aliases
4 # Environment stuff goes in /etc/profile
5
6 # It‘s NOT a good idea to change this file unless you know what you
7 # are doing. It‘s much better to create a custom.sh shell script in
8 # /etc/profile.d/ to make custom changes to your environment, as this
9 # will prevent the need for merging in future updates.

③?/ .bashrc 该文件存储的是专属于个人bash shell的信息,当登录时以及每次打开一个新的shell时,执行这个文件。在这个文件里可以自定义用户专属的个人信息。

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

1、在登录时,操作系统定制用户环境时使用的第一个文件就是  /etc/profile  ,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。
2、在登录时操作系统使用的第二个文件是  /etc/environment  ,系统在读取你自己的profile  前,设置环境文件的环境变量。
3、在登录时用到的第三个文件是.profile文件,每个用户都可使用该文件输入专用于自己使用的shell信息,,该 文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。/etc/bashrc:为每一个运行bash shell的用户执行此文件。当bash shell 被打开时,该文件被读取。

cankao:https://blog.csdn.net/jirryzhang/article/details/70833544

原文地址:https://www.cnblogs.com/klb561/p/11553214.html

时间: 09-18

linux下/etc/profile、/etc/bashrc、~/.bashrc 和~/.bash_profile文件的区别的相关文章

linux 下/etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc 文件的区别

/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置. /etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取. ~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该 文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件. ~/.bashrc

linux 下/etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc 干啥的

  /etc/profile./etc/bashrc.~/.bash_profile.~/.bashrc很容易混淆,他们之间有什么区别?它们的作用到底是什么? /etc/profile: 用来设置系统环境参数,比如$PATH. 这里面的环境变量是对系统内所有用户生效的./etc/bashrc:  这个文件设置系统bash shell相关的东西,对系统内所有用户生效.只要用户运行bash命令,那么这里面的东西就在起作用.~/.bash_profile: 用来设置一些环境变量,功能和/etc/pro

嵌入式 Linux下永久生效环境变量bashrc

嵌入式 Linux下永久生效环境变量bashrc 1) .bashrc文件 在linux系统普通用户目录(cd /home/xxx)或root用户目录(cd /root)下,用指令ls -al可以看到4个隐藏文件, .bash_history   记录之前输入的命令 .bash_logout    当你退出时执行的命令 .bash_profile    当你登入shell时执行 .bashrc             当你登入shell时执行 请注意后两个的区别:'.bash_profile'只

linux下使profile和.bash_profile立即生效的方法

使profile生效的方法 1.source /etc/profile 使用.bash_profile生效的方法 1 . .bash_profile 2 source .bash_profile 3 exec bash --login linux下使profile和.bash_profile立即生效的方法,布布扣,bubuko.com

linux下lrzsz安装过程,SecureCRT上传下载文件工具

linux下lrzsz安装过程,SecureCRT上传下载文件工具 1.从下面的地址下载 lrzsz-1.12.20.tar.gz http://down1.chinaunix.net/distfiles/lrzsz-0.12.20.tar.gz 2.查看里面的INSTALL文档了解安装参数说明和细节 3.解压文件 tar zxvf lrzsz-1.12.20.tar.gz 4.进入目录 cd lrzsz-1.12.20 5../configure --prefix=/usr/local/lrz

linux下用tail命令查看动态变化的文件内容(文件尾部)

背景: 今天在静默安装oracle, 在命令行里面下达了命令 ./runInstaller -silent -responseFile /oracle/database/response/db_install.rsp 结果没有什么安装进度,只是提示可以从/u01/app/oraInventory/logs/installActions.....log里面可以查到结果--->看到这里我就想到了在linux里面是不是有一个命令可以查看一个动态变化的文件?(这个日志文件肯定在变化啊) 没错,有,就是

【转】Linux中/etc/profile,/etc/bashrc,~/.profile,~/.bashrcd的区别

//因为在原文章中博主说以下内容是网友说的,所以我就只加个转了,找不到原作者 /etc/profile,/etc/bashrc 是系统全局环境变量设定 ~/.profile,~/.bashrc用户家目录下的私有环境变量设定 当登入系统时候获得一个shell进程时,其读取环境设定档有三步 1首先读入的是全局环境变量设定档/etc/profile,然后根据其内容读取额外的设定的文档,如 /etc/profile.d和/etc/inputrc 2然后根据不同使用者帐号,去其家目录读取~/.bash_p

linux下 /etc/profile、~/.bash_profile ~/.profile的执行过程

2015-01-0810:49:29 关于登录linux时,/etc/profile.~/.bash_profile等几个文件的执行过程. 在登录Linux时要执行文件的过程如下: 在 刚登录Linux时,首先启动 /etc/profile 文件,然后再启动用户目录下的 ~/.bash_profile. ~/.bash_login或 ~/.profile文件中的其中一个,执行的顺序为:~/.bash_profile. ~/.bash_login. ~/.profile.如果 ~/.bash_pr

Linux下如何使cp命令不提示覆盖文件

在Linux下,如果希望将文件file拷贝到目录dir下,可以执行:cp file dir但如果dir下已经存在一个名为file的文件的时候,系统总是会提示是否覆盖file. 这是一个很好的功能,它能够防止我们由于疏忽对系统造成的损害,但如果不希望看到这些交互的提示信息呢?比如我们需要写一个脚本,将某些文件安装到指定的目录下,这时我们肯定不希望看到提示. 可以试一下 -f 选项,-f 一般表示强制执行(force). cp -f file dir 但好像结果并不像我们希望的那样,系统依然会有覆盖