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)
1 months ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
1 months ago By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Have Crossplay?
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)

Difference between centos and ubuntu Difference between centos and ubuntu Apr 14, 2025 pm 09:09 PM

The key differences between CentOS and Ubuntu are: origin (CentOS originates from Red Hat, for enterprises; Ubuntu originates from Debian, for individuals), package management (CentOS uses yum, focusing on stability; Ubuntu uses apt, for high update frequency), support cycle (CentOS provides 10 years of support, Ubuntu provides 5 years of LTS support), community support (CentOS focuses on stability, Ubuntu provides a wide range of tutorials and documents), uses (CentOS is biased towards servers, Ubuntu is suitable for servers and desktops), other differences include installation simplicity (CentOS is thin)

How to install centos How to install centos Apr 14, 2025 pm 09:03 PM

CentOS installation steps: Download the ISO image and burn bootable media; boot and select the installation source; select the language and keyboard layout; configure the network; partition the hard disk; set the system clock; create the root user; select the software package; start the installation; restart and boot from the hard disk after the installation is completed.

Centos options after stopping maintenance Centos options after stopping maintenance Apr 14, 2025 pm 08:51 PM

CentOS has been discontinued, alternatives include: 1. Rocky Linux (best compatibility); 2. AlmaLinux (compatible with CentOS); 3. Ubuntu Server (configuration required); 4. Red Hat Enterprise Linux (commercial version, paid license); 5. Oracle Linux (compatible with CentOS and RHEL). When migrating, considerations are: compatibility, availability, support, cost, and community support.

How to use docker desktop How to use docker desktop Apr 15, 2025 am 11:45 AM

How to use Docker Desktop? Docker Desktop is a tool for running Docker containers on local machines. The steps to use include: 1. Install Docker Desktop; 2. Start Docker Desktop; 3. Create Docker image (using Dockerfile); 4. Build Docker image (using docker build); 5. Run Docker container (using docker run).

Detailed explanation of docker principle Detailed explanation of docker principle Apr 14, 2025 pm 11:57 PM

Docker uses Linux kernel features to provide an efficient and isolated application running environment. Its working principle is as follows: 1. The mirror is used as a read-only template, which contains everything you need to run the application; 2. The Union File System (UnionFS) stacks multiple file systems, only storing the differences, saving space and speeding up; 3. The daemon manages the mirrors and containers, and the client uses them for interaction; 4. Namespaces and cgroups implement container isolation and resource limitations; 5. Multiple network modes support container interconnection. Only by understanding these core concepts can you better utilize Docker.

What to do after centos stops maintenance What to do after centos stops maintenance Apr 14, 2025 pm 08:48 PM

After CentOS is stopped, users can take the following measures to deal with it: Select a compatible distribution: such as AlmaLinux, Rocky Linux, and CentOS Stream. Migrate to commercial distributions: such as Red Hat Enterprise Linux, Oracle Linux. Upgrade to CentOS 9 Stream: Rolling distribution, providing the latest technology. Select other Linux distributions: such as Ubuntu, Debian. Evaluate other options such as containers, virtual machines, or cloud platforms.

What to do if the docker image fails What to do if the docker image fails Apr 15, 2025 am 11:21 AM

Troubleshooting steps for failed Docker image build: Check Dockerfile syntax and dependency version. Check if the build context contains the required source code and dependencies. View the build log for error details. Use the --target option to build a hierarchical phase to identify failure points. Make sure to use the latest version of Docker engine. Build the image with --t [image-name]:debug mode to debug the problem. Check disk space and make sure it is sufficient. Disable SELinux to prevent interference with the build process. Ask community platforms for help, provide Dockerfiles and build log descriptions for more specific suggestions.

What computer configuration is required for vscode What computer configuration is required for vscode Apr 15, 2025 pm 09:48 PM

VS Code system requirements: Operating system: Windows 10 and above, macOS 10.12 and above, Linux distribution processor: minimum 1.6 GHz, recommended 2.0 GHz and above memory: minimum 512 MB, recommended 4 GB and above storage space: minimum 250 MB, recommended 1 GB and above other requirements: stable network connection, Xorg/Wayland (Linux)

See all articles