Linux 环境变量_006
***Linux 环境变量指系统运行程序或命令的能快速找到其位置等其它功能,不用输入复杂命令。以$PATH环境变量为例子,
$PATH决定了shell指定寻找命令或程序的路径,比较执行ls命令,如果没有$PATH环境变量,执行ls命令需要绝对路径执行/bin/ls,
如果设置了$PATH环境变量,只要执行ls命令就会自动执行。
***Linux环境变量分单一用户环境变量和系统全局用户环境变量,单一用户环境变量配置文件在用户家目录.bash_profile,
修改此配置文件只对当前用户生效,其它用户不会生效;系统全局用户环境变量是针对所有Linux的用户都生效,配置文件在/etc/profile
Linux 两种办法修改环境变量:(以$PATH环境变量为例)
准备测试文本:
[root@oldboy ~]# echo $PATH ##默认$PATH环境变量
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@oldboy ~]# ls -l /tmp/test.sh ##创建一个测试文本
-rwxr-xr-x 1 root root 20 Nov 28 14:00 /tmp/test.sh
[root@oldboy ~]# chmod +x test.sh ##赋予文本可执行权限
[root@oldboy ~]# /tmp/test.sh ##测试文本运行显示
You set OK!
一、设置临时生效的环境变量,当用户退出登录或重启系统环境变量就恢复默认值
[root@oldboy ~]# su - oldboy
[oldboy@oldboy ~]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oldboy/bin
[oldboy@oldboy ~]$ export PATH=$PATH:/tmp
[oldboy@oldboy ~]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oldboy/bin:/tmp
[oldboy@oldboy ~]$ test.sh
You set OK!
[oldboy@oldboy ~]$ su - root
Password:
[root@oldboy ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@oldboy ~]# test.sh
-bash: test.sh: command not found
二、 设置永久生效的环境变量
1、针对单一用户设置的环境变量
[root@oldboy ~]# su - oldboy
[oldboy@oldboy ~]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oldboy/bin
[oldboy@oldboy ~]$ 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
[oldboy@oldboy ~]$ source .bash_profile
[oldboy@oldboy ~]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oldboy/bin:/home/oldboy/bin:/tmp
[oldboy@oldboy ~]$ test.sh
You set OK!
2、针对系统全局用户设置的环境变量
[oldboy@oldboy ~]$ ls -l /etc/profile
-rw-r--r-- 1 root root 1820 Nov 27 16:35 /etc/profile
[root@oldboy ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@oldboy ~]# cp -a /etc/profile /root
[root@oldboy ~]# echo "PATH=$PATH:/tmp" >> /etc/profile
[root@oldboy ~]# grep "PATH=$PATH" /etc/profile
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/tmp
[root@oldboy ~]# source /etc/profile
[root@oldboy ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/tmp
[root@oldboy ~]# test.sh
You set OK!
******特殊的环境变量******
1、PATH环境变量
作用指定让命令自动搜索路径
[root@oldboy ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin
2、PS1命令行提示符显示
作用修改指定的用户命令行提示符显示
[root@oldboy ~]echo $PS1
[\u@\h \w]
[root@oldboy ~]export PS1='[\u@\h \w\t]'
[root@oldboy ~14:47:13]echo $PS1
[\u@\h \w\t]
提示符 |
功能描述 |
\u |
当前用户的账号名称 如:root |
\h |
仅取主机的第一个名字,如上例,则为debian,.linux则被省略 |
\w |
完整的工作目录名称。家目录会以 ~代替 ,如cd /etc/sysconfig显示/etc/sysconfig |
\W |
利用basename取得工作目录名称,所以只会列出最后一个目录 如上例则只显示sysconfig |
\$ |
提示字符,如果是root时,提示符为:# ,普通用户则为:$ |
\t |
显示时间为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