diff --git "a/16\351\231\210\347\201\265\351\222\260/20240618.md" "b/16\351\231\210\347\201\265\351\222\260/20240618.md" deleted file mode 100644 index dd65bb421d1370e74c4f78ba58a4cc5c7e32c7f7..0000000000000000000000000000000000000000 --- "a/16\351\231\210\347\201\265\351\222\260/20240618.md" +++ /dev/null @@ -1,245 +0,0 @@ -## 周期任务练习 - -执行在家目录touch a.txt - -1. 每天3:00执行一次 - - ```sh - 0 3 * * * touch ~/a.txt - ``` - -2. 每周六2:00执行 - - ```sh - 0 2 * * 6 touch ~/a.txt - ``` - -3. 每周六1:05执行 - - ```sh - 5 1 * * 6 touch ~/a.txt - ``` - -4. 每周六1:25执行 - - ```sh - 25 1 * * 6 touch ~/a.txt - ``` - -5. 每天8:40执行 - - ```sh - 40 8 * * * touch ~/a.txt - ``` - -6. 每天3:50执行 - - ``` - 50 3 * * * touch ~/a.txt - ``` - -7. 每周一到周五的3:40执行 - - ```sh - 40 3 * * 1-5 touch ~/a.txt - ``` - -8. 每周一到周五的3:41开始,每10分钟执行一次 **★** - - ```sh - 41-59/10 3 * * 1-5 touch ~/a.txt - ``` - -9. 每天的10:31开始,每2小时执行一次 - - ```sh - 31 10-23/2 * * * touch ~/a.txt - ``` - -10. 每周一到周三的9:30执行一次 - - ```sh - 30 9 * * 1-3 touch ~/a.txt - ``` - -11. 每周一到周五的8:00,每周一到周五的9:00执行一次 - - ```sh - 0 8,9 * * 1-5 touch ~/a.txt - ``` - -12. 每天的23:45分执行一次 - - ```sh - 45 23 * * * touch ~/a.txt - ``` - -13. 每周三的23:45分执行一次 - - ```sh - 45 23 * * 3 touch ~/a.txt - ``` - -14. 每周一到周五的9:25到11:35、13:00到15:00之间,每隔10分钟执行一次**★** - - ```sh - 25-35/10 9-11 * * * touch ~/a.txt - 0-50/10 13-15 * * * 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分别执行一次 - - ```sh - 50 8 * * 1-5 touch ~/a.txt - 0 5,10,11,14 * * 1-5 touch ~/a.txt - 30 8,9,10,11,13,14 * * 1-5 touch ~/a.txt - ``` - -16. 每天16:00、10:00执行一次 - - ```sh - 0 10,16 * * * touch ~/a.txt - ``` - -17. 每天8:10、16:00、21:00分别执行一次 - - ```sh - 10 8 * * * touch ~/a.txt - 0 16,21 * * * touch ~/a.txt - ``` - -18. 每天7:47、8:00分别执行一次 - - ```sh - 47 7 * * * touch ~/a.txt - 0 8 * * * touch ~/a.txt - ``` - - -### 练习题 1: 显示当前所有的环境变量 - -* 使用`printenv`或`env`命令来显示所有的环境变量。 - - -```sh -printenv env -``` -### 练习题 2: 显示`HOME`环境变量的值 - -* 使用`echo`命令和`$`符号来显示`HOME`环境变量的值。sh - - -```bash -echo $HOME -``` -### 练习题 3: 临时设置一个新的环境变量 - -* 设置一个名为`MY_AGE`的环境变量,并将其值设置为`18`。 - - -```bash -MY_AGE=18 -#显示环境变量的值 -``` -### 练习题 4: 显示新设置的环境变量 - -* 使用`echo`命令来显示`MY_AGE`的值。 - - -```bash -echo $MY_AGE -``` -### 练习题 5: 在新的shell会话中检查环境变量 - -* 打开一个新的终端窗口或标签页,并尝试显示`MY_AGE`的值。你会看到什么?为什么? - - - - ```sh - #会看到空白,因为MY_AGE是在当前shell中设置的临时变量,不会传递到新的shell会话中。 - ``` - - - -### 练习题 6: 修改`PATH`环境变量 - -* 将`你当前用户的家目录`添加到你的`PATH`环境变量的末尾位置 - - -```bash -PATH=$PATH:$HOME -``` -将`/tmp`添加到你的`PATH`环境变量的开始位置,(注意:这可能会覆盖其他路径中的同名命令,所以请谨慎操作)。 - -```sh -PATH=/tmp:$PATH -``` - -### 练习题 7: 验证`PATH`的修改 - -* 使用`echo`命令显示`PATH`的值,并确认`前面添加的目录`已经被添加到对应位置。 - - -```sh -echo $PATH -``` -### 练习题 8: 永久设置环境变量 - -* 在你的shell配置文件中(如`~/.bashrc`、`~/.bash_profile`、`~/.zshrc`等,取决于你使用的shell和配置)添加一行来永久设置`MY_NAME`,值设置为`奥德彪`。 - -例如,对于bash shell,你可以使用: - - -```bash -echo 'export MT_NAME="奥德彪"' >> ~/.bashrc -``` -如何让`MY_NAME`生效,并验证 - -```sh -source ~/.bashrc #刷新 -echo $MY_NAME -``` - -### 练习题 9: 清理 - -* 清除你之前设置的`MY_AGE`和`PATH`的修改(如果你不想永久保留它们)。 - - -```bash -unset MY_AGE -PATH=$(echo $PATH | sed -e 's/:\/tmp//g') -# echo $PATH:首先通过echo $PATH命令输出当前PATH环境变量的值,$PATH是一个存储路径的环境变量,多个路径之间用冒号分隔。 - -# |:管道符号|将echo $PATH的输出作为下一条命令的输入。 - -# sed -e 's/:\/tmp//g':sed是流编辑器,-e表示后面跟着一个编辑动作。's/:\/tmp//g'是一个替换操作的命令: -# s/表示替换的操作 -# :/tmp是要替换的目标字符串,即要删除的路径/tmp -# /是分隔符,用来区分不同的部分 -# //为空,表示目标字符串删除后不留空格 -# g表示全局替换,即一行中的所有匹配项都会替换。 -# 因此,整句命令的作用是将PATH中包含的/tmp路径删除,从而清除PATH中之前添加的/tmp目录,确保环境变量PATH不包含/tmp路径。 - -``` -### 练习题 10: 修改默认器 - -* 使用`EDITOR`变量,修改你默认的编辑器为nano。 - - -```bash -export EDITOR=nano -``` - -### 练习题 11: 修改语言 - -* 使用`LANG`变量,让你的文件支持中文和utf8编码来避免乱码。 - -```sh -export LANG=zh_CN.UTF-8 -``` - -- 使用`LANGUAGE`变量,让你的命令提示为中文 - -```sh -export LANGUAGE=zh.CN.UTF-8 -``` \ No newline at end of file diff --git "a/16\351\231\210\347\201\265\351\222\260/20240618\345\221\250\346\234\237\344\273\273\345\212\241\347\216\257\345\242\203\345\217\230\351\207\217.md" "b/16\351\231\210\347\201\265\351\222\260/20240618\345\221\250\346\234\237\344\273\273\345\212\241\347\216\257\345\242\203\345\217\230\351\207\217.md" new file mode 100644 index 0000000000000000000000000000000000000000..5449b223733424e284ce46063a58ab9891c6df7c --- /dev/null +++ "b/16\351\231\210\347\201\265\351\222\260/20240618\345\221\250\346\234\237\344\273\273\345\212\241\347\216\257\345\242\203\345\217\230\351\207\217.md" @@ -0,0 +1,505 @@ +## 周期任务练习 + +执行在家目录touch a.txt + +1. 每天3:00执行一次 + + ~~~ shell + 0 3 * * * + ~~~ + + + +2. 每周六2:00执行 + + ~~~ shell + 0 2 * * 6 + ~~~ + + + +3. 每周六1:05执行 + + ~~~ shell + 5 1 * * 6 + +4. 每周六1:25执行 + + + + ~~~ shell + 25 1 * * 6 + +5. 每天8:40执行 + + ~~~ shell + 40 8 * * * + +6. 每天3:50执行 + + ~~~ shell + 50 3 * * * + +7. 每周一到周五的3:40执行 + + ~~~ shell + 40 3 * * 3-5 + +8. 每周一到周五的3:41开始,每10分钟执行一次 + + ~~~ shell + 41-59/10,*/10 3,1-2,4-23 * * 1-5 + +9. 每天的10:31开始,每2小时执行一次 + + ~~~ shell + 31 10-23/2 * * * + +10. 每周一到周三的9:30执行一次 + + ~~~ shell + 30 9 * * 1-3 + +11. 每周一到周五的8:00,每周一到周五的9:00执行一次 + + ~~~ shell + 0 8,9 * * 1-5 + +12. 每天的23:45分执行一次 + + ~~~ shell + 45 23 * * * + +13. 每周三的23:45分执行一次 + + ~~~ shell + 45 23 * * 3 + +14. 每周一到周五的9:25到11:35、13:00到15:00之间,每隔10分钟执行一次 + + ~~~ shell + 25-35/10 9-11 * * 1-5 + 0 13-15 * * 1-5 + + +15. 每周一到周五的8:30、8:50、9:30、10:00、10:30、11:00、11:30、13:30、14:00、14:30、5:00分别执行一次 + + ~~~ shell + 30,50 8 * * 1-5 + 0,30 10-11,13-14 * * 1-5 + 0 5 * * 1-5 + ~~~ + +16. 每天16:00、10:00执行一次 + + ~~~ shell + 0 10,16 * * * + +17. 每天8:10、16:00、21:00分别执行一次 + + ~~~ shell + 10 8 * * * + 0 16,21 * * * + +18. 每天7:47、8:00分别执行一次 + + ~~~ shell + 47 7 * * * + 0 8 * * * + +## 环境变量练习 + +### 练习题 1: 显示当前所有的环境变量 + +* 使用`printenv`或`env`命令来显示所有的环境变量。 + + +```bash +root@hecs-344360:~# printenv +print environment +root@hecs-344360:~# env + +``` +### 练习题 2: 显示`HOME`环境变量的值 + +* 使用`echo`命令和`$`符号来显示`HOME`环境变量的值。 + + +```bash +root@hecs-344360:~# echo $HOME + +``` +### 练习题 3: 临时设置一个新的环境变量 + +* 设置一个名为`MY_AGE`的环境变量,并将其值设置为`18`。 + + +```bash +root@hecs-344360:~# MY_AGE=18 +root@hecs-344360:~# echo $MY_AGE +18 +``` +### 练习题 4: 显示新设置的环境变量 + +* 使用`echo`命令来显示`MY_AGE`的值。 + + +```bash +root@hecs-344360:~# echo $MY_VARIABLE +``` +### 练习题 5: 在新的shell会话中检查环境变量 + +* 打开一个新的终端窗口或标签页,并尝试显示`MY_AGE`的值。你会看到什么?为什么? + + ~~~ shell + 显示空白,就是没有设置 + root@hecs-344360:~# echo $MY_AGE + + + ~~~ + + + +### 练习题 6: 修改`PATH`环境变量 + +* 将`你当前用户的家目录`添加到你的`PATH`环境变量的末尾位置 + + +```bash +root@hecs-344360:~# echo $PATH +/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +root@hecs-344360:~# export PATH=$PATH:$HOME +root@hecs-344360:~# echo $PATH +/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root + +``` +将`/tmp`添加到你的`PATH`环境变量的开始位置,(注意:这可能会覆盖其他路径中的同名命令,所以请谨慎操作)。 + +```bash +root@hecs-344360:~# export PATH=/tmp:$PATH +root@hecs-344360:~# echo $PATH +/tmp:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root +``` + +### 练习题 7: 验证`PATH`的修改 + +* 使用`echo`命令显示`PATH`的值,并确认`前面添加的目录`已经被添加到对应位置。 + + +```bash +/tmp:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root +``` +### 练习题 8: 永久设置环境变量 + +* 在你的shell配置文件中(如`~/.bashrc`、`~/.bash_profile`、`~/.zshrc`等,取决于你使用的shell和配置)添加一行来永久设置`MY_NAME`,值设置为`奥德彪`。 + +例如,对于bash shell,你可以使用: + + +```bash +root@hecs-344360:~# vim .bashrc +export MY_NAME="奥德彪" +root@hecs-344360:~# source .bashrc +source 主动更新.bashrc + +``` +如何让`MY_NAME`生效,并验证 + +```shell +root@hecs-344360:~# echo $MY_NAME +奥德彪 +``` + +### 练习题 9: 清理 + +* 清除你之前设置的`MY_AGE`和`PATH`的修改(如果你不想永久保留它们)。 + + +```bash +root@hecs-344360:~# unset MY_AGE +清除对MY_AGE的设置 + +#之前的设置 +/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin + +root@hecs-344360:~# export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +root@hecs-344360:~# echo $PATH +/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin + +``` +### 练习题 10: 修改默认器 + +* 使用`EDITOR`变量,修改你默认的编辑器为nano。 + + +```bash +root@hecs-344360:~# export EDITOR=nano +root@hecs-344360:~# echo $EDITOR +nano +``` + +### 练习题 11: 修改语言 + +* 使用`LANG`变量,让你的文件支持中文和utf8编码来避免乱码。 + +```bash +root@hecs-344360:~# export LANG=zh_CN.utf8 +``` + +- 使用`LANGUAGE`变量,让你的命令提示为中文 + +````bash +root@hecs-344360:~# export LANGUAGE=zh_CN.utf8## 周期任务练习 + +执行在家目录touch a.txt + +1. 每天3:00执行一次 + + ~~~ shell + 0 3 * * * + ~~~ + + + +2. 每周六2:00执行 + + ~~~ shell + 0 2 * * 6 + ~~~ + + + +3. 每周六1:05执行 + + ~~~ shell + 5 1 * * 6 + +4. 每周六1:25执行 + + + + ~~~ shell + 25 1 * * 6 + +5. 每天8:40执行 + + ~~~ shell + 40 8 * * * + +6. 每天3:50执行 + + ~~~ shell + 50 3 * * * + +7. 每周一到周五的3:40执行 + + ~~~ shell + 40 3 * * 3-5 + +8. 每周一到周五的3:41开始,每10分钟执行一次 + + ~~~ shell + 41-59/10,*/10 3,1-2,4-23 * * 1-5 + +9. 每天的10:31开始,每2小时执行一次 + + ~~~ shell + 31 10-23/2 * * * + +10. 每周一到周三的9:30执行一次 + + ~~~ shell + 30 9 * * 1-3 + +11. 每周一到周五的8:00,每周一到周五的9:00执行一次 + + ~~~ shell + 0 8,9 * * 1-5 + +12. 每天的23:45分执行一次 + + ~~~ shell + 45 23 * * * + +13. 每周三的23:45分执行一次 + + ~~~ shell + 45 23 * * 3 + +14. 每周一到周五的9:25到11:35、13:00到15:00之间,每隔10分钟执行一次 + + ~~~ shell + 25-35/10 9-11 * * 1-5 + 0 13-15 * * 1-5 + + +15. 每周一到周五的8:30、8:50、9:30、10:00、10:30、11:00、11:30、13:30、14:00、14:30、5:00分别执行一次 + + ~~~ shell + 30,50 8 * * 1-5 + 0,30 10-11,13-14 * * 1-5 + 0 5 * * 1-5 + ~~~ + +16. 每天16:00、10:00执行一次 + + ~~~ shell + 0 10,16 * * * + +17. 每天8:10、16:00、21:00分别执行一次 + + ~~~ shell + 10 8 * * * + 0 16,21 * * * + +18. 每天7:47、8:00分别执行一次 + + ~~~ shell + 47 7 * * * + 0 8 * * * + +## 环境变量练习 + +### 练习题 1: 显示当前所有的环境变量 + +* 使用`printenv`或`env`命令来显示所有的环境变量。 + + +```bash +root@hecs-344360:~# printenv +print environment +root@hecs-344360:~# env + +``` +### 练习题 2: 显示`HOME`环境变量的值 + +* 使用`echo`命令和`$`符号来显示`HOME`环境变量的值。 + + +```bash +root@hecs-344360:~# echo $HOME + +``` +### 练习题 3: 临时设置一个新的环境变量 + +* 设置一个名为`MY_AGE`的环境变量,并将其值设置为`18`。 + + +```bash +root@hecs-344360:~# MY_AGE=18 +root@hecs-344360:~# echo $MY_AGE +18 +``` +### 练习题 4: 显示新设置的环境变量 + +* 使用`echo`命令来显示`MY_AGE`的值。 + + +```bash +root@hecs-344360:~# echo $MY_VARIABLE +``` +### 练习题 5: 在新的shell会话中检查环境变量 + +* 打开一个新的终端窗口或标签页,并尝试显示`MY_AGE`的值。你会看到什么?为什么? + + ~~~ shell + 显示空白,就是没有设置 + root@hecs-344360:~# echo $MY_AGE + + + ~~~ + + + +### 练习题 6: 修改`PATH`环境变量 + +* 将`你当前用户的家目录`添加到你的`PATH`环境变量的末尾位置 + + +```bash +root@hecs-344360:~# echo $PATH +/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +root@hecs-344360:~# export PATH=$PATH:$HOME +root@hecs-344360:~# echo $PATH +/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root + +``` +将`/tmp`添加到你的`PATH`环境变量的开始位置,(注意:这可能会覆盖其他路径中的同名命令,所以请谨慎操作)。 + +```bash +root@hecs-344360:~# export PATH=/tmp:$PATH +root@hecs-344360:~# echo $PATH +/tmp:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root +``` + +### 练习题 7: 验证`PATH`的修改 + +* 使用`echo`命令显示`PATH`的值,并确认`前面添加的目录`已经被添加到对应位置。 + + +```bash +/tmp:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root +``` +### 练习题 8: 永久设置环境变量 + +* 在你的shell配置文件中(如`~/.bashrc`、`~/.bash_profile`、`~/.zshrc`等,取决于你使用的shell和配置)添加一行来永久设置`MY_NAME`,值设置为`奥德彪`。 + +例如,对于bash shell,你可以使用: + + +```bash +root@hecs-344360:~# vim .bashrc +export MY_NAME="奥德彪" +root@hecs-344360:~# source .bashrc +source 主动更新.bashrc + +``` +如何让`MY_NAME`生效,并验证 + +```shell +root@hecs-344360:~# echo $MY_NAME +奥德彪 +``` + +### 练习题 9: 清理 + +* 清除你之前设置的`MY_AGE`和`PATH`的修改(如果你不想永久保留它们)。 + + +```bash +root@hecs-344360:~# unset MY_AGE +清除对MY_AGE的设置 + +#之前的设置 +/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin + +root@hecs-344360:~# export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +root@hecs-344360:~# echo $PATH +/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin + +``` +### 练习题 10: 修改默认器 + +* 使用`EDITOR`变量,修改你默认的编辑器为nano。 + + +```bash +root@hecs-344360:~# export EDITOR=nano +root@hecs-344360:~# echo $EDITOR +nano +``` + +### 练习题 11: 修改语言 + +* 使用`LANG`变量,让你的文件支持中文和utf8编码来避免乱码。 + +```bash +root@hecs-344360:~# export LANG=zh_CN.utf8 +``` + +- 使用`LANGUAGE`变量,让你的命令提示为中文 + +```bash +root@hecs-344360:~# export LANGUAGE=zh_CN.utf8 +``` +```` \ No newline at end of file diff --git "a/16\351\231\210\347\201\265\351\222\260/20240620\350\277\233\347\250\213\347\256\241\347\220\206\346\234\215\345\212\241\347\256\241\347\220\206.md" "b/16\351\231\210\347\201\265\351\222\260/20240620\350\277\233\347\250\213\347\256\241\347\220\206\346\234\215\345\212\241\347\256\241\347\220\206.md" new file mode 100644 index 0000000000000000000000000000000000000000..673b7decaa2d77fd7d6d89b875b611d781a90216 --- /dev/null +++ "b/16\351\231\210\347\201\265\351\222\260/20240620\350\277\233\347\250\213\347\256\241\347\220\206\346\234\215\345\212\241\347\256\241\347\220\206.md" @@ -0,0 +1,103 @@ +## 一、进程管理 + +### 1.ps命令 + +ps命令用于列出当前正在运行的进程 + +(1) **ps -aux**:显示所有用户的所有进程。 + +(2) **ps -ef**:以完整格式显示所有进程。 + +(3) **ps -e --forest**:以树形结构显示进程关系。 + +查看详细信息中进程状态相关字母含义: + +S:等待态 +T:停止态 +R:运行态 +Z:僵尸态 +D:不可被中断的等待态进程 +X:死亡态 +s:拥有子进程的进程 +大写的i:闲置在内核的进程 +小写的L:拥有子线程的进程 +<:高优先级的进程 +N:优先级较低的进程 ++:运行在前台的进程 + +### 2. kill命令 + +kill命令用于终止指定进程。可以使用进程的PID或名称来指定要终止的进程。以下是一些常用的kill命令选项: + +(1) kill PID(是一个数子ID):使用进程的PID终止进程 + +(2) -1或–hangup:SIGHUP,挂起信号。通常用于重启或重新加载进程 + +```bash +kill -1 PID +``` + +(3) -2或–interrupt:SIGINT,中断信号。通常由Ctrl+C发送给前台进程 + +```bash + kill -2 PID +``` + +(3) -3或–quit:SIGQUIT,退出信号。通常由Ctrl+\发送给前台进程 + +(4) kill -9 PID:使用强制终止信号(SIGKILL)终止进程 + +(5) -15或–terminate:SIGTERM,终止信号。默认的终止信号,要求进程优雅地退出 + +(6) -17或–stop:SIGSTOP,停止信号。暂停进程的执行,可以使用kill -CONT恢复执行 + +(7) -18或–continue:SIGCONT,继续信号。恢复被停止的进程的执行。 + +### 3.监视和控制进程 + +除了基本的进程管理命令外,Linux还提供了其他工具和技术来监视和控制进程的运行。 + +htop命令:一个更强大的交互式进程查看器,提供了实时的进程监视和系统状态信息。 + +top命令:用于实时查看系统中的进程和系统状态。它提供了一个交互式界面,显示CPU使用率、内存使用率和进程列表等信息。 + +进程限制:Linux允许设置进程的资源限制,例如内存限制和CPU时间限制。通过使用ulimit命令,可以查看和修改进程的资源限制。 + +进程优先级:可以使用nice和renice命令调整进程的优先级。较高的优先级意味着进程将更多地获得CPU资源。 + +## 二、服务管理 + +### 1.Service + +service 命令是使用 System V 作为 init 系统的 Linux 发行版中用来控制系统服务的实用工具 + +service 命令的作用是去 /etc/init.d 目录下寻找相应的服务,可以启动、停止、重启系统服务,还可以显示所有系统服务的当前状态 + +**Service命令用法**:service 服务名 [start| stop | restart | reload | status] + +### 2.Systemctl + +systemctl 是 systemd 的主要命令行工具,用于管理系统和服务。它可以启动、停止、重启服务,查看服务状态,启用或禁用服务等 + +#### systemctl的基本用法 + + +(1) 启动服务 + +sudo systemctl start [service_name] + +(2) 停止服务 + +sudo systemctl stop [service_name] + +(3) 重启服务 + +sudo systemctl restart [service_name] + +(4) 重新加载服务配置,而不中断服务运行: + +sudo systemctl reload [service_name] + +(5) 查看服务状态 + +systemctl status [service_name] \ No newline at end of file diff --git "a/16\351\231\210\347\201\265\351\222\260/20240624\346\234\215\345\212\241\347\256\241\347\220\206.md" "b/16\351\231\210\347\201\265\351\222\260/20240624\346\234\215\345\212\241\347\256\241\347\220\206.md" new file mode 100644 index 0000000000000000000000000000000000000000..51731d57482e076f41434542bd7f218fc125af70 --- /dev/null +++ "b/16\351\231\210\347\201\265\351\222\260/20240624\346\234\215\345\212\241\347\256\241\347\220\206.md" @@ -0,0 +1,59 @@ +````bash +1.init是Linux系统操作中不可缺少的程序之一。init进程,它是一个由内核启动的用户级进程,然后由它来启动后面的任务,包括多用户环境,网络等。 + +2.service命令其实是去/etc/init.d目录下,去执行相关程序,init.d目录包含许多系统各种服务的启动和停止脚本。当Linux启动时,会寻找这些目录中的服务脚本,并根据脚本的run level确定不同的启动级别。 + +3.systemctl是一个systemd工具,主要负责控制systemd系统和服务管理器。 +在systemd管理体系中,被管理的deamon(守护进程)称作unit(单元),对于单元的管理是通过命令systemctl来进行控制的。unit表示不同类型的systemd对象,通过配置文件进行标识和配置;文件主要包含了系统服务、监听socket、保存的系统快照以及其它与init相关的信息。 + + +一.service nginx start : + +1.如果 你是system v,其实是用/etc/init.d/nginx start实现 + +2.如果 你是systemd ,其实是用systemctl start nginx 来实现 + +二.早期的linux可以/etc/init.d/服务名 操作命令 或者 service 服务名 操作命令 + + 现代的linux可以systemctl 操作命令 服务名 + +三.操作命令包含: +指令 功能 +systemctl list-unit-files 获取所用可用单元 +systemctl list-units 获取所有运行中的单元 +systemctl status service 获取service的状态 +systemctl start/stop/estart/reload service 改变service 的状态 启动、重启、停止、重载服务 +systemctl enable/disable service 是否开机自启 +systemctl kill service 强制结束服务 +systemctl daemon-reload 刷新systemd的配置文件 + +四.查看所有运行的服务: +1.service --status-all [简约版,直观] +2.systemctl list-unit-files [ 详细版,要自行筛选] + +练习: + +给自己的服务安装apache服务 + +```bash +systemctl stop nginx //停止nginx +systemctl status nginx //查看nginx运行状态 +apt install apache2 //安装apache +systemctl start apache2 //开启apache +systemctl status apache2 +``` + +或者 + +```bash +默认情况下,nginx监听80端口,apache监听80端口。 + +要改变nginx监听的端口,编辑nginx的配置文件/etc/nginx/sites-available/default,将listen 80;改为listen 8080;。 + +要改变apache监听的端口,编辑apache的配置文件/etc/httpd/conf/httpd.conf或/etc/apache2/ports.conf,找到Listen 80,并将80改为其它端口号,比如Listen 8081。 + +重启nginx和apache以应用更改: +sudo systemctl restart nginx +sudo systemctl restart apache2 +```xxxxxxxxxx root@hecs-344360:~# export LANGUAGE=zh_CN.utf8## 周期任务练习执行在家目录touch a.txt1. 每天3:00执行一次   ~~~ shell   0 3 * * *   ~~~   2. 每周六2:00执行   ~~~ shell   0 2 * * 6   ~~~   3. 每周六1:05执行   ~~~ shell   5 1 * * 64. 每周六1:25执行     ~~~ shell   25 1 * * 65. 每天8:40执行   ~~~ shell   40 8 * * *6. 每天3:50执行   ~~~ shell   50 3 * * *7. 每周一到周五的3:40执行   ~~~ shell   40 3 * * 3-58. 每周一到周五的3:41开始,每10分钟执行一次   ~~~ shell   41-59/10,*/10 3,1-2,4-23 * * 1-59. 每天的10:31开始,每2小时执行一次   ~~~ shell   31 10-23/2 * * * 10. 每周一到周三的9:30执行一次   ~~~ shell    30 9 * * 1-311. 每周一到周五的8:00,每周一到周五的9:00执行一次   ~~~ shell    0 8,9 * * 1-512. 每天的23:45分执行一次   ~~~ shell    45 23 * * *13. 每周三的23:45分执行一次   ~~~ shell    45 23 * * 314. 每周一到周五的9:25到11:35、13:00到15:00之间,每隔10分钟执行一次   ~~~ shell    25-35/10 9-11 * * 1-5    0 13-15 * * 1-5    15. 每周一到周五的8:30、8:50、9:30、10:00、10:30、11:00、11:30、13:30、14:00、14:30、5:00分别执行一次   ~~~ shell    30,50 8 * * 1-5    0,30 10-11,13-14 * * 1-5    0 5 * * 1-5   ~~~16. 每天16:00、10:00执行一次   ~~~ shell    0 10,16 * * *17. 每天8:10、16:00、21:00分别执行一次   ~~~ shell    10 8 * * *    0 16,21 * * *18. 每天7:47、8:00分别执行一次   ~~~ shell    47 7 * * *    0 8 * * *## 环境变量练习### 练习题 1: 显示当前所有的环境变量* 使用`printenv`或`env`命令来显示所有的环境变量。```bashroot@hecs-344360:~# printenvprint environmentroot@hecs-344360:~# env```### 练习题 2: 显示`HOME`环境变量的值* 使用`echo`命令和`$`符号来显示`HOME`环境变量的值。```bashroot@hecs-344360:~# echo $HOME```### 练习题 3: 临时设置一个新的环境变量* 设置一个名为`MY_AGE`的环境变量,并将其值设置为`18`。```bashroot@hecs-344360:~# MY_AGE=18root@hecs-344360:~# echo $MY_AGE 18```### 练习题 4: 显示新设置的环境变量* 使用`echo`命令来显示`MY_AGE`的值。```bashroot@hecs-344360:~# echo $MY_VARIABLE```### 练习题 5: 在新的shell会话中检查环境变量* 打开一个新的终端窗口或标签页,并尝试显示`MY_AGE`的值。你会看到什么?为什么? ~~~ shell 显示空白,就是没有设置 root@hecs-344360:~# echo $MY_AGE     ~~~  ### 练习题 6: 修改`PATH`环境变量* 将`你当前用户的家目录`添加到你的`PATH`环境变量的末尾位置```bashroot@hecs-344360:~# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/binroot@hecs-344360:~# export PATH=$PATH:$HOMEroot@hecs-344360:~# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root```将`/tmp`添加到你的`PATH`环境变量的开始位置,(注意:这可能会覆盖其他路径中的同名命令,所以请谨慎操作)。```bashroot@hecs-344360:~# export PATH=/tmp:$PATHroot@hecs-344360:~# echo $PATH /tmp:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root```### 练习题 7: 验证`PATH`的修改* 使用`echo`命令显示`PATH`的值,并确认`前面添加的目录`已经被添加到对应位置。```bash/tmp:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root```### 练习题 8: 永久设置环境变量* 在你的shell配置文件中(如`~/.bashrc`、`~/.bash_profile`、`~/.zshrc`等,取决于你使用的shell和配置)添加一行来永久设置`MY_NAME`,值设置为`奥德彪`。例如,对于bash shell,你可以使用:```bashroot@hecs-344360:~# vim .bashrc export MY_NAME="奥德彪"root@hecs-344360:~# source .bashrc source 主动更新.bashrc```如何让`MY_NAME`生效,并验证```shellroot@hecs-344360:~# echo $MY_NAME 奥德彪```### 练习题 9: 清理* 清除你之前设置的`MY_AGE`和`PATH`的修改(如果你不想永久保留它们)。```bashroot@hecs-344360:~# unset MY_AGE 清除对MY_AGE的设置#之前的设置/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/binroot@hecs-344360:~# export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/binroot@hecs-344360:~# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin```### 练习题 10: 修改默认器* 使用`EDITOR`变量,修改你默认的编辑器为nano。```bashroot@hecs-344360:~# export EDITOR=nanoroot@hecs-344360:~# echo $EDITOR nano```### 练习题 11: 修改语言* 使用`LANG`变量,让你的文件支持中文和utf8编码来避免乱码。```bashroot@hecs-344360:~# export LANG=zh_CN.utf8```- 使用`LANGUAGE`变量,让你的命令提示为中文```bashroot@hecs-344360:~# export LANGUAGE=zh_CN.utf8```bash +```` \ No newline at end of file