Linux 环境变量

Posted 年轻无畏

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 环境变量相关的知识,希望对你有一定的参考价值。

 

 

  ***Linux 环境变量指系统运行程序或命令的能快速找到其位置等其它功能,不用输入复杂命令。以$PATH环境变量为例子,

$PATH决定了shell指定寻找命令或程序的路径,比较执行ls命令,如果没有$PATH环境变量,执行ls命令需要绝对路径执行/bin/ls,

如果设置了$PATH环境变量,只要执行ls命令就会自动执行。

 

  ***Linux环境变量分单一用户环境变量和系统全局用户环境变量,单一用户环境变量配置文件在用户家目录.bash_profile

修改此配置文件只对当前用户生效,其它用户不会生效;系统全局用户环境变量是针对所有Linux的用户都生效,配置文件在/etc/profile

 

 

 

Linux 两种办法修改环境变量:(以$PATH环境变量为例)

 

准备测试文本:

[[email protected] ~]# echo $PATH       ##默认$PATH环境变量

/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

[[email protected] ~]# ls -l /tmp/test.sh   ##创建一个测试文本

-rwxr-xr-x 1 root root 20 Nov 28 14:00 /tmp/test.sh

[[email protected] ~]# chmod +x test.sh   ##赋予文本可执行权限

[[email protected] ~]# /tmp/test.sh       ##测试文本运行显示

You set OK!

 

 

 

一、设置临时生效的环境变量,当用户退出登录或重启系统环境变量就恢复默认值

 

[[email protected] ~]# su - oldboy

[[email protected] ~]$ echo $PATH

/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oldboy/bin

[[email protected] ~]$ export PATH=$PATH:/tmp

[[email protected] ~]$ echo $PATH

/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oldboy/bin:/tmp

[[email protected] ~]$ test.sh

You set OK!

[[email protected] ~]$ su - root

Password:

[[email protected] ~]# echo $PATH

/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

[[email protected] ~]# test.sh

-bash: test.sh: command not found

 

 

 

二、 设置永久生效的环境变量

 

1、针对单一用户设置的环境变量

[[email protected] ~]# su - oldboy

[[email protected] ~]$ echo $PATH

/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oldboy/bin

[[email protected] ~]$ vim .bash_profile

# .bash_profile

 

# Get the aliases and functions

if [ -f ~/.bashrc ]; then

       . ~/.bashrc

fi

 

# User specific environment and startup programs

 

PATH=$PATH:$HOME/bin:/tmp

 

export PATH

[[email protected] ~]$ source .bash_profile

[[email protected] ~]$ echo $PATH

/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oldboy/bin:/home/oldboy/bin:/tmp

[[email protected] ~]$ test.sh

You set OK!

 

 

2、针对系统全局用户设置的环境变量

[[email protected] ~]$ ls -l /etc/profile

-rw-r--r-- 1 root root 1820 Nov 27 16:35 /etc/profile

[[email protected] ~]# echo $PATH

/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

[[email protected] ~]# cp -a /etc/profile /root

[[email protected] ~]# echo "PATH=$PATH:/tmp" >> /etc/profile

[[email protected] ~]# grep "PATH=$PATH" /etc/profile

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/tmp

[[email protected] ~]# source /etc/profile

[[email protected] ~]# echo $PATH

/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/tmp

[[email protected] ~]# test.sh

You set OK!

 

 

 

 

 

******特殊的环境变量******

 

 

1、PATH环境变量

作用指定让命令自动搜索路径

[[email protected] ~]# echo $PATH

/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin

 

 

2、PS1命令行提示符显示

作用修改指定的用户命令行提示符显示

[[email protected] ~]echo $PS1

[[email protected]h w]

[[email protected] ~]export PS1=‘[[email protected]h w ]‘

[[email protected] ~14:47:13]echo $PS1

[[email protected]h w ]

 

提示符

功能描述

u

当前用户的账号名称 如:root

h

仅取主机的第一个名字,如上例,则为debian,.linux则被省略

w

完整的工作目录名称。家目录会以 ~代替 ,如cd /etc/sysconfig显示/etc/sysconfig

W

利用basename取得工作目录名称,所以只会列出最后一个目录 如上例则只显示sysconfig

$

提示字符,如果是root时,提示符为:# ,普通用户则为:$

显示时间为24小时格式,如:HH:MM:SS

T

显示时间为12小时格式

A

显示时间为24小时格式:HH:MM

v

显示时间为24小时格式:HH:MM

#

下达的第几个命令

d

代表日期,格式为weekday month date,例如:Wed Dec 12

H

完整的主机名称。例如:hostname是debian.linux

 

 

 

 

 

 

感谢老男孩博客提供参考  https://blog.51cto.com/oldboy

 

以上是关于Linux 环境变量的主要内容,如果未能解决你的问题,请参考以下文章

Linux设置环境变量

修改linux下的DISPLAY环境变量

linux环境变量怎么配置

避免和conda环境变量冲突---linux下环境变量的设置方法

linux设置环境变量

Linux-配置环境变量