Home Operation and Maintenance Linux Operation and Maintenance 6 ways to configure Linux environment variables, recommended to collect!

6 ways to configure Linux environment variables, recommended to collect!

Jan 06, 2022 pm 05:27 PM
linux

This article brings you six methods of configuring environment variables in Linux. I hope it will be helpful to you.

6 ways to configure Linux environment variables, recommended to collect!

Linux environment variable configuration

When customizing software installation, it is often necessary to configure environment variables , various configuration methods for environment variables are listed below.

The environment description of all the examples below is as follows:

System: Ubuntu 14.0

User name: uusama

Need to configure the MySQL environment variable path:/home/ uusama/mysql/bin

Linux reading environment variables

How to read environment variables:

  • The export command displays all environment variables defined by the current system

  • echo $PATH command outputs the value of the current PATH environment variable

This The effect of executing the two commands is as follows

uusama@ubuntu:~export
declare -x HOME="/home/uusama"
declare -x LANG="en_US.UTF-8"
declare -x LANGUAGE="en_US:"
declare -x LESSCLOSE="/usr/bin/lesspipe %s %s"
declare -x LESSOPEN="| /usr/bin/lesspipe %s"
declare -x LOGNAME="uusama"
declare -x MAIL="/var/mail/uusama"
declare -x PATH="/home/uusama/bin:/home/uusama/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
declare -x SSH_TTY="/dev/pts/0"
declare -x TERM="xterm"
declare -x USER="uusama"
uusama@ubuntu:~ echo $PATH
/home/uusama/bin:/home/uusama/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Copy after login

The PATH variable defines the search path for running the command. Different paths are separated by colon:. When using export definition, you can add double quotes or not.

Linux environment variable configuration method one: export PATH

Use the export command to directly modify the value of PATH and configure MySQL to enter the environment variable:

export PATH=/home/uusama/mysql/bin:PATH
# 或者把PATH放在前面
export PATH=PATH:/home/uusama/mysql/bin
Copy after login

Notes:

Effective time: effective immediately

Effective period: valid for the current terminal, invalid after the window is closed

Effective range: only for the current time Don’t forget to add the original configuration, that is, the $PATH part, to the user’s valid

configured environment variables to avoid overwriting the original configuration

Linux environment variable configuration method two: vim ~/.bashrc

Configure by modifying the ~/.bashrc file in the user directory:

vim ~/.bashrc
# 在最后一行加上
export PATH=$PATH:/home/uusama/mysql/bin
Copy after login

Notes:

Effective time: It will take effect when opening a new terminal with the same user, or manually source ~/.bashrc

Effectiveness period: valid forever

Validity range: valid only for the current user

If subsequent environment variable loading files overwrite the PATH definition, it may not take effect

Linux environment variable configuration method three: vim ~/.bash_profile

Similar to modifying the ~/.bashrc file, you also need to add the new path at the end of the file:

vim ~/.bash_profile
# 在最后一行加上
export PATH=$PATH:/home/uusama/mysql/bin
Copy after login

Notes:

Effective time: Use the same user to open a new It takes effect when using the terminal, or manually source /.bash_profile to take effect

Effectiveness period: permanently valid

Effectiveness scope: only valid for the current user

If there is no /.bash_profile file, Then you can edit the ~/.profile file or create a new

Linux environment variable configuration method four: vim /etc/bashrc

This method is Modifying the system configuration requires administrator rights (such as root) or write permission to the file:

# 如果/etc/bashrc文件不可编辑,需要修改为可编辑
chmod -v u+w /etc/bashrc
vim /etc/bashrc
# 在最后一行加上
export PATH=$PATH:/home/uusama/mysql/bin
Copy after login

Notes:

Effective time: Open a new terminal to take effect, or manually source /etc /bashrc takes effect

Effectiveness period: permanently valid

Validity scope: valid for all users

Linux environment variable configuration method five: vim /etc/ profile

This method modifies the system configuration and requires administrator rights or write permissions to the file. It is similar to vim /etc/bashrc:

# 如果/etc/profile文件不可编辑,需要修改为可编辑
chmod -v u+w /etc/profile
vim /etc/profile
# 在最后一行加上
export PATH=$PATH:/home/uusama/mysql/bin
Copy after login

Notes:

Effective time: Take effect when opening a new terminal, or manually source /etc/profile

Effectiveness period: Permanent

Effectiveness scope: Valid for all users

Linux environment variable configuration method six: vim /etc/environment

This method is to modify the system environment configuration file, which requires administrator rights or permission to the file. Write permission:

# 如果/etc/bashrc文件不可编辑,需要修改为可编辑
chmod -v u+w /etc/environment
vim /etc/profile
# 在最后一行加上
export PATH=$PATH:/home/uusama/mysql/bin注意事项:
Copy after login

Effective time: Take effect when opening a new terminal, or manually source /etc/environment

Effective period: Permanent

Effective scope: For all users Effective

Linux environment variable loading principle analysis

The various configuration methods of environment variables are listed above, so how does Linux load these configurations? What about? In what order are they loaded?

Specific loading order will cause environment variable definitions with the same name to be overwritten or not take effect.

Classification of environment variables

Environment variables can be simply divided into user-defined environment variables and system-level environment variables.

User-level environment variable definition files: /.bashrc, /.profile (some systems are: /.bash_profile)

System-level environment variable definition files: /etc/bashrc, /etc/ profile (some systems are: /etc/bash_profile), /etc/environment

In addition, in the user environment variables, the system will first read the /.bash_profile (or ~/.profile) file. If there is no such file Then read ~/.bash_login, and then read ~/.bashrc based on the contents of these files.

How to test the loading order of Linux environment variables

为了测试各个不同文件的环境变量加载顺序,我们在每个环境变量定义文件中的第一行都定义相同的环境变量UU_ORDER,该变量的值为本身的值连接上当前文件名称。

需要修改的文件如下:

  • /etc/environment

  • /etc/profile

  • /etc/profile.d/test.sh,新建文件,没有文件夹可略过

  • /etc/bashrc,或者/etc/bash.bashrc

  • /.bash_profile,或者/.profile

  • ~/.bashrc

在每个文件中的第一行都加上下面这句代码,并相应的把冒号后的内容修改为当前文件的绝对文件名。

export UU_ORDER="$UU_ORDER:~/.bash_profile"
Copy after login

修改完之后保存,新开一个窗口,然后echo $UU_ORDER观察变量的值:

uusama@ubuntu:~echoUU_ORDER
$UU_ORDER:/etc/environment:/etc/profile:/etc/bash.bashrc:/etc/profile.d/test.sh:~/.profile:~/.bashrc
Copy after login

可以推测出Linux加载环境变量的顺序如下:

/etc/environment

/etc/profile

/etc/bash.bashrc

/etc/profile.d/test.sh

~/.profile

~/.bashrc

Linux环境变量文件加载详解

由上面的测试可容易得出Linux加载环境变量的顺序如下,:

系统环境变量 -> 用户自定义环境变量 /etc/environment -> /etc/profile -> ~/.profile

打开/etc/profile文件你会发现,该文件的代码中会加载/etc/bash.bashrc文件,然后检查/etc/profile.d/目录下的.sh文件并加载。

# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
if [ "PS1" ]; then
  if [ "BASH" ] && [ "BASH" != "/bin/sh" ]; then
    # The file bash.bashrc already sets the default PS1.
    # PS1='\h:\w\$ '
    if [ -f /etc/bash.bashrc ]; then
      . /etc/bash.bashrc
    fi
  else
    if [ "`id -u`" -eq 0 ]; then
      PS1='# '
    else
      PS1=' '
    fi
  fi
fi
if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r i ]; then
      .i
    fi
  done
  unset i
fi
Copy after login

其次再打开~/.profile文件,会发现该文件中加载了~/.bashrc文件。

# if running bash
if [ -n "BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "HOME/.bashrc" ]; then
    . "HOME/.bashrc"
    fi
fi
# set PATH so it includes user's private bin directories
PATH="HOME/bin:HOME/.local/bin:PATH"
Copy after login

从~/.profile文件中代码不难发现,/.profile文件只在用户登录的时候读取一次,而/.bashrc会在每次运行Shell脚本的时候读取一次。

一些小技巧

可以自定义一个环境变量文件,比如在某个项目下定义uusama.profile,在这个文件中使用export定义一系列变量,然后在~/.profile文件后面加上:sourc uusama.profile,这样你每次登陆都可以在Shell脚本中使用自己定义的一系列变量。

也可以使用alias命令定义一些命令的别名,比如alias rm="rm -i"(双引号必须),并把这个代码加入到~/.profile中,这样你每次使用rm命令的时候,都相当于使用rm -i命令,非常方便。

相关推荐:《Linux视频教程

The above is the detailed content of 6 ways to configure Linux environment variables, recommended to collect!. 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

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

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)

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).

How to view the docker process How to view the docker process Apr 15, 2025 am 11:48 AM

Docker process viewing method: 1. Docker CLI command: docker ps; 2. Systemd CLI command: systemctl status docker; 3. Docker Compose CLI command: docker-compose ps; 4. Process Explorer (Windows); 5. /proc directory (Linux).

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)

vscode cannot install extension vscode cannot install extension Apr 15, 2025 pm 07:18 PM

The reasons for the installation of VS Code extensions may be: network instability, insufficient permissions, system compatibility issues, VS Code version is too old, antivirus software or firewall interference. By checking network connections, permissions, log files, updating VS Code, disabling security software, and restarting VS Code or computers, you can gradually troubleshoot and resolve issues.

Can vscode be used for mac Can vscode be used for mac Apr 15, 2025 pm 07:36 PM

VS Code is available on Mac. It has powerful extensions, Git integration, terminal and debugger, and also offers a wealth of setup options. However, for particularly large projects or highly professional development, VS Code may have performance or functional limitations.

What is vscode What is vscode for? What is vscode What is vscode for? Apr 15, 2025 pm 06:45 PM

VS Code is the full name Visual Studio Code, which is a free and open source cross-platform code editor and development environment developed by Microsoft. It supports a wide range of programming languages ​​and provides syntax highlighting, code automatic completion, code snippets and smart prompts to improve development efficiency. Through a rich extension ecosystem, users can add extensions to specific needs and languages, such as debuggers, code formatting tools, and Git integrations. VS Code also includes an intuitive debugger that helps quickly find and resolve bugs in your code.

How to back up vscode settings and extensions How to back up vscode settings and extensions Apr 15, 2025 pm 05:18 PM

How to back up VS Code configurations and extensions? Manually backup the settings file: Copy the key JSON files (settings.json, keybindings.json, extensions.json) to a safe location. Take advantage of VS Code synchronization: enable synchronization with your GitHub account to automatically back up all relevant settings and extensions. Use third-party tools: Back up configurations with reliable tools and provide richer features such as version control and incremental backups.

See all articles