Home > Article > System Tutorial > The uses and differences of three types of important Linux files
In Linux systems, there are three file types that appear very frequently, namely profile, bash_profile, and bashrc files. Because of the names, many people confuse the functions of these three types of files, so today we will take a detailed inventory of the functions and differences of these three types of files.
1. profile file
1.1 The role of profile file
profile(/etc/profile) is used to set system-level environment variables and startup programs. Configurations in this file will take effect for all users.
When the user logs in, the file will be executed and the shell settings will be found from the configuration file in the /etc/profile.d directory.
1.2 Add environment variables in profile
It is generally not recommended to add environment variables to the /etc/profile file because the settings added in this file will affect all users.
When it must be added, we can add it as follows:
For example, add an environment variable with a HOST value of magedu.com:
export HOST=magedu.com
When adding, you can use the ; sign at the end of the line or not.
A variable name can correspond to multiple variable values. Multiple variable values need to be separated by:.
After adding the environment variable, you need to log in again to take effect. You can also use the source command to force it to take effect immediately:
source /etc/profile
To check whether it takes effect, you can use the echo command:
HOST
magedu.com
2. bashrc file
The bashrc file is used to configure functions or aliases. There are two levels of bashrc files:
The system-level one is located in /etc/bashrc, and the user-level one is located in ~/.bashrc. Both will take effect on all users and the current user respectively.
The bashrc file will only work on the specified shell type, and bashrc will only be called by the bash shell.
3. bash_profile file
bash_profile is only valid for a single user. The file is stored in ~/.bash_profile. This file is a user-level setting and can be understood as the profile directory of a certain user.
This file can also be used to configure environment variables and start programs, but it is only valid for a single user.
Similar to the profile file, bash_profile will also take effect when the user logs in and can also be used to set environment changes.
But unlike profile, bash_profile will only take effect for the current user.
4. Summary of differences
The difference between these three file types can be expressed in one sentence:
/etc/profile, /etc/bashrc are the system global environment variable settings; ~/.profile, ~/.bashrc are the private environment variable settings in the user's home directory.
When a shell process is obtained when logging into the system, the environment configuration file is read as follows:
4.1 First read the global environment variable configuration file /etc/profile, and then read additional setting documents based on its content, such as /etc/profile.d and /etc/inputrc;
4.2 According to different user accounts, read ~/.bash_profile in their home directory;
If the reading fails, ~/.bash_login will be read;
If it fails again, read ~/.profile (these three document settings are basically the same, only the reading has priority);
4.3 Finally, read ~/.bashrc according to the user account.
As for ~/.profile and ~/.bashrc, both have personalized customization functions, but ~/.profile can set paths, environment variables, etc. unique to this user. It can only be executed once when logging in.
~/.bashrc is also a user-specific setting document. You can set the path and command alias. It will be used every time the shell script is executed.
The above is the detailed content of The uses and differences of three types of important Linux files. For more information, please follow other related articles on the PHP Chinese website!