Pre-Lesson 3

环境变量

1.分类

(1)局部(临时)环境变量

在所运行的脚本或 shell 中存在

(2)用户环境变量

在当前登录的用户环境中存在

(3)系统环境变量

在当前系统中存在,可以被任意用户、脚本或 shell 访问到

2.访问顺序

局部-->用户-->系统

3.Windows下

(1)临时环境变量

设置变量使用set指令

set a=1
echo %a%

set的环境变量仅在当前cmd窗口下有效,并且会随着cmd的关闭而释放;如需永久保留环境变量,则需要在系统设置中配置并保存。

(2)全局环境变量

它分为用户环境变量和系统环境变量。

用户环境变量:仅在当前用户登录的环境下起作用,如切换成其他用户,那么其环境变量也随之发生变化。

系统环境变量:不管是哪个用户登录在当前系统中,都共享使用的环境变量。

计算机系统属性-->高级-->环境变量

.bat文件是Windows系统中的批处理文件。在文件夹内新建一个bat为后缀名的文件,此时该文件内没有内容无法打开,右击选项用Notepad编辑。

在该文件夹内使用cmd命令,输入建好的bat文件,会显示之前编辑的命令。

cmd命令能直接用是因为在windows下有system32的cmd.exe

直接双击1.bat运行结束后会关闭该文件;而用cmd打开,因为cmd没关闭,局部变量还在。

4.Linux下

(1)shell

全称Shell Script,是一种命令行解释程序,也称为脚本语言。它是操作系统提供给用户与内核交互的一种接口,允许用户通过文本文件形式编写一系列指令集合。

反引号`:将命令的返回值赋给变量
示例:A=`date`
           A$(date): 等价于反引号

(2)环境变量常见的指令 

ls:列出目录内容。
ls -l=ll
-l:以长列表格式显示信息。这包括文件的权限、链接数、所有者、组、大小、最后修改日期和文件名。
-a:显示所有文件,包括以.开头的隐藏文件。
echo:显示某个环境变量值
export:设置一个新的环境变量使用 export:这个变量不仅在当前 shell 进程中有效,而且在其子进程中也是可见的;反之则仅在当前shell进程中有效
pwd:打印工作目录显示你当前所在的目录的完整路径
grep过滤
PATHPATH 环境变量的值是一系列目录的路径,这些路径之间用冒号分隔。
chmod改变访问权限+x 用于给文件或目录添加执行(execute)权限

(3)临时环境变量

Shell 变量名在定义时,首个字符必须为字母(a-z,A-Z),不能以数字开头,中间不能有空格,可以使用下划线 _ ,不能使用 - ,也不能使用标点符号等。

直接a=1,不用set命令;清除变量使用unset命令

(4)用户环境变量

.bashrc这个文件用于配置与 Bash Shell 相关的环境变量和个性化设置,如命令别名、PATH 环境变量的设置、命令提示符的格式等。它会在每次启动新的非登录 Shell 时自动执行。
.bash_profile(或 .profile)这个文件用于配置登录 Shell 的环境变量,它会在用户登录时执行一次。

(5)系统环境变量

/etc/environment在系统启动时被读取,并且对所有用户生效。
/etc/profile在用户登录时被读取
/etc/profile.d/这个目录下存放了一系列的 shell 脚本文件,每个文件都可以设置一些环境变量,被读取时会自动执行
/etc/bash.bashrc在新的 Bash shell 启动时被读取
/etc/sysconfig这个目录下有一些特定的配置文件,也可以设置一些环境变量。

(6) source命令

source 命令在 Linux 系统中用于在当前 shell 会话中执行指定的脚本文件,从而使得脚本文件中的命令和变量设置立即生效。换句话说,source 命令可以让你在不重新启动 shell 的情况下,直接应用脚本文件中的更改。

示例:

在家目录下使用nano对.bashrc进行编辑,写入aaa=111,编辑完成保存退出。直接echo不显示变量值。在Terminal直接输入bash命令,用于启动一个新的Bash shell会话,此时使用echo可以得到变量值。还可以使用source命令直接应用脚本文件中的更改,此时使用echo也可以得到变量值。

在etc目录下使用cd命令进入profile.d(脚本文件),通过nano 新建名为hello.sh的文件并开始编辑,编辑的内容为hello="hello world",保存退出后用ls和ll -a查看,可以看到有hello.sh文件。回到etc目录,使用source命令,使我们配置的内容得到应用,使用echo显示变量值。

在家目录下使用mkdir命令新建一个test文件,进入test目录,使用nano新建一个hello.sh文件,编辑内容为AAA="HEI MA LOU",echo $A,保存退出。执行文件之后,发现没有执行权限。用chmod命令修改该文件的执行权限,使之成功执行。在家目录下直接./hello.sh执行不了因为给的相对路径它识别不了,换成绝对路径就能执行了。或者直接用nano编辑.bash_profile文件里面的PATH,用source使之生效,这时直接使用hello.sh能直接执行了。

思维导图如下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值