From 9f019dabfe76ab57ab51a607b1ee352f04e974e3 Mon Sep 17 00:00:00 2001 From: lin <2312289931@qq.com> Date: Tue, 18 Jun 2024 17:52:19 +0800 Subject: [PATCH] 20240618 --- ...57\345\242\203\345\217\230\351\207\217.md" | 175 ++++++++++++++++++ 1 file changed, 175 insertions(+) create mode 100644 "08\346\236\227\350\212\263\345\251\225/20240618\347\254\224\350\256\260-\347\216\257\345\242\203\345\217\230\351\207\217.md" diff --git "a/08\346\236\227\350\212\263\345\251\225/20240618\347\254\224\350\256\260-\347\216\257\345\242\203\345\217\230\351\207\217.md" "b/08\346\236\227\350\212\263\345\251\225/20240618\347\254\224\350\256\260-\347\216\257\345\242\203\345\217\230\351\207\217.md" new file mode 100644 index 0000000..0ee4acc --- /dev/null +++ "b/08\346\236\227\350\212\263\345\251\225/20240618\347\254\224\350\256\260-\347\216\257\345\242\203\345\217\230\351\207\217.md" @@ -0,0 +1,175 @@ +# 环境变量 + +```html +概念:就是提供一系列可供特殊环境的全局变量 +``` + +```html +1.按生命周期分: + (1).永久环境变量,写在指定类型的配置文件,永不失效 ~/.bashrc/etc/profile.d/xxx.sh + (2).临时环境变量,临时使用export命令设置的环境变量,退出终端即失效 + +2.按作用域分 + (1).系统级环境变量,对所有用户生效 /etc/profile.d/xxx.sh + (2).用户级环境变量,只对当前用户生效 ~/.bashrc +``` + +```html +3.常用系统级环境变量 + **系统级** +(1).PATH 可执行文件的搜索路径 +(2).LANG 定义系统的语言环境和字符集, export LANG=zh_CN.utf8,编辑文件不乱码 +(3).LANGUAGE 用于设置消息语言的优先级 ,提示语言为中文 +(4).EDITOR 默认文本编辑器 editor + +**用户级** +(1).HOME`:当前用户的主目录。 +(2).USER:当前用户名。 +(3).UID:当前用户的用户ID。 +(4).SHELL:当前用户的默认Shell。 +``` + +```html +4.系统启用 + (1)./etc/environment 加载系统级的环境变量,不管有无登录 + (2)./etc/profile 系统被登录,就加载,任何人登录 + (3).~/.profile 具体哪个人登录后,加载自己目录下的文件 + (4).~/.bashrc 加载对就的shell的配置文件,类似.zshrc .xshrc + +``` + +```html +5.一个命令被执行经过几步 + (1).先判断是不是绝对路径:是就执行,不是就下一步 + (2).判断是不是别名,是别名就执行别名对应的命令,不是就下一步 + (3).从环境变量PATH值对应的路径中找,有没有这个命令,找到了就从那个路径去执行,找不到就下一步 + (4).报错了,找不到该命令 + + +``` + +## 练习 + +### 练习题 1: 显示当前所有的环境变量 + +* 使用`printenv`或`env`命令来显示所有的环境变量。 + + +```bash +printenv或env +``` +### 练习题 2: 显示`HOME`环境变量的值 + +* 使用`echo`命令和`$`符号来显示`HOME`环境变量的值。 + + +```bash +echo $HOME +/home/hhs +``` +### 练习题 3: 临时设置一个新的环境变量 + +* 设置一个名为`MY_AGE`的环境变量,并将其值设置为`18`。 + + +```bash +hhs@hecs-328451:~$ export MY_AGE=18 +hhs@hecs-328451:~$ echo $MY_AGE +18 +``` +### 练习题 4: 显示新设置的环境变量 + +* 使用`echo`命令来显示`MY_AGE`的值。 + +```bash +echo $MY_AGE +``` +### 练习题 5: 在新的shell会话中检查环境变量 + +* 打开一个新的终端窗口或标签页,并尝试显示`MY_AGE`的值。你会看到什么?为什么? +```bash +hhs@hecs-328451:~$ echo $MY_AGE + +hhs@hecs-328451:~$ +会看到为空。因为这种设置是临时的,仅适用于当前会话。一旦关闭shell或注销用户,设置的环境变量将不再有效。 +``` + +### 练习题 6: 修改`PATH`环境变量 + +* 将`你当前用户的家目录`添加到你的`PATH`环境变量的末尾位置 + + +```bash +export PATH="$PATH:/home" +source ~/.bashrc +``` +将`/tmp`添加到你的`PATH`环境变量的开始位置,(注意:这可能会覆盖其他路径中的同名命令,所以请谨慎操作)。 + +```bash +export PATH=/tmp:$PATH +hhs@hecs-328451:~$ echo $PATH +/tmp:/home/hhs/bin:/home/hhs/bin:/home/hhs/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games + +``` + +### 练习题 7: 验证`PATH`的修改 + +* 使用`echo`命令显示`PATH`的值,并确认`前面添加的目录`已经被添加到对应位置。 + + +```bash +echo PATH +/tmp:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/home/hhs:/home + +``` +### 练习题 8: 永久设置环境变量 + +* 在你的shell配置文件中(如`~/.bashrc`、`~/.bash_profile`、`~/.zshrc`等,取决于你使用的shell和配置)添加一行来永久设置`MY_NAME`,值设置为`奥德彪`。 + +例如,对于bash shell,你可以使用: + + +```bash +export MY_NAME="奥德彪" +echo $MY_NAME +``` +如何让`MY_NAME`生效,并验证 + +``` +hhs@hecs-328451:~$ source ~/.bashrc +奥德彪 +``` + +### 练习题 9: 清理 + +* 清除你之前设置的`MY_AGE`和`PATH`的修改(如果你不想永久保留它们)。 + + +```bash +unset MY_AGE +unset PATH +``` +### 练习题 10: 修改默认器 + +* 使用`EDITOR`变量,修改你默认的编辑器为nano。 + + +```bash +export EDITOR=nano +``` + +### 练习题 11: 修改语言 + +* 使用`LANG`变量,让你的文件支持中文和utf8编码来避免乱码。 + +```bash +export LANG=zh_CN.UTF-8 +``` + +- 使用`LANGUAGE`变量,让你的命令提示为中文 + +```bash +export LANGUAGE=zh_CN +``` + + -- Gitee