shell脚本之环境变量

本文详细介绍了Linux系统中环境变量的作用与设置方法,包括用户级与系统级变量的区别,如.bash_profile与/etc/profile的使用场景。通过具体实例展示了如何定义与修改环境变量,以及这些变量对不同用户的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境变量

用户级文件
root家目录下的隐藏root用户文件
[root@des ~]# vim .bash_profile
export a=1
[root@des ~]# exit
[kiosk@foundation1 ~]$ ssh root@172.25.254.101
###系统文件需要重启
[root@des ~]# sh /mnt/test.sh 
1

在这里插入图片描述
在这里插入图片描述

[root@des ~]# su - student
[student@des ~]$ sh /mnt/test.sh 
###无输出

在这里插入图片描述

[student@des ~]$ vim .bash_profile
###无export a=1项

在这里插入图片描述

[student@des ~]$ exit
[root@des ~]# ls -a
[root@des ~]# vim .bash_profile
###有export a=1项
#####

在这里插入图片描述
在这里插入图片描述

针对不同的用户会有不同的用户级文件

还原
在这里插入图片描述

对所有用户生效,系统级变量

/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行;并从/etc/profile.d目录的配置文件中搜集shell的设置
/etc/bashrc:对所有用户生效;为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取
[root@des ~]# source /etc/profile
[root@des ~]# sh /mnt/test.sh 
5
###读取变量后,写入文件生效
[root@des ~]# su - student
[student@des ~]$ sh /mnt/test.sh 
5
###切换用户以及环境,仍然可以显示

在这里插入图片描述
在这里插入图片描述

[root@des student]# echo $PATH
###查看shell

[root@des ~]# chmod 777 /mnt/test.sh 
[root@des ~]# /mnt/test.sh 
1
[root@des ~]# test.sh
bash: test.sh: command not found...
[root@des ~]# vim .bash_profile
export PATH=$PATH:/mnt

在这里插入图片描述

[root@des ~]# exit
[kiosk@foundation1 ~]$ ssh root@172.25.254.101
[root@des ~]# test.sh
5
###重启后生效

在这里插入图片描述

[root@des ~]# vim /etc/profile
export a=10
[root@des ~]# vim /etc/bashrc 
export b=5
[root@des ~]# su - student
[student@des ~]$ echo $a
[student@des ~]$ echo $b
[student@des ~]$ su
[root@des ~]# echo $a
10
[root@des ~]# echo $b
5
###,若数字有误,将影响本次实验的其他实验数据还原

在这里插入图片描述
在这里插入图片描述

注意: 变量不能数字开头 元字符、 转义符只能引用 弱引用"" 强引用'' $$当前开启的shell 弱引用""不能转义/ ! ' $,应使用强引用''
[root@des ~]# a=#
###给a赋值
[root@des ~]# echo a
a
###输出a
[root@des ~]# echo $a
###输出赋给a的值
[root@des ~]# echo #
###不显示元字符

在这里插入图片描述
转义字符\

[student@des root]$ echo  \*
*
[student@des root]$ echo  \**#
**#
[root@des ~]# echo \* *
* anaconda-ks.cfg Desktop Documents Downloads Music Pictures Public tast Templates Videos
###\只能转义字符串

在这里插入图片描述

交互式的定义变量

read -p “input” 显示
read -s 隐藏

#!/bin/bash
[ -z $1 ] && {
        echo " input  "
        exit
}
[ -e $1 ] && {
        read -p " welcom "   ###输出字符,enter后继续下一命令
        vim $1
}

在这里插入图片描述

###将-p换为-s,内容不显示,enter继续下一命令
#!/bin/bash
[ -z $1 ] && {
        echo "Please input filename "
        exit
}
[ -e $1 ] && {
        read -s " welcom,enter your passwd  "
        vim $1
}

在这里插入图片描述
在这里插入图片描述
命令别名

alias

格式

alias xie='vim'
注意,此更改具有临时性
[root@des ~]# alias xie='vim'
[root@des ~]# xie file
[root@des ~]# exit
[kiosk@foundation1 ~]$ ssh root@172.25.254.101
[root@des ~]# xie file
bash: xie: command not found...
###退出后失效,说明是暂时性的

在这里插入图片描述
在这里插入图片描述

[root@des ~]# vim .bashrc
###root用户的环境变量
alias xie='vim'
[root@des ~]# xie file
bash: xie: command not found...
[root@des ~]# source .bashrc
###重新加载
[root@des ~]# xie file
[root@des ~]# su - student
[student@des ~]$ xie file
bash: xie: command not found...
###切换用户后失效,说明只对root用户起作用

在这里插入图片描述

在这里插入图片描述

还原

[student@des ~]$ su
[root@des student]# cd ~
[root@des ~]# ls -a
[root@des ~]# vim .bashrc
#alias xie='vim'

在这里插入图片描述

实验

[root@des ~]# vim /etc/bashrc 
alias xie='vim'
###编辑用户级环境变量

在这里插入图片描述

[root@des ~]# source /etc/bashrc 
###重新读取文件
[root@des ~]# xie file
[root@des ~]# su student
###切换用户
[student@des root]$ xie file
[root@des ~]# su 
[root@des ~]# su - student
###切换用户及环境
[student@des ~]$ xie file

在这里插入图片描述
在这里插入图片描述

[root@des student]# vim /etc/bashrc 
#alias xie='vim'
###还原

在这里插入图片描述

[root@des student]# vim /etc/profile
alias xie='vim'
###编辑系统级环境变量
[root@des student]# source /etc/profile

在这里插入图片描述

[root@des student]# su student
[student@des ~]$ xie file
bash: xie: command not found...
###切换用户后‘写’不可用
[student@des ~]$ su - student
[student@des ~]$ xie file
###切换环境及用户,可用

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值