上文思考问题中讲到其余方法查看系统变量。本文不彻底列举如下几种。java
#打印系统环境变量PATH [root@promote ~]# echo $PATH /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin [root@promote ~]# export #其余方法还有set 、declare等 [root@promote ~]# set
变量字面意思能够理解为变和量,分别表明变化和值(量)。使用赋值符号=。量推荐使用""。本文推荐=读做赋值,不要读做等于。其余编程语言有==相似于等于。shell
变量能够分为全局变量和局部变量,顾名思义,能够理解为变量所在区域做用范围不一样,界限不是很明显。编程
变量还能够分为系统环境变量和用户自定义变量。系统环境变量对全部用户生效,用户环境变量对当前用户生效。bash
系统变量用于定义Shell环境,保证SHell脚本正常输出,肯定用户名称、命令所在目录、终端类型、版本、主机名等众多信息。查看系统变量方法已经介绍过(env等命令)。服务器
#演示常见几个变量,更多信息使用env命令 [root@promote bin]# echo $HOME /root [root@promote bin]# echo $USER root [root@promote bin]# echo $UID 0 [root@promote bin]#
export 命令建立环境变量,通常临时使用或者每次使用均须要建立。关闭终端后变量消失。举例以下编程语言
[root@promote ~]# export name="tom" [root@promote ~]# echo $name tom #退出用户终端,XShell退出用户终端须要从新链接服务器 [root@promote ~]# exit 登出 Connection closing...Socket close. Connection closed by foreign host. Disconnected from remote host(CentOS7 演示环境) at 15:49:05. Type `help' to learn how to use Xshell prompt. [C:\~]$ Connecting to 192.168.216.140:22... Connection established. To escape to local shell, press 'Ctrl+Alt+]'. WARNING! The remote SSH server rejected X11 forwarding request. Last login: Sun Mar 31 14:33:59 2019 from 192.168.216.1 [root@promote ~]# #name变量为空,实际无输出,显示为空行 [root@promote ~]# echo $name [root@promote ~]# #方法2 [root@promote ~]# export name [root@promote ~]# name="tom" [root@promote ~]# echo $name tom #方法3 [root@promote ~]# name="tom";export name #方法4 [root@promote ~]# declare -x name="bill" [root@promote ~]# echo $name bill [root@promote ~]#
注意对比以上各类方法不一样点。ui
变量名称以字母和下划线开头,能够接数字或字母,不要有含特殊符号。变量内容能够以单引号或双引号包围,也能够不使用,三者具备不一样意义。code
Java 在Linux 系统中应用普遍,分为Oracle JDK和OpenJDK等,本文以yum 安装 OpenJDK 为例演示用户自定义变量建立过程。server
#查看文件名包含java软件列表 [root@promote ~]# yum -y list java* #安装OpenJDK 1.8.0 [root@promote ~]# yum -y install java-1.8.0-openjdk* #卸载OpenJDK 1.8.0,不执行该命令 [root@promote ~]# yum -y remove java-1.8.0-openjdk* #查看Java版本 [root@promote ~]# java -version openjdk version "1.8.0_201" OpenJDK Runtime Environment (build 1.8.0_201-b09) OpenJDK 64-Bit Server VM (build 25.201-b09, mixed mode) [root@promote ~]# [root@promote bin]# which java /usr/bin/java [root@promote bin]# ls -l /usr/bin/java | grep "java" lrwxrwxrwx 1 root root 22 3月 31 15:33 /usr/bin/java -> /etc/alternatives/java [root@promote]# ls -l /etc/alternatives/ | grep -F "java" [root@promote]# export JAVA_HOME=/etc/alternatives/
若是但愿环境变量永久生效,须要将环境变量写入用户或系统配置文件。不一样系统和用户配置文件分别位于rem
#用户变量,以root为例,表示root用户当前文件夹隐藏文件.bashrc [root@promote ~]# ls -l .bashrc -rw-r--r--. 1 root root 176 12月 29 2013 .bashrc #系统变量 [root@promote bin]# ls /etc/bashrc /etc/bashrc [root@promote bin]# ls /etc/profile /etc/profile [root@promote bin]#
Shell 解释器调取配置文件具备优先级,优先调取/etc/bashrc文件,而后根据需求分别读取其余配置文件。
使配置文件生效使用 source 配置文件 命令。
取消变量使用unset命令。能够取消用户和系统环境变量。
[root@promote ~]# unset JAVA_HOME [root@promote ~]# echo $USER root [root@promote ~]# unset $USER [root@promote ~]# echo $USER #name变量为空,实际无输出,显示为空行
下一讲继续介绍变量使用细节。敬请期待