From 89646b8abebf4e504b6d4c9e5b9477c1a2dec2d3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=A2=85=E5=BF=A0=E9=92=A6?=
<11785125+mei-zhongqin@user.noreply.gitee.com>
Date: Wed, 19 Jun 2024 13:20:03 +0000
Subject: [PATCH] =?UTF-8?q?08=20=E6=A2=85=E5=BF=A0=E9=92=A6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: 梅忠钦 <11785125+mei-zhongqin@user.noreply.gitee.com>
---
...57\345\242\203\345\217\230\351\207\217.md" | 408 ++++++++++++++++++
...30\351\207\217\347\273\203\344\271\240.md" | 188 ++++++++
2 files changed, 596 insertions(+)
create mode 100644 "08 \346\242\205\345\277\240\351\222\246/2024.06.18 \345\221\250\346\234\237\344\273\273\345\212\241\357\274\214\347\216\257\345\242\203\345\217\230\351\207\217.md"
create mode 100644 "08 \346\242\205\345\277\240\351\222\246/2024.06.18 \347\216\257\345\242\203\345\217\230\351\207\217\347\273\203\344\271\240.md"
diff --git "a/08 \346\242\205\345\277\240\351\222\246/2024.06.18 \345\221\250\346\234\237\344\273\273\345\212\241\357\274\214\347\216\257\345\242\203\345\217\230\351\207\217.md" "b/08 \346\242\205\345\277\240\351\222\246/2024.06.18 \345\221\250\346\234\237\344\273\273\345\212\241\357\274\214\347\216\257\345\242\203\345\217\230\351\207\217.md"
new file mode 100644
index 0000000..d46ee45
--- /dev/null
+++ "b/08 \346\242\205\345\277\240\351\222\246/2024.06.18 \345\221\250\346\234\237\344\273\273\345\212\241\357\274\214\347\216\257\345\242\203\345\217\230\351\207\217.md"
@@ -0,0 +1,408 @@
+# 周期任务:
+
+cron是一种基于时间任务调度的程序,用于在特殊时间或者时间间隔自动执行任务。
+
+### cron的配置文件:
+
+用户级cron任务,每个用户都有自己的cron任务配置文件 :
+
+`/var/spool/cron/crontabs/username`。
+
+系统级Cron任务:系统级的Cron任务配置文件位于`/etc/crontab`和`/etc/cron.d/`目录下。
+
+**周期性任务目录**:这些目录包含在特定时间间隔运行的脚本,例如:
+
+* `/etc/cron.hourly/`
+* `/etc/cron.daily/`
+* `/etc/cron.weekly/`
+* `/etc/cron.monthly/`
+
+### 编辑cron
+
+使用`crontab` 命令来编辑、查看或者删除自己的cron任务[用户级]
+
+crontab = crontable 时间周期表,计划任务表
+
+```bash
+编辑cron任务
+crontab -e #edit
+
+
+查看cron任务
+crontab -l # list
+
+
+删除cron任务
+
+crontab -r # remove
+
+```
+
+### cron语法:
+
+```bash
+* * * * * command_to_execute # command_to_execute 可以是命令也可以是包含命令的文件
+- - - - -
+| | | | |
+| | | | +----- 星期几 (0 - 7) (星期天 = 0 或 7)
+| | | +------- 月份 (1 - 12)
+| | +--------- 日期 (1 - 31)
+| +----------- 小时 (0 - 23)
++------------- 分钟 (0 - 59)
+```
+
+
+
+### cron中的特殊符号:
+
+```bash
+**常用的如下:**
+
+1. **星号(`*`)**
+
+ * **含义**:匹配任何值,,即每一。
+ * **示例**:在分钟字段中使用 `*` 表示每一分钟都运行一次任务。
+
+ * * * * * /path/to/command
+
+2. **逗号(`,`)**
+
+ * **含义**:指定一个列表值,列出所有指定值 a,b,c。
+ * **示例**:在小时字段中使用 `0,6,12,18` 表示任务将在每天的0点、6点、12点和18点运行。
+
+ 0 0,6,12,18 * * * /path/to/command
+
+3. **短横线(`-`)**
+
+ * **含义**:指定一个范围值,开始-结尾。
+ * **示例**:在日期字段中使用 `1-5` 表示任务将在每个月的1号到5号之间运行。
+
+ 0 0 1-5 * * /path/to/command
+
+4. **斜杠(`/`)**
+
+ * **含义**:指定步长值,即间隔。
+ * **示例**:在分钟字段中使用 `*/15` 表示任务每15分钟运行一次。
+
+ */15 * * * * /path/to/command
+
+5. **L(Last)**
+
+ * **含义**:表示最后一个。可以在月的天数或星期几中使用。
+ * **示例**:在日期字段中使用 `L` 表示每个月的最后一天。
+
+ 0 0 L * * /path/to/command
+
+ * **示例**:在星期几字段中使用 `5L` 表示每个月的最后一个星期五。
+
+ 0 0 * * 5L /path/to/command
+```
+
+### 注意事项
+
+1、路径问题: cron任务运行时使用的环境变量可能与用户的交互式shell不同,确保在脚本中使用绝对路径。
+
+2、权限问题: 确保脚本具有可执行的权限,并且cron任务的用户有权限执行该脚本。
+
+
+
+### 系统及任务:
+
+crontab/cron.d
+
+在Debian和其他基于Unix的操作系统中,`/etc/crontab` 和 `/etc/cron.d/` 目录用于管理系统级的计划任务。虽然它们的功能类似,但在使用场景和配置格式上有一些细微的区别。以下是它们的详细介绍和使用场景:
+
+
+
+
+
+
+
+周期性任务目录
+
+### 目录说明
+
+1. **`/etc/cron.hourly/`**:每小时运行一次目录中的所有脚本。
+2. **`/etc/cron.daily/`**:每天运行一次目录中的所有脚本。
+3. **`/etc/cron.weekly/`**:每周运行一次目录中的所有脚本。
+4. **`/etc/cron.monthly/`**:每月运行一次目录中的所有脚本。
+
+### **使用方法**
+
+1. **创建脚本**:将要定期运行的脚本放置到相应的目录中。
+
+2. **设置权限**:确保脚本具有执行权限。可以使用以下命令设置:
+
+```bash
+chmod +x /etc/cron.daily/your_script.sh
+```
+
+### 注意事项
+
+1. **脚本格式**:确保脚本是可执行的,并且首行包含正确的shebang(例如 `#!/bin/bash`)。
+2. **日志记录**:为调试和审计目的,可以在脚本中添加日志记录功能,以便了解脚本的执行情况。
+3. **测试脚本**:在将脚本放入周期性任务目录之前,最好手动测试脚本,以确保其在预期环境下正常工作。
+
+通过将脚本放置到相应的周期性任务目录中,可以轻松实现定期自动化任务的管理,无需手动编辑cron表。这样不仅简化了管理任务的复杂性,还提高了系统的自动化和可靠性。
+
+
+
+
+
+
+
+# 环境变量:
+
+理解和使用Linux环境变量对于管理和配置系统至关重要。以下是关键的知识点、常用场景以及示例的综合整理:
+
+### 1. 环境变量的类型和作用
+
+* **用户级别环境变量**:
+
+ * 存储在用户家目录的个人配置文件中,例如 `~/.bashrc`、`~/.profile`。
+ * 用于定义**用户个性化**的Shell设置,如别名、路径等。针对不同用户独立设置
+
+* **系统级别环境变量**:
+
+ * 存储在系统范围的配置文件中,如 `/etc/environment`、`/etc/profile` 。/etc/profile.d目录
+ * 为**所有用户和系统服务**提供全局的环境设置。java_home、python
+
+### 2. 环境变量的加载顺序和文件
+
+* **系统启动加载**:/etc/environment ,一开源就加载,初始化
+
+* **登录Shell加载顺序**:
+
+ * 首先加载 `/etc/profile`,然后根据用户登录方式加载 `~/.profile`(存在性依次加载)。
+ * 非登录shell: su 切换用户 等 source
+
+* **交互式Shell加载顺序**:
+
+ * 加载 `~/.bashrc` 或类似文件,用于设置用户个性化的Shell环境。
+ * 不同的shell加载不同的文件,bash才加载.bashrc,zsh加载.zshrc
+ * 交互式:提供命令行窗口,非交互式:直接写在脚本里
+
+* **总结来说**
+
+ * 配置文件的理论加载顺序通常是 `/etc/environment` > `/etc/profile` > `~/.profile` > `~/.bashrc`。【实验】
+
+### 3. 设置环境变量的方法
+
+ 设置变量的位置:命令行(临时),脚本文件(永久)
+
+#### 3.1 临时设置环境变量:临时变量(局部),临时环境变量(全部)
+
+ 可以使用 `export` 命令来临时设置一个环境变量,例如:
+
+```bash
+export MY_VAR="value" # export 变量名=值 环境变量是全局的,整个环境有效 MY_VAR="value" # 少了export 就是临时变量,不是全局的
+```
+
+
+
+ 这种设置只在当前Shell会话中有效,关闭Shell会话后会失效。
+
+#### 3.2 永久设置环境变量:
+
+ **用户级别的** : 编辑用户的 `~/.bashrc` 或 `~/.profile` 文件,并添加如下行:
+
+```bash
+export MY_VAR="value"
+```
+
+ 保存文件后,新的设置会在下次登录时生效。
+
+ **系统级别的:** 编辑 `/etc/environment` 或 /etc/profile文件,并添加类似以下行:
+
+```bash
+MY_VAR="value"
+```
+
+这里不需要使用 `export` 命令。保存文件后,变量会在系统启动时生效。
+
+#### 3.3 环境变量的设置和使用示例
+
+3.1 设置路径变量(PATH)
+
+```bash
+# 在 ~/.bashrc 中添加
+export PATH=$PATH:/path/to/your/scripts
+```
+
+3.2 定义Java环境变量(JAVA_HOME)
+
+
+
+```bash
+# 在 ~/.bashrc 或 /etc/environment 中添加
+export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 export PATH=$JAVA_HOME/bin:$PATH
+```
+
+3.3 设置代理服务器(HTTP_PROXY、HTTPS_PROXY)
+
+
+```bash
+# 在 ~/.bashrc 中添加
+export HTTP_PROXY=http://proxy.example.com:8080
+export HTTPS_PROXY=http://proxy.example.com:8080
+```
+
+
+
+3.4 配置编辑器(EDITOR)
+
+
+```bash
+# 在 ~/.bashrc 中添加
+ export EDITOR=/usr/bin/vim
+```
+
+3.5 设置语言和地区(LANG、LC_系列变量)
+
+
+```bash
+# 在 ~/.bashrc 或 /etc/environment 中添加
+export LANG=en_US.UTF-8
+export LC_ALL=en_US.UTF-8
+```
+
+3.6 自定义命令别名(alias)
+
+
+```bash
+# 在 ~/.bashrc 中添加
+alias ll='ls -alF' alias grep='grep --color=auto'
+```
+
+3.7 设置临时环境变量
+
+
+```bash
+# 临时设置变量
+export MY_VAR="value"
+```
+
+
+
+### 4. 常用环境变量
+
+打印所有环境变量:
+ printenv
+ #或
+ env
+
+**系统级**
+
+* `PATH` 可执行文件的搜索路径
+* `LANG` 定义系统的语言环境和字符集, export LANG=zh_CN.utf8,编辑文件不乱码
+* `LANGUAGE` 用于设置消息语言的优先级 ,提示语言为中文
+* `EDITOR` 默认文本编辑器 editor
+
+**用户级**
+
+* **`HOME`** :当前用户的主目录。
+* **`USER`**:当前用户名。
+* **`UID`**:当前用户的用户ID。
+* **`SHELL`**:当前用户的默认Shell。
+
+### 5. 临时变量与环境变量
+
+定义一个变量时,在变量名前加了export关键字,就是环境变量,作用域是全局环境子子进程中也有效,否则就是临时变量,只在当前脚本文件或shell中有效。
+
+命令行示例:
+
+
+```bash
+MY_NAME="张三" # 临时变量(局部)
+echo $MY_NAME bash -c 'echo $MY_NAME' # 什么结果?对比下面的效果
+
+export MY_NAME="张三" # 临时变量(全局)
+echo $MY_NAME bash -c 'echo $MY_NAME' # 子进程 # 看下效果
+```
+
+脚本文件示例 :
+
+`test1.sh`
+
+
+```bash
+#!/bin/bash
+MY_NAME="张三" # 前面加上export再试一次
+echo "test:我的名字是:$MY_NAME" ./subscript.sh
+```
+
+`test2.sh`:
+
+
+```bash
+#!/bin/bash
+echo "test2:你的名字是: $MY_NAME"
+```
+
+**临时变量**:在脚本中定义但不导出的变量仅在脚本执行期间有效,不会影响其他 shell 会话或子进程。
+
+**环境变量**:使用 `export` 导出的变量在当前 shell 会话和所有子进程中都有效。
+
+### 6. 总结:
+
+### 4.1 分类
+
+#### 按生命周期分
+
+* 永久环境变量 写在指定类型的配置文件,永不失效 ~/.bashrc /etc/profile.d/xxx.sh
+* 临时环境变量 临时使用export 命令设置的环境变量 退出终端即失效
+
+#### 按作用域分
+
+* 系统级环境变量 对所有用户生效 /etc/profile.d/xxx.sh
+* 用户级环境变量 只对当前用户生效 ~/.bashrc
+
+
+
+
+
+# 作业:
+
+```bash
+1. 每天3:00执行一次
+ 0 3 * * * touch ~/a.txt
+2. 每周六2:00执行
+ 0 2 * * 6 touch ~/a.txt
+3. 每周六1:05执行
+ 5 1 * * 6 touch ~/a.txt
+4. 每周六1:25执行
+ 25 1 * * 6 touch ~/a.txt
+5. 每天8:40执行
+ 40 8 * * * touch ~/a.txt
+6. 每天3:50执行
+ 50 3 * * * touch ~/a.txt
+7. 每周一到周五的3:40执行
+ 40 3 * * 1-5 touch ~/a.txt
+8. 每周一到周五的3:41开始,每10分钟执行一次
+ 41-59/10 3 * * 1-5 touch ~/a.txt
+9. 每天的10:31开始,每2小时执行一次
+ 31 10/2 * * * touch a.txt
+10. 每周一到周三的9:30执行一次
+ 30 9 * * 1-3 touch ~/a.txt
+11. 每周一到周五的8:00,每周一到周五的9:00执行一次
+ 0 8,9 * * 1-5 touch ~/a.txt
+12. 每天的23:45分执行一次
+ 45 23 * * * touch ~/a.txt
+13. 每周三的23:45分执行一次
+ 45 23 * * 3 touch ~/a.txt
+14. 每周一到周五的9:25到11:35、13:00到15:00之间,每隔10分钟执行一次
+
+15. 每周一到周五的8:30、8:50、9:30、10:00、10:30、11:00、11:30、13:30、14:00、14:30、5:00分别执行一次
+ 30 8,9,10,11,13,14,15,16,17 * * 1-5 touch ~/a.txt
+ 50 8,9,10,11 * * 1-5 touch ~/a.txt
+16. 每天16:00、10:00执行一次0 10,16 * * * touch ~/a.txt
+ 0 10,16 * * * touch ~/a.txt
+17. 每天8:10、16:00、21:00分别执行一次
+ 10 8,16,21 * * * touch ~/a.txt
+18. 每天7:47、8:00分别执行一次
+ 47 7,8 * * * touch ~/a.txt
+```
+
+
+
+
diff --git "a/08 \346\242\205\345\277\240\351\222\246/2024.06.18 \347\216\257\345\242\203\345\217\230\351\207\217\347\273\203\344\271\240.md" "b/08 \346\242\205\345\277\240\351\222\246/2024.06.18 \347\216\257\345\242\203\345\217\230\351\207\217\347\273\203\344\271\240.md"
new file mode 100644
index 0000000..ea49515
--- /dev/null
+++ "b/08 \346\242\205\345\277\240\351\222\246/2024.06.18 \347\216\257\345\242\203\345\217\230\351\207\217\347\273\203\344\271\240.md"
@@ -0,0 +1,188 @@
+### 练习题 1: 显示当前所有的环境变量
+
+* 使用`printenv`或`env`命令来显示所有的环境变量。
+
+```bash
+abc@hecs-288034:~$ printenv
+SHELL=/bin/bash
+HISTSIZE=1000
+HISTTIMEFORMAT=%F %T abc
+PWD=/home/abc
+LOGNAME=abc
+XDG_SESSION_TYPE=tty
+MOTD_SHOWN=pam
+HOME=/home/abc
+LANG=en_US.UTF-8
+LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:
+SSH_CONNECTION=183.253.241.94 1523 192.168.0.220 22
+XDG_SESSION_CLASS=user
+TERM=xterm
+USER=abc
+SHLVL=1
+XDG_SESSION_ID=1144
+XDG_RUNTIME_DIR=/run/user/1003
+SSH_CLIENT=183.253.241.94 1523 22
+PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
+SSH_TTY=/dev/pts/0
+_=/usr/bin/printenv
+
+
+
+abc@hecs-288034:~$ env
+SHELL=/bin/bash
+HISTSIZE=1000
+HISTTIMEFORMAT=%F %T abc
+PWD=/home/abc
+LOGNAME=abc
+XDG_SESSION_TYPE=tty
+MOTD_SHOWN=pam
+HOME=/home/abc
+LANG=en_US.UTF-8
+LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:
+SSH_CONNECTION=183.253.241.94 1523 192.168.0.220 22
+XDG_SESSION_CLASS=user
+TERM=xterm
+USER=abc
+SHLVL=1
+XDG_SESSION_ID=1144
+XDG_RUNTIME_DIR=/run/user/1003
+SSH_CLIENT=183.253.241.94 1523 22
+PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
+SSH_TTY=/dev/pts/0
+_=/usr/bin/env
+
+```
+
+### 练习题 2: 显示`HOME`环境变量的值
+
+* 使用`echo`命令和`$`符号来显示`HOME`环境变量的值。
+
+```bash
+abc@hecs-288034:~$ echo $HOME
+/home/abc
+```
+
+### 练习题 3: 临时设置一个新的环境变量
+
+* 设置一个名为`MY_AGE`的环境变量,并将其值设置为`18`。
+
+```bash
+abc@hecs-288034:~$ export MY_AGE=18
+
+```
+
+### 练习题 4: 显示新设置的环境变量
+
+* 使用`echo`命令来显示`MY_AGE`的值。
+
+```bash
+abc@hecs-288034:~$ echo $MY_AGE
+18
+
+```
+
+### 练习题 5: 在新的shell会话中检查环境变量
+
+* 打开一个新的终端窗口或标签页,并尝试显示`MY_AGE`的值。你会看到什么?为什么?
+
+无任何显示,设置的临时环境变量只有在当前shell会话显示
+
+### 练习题 6: 修改`PATH`环境变量
+
+* 将`你当前用户的家目录`添加到你的`PATH`环境变量的末尾位置
+
+```bash
+
abc@hecs-288034:~$ export PATH=$PATH:/home/abc
+abc@hecs-288034:~$ echo $PATH
+/tmp:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/home/abc
+
+```
+
+将`/tmp`添加到你的`PATH`环境变量的开始位置,(注意:这可能会覆盖其他路径中的同名命令,所以请谨慎操作)。
+
+```bash
+
+
+abc@hecs-288034:~$ export PATH=/tmp:$PATH
+
+
+```
+
+### 练习题 7: 验证`PATH`的修改
+
+* 使用`echo`命令显示`PATH`的值,并确认`前面添加的目录`已经被添加到对应位置。
+
+```bash
+abc@hecs-288034:~$ echo $PATH
+/tmp:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
+
+```
+
+### 练习题 8: 永久设置环境变量
+
+* 在你的shell配置文件中(如`~/.bashrc`、`~/.bash_profile`、`~/.zshrc`等,取决于你使用的shell和配置)添加一行来永久设置`MY_NAME`,值设置为`奥德彪`。
+
+例如,对于bash shell,你可以使用:
+
+```bash
+
+abc@hecs-288034:~$ vim ~/.bashrc
+abc@hecs-288034:~$ source ~/.bashrc
+abc@hecs-288034:~$ echo $MY_NAME
+奥德彪
+
+```
+
+如何让`MY_NAME`生效,并验证
+
+```bash
+abc@hecs-288034:~$ source ~/.bashrc
+abc@hecs-288034:~$ echo $MY_NAME
+奥德彪
+
+```
+
+### 练习题 9: 清理
+
+* 清除你之前设置的`MY_AGE`和`PATH`的修改(如果你不想永久保留它们)。
+
+```bash
+abc@hecs-288034:~$ unset MY_AGE
+abc@hecs-288034:~$ echo $MY_AGE
+abc@hecs-288034:~$ export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+abc@hecs-288034:~$ echo $PATH
+/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/biE
+
+
+```
+
+### 练习题 10: 修改默认器
+
+* 使用`EDITOR`变量,修改你默认的编辑器为nano。
+
+```bash
+abc@hecs-288034:~$ export EDITOR=nano
+abc@hecs-288034:~$ echo $EDITO
+```
+
+### 练习题 11: 修改语言
+
+* 使用`LANG`变量,让你的文件支持中文和utf8编码来避免乱码。
+
+```bash
+abc@hecs-288034:~$ export LANG=zh_CN.utf8
+
+abc@hecs-288034:~$ echo $LANG
+zh_CN.utf8
+
+
+```
+
+- 使用`LANGUAGE`变量,让你的命令提示为中文
+
+```bash
+abc@hecs-288034:~$ export LANGUAGE=zh_CN
+abc@hecs-288034:~$ echo $LANGUAGE
+zh_CN
+
+```
--
Gitee