From 97dc0c4c94b7b5c2e5da53b41e993951b389adbe Mon Sep 17 00:00:00 2001 From: zcq <3157589885@qq.com> Date: Sun, 7 Jul 2024 22:19:10 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\346\250\241\345\274\217(\344\272\214).md" | 128 +++++++++++ ...\222\214pacvim\346\270\270\346\210\217.md" | 61 ++++++ ...15\344\275\234\345\221\275\344\273\244.md" | 98 +++++++++ ...50\346\210\267\347\256\241\347\220\206.md" | 28 +++ ...41\347\220\206\345\221\275\344\273\244.md" | 59 ++++++ ...71\346\256\212\346\235\203\351\231\220.md" | 198 ++++++++++++++++++ ...73\345\212\241\347\256\241\347\220\206.md" | 62 ++++++ ...50\346\234\237\344\273\273\345\212\241.md" | 101 +++++++++ ...57\345\242\203\345\217\230\351\207\217.md" | 41 ++++ 9 files changed, 776 insertions(+) create mode 100644 "\345\274\240\350\266\205\347\276\244/20240529 vim\344\270\211\347\247\215\346\250\241\345\274\217(\344\272\214).md" create mode 100644 "\345\274\240\350\266\205\347\276\244/20240530 vim \345\205\211\346\240\207\347\247\273\345\212\250\345\222\214pacvim\346\270\270\346\210\217.md" create mode 100644 "\345\274\240\350\266\205\347\276\244/20240531 vim\346\226\207\346\241\243\346\223\215\344\275\234\345\221\275\344\273\244.md" create mode 100644 "\345\274\240\350\266\205\347\276\244/20240603 \347\224\250\346\210\267\347\256\241\347\220\206.md" create mode 100644 "\345\274\240\350\266\205\347\276\244/20240605 \347\224\250\346\210\267\347\256\241\347\220\206\345\221\275\344\273\244.md" create mode 100644 "\345\274\240\350\266\205\347\276\244/20240606 \347\211\271\346\256\212\346\235\203\351\231\220.md" create mode 100644 "\345\274\240\350\266\205\347\276\244/20240607 \351\232\220\350\227\217\346\235\203\351\231\220\345\221\250\346\234\237\344\273\273\345\212\241\347\256\241\347\220\206.md" create mode 100644 "\345\274\240\350\266\205\347\276\244/20240612 \345\221\250\346\234\237\344\273\273\345\212\241.md" create mode 100644 "\345\274\240\350\266\205\347\276\244/20240613 \347\216\257\345\242\203\345\217\230\351\207\217.md" diff --git "a/\345\274\240\350\266\205\347\276\244/20240529 vim\344\270\211\347\247\215\346\250\241\345\274\217(\344\272\214).md" "b/\345\274\240\350\266\205\347\276\244/20240529 vim\344\270\211\347\247\215\346\250\241\345\274\217(\344\272\214).md" new file mode 100644 index 0000000..281a462 --- /dev/null +++ "b/\345\274\240\350\266\205\347\276\244/20240529 vim\344\270\211\347\247\215\346\250\241\345\274\217(\344\272\214).md" @@ -0,0 +1,128 @@ +### 普通模式: + +- **i**(进入插入模式) :在光标当前位置开始输入文本 +- **x**:删除当前光标所在处的字符 +- **:** -- 切换到底线命令模式,以在最底一行输入命令 +- **a**(进入插入模式) :在光标下一个位置开始输入文本 +- **o**(进入插入模式):在当前行的下方插入一个新行 +- **O**(进入插入模式) : 在当前行的上方插入一个新行 +- **dd** -- 剪切当前行 +- **yy** -- 复制当前行 +- **p**(小写) -- 粘贴剪贴板内容到光标下方 +- **P**(大写)-- 粘贴剪贴板内容到光标上方 +- **u** -- 撤销上一次操作 +- **Ctrl + r** -- 重做上一次撤销的操作 +- **:w** -- 保存文件 +- **:q** -- 退出 Vim 编辑器 +- **:q!** -- 强制退出Vim 编辑器,不保存修改 + +### 输入模式: + +- **字符按键以及Shift组合**:输入字符 +- **ENTER**(回车键):换行 +- **BACK SPACE**(退格键):删除光标前一个字符 +- **DEL**(删除键):删除光标后一个字符 +- **方向键**:在文本中移动光标 +- **HOME**/**END**:移动光标到行首/行尾 +- **Page Up**/**Page Down**:上/下翻页 +- **Insert**:切换光标为输入/替换模式,光标将变成竖线/下划线 +- **ESC**:退出输入模式,切换到命令模式 + +### 底线命令模式: + +- **:w**:保存文件。 +- **:q**:退出 Vim 编辑器。 +- **:wq**:保存文件并退出 Vim 编辑器。 +- **:q!**:强制退出Vim编辑器,不保存修改。 + +按 **ESC** 键可随时退出底线命令模式 + + + + + +2. ##### 搜索替换 + + **/**:光标之下查询字符串 —— /wwb(查询名称为wwb的字符串)(常用) + + **?**:光标之上查询字符串 —— ?wwb(查询名称为wwb的字符串)(常用) + + **:100,200s/wwb/WWB/g**:在100行到200行之间搜寻wwb并取代为WWB(常用) + + **:1,$s/wwb1/wwb2/g(:$s/wwb1/wwb2/g)**:从第一行到最后一行寻找wwb1字符串,并将该字符串取代为wwb2(常用) + + **:1,$s/word1/word2/gc(*:%s/word1/word2/gc**):从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !且在取代前显示提示字符给用户确认 (confirm) 是否需要取代!(常用) + +3. ##### 删除、复制与粘上 + + x,X:在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键) (常用) + + dd:剪切游标所在的那一整行(常用),用 p/P 可以粘贴 + + ndd: n 为数字。剪切光标所在的向下 n 行,例如 20dd 则是剪切 20 行(常用),用 p/P 可以粘贴 + + yy:复制游标所在的那一行(常用) + + nyy: n 为数字。复制光标所在的向下 n 行,例如 20yy 则是复制 20 行(常用) + + + +## 课堂作业: + +vim练习: + +- 光标移动练习,命令模式下: + + - 单位级 h j k l + - 单词级 w e b + - 块级 gg G 0 ^ $ H M L ngg nj nk + + 把下列句子按照第一句的正确顺序修改好并把多余的空行删除 + + ``` + this is a simple easy vim tutorial + + tutorial simple a easy this vim is + is this tutorial vim simple a easy + + + tutorial vim this is a easy simple + tutorial easy vim simple a this is + simple a vim easy tutorial is this + + tutorial is easy vim a simple this + + + vim simple this tutorial a easy is + a vim tutorial simple easy is this + + + easy a simple vim is tutorial this + vim tutorial is a easy simple this + a this vim tutorial is easy simple + this tutorial simple easy a is vim + + + easy tutorial this simple a is vim + a tutorial easy is this simple vim + + a tutorial vim is easy this simple + simple this easy is vim tutorial a + + this tutorial is a easy simple vim + vim is tutorial simple this easy a + + vim is simple this tutorial easy a + easy a simple is vim this tutorial + vim is tutorial simple a easy this + this vim is tutorial simple easy a + ``` + +删除多余的空行: + +1. 手动删除:在命令模式使用方向键或者**“hjkl”**将光标移动到要删除的空行上,使用**‘dd’**命令删除当前行 +2. 一键删除:使用**“ :g/^$/d”**,这个命令使用正则表达式**“/^$/”**来匹配空行,并使用**‘g’**标志删除所有匹配的行 + +修改单词顺序: + +**diw**删除单词,在按**p**或者**P**粘贴就可以替换顺序 diff --git "a/\345\274\240\350\266\205\347\276\244/20240530 vim \345\205\211\346\240\207\347\247\273\345\212\250\345\222\214pacvim\346\270\270\346\210\217.md" "b/\345\274\240\350\266\205\347\276\244/20240530 vim \345\205\211\346\240\207\347\247\273\345\212\250\345\222\214pacvim\346\270\270\346\210\217.md" new file mode 100644 index 0000000..cd6265f --- /dev/null +++ "b/\345\274\240\350\266\205\347\276\244/20240530 vim \345\205\211\346\240\207\347\247\273\345\212\250\345\222\214pacvim\346\270\270\346\210\217.md" @@ -0,0 +1,61 @@ +### pacvim游戏下载 + +1. 安装Ncurses库:apt install libncurses5-dev libncursesw5-dev +2. 安装开发工具: + - sudo apt update + - apt install build-essential +3. 检查开发工具是否安装成功 + - gcc -v + - make -v +4. 安装git:sudo apt install git +5. 安装PacVim: + - git clone https:*//github.com/jmoon018/PacVim.git* + - cd PacVim + - sudo make install +6. 运行:pacvim + + + +## vim光标移动命令: + +:set number —— 给文档增加序号 + +### 单位级: + +- h(←):光标向左移动一个字符 + +- j(↓):光标向下移动一个字符 + +- k(↑):光标向上移动一个字符 + +- l(→):光标向右移动一个字符 + +###### 移动多行:30h,30j,30k,30i + + + +### 单词级: + + 包括文字 + +- w:移动到下一个单词的开头 + +- b:移动到上一个单词的开头 + +- e:光标跳到下个单词的字尾 + + + +### 块级: + +- G:移动到文件的最后一行,20G:移动到这个文档的第20行 +- M:移动到**当前屏幕**的中间那行的第一个字符 +- L:移动光标到**当前屏幕**的最后一行的第一个字符 +- H:光标移动到**当前屏幕**的最上方那一行的第一个字符 +- gg:移动到文件的开头,相当于1G +- 0(功能键HOME):移动到当前行的行首 +- ^:移动到行的第一个非空白字符 +- $(功能键END):移动到当前行的行尾 +- n:n 为数字,光标向下移动 n 行 +- Ctrl+f(Page Down):屏幕向下移动一页 +- Ctrl+b(Page Up):屏幕向上移动一页 diff --git "a/\345\274\240\350\266\205\347\276\244/20240531 vim\346\226\207\346\241\243\346\223\215\344\275\234\345\221\275\344\273\244.md" "b/\345\274\240\350\266\205\347\276\244/20240531 vim\346\226\207\346\241\243\346\223\215\344\275\234\345\221\275\344\273\244.md" new file mode 100644 index 0000000..96f0c37 --- /dev/null +++ "b/\345\274\240\350\266\205\347\276\244/20240531 vim\346\226\207\346\241\243\346\223\215\344\275\234\345\221\275\344\273\244.md" @@ -0,0 +1,98 @@ +## vim命令: + +dd:删除当前行,并将删除的内容保存到 Vim 剪贴板 + + cc:删除当前行并保存到 Vim 剪贴板,同时进入 INSERT 模式 + + yiw:复制当前单词 + + diw:剪切当前单词 + +###### vim内开文件 + +* :e <文件名称> 打开名为 filename 的文件,若文件不存在则创建之 +* :Ex 在 Vim 中打开目录树,光标选中后回车打开对应文件(提示:- 进入上级目录 ) + +#### Visual模式 + + * 字符模式,在命令模式中按v键进入 + * 行模式,在命令模式中按V键进入 + * 块模式,在命令模式中按Ctrl+ v键进 + +###### 合并 + +J :合并当前行和下一行 + +###### 替换 + + * r 将当前字符替换为 X + + * gu 将指定的文本转换为小写 + + * gU 将指定的文本转换为大写 + + * :%s/// 查找 search 内容并替换为 replace 内容 + + + + ``` + 缩进: + >> 向右缩进当前行 + << 向左缩进当前行 + + 撤销与重做: + * u 撤销 + * Ctrl-r 重做 + * . 重复上一个动作,3.重复上次动作3次 + + ``` + +### 大小写转换: + +ggguG:整篇文章大写转化为小写(无须进入命令行模式) + +gggUG:整篇文章大写转化为大写(无须进入命令行模式) + +guw gue:进行小写转换(光标后面的单词) + +gUw gUe:进行大写转换(光标后面的单词) + +想转换5个单词的命令如下: +gu5w、gu5e +gU5w、gU5e + +1gU:光标所在行和下一行都转换成大写 + +10gU:光标所在行和后面10行都转换成大写 + +gU0 :从光标所在位置到行首,都变为大写 + +gU$ :从光标所在位置到行尾,都变为大写 + +gUG :从光标所在位置到文章最后一个字符,都变为大写 + +gU1G :从光标所在位置到文章第一个字符,都变为大写 + +​ + +**可视块模式插入数据:** + +- 光标放于要插入数据的位置,可以用**“h、j、k、l”**来控制范围 +- ctrl + v,进入可视块模式 +- shift + i,进入 insert 模式 +- 输入数据 +- esc + + + +##### 替换数据: + +:%s/替换前的内容/替换后的内容/g + +#### 替换10-20行的数据: + +:10,20s/替换前的内容/替换后的内容/g + +- 10,20:表示10到20行 +- s:固定格式 +- g:是整个文件 \ No newline at end of file diff --git "a/\345\274\240\350\266\205\347\276\244/20240603 \347\224\250\346\210\267\347\256\241\347\220\206.md" "b/\345\274\240\350\266\205\347\276\244/20240603 \347\224\250\346\210\267\347\256\241\347\220\206.md" new file mode 100644 index 0000000..c311df2 --- /dev/null +++ "b/\345\274\240\350\266\205\347\276\244/20240603 \347\224\250\346\210\267\347\256\241\347\220\206.md" @@ -0,0 +1,28 @@ +## 用户管理命令 + +id(显示用户的详细信息):id 用户名 + +useradd(创建新的用户账号):useradd [参数] 用户名 + +- -d:指定用户的家目录(默认/home/username) +- -u:指定该用户的默认UID +- -g:指定一个初始的用户基本组(必须已存在) +- -G:指定一个或多个扩展用户组 + +adduser(创建新的用户账号):有引导,可以直接创建家目录 + +userdel(删除已有的用户账号):userdel [参数] 用户名 + +- -r:同时删除用户及用户家目录 +- -f:强制删除用户 + +deluser(删除已有的用户账号):删除周期任务 + +ls -al /home:查看家目录 + +### 修改用户密码:passwd + +- -l:锁定用户,禁止其登录 +- -u:解除锁定,允许用户登录 +- -d:使该用户可用空密码登录系统 +- -e:强制用户在下次登录时修改密码 \ No newline at end of file diff --git "a/\345\274\240\350\266\205\347\276\244/20240605 \347\224\250\346\210\267\347\256\241\347\220\206\345\221\275\344\273\244.md" "b/\345\274\240\350\266\205\347\276\244/20240605 \347\224\250\346\210\267\347\256\241\347\220\206\345\221\275\344\273\244.md" new file mode 100644 index 0000000..bfa49fc --- /dev/null +++ "b/\345\274\240\350\266\205\347\276\244/20240605 \347\224\250\346\210\267\347\256\241\347\220\206\345\221\275\344\273\244.md" @@ -0,0 +1,59 @@ +# 用户管理 + +### 切换用户: + +su + +su - + + + +### 查看当前登录用户: + +id + +who + +#### 肉鸡:被黑客远程控制的机器,也被称为傀儡机。黑客可以操控肉鸡进行DDOS攻击,或利用其进行挖矿 + + + +### 禁止用户登录SSH + +#### nologin + + + +### 三个访问时间: + +atime:访问时间 + +ctime:修改文件 / 文件夹属性的时间 + +mtime:修改内容的时间 + + + +### 管理家目录: + +- cd(cd ~):进入家目录 +- echo ~:查看当前用户的家目录的路径 +- ls:列出家目录内容 + +### 修改用户对某个对象的权限: + +- 如何修改文件或者文件夹拥有者: + + chown user001 ti.txt -------> 将ti.txt这个文件的所有者更改为user001 + + chown user001 wwb -------> 将wwb这个目录的所有者更改为user001 + +- 如何修改文件或者文件夹所属组: + + -R:递归修改目录下所有文件的所属组 + + chgrp wwb test.txt/ -------> 将test.txt这个文件的所属组改为wwb + + + + diff --git "a/\345\274\240\350\266\205\347\276\244/20240606 \347\211\271\346\256\212\346\235\203\351\231\220.md" "b/\345\274\240\350\266\205\347\276\244/20240606 \347\211\271\346\256\212\346\235\203\351\231\220.md" new file mode 100644 index 0000000..d3f4b7a --- /dev/null +++ "b/\345\274\240\350\266\205\347\276\244/20240606 \347\211\271\346\256\212\346\235\203\351\231\220.md" @@ -0,0 +1,198 @@ +### 权限修改:chmod + +- 增加权限:chmod o+(r/w/x) 文件名.文件类型 +- 修改拥有者权限:chown(u) +- chown 用户名 文件名.文件类型 + + 修改所属组权限:chgrp(g)-->change group + +- chgrp 用户名 文件名.文件类型 + +-rm-r--r--:拥有者权限、所属组的用户权限(代表所属组的用户权限,都具有第二块属性的权限) + +- x:代表1(可执行) +- w:代表2(只写) +- r:代表4(只读) + +### 特殊权限 + +- 使用suid让普通用户以root或其他用户角色运行只有root或其他账号才能运行的命令或程序 +- 使用字符S和s来设置特殊权限,其中s与x位置相同,均在一组3位编码的最后一位 +- 使用o+t来设置特殊权限 +- 使用g+s来改变文件或目录的所属组 +- 使用chattr +i来锁定文件,使其不能编辑、修改、删除或移动 + +##### + +### 权限管理练习 + +1. 创建/guanli 目录,在/guanli下创建zonghe 和 jishu 两个目录(一条命令) + + ##### 答案:mkdir -p /guanli/{zonghe,jishu} + +2. 添加组帐号zonghe、caiwu、jishu,GID号分别设置为2001、2002、2003 + + ##### 答案: + + ``` + -g:对组账号gid设置 + + root@robin:~# groupadd -g 2001 zonghe root@robin:~# groupadd -g 2002 caiwu root@robin:~# groupadd -g 2003 jishu + ``` + +3. 创建jerry、kylin、tsengia、obama用户,其中的kylin用户帐号在2020年12月30日后失效 + + ##### 答案: + + ``` + -e:指定用户账号的失效时间 + chage -l kylin:查看用户过期时间 + + root@robin:~# useradd jerry root@robin:~# useradd -e 2020-12-30 kylin root@robin:~# useradd tsengia root@robin:~# useradd obama + ``` + +4. 将jerry、kylin、tsengia、obama等用户添加到zonghe组内 + + ##### 答案: gpasswd -M jerry,kylin,tsengia,obama zonghe + +5. 创建handy、cucci用户,其中cucci帐号的登录Shell设置为“/sbin/nologin” + + ##### 答案: + + ``` + -s:指定登录用户的shell + cat /etc/passwd:查看登录用户的shell + + root@robin:~# useradd handy root@robin:~# useradd -s /sbin/nologin cucci + ``` + +6. 将handy、cucci等用户添加到jishu组内 + + ##### 答案:gpasswd -M handy,cucci jishu + +7. 将上述的所有用户均要求加入到guanli组内 + + ##### 答案: + + ``` + groupadd guanli root@robin:~# gpasswd -M jerry,kylin,tsengia,obama,handy,cucci guanli + ``` + +8. 将zonghe组内的obama用户删除 + + ##### 答案: + + ``` + -d从组内删除一个组成员 + root@robin:~# gpasswd -d obama zonghe 正在将用户“obama”从“zonghe”组中删除 + ``` + +9. 为jerry用户设置密码为“123456”(使用普通方法)为cucci用户设置密码为“redhat” + + ##### 答案: + + ``` + root@robin:~# passwd jerry + 新的密码: 重新输入新的密码: passwd:已成功更新密码 + + echo "cucci:redhat" | chpasswd + + ``` + +10. 将jerry用户锁定,并查看锁定状态[root@localhost chen]# usermod -L jerry + + ##### 答案: + + ``` + -S:产看用户状态 + -L:锁定用户状态 + root@robin:~# usermod -L jerry root@robin:~# passwd -S jerry jerry L 2024-06-06 0 99999 7 -1 (密码已被锁定) + ``` + +11. 打开两个xshell窗口,通过(who 或者 w)命令查看连接状态,并通过fuser杀掉其中一个 + + ##### 答案: + + ``` + -k: kill正在使用的某一指定的路径 + sudo apt update + sudo apt install psmisc + fuser -k /dev/pts/2 + ``` + + + +12. 查看cucci用户,属于那些组,并查看其详细信息 + + ##### 答案: + + ``` + groups cucci + finger cucci + ``` + + + +13. 手工创建账号student(预留) + + ##### 答案: + + ``` + root@robin:~# vi /etc/passwd + student:x:1014:1014::/home/student:/bin/bash + root@robin:~# vi /etc/shadow + student::18107:0:99999:7::: + root@robin:~# vi /etc/group + student:x:1014: + root@robin:~# mkdir /home/student root@robin:~# cd /etc/skel/ root@robin:/etc/skel# ls -a | cp .b* /home/student/ + ``` + +14. 设置权限及归属:/guanli目录属组设为guanli, /guanli/zonghe目录的属组设为zonghe /guanli/jishu目录的属组设为jishu,设置3个目录都是禁止其他用户访问的权限 + + ##### 答案: + + $$ + + $$ + + ``` + root@robin:/etc/skel# chown :guanli /guanli &&chown :zonghe /guanli/zonghe/ &&chown :jishu /guanli/jishu/ && chmod -R o-rwx /guanli/ + ``` + + + +15. 建立公共目录/ceshi允许技术组内的所有用户读取、写入、执行文件, 禁止其他用户读、写、执行 + + ##### 答案: + +16. 清除jerry用户密码 + + ##### 答案:passwd -d jerry + +17. 锁定cucci用户密码并查看状态 + + ##### 答案: + + ``` + root@robin:~# usermod -L cucci 或者 root@robin:~# passwd -l cucci ----锁定 root@robin:~# passwd -S cucci ----查看状态 + cucci L 2024-06-06 0 99999 7 -1 (密码已被锁定) + ``` + +18. 修改obama用户的UID为8888 + + ##### 答案:usermod -u 8888 obama + +19. 通过passwd命令修改kylin用户的最长密码使用期限为60天 + + ##### 答案:passwd -x 60 kylin + +20. 通过id groups等命令查看用户handy信息 + + ##### 答案: + +``` +root@robin:~# id handy uid=1008(handy) gid=1008(handy) 组=1008(handy),2003(jishu),2004(guanli) + +root@robin:~# groups handy handy : handy jishu guanli +root@robin:~# finger handy Login: handy Name: Directory: /home/handy Shell: /bin/sh Never logged in. No mail. No Plan. root@robin:~# +``` \ No newline at end of file diff --git "a/\345\274\240\350\266\205\347\276\244/20240607 \351\232\220\350\227\217\346\235\203\351\231\220\345\221\250\346\234\237\344\273\273\345\212\241\347\256\241\347\220\206.md" "b/\345\274\240\350\266\205\347\276\244/20240607 \351\232\220\350\227\217\346\235\203\351\231\220\345\221\250\346\234\237\344\273\273\345\212\241\347\256\241\347\220\206.md" new file mode 100644 index 0000000..86187cd --- /dev/null +++ "b/\345\274\240\350\266\205\347\276\244/20240607 \351\232\220\350\227\217\346\235\203\351\231\220\345\221\250\346\234\237\344\273\273\345\212\241\347\256\241\347\220\206.md" @@ -0,0 +1,62 @@ +umask:指定用户创建文件/文件夹时的掩码 + +- SUID:只对可执行文件有效; + +- SGID:对执行文件和目录都有效; + +- SBIT:只对目录有效 + +### 隐藏权限 + +1. ##### chattr(设置文件的隐藏权限): + +``` +创建一个普通文件,立即删除(肯定会成功) +echo "fffff" > test +rm test +``` + +``` +创建一个普通文件,并为其设置“不允许删除与覆盖”(+a参数)权限,立即删除(会失败) +echo "ffffff" > test +chattr +a test +rm test +rm: cannot remove 'test': Operation not permitted ——> rm:无法删除“test”:不允许操作 +``` + +- +i:无法对文件进行修改:若对目录设置了该参数,则仅能修改其中的子文件内容而不能新建或删除文件 +- +a:仅允许补充(追加)内容,无法覆盖 / 删除内容 +- +S:文件内容在变更后立即同步到硬盘 +- +s:彻底从硬盘中删除,不可恢复(用零块填充原文件所在的硬盘区域) +- +u:当删除该文件后依然保留其在硬盘中的数据,方便日后恢复 +- +D:检查压缩文件中的错误 + + + +2. ##### lsattr(查看文件的隐藏权限) + +## 周期任务管理 + +1. *:表示匹配该域的任意值 +2. ?:只能用DayofMonth和DayofWeek两个域 +3. -: 表示范围 +4. / : 表示起始时间开始触发,然后每隔固定时间触发一次 +5. ,: 表示列出枚举 +6. L : 表示最后,在DayofMonth和DayofWeek域 +7. W : 表示有效工作日,在DayofWeek域 + + + +### at命令: + +- at now + 10 minutes:在当前时间的10分钟后执行命令 +- at -l:列出当前用户的at任务 +- at -r:删除当前用户的at任务 + + + +#### 在当前时间的10分钟后执行backup.sh脚本 + +- at now + 10 minutes +- at> /path/to/backup.sh +- at> Ctrl+D \ No newline at end of file diff --git "a/\345\274\240\350\266\205\347\276\244/20240612 \345\221\250\346\234\237\344\273\273\345\212\241.md" "b/\345\274\240\350\266\205\347\276\244/20240612 \345\221\250\346\234\237\344\273\273\345\212\241.md" new file mode 100644 index 0000000..faadba3 --- /dev/null +++ "b/\345\274\240\350\266\205\347\276\244/20240612 \345\221\250\346\234\237\344\273\273\345\212\241.md" @@ -0,0 +1,101 @@ +## 周期任务 + +- 概念:提供了一种可以重复的、指定重复周期的一种机制,一种执行机制 +- 分类: +- 1. 系统级 + - /etc/cron.hourly + - /etc/cron.weekly + - /etc/cron.daily + - /etc/cron.yearly + - /etc/cron.monthly + 2. 用户级 + 1. /var/spool/cron/crontabs/root root用户的周期任务 +- 配置周期任务 + 1. 系统级 + - 编辑对应的系统级配置文件(对应小时、天、周等) + 2. 用户级 + - 编辑对应的系统级配置文件 + - crontab -e 编辑 + - crontab -r 删除 + - crontab -l 列出任务 + +*:表示所有 + +-:代表范围 5-10 + +/:前面代表起始,后面代表间隔 + + + +``` + * * * * * command +minute hour day month week command +分 时 日 月 星期 命令 +``` + +``` +minute: 表示分钟,可以是从0到59之间的任何整数。 +hour:表示小时,可以是从0到23之间的任何整数。 +day:表示日期,可以是从1到31之间的任何整数。 +month:表示月份,可以是从1到12之间的任何整数。 +week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。 +command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件 +``` + +### 周期任务练习 + +``` +1. 每天3:00执行一次 + 0 3 * * * echo "jjj" >> kk.txt +2. 每周六2:00执行 + 0 2 * * 6 echo "666" >> kk.txt +3. 每周六1:05执行 + 5 1 * * 6 echo "1:05" >> kk.txt +4. 每周六1:25执行 + 25 1 * * 6 echo "1:25" >> kk.txt +5. 每天8:40执行 + 40 8 * * * echo "8:40" >> kk.txt +6. 每天3:50执行 + 50 3 * * * echo "3:50" >> kk.txt +7. 每周一到周五的3:40执行 + 40 3 * * 1-5 echo "3:40" >> kk.txt +8. 每周一到周五的3:41开始,每10分钟执行一次 + 41,51 3 * * 1-5 echo "3:41" >> kk.txt + 1/10 4-23 * * 1-5 echo "3:41" >> kk.txt +9. 每天的10:31开始,每2小时执行一次 + 31 10-23/2 * * * echo "10:31" >> kk.txt +10. 每周一到周三的9:30执行一次 + 30 9 * * 1-3 echo "9:30" >> kk.txt +11. 每周一到周五的8:00,每周一到周五的9:00执行一次 + 0 8,9 * * 1-5 echo "8:00,9:00" >> kk.txt +12. 每天的23:45分执行一次 + 45 23 * * * echo "23:45" >> kk.txt +13. 每周三的23:45分执行一次 + 45 23 * * 3 echo "23:45" >> kk.txt + +14. 每周一到周五的9:25到11:35、13:00到15:00之间,每隔10分钟执行一次 + 25,35,45,55 9 * * 1-5 echo "23213" >> kk.txt + 0/10 10 * * 1-5 echo "23213" >> kk.txt + 0,10,25 * * 1-5 echo "23213" >> kk.txt + 0/10 13-15 * * 1-5 echo "23213" >> kk.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,50 8 * * 1-5 echo "wwb666" >> kk.txt + 30 9 * * 1-5 echo "wwb666" >> kk.txt + 0,30 10 * * 1-5 echo "wwb666" >> kk.txt + 0,30 11 * * 1-5 echo "wwb666" >> kk.txt + 30 13 * * 1-5 echo "wwb666" >> kk.txt + 0,30 14 * * 1-5 echo "wwb666" >> kk.txt + 0 5 * * 1-5 echo "wwb666" >> kk.txt + +16. 每天16:00、10:00执行一次 + 0 16,10 * * * echo "16:00、10:00" >> kk.txt + +17. 每天8:10、16:00、21:00分别执行一次 + 10 8 * * * echo "8:10、16:00、21:00 >> kk.txt + 0 16,21 * * * echo "8:10、16:00、21:00 >> kk.txt + +18. 每天7:47、8:00分别执行一次 + 47 7 * * * echo "7:47、8:00" >> kk.txt + 0 8 * * * echo "7:47、8:00" >> kk.txt +``` diff --git "a/\345\274\240\350\266\205\347\276\244/20240613 \347\216\257\345\242\203\345\217\230\351\207\217.md" "b/\345\274\240\350\266\205\347\276\244/20240613 \347\216\257\345\242\203\345\217\230\351\207\217.md" new file mode 100644 index 0000000..14be412 --- /dev/null +++ "b/\345\274\240\350\266\205\347\276\244/20240613 \347\216\257\345\242\203\345\217\230\351\207\217.md" @@ -0,0 +1,41 @@ +## 环境变量 + +1. 概念: 就是提供一系列可供特殊环境的全局变量 + +2. 分类: + - 按生命周期分类 + 1. 永久环境变量:写在指定类型的配置文件,永不失效 ~/.bashrc /etc/profile.d/文件名.sh + 2. 临时环境变量:临时使用export 命令设置的环境变量 退出终端即失效 + - 按作用域分类 + 1. 系统级环境变量:对所有用户生效 /etc/profile.d/文件名.sh + 2. 用户级环境变量:只对当前用户生效 ~/.bashrc + +3. ### 常用系统级环境变量 + +- PATH 存储可执行的命令所要查找的路径 +- LANG 可支持的字符集 +- EDITOR 默认编辑器 +- HOME 家目录 + +### PATH(决定系统在那些目录中可执行文件) + +1. #### #PATH=$PATH:/etc/apache/bin + +使用这种方法,只对当前会话有效,也就是说每当登出或注销系统以后,PATH 设置就会失效 + +2. #### #vi /etc/profile + +在适当位置添加 PATH=$PATH:/etc/apache/bin (注意:= 即等号两边不能有任何空格) + +这种方法最好,除非你手动强制修改PATH的值,否则将不会被改变 + +3. #### #vi ~/.bash_profile + +修改PATH行,把/etc/apache/bin添加进去 + + + +### 读取环境变量的方法 + +- export:全局变量 +- echo $PATH:命令输出当前的PATH环境变量的值 \ No newline at end of file -- Gitee