Linux是一个多用户的操作系统。多用户意味着每个用户登录系统后,都有自己专用的运行环境。而这个环境是由一组变量所定义,这组变量被称为环境变量。用户可以对自己的环境变量进行修改以达到对环境的要求。

设置环境变量的方法

  • 对所有用户生效的永久性变量

这类变量对系统内的所有用户都生效,所有用户都可以使用这类变量。作用范围是整个系统。

此文件只在root下才能修改。

# vi /etc/profile
export CLASSPATH=./JAVA_HOME/lib:$JAVA_HOME/jre/lib

添加完成后新的环境变量不会立即生效,立即生效需要运行 source /etc/profile ,否则只能在下次重进此用户时才能生效。

  • 对单一用户生效的永久性变量

在用户目录下的.bash_profile 文件中添加变量,该文件是隐藏文件,可使用ll -a查看:

$ whoami
rethink$ vi /home/rethink/.bash_profile
export CLASSPATH=./JAVA_HOME/lib:$JAVA_HOME/jre/lib $ source /home/rethink/.bash_profile

在上图中用红框框住了两个文件:.bashrc 和.bash_profile ,原则上讲设置此类环境变量时在这两个文件任意一个里面添加都是可以的,这两个文件的区别为:.bash_profile是交互式login方式进入bash shell运行,.bashrc是交互式non-login方式进入bash shell运行。

可以理解为.bash_profile文件只会在用户登录的时候读取一次,而.bashrc在每次打开终端进行一次新的会话时都会读取。

临时有效的环境变量(只针对当前shell有效)

此类环境变量只对当前的shell有效。当我们退出登录或者关闭终端再重新打开时,这个环境变量就会消失。是临时的。

设置方法:命令行下直接使用[export 变量名=变量值] 定义变量。

$ export NAME="rethink"
$ echo $NAME
rethink

设置环境变量常用命令

  • echo 用于打印显示环境变量,如:echo $NAME;

  • export 用于设置新的环境变量,如:export NAME='rethink';

更新环境变量 更新环境变量直接重新赋值即可:NAME='test'   (注意:变量名前不需要加$);

  • env 显示当前用户的变量;

  • set 显示当前shell变量,shell变量包含用户变量;

  • unset 删除一个环境变量,如:unset NAME;

  • readonly 设置环境变量只读,如:readonly NAME  ,只读变量unset无效。

常用环境变量

PATH
# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

路径之间用冒号分隔,这些路径都是一些可以找到可执行程序的目录列表。当我们输入一个指令时,shell会先检查命令是否是系统内部命令,如果不是则会再去检查此命令是否是一个应用程序,shell会试着从PATH中寻找这些应用程序。

如果shell在这些路径目录里没有找到可执行文件,就会报错;若找到,系统将调用执行应用程序。通过设置PATH ,可以让我们运行程序或指令更加方便。

将某个目录路径加入到PATH中,可以这样写:

$ pwd
/root/docker/httpd
$ export PATH=$PATH:$PWD
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/docker/httpd
`可以看到在PATH后面已经加上了我们当前所处目录的路径`
  • HOME

用户的主工作目录,即为用户登录到Linux系统中时的默认目录。

$ whoami
rethink
$ echo $HOME
/home/rethink
  • HISTSIZE

保存历史命令的条数。我们输入的指令都会被系统保存下来,这个环境变量记录的就是保持指令的条数。一般为1000。

$ echo $HISTSIZE
1000
$ HISTSIZE=1001
$ echo $HISTSIZE
1001

历史命令是被保存在内存中的,当退出或者登录shell时,会自动保存或读取我们可以通过history命令来查看。可以使用符号 ! 执行指定序号的历史命令。例如,要执行第2个历史命令,则输入!2。

$ history 559  ls60  who61  history | head -n 562  who am i63  history 5
$ !62
who am i
root     pts/0        2018-04-04 11:00 (101.81.92.18)
  • LOGNAME

当前用户登录名。

$ echo $LOGNAME
rethink
  • HOSTNAME 主机名称。

$ echo $HOSTNAME
JDu4e00u53f7
  • SHELL

当前用户使用的shell种类。

$ echo $SHELL
/bin/bash

IT技术分享社区

个人博客网站:https://programmerblog.xyz

文章推荐程序员效率:画流程图常用的工具程序员效率:整理常用的在线笔记软件远程办公:常用的远程协助软件,你都知道吗?51单片机程序下载、ISP及串口基础知识硬件:断路器、接触器、继电器基础知识

操作系统:Linux环境变量相关知识总结相关推荐

  1. 操作系统:Linux 环境变量配置的 6 种方法!

    Linux环境变量配置 在自定义安装软件的时候,经常需要配置环境变量,下面列举出各种对环境变量的配置方法. 下面所有例子的环境说明如下: 系统:Ubuntu 14.0 用户名:uusama 需要配置M ...

  2. Linux 环境变量

    目录 概述: Linux 环境变量 - 完整指南 什么是变量? Linux中的环境变量是什么? 环境变量的重要性 环境变量命令 Linux 环境变量列表 概述: 在Linux 环境变量中定义系统行为. ...

  3. python脚本设置linux环境变量_Linux环境变量export方法与修改文件方法的区别

    玩蛇网推荐图文教程:python 列表 要想修改Linux环境变量有两种方法可以实现,但是关于Linux环境变量export方法与修改文件方法的区别你又了解多少呢?设置 Linux 环境变量可以通过 ...

  4. linux——环境变量与文件查找

    二.环境变量 变量 要解释环境变量,得先明白变量是什么,准确的说应该是 Shell 变量,所谓变量就是计算机中用于记录一个值(不一定是数值,也可以是字符或字符串)的符号,而这些符号将用于不同的运算处理 ...

  5. linux环境变量配置的方法,Linux环境变量配置方法

    Linux上环境变量配置分为设置永久变量和临时变量两种.环境变量设置方法同时要考虑环境Shell类型,不同类型的SHELL设置临时变量方法和设置永久变量对应的配置文件不同.Linux环境变量本身配置过 ...

  6. linux环境变量与文件查找

    整理来自 https://www.shiyanlou.com/courses/running/60 要解释环境变量,得先明白变量是什么,准确的说应该是 Shell 变量,所谓变量就是计算机中用于记录一 ...

  7. Linux环境变量总结

    现在每天测试到时候会与Linux打交道,自然也会用到环境变量了.看了网上几篇文章,结合自己到实践和看法,总结以下Linux的环境变量吧. 一.什么是环境变量? 环境变量相当于给系统或用户应用程序设置的 ...

  8. Linux环境变量的设置和查看

    环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数,比如临时文件夹位置和系统文件夹位置等等.  一.Linux的变量种类 按变量的生存周期来划分,Linux变量可分为两类: 1.永久的:需 ...

  9. linux 环境变量详解,linux环境变量实例详解

    1.环境变量 简单理解了变量的概念,就很容易理解环境变量了.环境变量的作用域比自定义变量的要大,如 Shell 的环境变量作用于自身和它的子进程.在所有的 UNIX 和类 UNIX 系统中,每个进程都 ...

最新文章

  1. 2018年Spring Cloud中国社区技术沙龙-成都站
  2. 【RPC】你应该知道的 RPC 原理
  3. Python Hello World入门 - Python零基础入门教程
  4. http header 设置编码_【译】http.client
  5. markdown不允许还有人不会
  6. 判断文件格式并输出文件流
  7. 如何打开kernel最开始的打印
  8. 思科模拟器:网络安全实验
  9. CE修改器使用教程 [入门篇]
  10. Python电影售票系统
  11. ECS用户一定要看到最后有惊喜
  12. excel切片器_干货分享:Excel数据透视表操作技巧,帮你提升工作效率
  13. 软件测试工程师必备的27个基础技能
  14. 【C++】STL学习小总结
  15. linux分区btrfs,Linux文件系统之btrfs
  16. 【机器学习、深度学习与强化学习】机器学习(2)---决策树(1)
  17. Java分解整型质因数
  18. 芯力特SIT1145AQT带选择性唤醒及故障保护的低功耗 CAN FD 总线收发器,完全替代TJA1145T。
  19. 分布式架构设计中的CAP原理
  20. 材料研发转行,转什么比较好

热门文章

  1. 浮点数的表示和基本运算 【转载】
  2. 关于Linux下的umask
  3. [独库骑行之我们路过沙漠]塔克拉玛干的边缘
  4. 图像去畸变和添加畸变
  5. HALCON示例程序inspect_solar_fingers.hdev太阳能电池板电路缺陷检测
  6. 焊接机器人应用现状及发展趋势
  7. 【图像处理】——Python实现几何变换(自定义+opencv库)
  8. centos7网卡编辑_CentOS7修改网卡为eth0
  9. android 监听界面变化,Android之页面有变化用onWindowFocusChanged来监听权限是否开启...
  10. java .listfiles_Java File.listFiles()