Linux文件 profile、bashrc 和 bash_profile 的主要区别在于执行时机和范围,profile是系统级别的文件,位于 /etc/profile目录下,用于全局配置环境变量和用户登录 Shell 时的一些操作,而bashrc和 bash_profile是用户级别的文件。
一、Linux文件profile、bashrc、bash_profile区别
Linux文件 profile、bashrc 和 bash_profile 都是与 Shell 相关的设置文件,它们的主要差别在于执行时机和范围,在每次交互登录时,bash shell都会执行 .bash_profile。如果在主目录中找不到 .bash_profile,bash将执行从 .bash_login 和 .profile 中找到的名列前茅个可读文件。但是,在每次交互式非登录shell启动时,bash都会 .bashrc。通常情况下,环境变量会被放入 .bash_profile。由于交互式登录shell是名列前茅个shell,因此环境设置所需的所有默认设置都被放入.bash_profile。因此,它们只设置一次而且在所有子shell中继承。同样地,别名和函数也会被放入 .bashrc 确保每次从现有环境中启动shell时都加载这些。然而,为了避免登录和非登录交互shell设置的差异。.bash_profile 调用 .bashrc。
具体区别如下:
- profile:是一个系统级别的文件,位于 /etc/profile 或 /etc/profile.d 目录下,用于全局配置环境变量和用户登录 Shell 时的一些操作,比如系统启动时就会执行 /etc/profile 文件。
- bashrc:是一个用户级别的文件,通常位于用户的 home 目录下,用于定义用户自己的 Bash 环境,包括 alias 别名、环境变量等。当用户打开一个新的终端窗口时,该文件将会执行。
- bash_profile:也是用户级别的文件,通常位于用户的 home 目录下,该文件是专门用来定义 Bash 的个人环境设置,当用户登录到系统的时候执行该文件。如果存在 bash_profile 文件,则不会执行 bashrc 文件。
在使用时,通常会在 profile 文件中引入 bashrc 文件(通过 source 命令),以使得用户自定义的环境变量和别名等能够被全局使用。而 bash_profile 文件则是定义个人化的 Bash 设置的优异选择。
二、Linux文件profile、bashrc、bash_profile简介
1、profile
作用:用于设置系统级的环境变量和启动程序,在这个文件下配置会对所有用户生效。
当用户登录(login)时,文件会被执行,并从/etc/profile.d目录的配置文件中查找shell设置。在profile中设置环境变量,一般不建议在/etc/profile文件中添加环境变量,因为在这个文件中添加的设置会对所有用户起作用。当必须添加时,我们可以按以下方式添加:
添加一个 HOST 值为 xx.cn的环境变量:
export HOST=xx.cn
添加时,可以在行尾使用;号,也可以不使用。一个变量名可以对应多个变量值,多个变量值需要使用:进行分隔。添加环境变量后,需要重新登录才能生效,也可以使用 source 命令强制立即生效:
source /etc/profile
查看是否生效可以使用 echo 命令:
$ echo $HOST
xx.cn
2、bashrc
作用:bashrc 文件用于配置函数或别名。
- bashrc 文件有两种级别:
- 系统级
- 用户级
系统级的位于/etc/bashrc,对所有用户生效。用户级的位于~/.bashrc,仅对当前用户生效。bashrc 文件只会对指定的 shell 类型起作用,bashrc 只会被 bash shell 调用。
3、bash_profile
bash_profile只对单一用户有效,文件存储位于~/.bash_profile,该文件是一个用户级的设置,可以理解为某一个用户的 profile 目录下。这个文件同样也可以用于配置环境变量和启动程序,但只针对单个用户有效。和 profile 文件类似,bash_profile 也会在用户登录(login)时生效,也可以用于设置环境变理。但与 profile 不同,bash_profile 只会对当前用户生效。
三、Linux系统的特点
1、完全免费
Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。
2、完全兼容POSIX 1.0标准
这使得可以在Linux下通过相应的模拟器运行常见的DOS、Windows的程序。这为用户从Windows转到Linux奠定了基础。许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。
3、多用户、多任务
Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。
4、良好的界面
Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。
5、丰富的网络功能
Unix是在互联网的基础上繁荣起来的,Linux的网络功能当然不会逊色。它的网络功能和其内核紧密相连,在这方面Linux要优于其他操作系统。在Linux中,用户可以轻松实现网页浏览、文件传输、远程登陆等网络工作。并且可以作为服务器提供WWW、FTP、E-Mail等服务。
6、可靠的安全、稳定性能
Linux采取了许多安全技术措施,其中有对读、写进行权限控制、审计跟踪、核心授权等技术,这些都为安全提供了保障。Linux由于需要应用到网络服务器,这对稳定性也有比较高的要求,实际上Linux在这方面也十分出色。
7、支持多种平台
Linux可以运行在多种硬件平台上,如具有x86、680×0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。2001年1月份发布的Linux 2.4版内核已经能够完全支持Intel 64位芯片架构。同时Linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。
延伸阅读1:什么是Linux?
Linux是一套免费使用和自由传播的类Unix操作系统,是一个多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。