Home Operation and Maintenance Linux Operation and Maintenance Sharing the steps on how to configure environment variables under Linux (picture)

Sharing the steps on how to configure environment variables under Linux (picture)

Jul 24, 2017 pm 02:59 PM
linux variable how

Environment variables in Linux include system level and user level. System-level environment variables are system variables that must be read by every user who logs in to the system, while user-level environment variables are loaded when the user uses the system. environment variables. Therefore, the following article mainly introduces relevant information about environment variable configuration in Linux. Friends in need can refer to it.

Introduction

When we usually use Linux, we often need to configure some environment variables. At this time, we usually search online Someone just shared their experience. But the problem is that their methods are different. Some say the configuration is in /etc/profile, some say it is configured in /etc/environment, some say it is configured in ~/.bash_profile, some say it is configured in ~/.bashrc, and some say it is configured in ~/.bashrc. It is said that the configuration is in ~/.bash_login, and some people say that it is configured in ~/.profile. . . This is really fair and reasonable. . . So the question is, how does Linux read the configuration file, and what is the basis? The following article will give you a detailed introduction, let’s take a look.

Document

I always hate the behavior of saying the conclusion without saying the source. This will give people a feeling of "Why should I believe you?" "a feeling of. And in fact, the conclusions drawn from casual discussions without sources are basically based on what others say. In fact, instead of asking other people, ask the documentation. After searching for a while, I found that the relevant documents about environment variable configuration are actually in the man document of the bash command. After all, this is the shell we commonly use.

In $man bash, I found the following text:


INVOCATION
  A login shell is one whose first character of argument zero is a -, or
  one started with the --login option.
  An interactive shell is one started without non-option arguments and
  without the -c option whose standard input and error are both connected
  to terminals (as determined by isatty(3)), or one started with the -i
  option. PS1 is set and $- includes i if bash is interactive, allowing
  a shell script or a startup file to test this state.
  The following paragraphs describe how bash executes its startup files.
  If any of the files exist but cannot be read, bash reports an error.
  Tildes are expanded in filenames as described below under Tilde Expan‐
  sion in the EXPANSION section.
  When bash is invoked as an interactive login shell, or as a non-inter‐
  active shell with the --login option, it first reads and executes com‐
  mands from the file /etc/profile, if that file exists. After reading
  that file, it looks for ~/.bash_profile, ~/.bash_login, and ~/.profile,
  in that order, and reads and executes commands from the first one that
  exists and is readable. The --noprofile option may be used when the
  shell is started to inhibit this behavior.
  When a login shell exits, bash reads and executes commands from the
  file ~/.bash_logout, if it exists.
  When an interactive shell that is not a login shell is started, bash
  reads and executes commands from /etc/bash.bashrc and ~/.bashrc, if
  these files exist. This may be inhibited by using the --norc option.
  The --rcfile file option will force bash to read and execute commands
  from file instead of /etc/bash.bashrc and ~/.bashrc.
  When bash is started non-interactively, to run a shell script, for
  example, it looks for the variable BASH_ENV in the environment, expands
  its value if it appears there, and uses the expanded value as the name
  of a file to read and execute. Bash behaves as if the following com‐
  mand were executed:
    if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi
  but the value of the PATH variable is not used to search for the file‐
  name.
Copy after login

Through this text, we discovered that in fact, the so-called environment variable configuration file , are those files that are automatically loaded when the shell logs in. However, the logins he defined are divided into two types:

  • login shell login.

  • interactive shell login.

login shell login

The so-called login shell login actually refers to the login that requires entering a password. Specifically, it includes booting up, ssh login, or entering bash --login, a method of "pretending to enter a password to log in". In this login method, the system will first read the /etc/profile file, and then search for the three files ~/.bash_profile, ~/.bash_login, ~/.profile in sequence, and run only the first one of them. File exists. In particular, we should pay attention to the "logical OR" relationship between the last three files. In many cases, we will find that the ~/.profile file has been modified. Why does the configuration not take effect after logging in again? This is because one of the first two files may exist in our system, resulting in the remaining files not being read.

The following three pictures illustrate this problem very well:

interactive shell login

The so-called interactive shell login is actually relative to the login shell login. We usually right-click to open the terminal after logging in, or CTRL+ALT+T to open the terminal, which is the interactive shell login. In this login method, the system will read /etc/bash.bashrc and ~/.bashrc in sequence and execute them. Under normal circumstances, some constants and some aliases are recorded by default in the ~/.bashrc file, especially the $PS1 variable. This variable determines the format, style, and color of the bash prompt.

Note:

It should be noted that these two login methods read different configuration files and are not related to each other. Intersection, so when we need to configure environment variables, we need to configure the required variables into different files according to our login method. For example, the following classic question.

Typical problems

An example of abnormal configuration of the environment configuration file is that when I log in to the server using ssh, I find that the prompt is like this :


bash-4.3$
Copy after login

Yes, just like the bash in the third picture above, the prompt is very strange, and the color of the files and folders is also different when ls is entered. There is no distinction. This problem is obviously due to the fact that the $PS1 environment variable is not configured, causing him to use the default value, although when checking the .bashrc file, it is found that the $PS1 variable is defined. , but since ssh belongs to the login shell, the configuration file it reads when logging in is a file such as /etc/profile, and .bashrc is not read in. The cause of this problem is usually that we accidentally deleted the default configuration file in /etc/profile, so the solution is also very simple. . . Just copy some files in .bashrc to /etc/profile.

The enlightenment this question gives us is that when we configure variables for the server, try to configure them in /etc/profile or ~/.bash_profile, because logging into the server using ssh basically does not use the .bashrc file; When we configure environment variables for our computer, try to configure them in .bashrc, because then we will read this file as long as we open the terminal, so that we can apply the configuration without logging out (it will only be applied after logging out and logging in again/ Configuration files such as etc/profile).

Summarize

The above is the detailed content of Sharing the steps on how to configure environment variables under Linux (picture). For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
1 months ago By 尊渡假赌尊渡假赌尊渡假赌
Two Point Museum: All Exhibits And Where To Find Them
1 months ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

deepseek web version entrance deepseek official website entrance deepseek web version entrance deepseek official website entrance Feb 19, 2025 pm 04:54 PM

DeepSeek is a powerful intelligent search and analysis tool that provides two access methods: web version and official website. The web version is convenient and efficient, and can be used without installation; the official website provides comprehensive product information, download resources and support services. Whether individuals or corporate users, they can easily obtain and analyze massive data through DeepSeek to improve work efficiency, assist decision-making and promote innovation.

How to install deepseek How to install deepseek Feb 19, 2025 pm 05:48 PM

There are many ways to install DeepSeek, including: compile from source (for experienced developers) using precompiled packages (for Windows users) using Docker containers (for most convenient, no need to worry about compatibility) No matter which method you choose, Please read the official documents carefully and prepare them fully to avoid unnecessary trouble.

Ouyi okx installation package is directly included Ouyi okx installation package is directly included Feb 21, 2025 pm 08:00 PM

Ouyi OKX, the world's leading digital asset exchange, has now launched an official installation package to provide a safe and convenient trading experience. The OKX installation package of Ouyi does not need to be accessed through a browser. It can directly install independent applications on the device, creating a stable and efficient trading platform for users. The installation process is simple and easy to understand. Users only need to download the latest version of the installation package and follow the prompts to complete the installation step by step.

BITGet official website installation (2025 beginner's guide) BITGet official website installation (2025 beginner's guide) Feb 21, 2025 pm 08:42 PM

BITGet is a cryptocurrency exchange that provides a variety of trading services including spot trading, contract trading and derivatives. Founded in 2018, the exchange is headquartered in Singapore and is committed to providing users with a safe and reliable trading platform. BITGet offers a variety of trading pairs, including BTC/USDT, ETH/USDT and XRP/USDT. Additionally, the exchange has a reputation for security and liquidity and offers a variety of features such as premium order types, leveraged trading and 24/7 customer support.

Get the gate.io installation package for free Get the gate.io installation package for free Feb 21, 2025 pm 08:21 PM

Gate.io is a popular cryptocurrency exchange that users can use by downloading its installation package and installing it on their devices. The steps to obtain the installation package are as follows: Visit the official website of Gate.io, click "Download", select the corresponding operating system (Windows, Mac or Linux), and download the installation package to your computer. It is recommended to temporarily disable antivirus software or firewall during installation to ensure smooth installation. After completion, the user needs to create a Gate.io account to start using it.

Ouyi Exchange Download Official Portal Ouyi Exchange Download Official Portal Feb 21, 2025 pm 07:51 PM

Ouyi, also known as OKX, is a world-leading cryptocurrency trading platform. The article provides a download portal for Ouyi's official installation package, which facilitates users to install Ouyi client on different devices. This installation package supports Windows, Mac, Android and iOS systems. Users can choose the corresponding version to download according to their device type. After the installation is completed, users can register or log in to the Ouyi account, start trading cryptocurrencies and enjoy other services provided by the platform.

How to automatically set permissions of unixsocket after system restart? How to automatically set permissions of unixsocket after system restart? Mar 31, 2025 pm 11:54 PM

How to automatically set the permissions of unixsocket after the system restarts. Every time the system restarts, we need to execute the following command to modify the permissions of unixsocket: sudo...

Why does an error occur when installing an extension using PECL in a Docker environment? How to solve it? Why does an error occur when installing an extension using PECL in a Docker environment? How to solve it? Apr 01, 2025 pm 03:06 PM

Causes and solutions for errors when using PECL to install extensions in Docker environment When using Docker environment, we often encounter some headaches...

See all articles