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 环境变量的主要内容,如果未能解决你的问题,请参考以下文章