Redian新闻
>
Linux 环境变量总结

Linux 环境变量总结

公众号新闻

推荐关注↓

来源:https://www.zhangjunbk.com/article/590

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 5
   59  ls
   60  who
   61  history | head -n 5
   62  who am i
   63  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


- EOF -


加主页君微信,不仅Linux技能+1

主页君日常还会在个人微信分享Linux相关工具资源精选技术文章,不定期分享一些有意思的活动岗位内推以及如何用技术做业余项目

加个微信,打开一扇窗


推荐阅读  点击标题可跳转

1、100 个网络基础知识

2、网络中的三张表—— ARP 表, MAC 表,路由表

3、Linux 管道到底能有多快?


看完本文有收获?请分享给更多人

推荐关注「Linux 爱好者」,提升Linux技能

点赞和在看就是最大的支持❤️

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
如何在最小安装的 CentOS、RHEL、Rocky Linux 中设置互联网 | Linux 中国System 76 将不会发布 Pop!_OS 22.10 Linux 发行版 | Linux 中国哇!Torvalds 为自己的 Apple M2 Macbook 专门修改了 Fedora Linux | Linux 中国Arch Linux 中用于包管理的图形化应用 | Linux 中国操作系统人机对话!Linux OS大谈Windows与macOS:值得学习,但被Linux碾压Linux inxi 命令的 3 种使用方法 | Linux 中国如何在 Ubuntu Linux 上更新谷歌 Chrome | Linux 中国硬核观察 #785 Linux 之父的的 PC 挂了,恐影响 Linux 6.1 发布LURE 初窥!将 AUR 带入所有 Linux 发行版 | Linux 中国一个适用于苹果芯片的原生 Linux GPU 驱动程序几乎就绪! | Linux 中国如何在 Ubuntu 和其他 Linux 中检查 CPU 和硬盘温度 | Linux 中国在 Linux 中创建 LVM 分区的分步指南 | Linux 中国如何在 Linux 中使用媒体传输协议访问安卓设备的内部存储和 SD 卡 | Linux 中国打造万圣节 Linux 桌面 | Linux 中国我如何使用现场 USB 设备恢复我的 Linux 系统 | Linux 中国Tuxedo 已对所有用户开放基于 Ubuntu 的 TUXEDO OS | Linux 中国如何在 Ubuntu 和其他相关 Linux 中安装 Python 3.10 | Linux 中国大彻大悟:5个人生哲理12 个对新手最重要的 Linux 命令 | Linux 中国无性婚姻,为了身份嫁给了白老头--美低端生活(十)开源朗读者:使用 Linux 的优势和劣势 | Linux 中国在你的 Linux 终端中玩经典的贪吃蛇游戏 | Linux 中国下一个“嫖娼”的会是谁?使用 Podman Desktop 在 Fedora Linux 上管理容器 | Linux 中国解决 Linux 中的 “Bash: Command Not Found” 报错 | Linux 中国准备好在 Debian Linux 上获得 Ubuntu MATE 的体验吧! | Linux 中国如何通过 chroot 恢复 Arch Linux 安装 | Linux 中国Rosalía 登意大利版《VOGUE》封面!关于 Linux 和 Git 的创造者 Linus Torvalds 的 20 件趣事 | Linux 中国在 Linux 中如何从命令行查找默认网关的 IP 地址 | Linux 中国Rhino Linux:滚动发布但也很稳定的 Ubuntu | Linux 中国Does the third world benefit from the US-China confrontation?Atoms 是一个可以让你轻松管理 Linux Chroot 环境的 GUI 工具 | Linux 中国运动产生多巴胺?如何在 Arch Linux 中启用 Snap 支持 | Linux 中国
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。