diff --git "a/53\346\235\216\346\255\246\346\226\207/\347\254\224\350\256\26019\357\274\232\347\216\257\345\242\203\345\217\230\351\207\217.md" "b/53\346\235\216\346\255\246\346\226\207/\347\254\224\350\256\26019\357\274\232\347\216\257\345\242\203\345\217\230\351\207\217.md" new file mode 100644 index 0000000000000000000000000000000000000000..0a9d53db5cba4c0ac891d88650b00673699bbd75 --- /dev/null +++ "b/53\346\235\216\346\255\246\346\226\207/\347\254\224\350\256\26019\357\274\232\347\216\257\345\242\203\345\217\230\351\207\217.md" @@ -0,0 +1,295 @@ +## 笔记19:环境变量 + + + +### 一,含义: + +### 在文件里设置,可以自启动加载环境变量 + +1. 设置 .bashrc文件 + +```bash +vim .bashrc #进入文件 +export 变量名='值' #添加一行环境变量 +``` + +2. 要想文件生效,有两种方法 + + - 重新启动登录 + + - 手动加载**source 文件名** + +### Linux有两种级别环境配置文件 + +1. 系统级(优先执行系统文件) + + - /etc/environment 加载系统级文件,不管有无登录 + - /etc/profile/ 系统被登录,就加载,任何人登录 + +2. 用户级(~/.bashrc先加载) + + - ~/.profie 具体哪个人登录,加载自己目录下的文件 + + - su切换用户会找不到变量,所以可以写进该文件 + + - 注意: + + - 两个终端登录写该文件会报错,输入a,重新加载(vim ~/.bashrc) + + - who查看终端会有两个 + + ```bash + l2@iZf8ziiilmu251nazoj5bnZ:~$ who + l2 pts/0 Jun 18 15:51 (220.162.164.50) + l2 pts/1 Jun 18 15:51 (220.162.164.50) + ``` + + - ~/.bashrc 加载对就的shell的配置文件 + +### shell 加载文件分两式 + +1. 交互式 + - 命令行(临时) +2. 非交互式 + - 脚本文件(永久) + +### 临时配置环境变量 + +1. 局部 + + ```bash + 变量名=值 + ``` + +2. 全局 + + ```bash + export 变量名=值 + # 全局的,整个环境有效 + ``` + +3. 注意: + + - 关闭shell会话后失效 + - 双引号才会解析变量 + +### 永久设置环境变量 + +1. 用户级别的 + + ```bash + export 变量名="值" + # 保存文件后,会在下次登录时生效 + ``` + +2. 系统级别的 + + ```bash + 变量名="值" + # 保存文件后,会在下次系统重启时生效 + ``` + +3. 指定字符级 + + ```bash + vim .bashrc + export LANG=zh_CN.utf8 + source .bashrc + # 方便自己去编写脚本文件 + # 编写文件时,不乱码 + ``` + +### 一个命令的执行顺序 + +1. 先判断是不是绝对路径,(不是就下一步) + + ```bash + 1.在超级管理下 + /root/文件名 + 2.在普通用户下 + /home/用户名/文件名 + ``` + +2. 判断是不是别名,是别名就执行对应的命令,(不是就下一步) + + ```bash + vim .bashrc + export LANGUAGE=zh_CN.utf8 + source .bashrc + echo $LANGUAGE + # 案例: + l2@iZf8ziiilmu251nazoj5bnZ:~$ type l + l 是 "ls -CF" 的别名 + # 注意:这个需要等加载 + ``` + +3. 从环境变量PATH值对应的路径找,有无这个命令,找到就从那个路径执行 + + ```bash + export PATH=$PATH:/root + # 取出'$PATH'的值,给PATH + # 注意:这个是临时的,要想永久变量,放入 ~/.bashrc即可 + + 1.案例 + l2@iZf8ziiilmu251nazoj5bnZ:~$ echo $PATH + /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games + l2@iZf8ziiilmu251nazoj5bnZ:~$ export PATH=$PATH:/l2 + l2@iZf8ziiilmu251nazoj5bnZ:~$ echo $PATH + /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/l2 # 多了一个l2 + ``` + +### 二,作业: + +### 练习题 1: 显示当前所有的环境变量 + +* 使用`printenv`或`env`命令来显示所有的环境变量。 + + +```bash +l2@iZf8ziiilmu251nazoj5bnZ:~$ env +SHELL=/bin/bash +LANGUAGE=zh_CN.utf8 +LNAGUAGE=zh_CN.utf8 +``` + +### 练习题 2: 显示`HOME`环境变量的值 + +* 使用`echo`命令和`$`符号来显示`HOME`环境变量的值。 + + +```bash +l2@iZf8ziiilmu251nazoj5bnZ:~$ echo $HOME +/home/l2 +``` + +### 练习题 3: 临时设置一个新的环境变量 + +* 设置一个名为`MY_AGE`的环境变量,并将其值设置为`18`。 + + +```bash +l2@iZf8ziiilmu251nazoj5bnZ:~$ export MY_AGE=18 +``` + +### 练习题 4: 显示新设置的环境变量 + +* 使用`echo`命令来显示`MY_AGE`的值。 + + +```bash +l2@iZf8ziiilmu251nazoj5bnZ:~$ vim .bashrc +l2@iZf8ziiilmu251nazoj5bnZ:~$ source .bashrc +l2@iZf8ziiilmu251nazoj5bnZ:~$ echo $MY_AGE +18 +``` + +### 练习题 5: 在新的shell会话中检查环境变量 + +* 打开一个新的终端窗口或标签页,并尝试显示`MY_AGE`的值。你会看到什么?为什么? + + + +* 发现`MY_AGE`环境变量的值不会显示 + +* 写进.bashrc文件, + +* 然后重新加载文件:source ~/.bashrc + +### 练习题 6: 修改`PATH`环境变量 + +* 将`你当前用户的家目录`添加到你的`PATH`环境变量的末尾位置 + + +```bash +l2@iZf8ziiilmu251nazoj5bnZ:~$ export PATH="$PATH:$HOME" +# 要想变永久变量就放进.bashrc文件,需要重启 +# 要想切换用户也能用,~/.profie文件 +``` + +将`/tmp`添加到你的`PATH`环境变量的开始位置,(注意:这可能会覆盖其他路径中的同名命令,所以请谨慎操作)。 + +```bash +export PATH="/tmp:$PATH" +``` + +### 练习题 7: 验证`PATH`的修改 + +* 使用`echo`命令显示`PATH`的值,并确认`前面添加的目录`已经被添加到对应位置。 + + +```bash +echo $PATH +# tmp位于开头意味修改成功 +/tmp:/usr/local/bin:/usr/bin:/bin:... +``` + +### 练习题 8: 永久设置环境变量 + +* 在你的shell配置文件中(如`~/.bashrc`、`~/.bash_profile`、`~/.zshrc`等,取决于你使用的shell和配置)添加一行来永久设置`MY_NAME`,值设置为`奥德彪`。 + +例如,对于bash shell,你可以使用: + + +```bash +l2@iZf8ziiilmu251nazoj5bnZ:~$ vim .bashrc +l2@iZf8ziiilmu251nazoj5bnZ:~$ source .bashrc +l2@iZf8ziiilmu251nazoj5bnZ:~$ echo $MY_NAME +奥德彪 +``` + +如何让`MY_NAME`生效,并验证 + +```bash +l2@iZf8ziiilmu251nazoj5bnZ:~$ source .bashrc +``` + +### 练习题 9: 清理 + +* 清除你之前设置的`MY_AGE`和`PATH`的修改(如果你不想永久保留它们)。 + + +```bash +# 命令行: +unset MY_AGE +# 脚本文件: +vim .bashrc +注释掉 +``` + +### 练习题 10: 修改默认器 + +* 使用`EDITOR`变量,修改你默认的编辑器为nano。 + + +```bash +l2@iZf8ziiilmu251nazoj5bnZ:~$ vim .bashrc +# 输入:export EDITOR=nano +l2@iZf8ziiilmu251nazoj5bnZ:~$ source .bashrc +l2@iZf8ziiilmu251nazoj5bnZ:~$ echo $EDITOR +nano +``` + +### 练习题 11: 修改语言 + +* 使用`LANG`变量,让你的文件支持中文和utf8编码来避免乱码。 + +```bash +l2@iZf8ziiilmu251nazoj5bnZ:~$ vim .bashrc +# 输入:export LANG=zh_CN.utf8 +source ~/.bashrc +l2@iZf8ziiilmu251nazoj5bnZ:~$ echo $LANG +zh_CN.utf8 +# 验证: +编辑文本时,中英文都可以输入,不会乱码 +``` + +- 使用`LANGUAGE`变量,让你的命令提示为中文 + +```bash +l2@iZf8ziiilmu251nazoj5bnZ:~$ vim .bashrc +# 输入:export LANGUAGE=zh_CN.utf8 +# 验证: +l2@iZf8ziiilmu251nazoj5bnZ:~$ type l +l 是 "ls -CF" 的别名 +``` +