diff --git "a/23 \345\217\262\345\255\246\346\226\260/20240618 \347\216\257\345\242\203\345\217\230\351\207\217\345\222\214\345\221\250\346\234\237\344\273\273\345\212\241.md" "b/23 \345\217\262\345\255\246\346\226\260/20240618 \347\216\257\345\242\203\345\217\230\351\207\217\345\222\214\345\221\250\346\234\237\344\273\273\345\212\241.md" new file mode 100644 index 0000000000000000000000000000000000000000..516ea26d4565cb9c0ebef239139e745d0903d6e0 --- /dev/null +++ "b/23 \345\217\262\345\255\246\346\226\260/20240618 \347\216\257\345\242\203\345\217\230\351\207\217\345\222\214\345\221\250\346\234\237\344\273\273\345\212\241.md" @@ -0,0 +1,319 @@ +## 笔记 + +```bash +用户级别环境变量 + - 存储在用户家目录的个人配置文件中,例如 ~/.bashrc、~/.profile + - 用于定义用户个人的Shell设置,如别名、路径等。针对不同用户单独设置 + +系统级别环境变量: + - 存储在系统范围的配置文件中,如 /etc/environment、/etc/profile + +环境变量加载顺序 +/etc/environment,一开源就加载,不会显示出来 +登录shell先加载 /etc/profile,然后根据用户登录方式加载 ~/.profile +一般情况下是 /etc/environment > /etc/profile > ~/.profile > ~/.bashrc + +临时环境变量的设置: +MY_AGE=18 只有当前用户可以使用,换一个就用不了 +export MY_AGE=18 全局的,整个环境都可以用 +没有写在文件里面,这两个都是纯命令行,都是临时变量,关掉shell就不生效了 + +永久环境变量的设置要写在相应的文件里面 +用户级的写在~/.bashrc 或 ~/.profile 文件里面 +用户级的需要写上 export,重启系统后自动生效 + +系统级别的写在/etc/environment 或 /etc/profile 文件里面,系统级别的不需要写export命令,重启后自动生效 + + +用户可以使用crontab命令来编辑、查看或删除自己的Cron任务 ##用户级 +编辑Cron任务 +crontab -e # edit +查看Cron任务 +crontab -l # list +删除Cron任务 +crontab -r # remove + +* * * * * command_to_execute # command_to_execute 可以是命令也可以是包含命令的文件 +| | | | | +| | | | +----- 星期几 (0 - 7) (星期天 = 0 或 7) +| | | +------- 月份 (1 - 12) +| | +--------- 日期 (1 - 31) +| +----------- 小时 (0 - 23) ++------------- 分钟 (0 - 59) + +星号(`*`)含义:匹配任何值,,即每一。 +逗号(`,`)含义:指定一个列表值,列出所有指定值 a,b,c。 +短横线(`-`)含义:指定一个范围值,开始-结尾。 +斜杠(`/`)含义:指定步长值,即间隔。 +L(Last)含义:表示最后一个。可以在月的天数或星期几中使用。 +``` + + + +### 练习题 1: 显示当前所有的环境变量 + +* 使用`printenv`或`env`命令来显示所有的环境变量。 + + +```bash +printenv +或 +env +``` +### 练习题 2: 显示`HOME`环境变量的值 + +* 使用`echo`命令和`$`符号来显示`HOME`环境变量的值。 + + +```bash +echo $HOME +``` +### 练习题 3: 临时设置一个新的环境变量 + +* 设置一个名为`MY_AGE`的环境变量,并将其值设置为`18`。 + + +```bash +MY_AGE=18 +``` +### 练习题 4: 显示新设置的环境变量 + +* 使用`echo`命令来显示`MY_AGE`的值。 + + +```bash +echo $MY_AGE +``` +### 练习题 5: 在新的shell会话中检查环境变量 + +* 打开一个新的终端窗口或标签页,并尝试显示`MY_AGE`的值。你会看到什么?为什么? + + ``` + 刚定义的MY_AGE环境变量没有生效,因为它是定义在当前窗口,也不是全局变量,所以新的窗口不生效 + ``` + +### 练习题 6: 修改`PATH`环境变量 + +* 将`你当前用户的家目录`添加到你的`PATH`环境变量的末尾位置 + + +```bash +export PATH=$PATH:/home/shi02 +``` +将`/tmp`添加到你的`PATH`环境变量的开始位置,(注意:这可能会覆盖其他路径中的同名命令,所以请谨慎操作)。 + +```bash +export PATH=/tmp:$PATH +``` + +### 练习题 7: 验证`PATH`的修改 + +* 使用`echo`命令显示`PATH`的值,并确认`前面添加的目录`已经被添加到对应位置。 + + +```bash +echo $PATH +``` +### 练习题 8: 永久设置环境变量 + +* 在你的shell配置文件中(如`~/.bashrc`、`~/.bash_profile`、`~/.zshrc`等,取决于你使用的shell和配置)添加一行来永久设置`MY_NAME`,值设置为`奥德彪`。 + +例如,对于bash shell,你可以使用: + + +```bash +echo 'export MY_NAME="奥德彪" ' >> ~/.bashrc +``` +如何让`MY_NAME`生效,并验证 + +```bash +source ~/.bashrc +echo MY_NAME +``` + +练习题 9: 清理 + +* 清除你之前设置的`MY_AGE`和`PATH`的修改(如果你不想永久保留它们)。 + + +```bash +unset MY_NAME +清除PATH不会 +``` +### 练习题 10: 修改默认器 + +* 使用`EDITOR`变量,修改你默认的编辑器为nano。 + + +```bash +export EDITOR=nano +``` + +### 练习题 11: 修改语言 + +* 使用`LANG`变量,让你的文件支持中文和utf8编码来避免乱码。 + +```bash +export LANG=zh_CH.uft8 +``` + +- 使用`LANGUAGE`变量,让你的命令提示为中文 + +```bash +export LANGUAGE=zh_CH.uft8 +``` + + + +### 周期任务练习 + +执行在家目录touch a.txt + +1. 每天3:00执行一次 + + ``` + 0 3 * * * touch ~/a.txt + ``` + + + +2. 每周六2:00执行 + + ``` + 0 3 * * 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/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分钟执行一次 + + ``` + 25-34/10 9-11 * * 1-5 touch ~/a.txt + 0-59/10 13-15 * * 1-5 touch ~/a.txt + ``` + + + +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-11,13,14 * * 1-5 touch ~/a.txt + 50 8 * * 1-5 touch ~/a.txt + 0 5,10,11,14 * * 1-5 touch ~/a.txt + ``` + + + +16. 每天16:00、10:00执行一次 + + ``` + 0 10,16 * * * touch ~/a.txt + ``` + + + +17. 每天8:10、16:00、21:00分别执行一次 + + ``` + 10 8 * * * touch ~/a.txt + 0 16,21 * * touch ~/a.txt + ``` + + + +18. 每天7:47、8:00分别执行一次 + + ``` + 47 7 * * * touch ~/a.txt + 0 8 * * * touch ~/a.txt + ``` + +