Linux:shell 环境变量的设置及例题详解

Linux中的shell详解

什么是shell

shell:壳,命令解释器,负责解析用户输入的命令。命令分两类:

type 命令查看命令是file、alias还是builtin

type  -a列出当前命令可以如何执行
type  -t仅列出命令按照哪种方式执行

内置命令 (shell内置),shell为了完成自我管理和基本的管理,不同的shell内置不同的命令,但是大部分都差不多外置命令,在文件系统的某个目录下,有个与命令名称相同的文件

系统为了让用户在命令行快速方便地执行命令,将可执行文件的
路径存储在环境变量PATH中。

shell中的变量

在这里插入图片描述
上图中用户与有关环境变量的文件已经展示,如果想要定义针对某一个用户的变量,就在 .bash_profile 或者 .bashrc 文件中写入,如果要为所有用户定义就在另外3个文件中定义。

变量简单说就是让某一个特定字符串代表不固定的内容,变量可分为两类:环境变量(全局变量)和普通变量(局部变量)

普通变量

普通变量也可称为局部变量,只能在创建它们的Shell函数或Shell脚本中使用,普通变量一般由开发者在开发脚本程序时创建。

设置变量:

变量命名的规则:只能使用数字、字母和下划线,且不能用数字开头
变量名和变量值用“=”连接
等号两边不能有空格符

2, 变量的赋值,一般有五种写法:

name=value
name1='value'
name_2="value"
_name_3=`cmd`
_na_me_4=$(cmd)

环境变量

环境变量也可称为全局变量,可以在创建它们的Shell 及其派生出来的任意子进程 Shell 中使用,环境变量又可分为自定义环境变量和 bash 内置的环境变量。

(1)bash内置的环境变量:用于定义 Shell 的运行环境,保证 Shell 命令的正确执行,Shell 通过环境变量来确定登录用户名、命令路径、终端类型、登录目录等

(2)自定义环境变量:自定义环境变量可以在命令行中设置和创建,但用户退出命令时这些变量值就会丢失。如果希望永久保存环境变量,可在用户家目录下的.bash_profile 或 .bashrc文件中,或者全局配置/etc/bashrc或 /etc/profile 文件中定义,在将环境变量放入上述的文件中后,每次用户登录时这些变量都将被初始化。

按照系统规范,所有环境变量的名字均采用大写形式。

在文件中设置环境变量(永久生效)

root用户的环境变量配置文件:

[root@www ~]$ ls /root/.bashrc  # 推荐在此文件中优先设置
/root/.bashrc
[root@www ~]$ ls /root/.bash_profile
/root/.bash_profile

所有用户生效的环境变量配置文件:

[root@www ~]$ll  /etc/profile
[root@www ~]$ll  /etc/bashrc
[root@www ~]$ll  /etc/profile.d/  若要在登陆后初始
化或显示加载内容,则把脚本文件放在 `/etc/profile.d/` 
下即可(无需加载执行权限)

示例:设置生产环境下的Java环境变量,将以下内容写入以上任意一个文件即可。

在这里插入图片描述

显示与取消变量

(1)通过 echo 或 printf 打印变量

在这里插入图片描述

(2)显示默认的环境变量

在这里插入图片描述

(3)用 unset 消除本地变量和环境变量

在这里插入图片描述

环境变量设置实例

例1:创建普通变量local_data=1并且访问
如下:

[root@localhost ~]# export local_data=1
[root@localhost ~]# echo $local_data
1

例2:创建环境变量ROOT_DATA=root,只有root用户可以访问。
一:环境变量只有root用户可以访问,那么就在root的家目录中创建环境变量。如下:

[root@localhost ~]# vim .bashrc  进入这个文件

然后在这个文件最后一行写入如下代码。
在这里插入图片描述
保存并退出,再用source命令刷新这个文件最后访问这个变量:输出结果为 root

[root@localhost ~]# source .bashrc
[root@localhost ~]# echo $ROOT_DATA
root

注意:必须先用source刷新这个文件,不然不会生效

二:xshell切换到普通用户登录,本人普通用户名是redhat
如下:

[C:\~]$ ssh redhat@192.168.107.129   登录普通用户redhat
[redhat@localhost ~]$ echo $ROOT_DATA  再访问ROOT_DATA 访问不到了。

例4:创建环境变量DATA=all,root和普通用户都可以看到

一:在/etc/bashrc文件里面最后一行写入代码:

export DATA=all

然后退出刷新文件,访问这个文件:输出all

[root@localhost ~]# source /etc/bashrc
[root@localhost ~]# echo $DATA
all

二:切换到普通用户:
刷新并且访问这个变量,发现可以访问了。

[redhat@localhost ~]# source /etc/bashrc
[redhat@localhost ~]# echo $DATA
all
  • 10
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 14
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员Fy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值