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!

WBOY
Release: 2022-01-06 17:27:32
forward
3669 people have browsed it

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!

Related labels:
source:juejin.im
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template