diff --git "a/\350\265\226\345\277\203\345\246\215/20240529 \346\226\207\344\273\266\345\206\205\345\256\271\346\237\245\347\234\213.md" "b/\350\265\226\345\277\203\345\246\215/20240529 \346\226\207\344\273\266\345\206\205\345\256\271\347\256\241\347\220\206.md" similarity index 58% rename from "\350\265\226\345\277\203\345\246\215/20240529 \346\226\207\344\273\266\345\206\205\345\256\271\346\237\245\347\234\213.md" rename to "\350\265\226\345\277\203\345\246\215/20240529 \346\226\207\344\273\266\345\206\205\345\256\271\347\256\241\347\220\206.md" index e9a719a330c97b09aeb719b59b25c9f144132e3d..74fbf9fd140dfd20f47982773fa69399be4adbef 100644 --- "a/\350\265\226\345\277\203\345\246\215/20240529 \346\226\207\344\273\266\345\206\205\345\256\271\346\237\245\347\234\213.md" +++ "b/\350\265\226\345\277\203\345\246\215/20240529 \346\226\207\344\273\266\345\206\205\345\256\271\347\256\241\347\220\206.md" @@ -1,11 +1,156 @@ +## nginx + +```bash +# 安装nginx +sudo apt install nginx + +# 查看nginx +systemctl status nginx + +# 修改nginx网页 +vim /var/www/html/index.nginx.debian.html + +# 可能会出现编码错误记得加上 + ``` -用cat写内容 -cd > 文件 -内容 -ctrl + d 退出 + +## 文件内容管理 + +cat:显示文件内容 + +tac:与cat相反,从文件末尾开始显示 + +more:分页显示文件内容 + +less:与more类似。但提供了更多的导航和搜索功能 + +head:显示文件开头内容(默认10行) + +tail:显示文件结尾内容(默认10行) + +nl:显示文件内容,并添加行号 + +od:以八进制、十进制、十六进制或其他格式转储文件内容 + +```bash +# 将内容放在test.txt,如果在文件本身有内容则会覆盖 +echo 111 > test.txt +# 将内容追加在test.txt,不会覆盖 +echo 222 >> test.txt ``` +## cat +```bash +# 显示文件内容 +cat 选项 文件 + +# 可以查看多个文件 +cat 文件1 文件2 + +# -n 显示行号 +cat -n 文件 +``` + +## tac + +```bash +# 反向显示文件内容 +tac 选项 文件 + +# 可以查看多个文件 +cat 文件1 文件2 +``` + +## more + +```bash +# 分页显示文件内容,每次显示一屏,按页显示文件内容 +more 选项 文件 + +# 空格键显示下一页,回车键显示下一行,q键退出 +``` + +## less + +```bash +# 查看大文件,一页一页加载 +less 选项 文件 + +# 作用与more相似但是提供更多的导航和搜索功能,如上下滚动、搜索等 + +# 上下键、page up\page down键进行滚动,/搜索,n下一个匹配,N上一个匹配,q退出 + +# -N 显示行号 +# -M 显示长提示符 +# -MN 内容在显示行号,底部显示文件名,行号和百分比 +# -m 或 -i 搜索时忽略大小写 +# +行数 打开文件后立即跳转到指定的行数 +``` + +## head + +```bash +# 显示文件前几行内容不打开文件 +head 选项 文件 + +# 显示文件开头10行 +head 文件 + +# 显示多个文件开头10行 +head 文件1 文件2 + +# 指定显示行数 +head -n 指定行数 文件 + +# 不显示文件名,当打开多个文件时可以不显示文件名 +head -q 文件1 文件2 +``` + +## tail + +```bash +tail 选项 文件 + +# 显示文件末尾内容10行 +tail 文件 + +# 显示多个文件结尾10行 +tail 文件1 文件2 + +# 显示指定行数 +tail -n 指定行数 文件 + +# 实时查看文件增长(如日志文件) +tail -f 文件 + +# 不显示文件名,当打开多个文件时可以不显示文件名 +tail -q 文件1 文件2 +``` + +## nl + +```bash +# 显示文件内容,并添加内容(空行不加) +nl 选项 文件 + +# 指定分隔符 +nl -s: 文件 +``` + +## od + +```bash +# 以八进制、十进制、十六进制或其他格式转储文件内容 +# 显示文件内容的八进制 +od -An -t o 文件 + +# 显示文件的内容十六进制 +od -An -t x1 文件 + +# 显示字符 +od -c 文件 +``` ## 作业 diff --git "a/\350\265\226\345\277\203\345\246\215/20240530 \345\270\270\347\224\250\345\221\275\344\273\244.md" "b/\350\265\226\345\277\203\345\246\215/20240530 \345\270\270\347\224\250\345\221\275\344\273\244.md" new file mode 100644 index 0000000000000000000000000000000000000000..90af3e4e61be91c29ac48d9c45a7d9186d4c641b --- /dev/null +++ "b/\350\265\226\345\277\203\345\246\215/20240530 \345\270\270\347\224\250\345\221\275\344\273\244.md" @@ -0,0 +1,178 @@ +## sed + +```bash +# -e 需要执行的sed命令 +# -i 直接修改文件内容(sed 不是直接修改文件) +# 替换文件内容 +sed 选项 命令 文件 + +# 替换文件内容,s 表示替换 +sed "s/旧内容/新内容" 文件 + +# 将替换好的内容存放在另一个文件 +sed "s/旧内容/新内容" 需要替换内容的文件 > 存放的文件 + +# 使用通配符替换 +# * 任意字符串,将1 中间任意字符串 1替换成111 +sed "s/1*1/111" 文件 +# ^指定字符串 开头为指定字符串替换为222 +sed "s/^1/222" 文件 +``` + +## cut + +```bash +# 从每行中删除部分字段并输出剩余部分 +# -f 指定要提取的字段 +# -d 指定字段分隔符 +cut 选项 文件名 + +# 提取文件内容 +cut -f 指定行数(,指定行数) 文件 + +# 指定分隔符提取文件分隔符前的内容 +cut -d ',' -f 指定位置分隔符(数字代表位置,按列提取) 文件 +``` + +## join + +```bash +# -t 指定字段分隔符 +# -1 指定第一个文件的连接字段 +# -2 指定第二个文件的连接字段 +# 将指定字段合并两个文件的行 +join 选项 文件1 文件2 + +# 根据共同字段进行连接 +join 文件1 文件2 + +# 使用制表符作为字段分隔符连接文件 +join -t ':' -1 指定字段 -2 指定字段 文件1 文件2 +# 连接结果 +张三:19岁:180cm:1班:80分 +李四:20岁:170cm:2班:90分 +# -t $'\t' 指定空格 +``` + +## sort + +```bash +# 排序文件内容(正向) +sort 文件 + +# 反向排序整理文件 +sort -r 文件 +``` + +## paste + +```bash +# 合并文件的行,每行由指定的分隔符分割 +# -d 指定各行之间的分隔符 +paste 选项 文件1 文件2 + +# 合并文件 +paste 文件1 文件2 + +# 用逗号作为分隔符合并文件 +paste -d ',' 文件1 文件2 +``` + +## fmt + +```bash +# 简化文本格式 +# -w 指定行宽度 +fmt 选项 文件名 + +# 格式化指定字符宽度 +fmt -w 指定字符宽度 文件 +``` + +## column + +```bash +# 输入文本格式化为多列输出 +# -t 使用表格格式输出 +column 选项 文件名 +``` + +## tr + +```bash +# 可以回车使用echo写入文件 +echo '内容' > 文件 +# ctrl + d 退出 +``` + +## uniq + +```bash +# 除去文件的连续重复行,显示文件中的唯一行 +# -c 显示每行重复次数 +# -d 仅显示重复行 +# -u 仅显示不重复行 +uniq 选项 文件 + +# 去除文件的重复行 +uniq 文件 + +# 显示文件中不重复行及其出现次数 +uniq -c 文件 +``` + +## split + +```bash +# 大文件分割成小文件 +# -l 指定每个输出文件的行数 +# -b 指定每个输出文件的字节数 +split 选项 输入文件 输出文件前缀 + +# 将文件按指定行数分割文件 +split -l 指定行数 文件 + +# 将文件按指定大小分割文件 +split -b 指定文件大小 文件 +``` + +## wc + +```bash +# 计算文件中的字节数、字数和行数 +# -c 计算字节数 +# -w 计算字数 +# -l 计算行数 +wc 选项 文件 + +# 统计文件 +wc 文件 + +# 仅统计文件 +wc -l 文件 +``` + +## ps + +```bash +# 查看系统中运行的进程以及它们的状态和资源占用情况 +# aux 显示所有进程的详细 +# -e 显示所有进程 +# -f 显示完整格式 +ps 选项 +``` + +## pidof + +```bash +# 根据进程名查找对应的进程id +pidof 进程名 +``` + +## kill + +```bash +# 向指定的进程发送信号,终止进程 +kill 进程id +``` + diff --git "a/\350\265\226\345\277\203\345\246\215/20240530 \346\226\207\344\273\266\345\206\205\345\256\271\346\237\245\347\234\213.md" "b/\350\265\226\345\277\203\345\246\215/20240530 \346\226\207\344\273\266\345\206\205\345\256\271\346\237\245\347\234\213.md" deleted file mode 100644 index 221758d5edca0dedf6af041855dfb312cd66252c..0000000000000000000000000000000000000000 --- "a/\350\265\226\345\277\203\345\246\215/20240530 \346\226\207\344\273\266\345\206\205\345\256\271\346\237\245\347\234\213.md" +++ /dev/null @@ -1,26 +0,0 @@ -```bash -sed命令 -命令格式 -sed [options] 'command' file(s) -常用命令: -a:新增 c:更改 -d:删除 i:插入 -p:列印 s:替换 -n:读取下一行 -r,w:读和写编辑命令,r用于将内容读入文件,w用于将匹配内容写入到文件 -cut命令 -语法格式为: -cut [-bn] [file] 或 cut [-c] [file] 或 cut [-df] [file] -主要参数: --b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。 --c :以字符为单位进行分割。 --d :自定义分隔符,默认为制表符。 --f :与-d一起使用,指定显示哪个区域。 --n :取消分割多字节字符 -字节用-b,字符用-c,域用-f -uniq命令 -参数 --c 在输出行前面加上每行在输入文件中出现的次数。 --d 仅显示重复行。 --u 仅显示不重复的行 -``` \ No newline at end of file diff --git "a/\350\265\226\345\277\203\345\246\215/20240601 sed.md" "b/\350\265\226\345\277\203\345\246\215/20240601 sed.md" index e1b4488678d1696b69c7b98033c44db3a442f7df..0dadb466988fef97236fd0609dce0bf82eb53e8b 100644 --- "a/\350\265\226\345\277\203\345\246\215/20240601 sed.md" +++ "b/\350\265\226\345\277\203\345\246\215/20240601 sed.md" @@ -1,50 +1,162 @@ -## sed +## 文本处理 + +cat 正向查看整个文件 + +-n 显示行号 + + + +tac 倒序查看整个文件 -文本流处理,可以插入、删除、查找、替换。 +more 按页显示文件内容 -### 基本语法 +先加个文件再分页 -sed [-e/f/i/n] '命令' 文件 -### 命令 -多命令: +less 加载一页显示一页 -加; sed '/apple/d; s/banana/grape/g' example.txt +比more 功能更丰富 --e sed -e '/apple/d' -e 's/banana/grape/g' example.txt +-n 显示行号 -编辑保存: +-m 长格式显示进度 --i sed -i 's/apple/orange/g' example.txt +-i 忽略大小写 -#### 替换 -全局替换 sed 's/apple/苹果/**g**' a.txt -只替换每行第一个 sed ‘s/apple/苹果/' a.txt +head 查看头部指定行数的内容 -替换第2行的所有 sed '2s/allple/苹果/g' a.txt +默认10行 -#### 删除 +-n 行数 查看n行 -删除包含apple的行 sed '/apple/d' a.txt -删除第二行 sed ’2d‘ a.txt -删除全文 sed 'd' a.txt +tail 查看尾部指定行数的内容 -#### 打印 +默认10行 -只打印包含apple的行 sed -n 'apple/p' a.txt +-n 行数 查看n行 -#### 插入 +-f 实时查看新增的内容 -后面 a 在第二行后面插入一行苹果 sed '2a\苹果' a.txt -前面 b 在第二行前面插入一行苹果 sed ’2i\苹果' a.txt -替换 c 将apple所在的行替换成苹果最好吃 sed '/apple/c\苹果最好吃' a.txt +nl 显示整个文件的内容并加上行号 不给空行加行号 + +与cat -n 很像 空行也加行号 + +## sed + +```bash +sed 选项 '命令' 文件 + +# -e 直接在命令行模式执行多个sed命令 +# -f 从指定的文件中读取sed命令 +# -i 直接编辑文件内容 +# -n 禁止自动打印模式空间内容 + +# d 删除行 +# p 打印行 +# a\ 后面追加文本 +# i\ 前面插入文本 +# c\ 替换整行文本 + +# 替换 +sed '(/其他命令/)s/旧/新/(其他命令)' 文件 + +# 将有包含food的行的apple替换成苹果(默认替换第一个) +# s 替换 +sed '/food/s/apple/苹果/' 1.txt + +# 将有包含food的行的apple全部替换成苹果 +# g 全局 全部 +sed '/food/s/apple/苹果/g' 1.txt + +# 将有包含food的行的第二个apple替换成苹果 +sed '/food/s/apple/苹果/2' 1.txt + +# 替换第5行的第4个 +sed 5s/旧/新/4 文件 + +# 将内容添加到每行开头 +# ^ 开头 +sed 's/^/内容/' 文件 + +# 将内容添加到每行结尾 +# $ 结尾 +sed 's/$/内容/' 文件 + +# 删除 +# 删除第2行 +# d 删除 +sed '2d' 文件 + +# 删除全部 +sed 'd' 文件 + +# 删除指定内容行 +sed '/指定内容/d' 文件 + +# 删除包含apple的行 +sed '/apple/d' 文件 + +# 打印 +sed '/关键字/p' 文件 +# -n 与 p 搭配使用 +# p 打印会打印sed模式的内容和原文件的内容 +# -n 禁止自动打印模式空间内容 +# 所以 -n 与 p 这样才可以打印一遍 +sed -n '/关键字/p' 文件 + +# 添加插入 +# \ 添加插入(在字母后) +# 在第四行前插入内容 +# i 行前插入 +sed "4i\She don't like apple" 文件 + +# 在第四行前插入内容 +# a 行后插入 +sed "4a\She don't like apple" 文件 + +# 在第四行插入内容(直接替代原先的第四行) +# c 替换插入 +sed "4c\She don't like apple" 文件 + +# 全部替换 +# 没有数字默认全部 +sed 'c\我爱葡萄' 文件 +# c 没有任何修饰则是全部替换 + +# 关键字替换 +# 将包含grape关键字的行替换成我爱葡萄 +sed '/grape/c\我爱葡萄' 文件 + +# 给所有空行前加入我后面是空行 +# ^$ 表示空行 +sed '/^$/i\我后面是空行' 文件 + +# 将修改结果保存为原文件 +# -i 直接编辑文件内容 +sed -i 's/apple/苹果' 文件 + +# 将修改结果另存为新文件 +sed 's/apple/苹果' 文件1 > 文件2 + +# 从指定文件中读取sed命令 +# -f 从指定的文件中读取sed命令 +# 先 echo /apple/d > 3.txt +# 再 sed -f 3.txt 2.txt +sed -f 包含命令的文件 操作的文件 + +# 执行多个sed命令 +# -e 执行多个命令(每个命令前都要加-e) +sed -e '/apple/d' -e 's/banana/grape' 文件 +# ; 执行多个命令(每个命令前都要加;) +sed '/apple/d;s/banana/grape/;/^$/d;s/fruits/水果/' 文件 +``` ## 作业 diff --git "a/\350\265\226\345\277\203\345\246\215/20240603 awk.md" "b/\350\265\226\345\277\203\345\246\215/20240603 awk.md" index ab5ea2a8472ab85c93d04888aa0ca7c29690ca12..ab04fa17ce4d06abf6ef66a45cc924ebe9a463db 100644 --- "a/\350\265\226\345\277\203\345\246\215/20240603 awk.md" +++ "b/\350\265\226\345\277\203\345\246\215/20240603 awk.md" @@ -1,96 +1 @@ -# AWK - -文本处理的工具,也是一种编程语言。 - -## 命令结构 - -awk [选项] '脚本' 文件 - -脚本: - -开始语句块:在程序开始时执行 BEGIN - -通用语句块:逐行处理文件内容 pattern - -结束语句块:在程序结束时执行 END - -例如:头尾各加一行 - -awk 'BEGIN { print "我是开头"} { print } END { print "我是结尾" } ' student_scores.csv - -## 语句块 - -由模式 (pattern) 和动作 (action) 构成。 - -- 如果没有指定模式,则对每一行都执行动作。 -- 指定模式后,只有匹配模式的行,才执行动作,即满足条件才执行 - -例如:打印文件中所有包含 王 的行 - -awk '/王/ { print $0 }' student_scores.csv - -BEGIN { print "----开始-----" }:在处理文件开始时打印“----开始-----”。 - -$2 >= 80 { print }:对于每一行,如果第二个字段(数学成绩)大于或等于80,则打印该行。 - -END { print "----结束-----" }:在处理文件结束时打印“----结束-----”。 - -## 选项 - --F - -指定输入字段分隔符。例如,`-F,` 将逗号设置为字段分隔符。 - -默认是以空格\t等为分隔符 - -类似于FS="分隔符" 在文件中使用 - --v - -赋值外部变量。例如,`-v var=value`。 min=60 - --f - -指定 Awk 脚本文件。 - -## 常用模式 - -### 正则表达式 - -/ / 内的 - -### 比较运算符 - -- `==`(等于) -- `!=`(不等于) -- `<`(小于) -- `<=`(小于等于) -- `>`(大于) -- `>=`(大于等于) - -### 逻辑运算符 - -- `&&`:逻辑与(AND) -- `||`:逻辑或(OR) -- `!`:逻辑非(NOT) - -### 三元运算符 - -条件运算符 `? :` - -## 常用动作 - -`print`:打印指定内容。 - -`printf`:格式化输出。 - -## 特殊变量 - -- `NR`:表示记录的数量(当前行号) -- `NF`:表示当前行的字段数量。`$NF`表示最后一列 -- `$0`:包含当前行的文本内容,即一整行内容。 -- `$1`、`$2`:表示当前行的第1个、第2个字段的内容,以次类推。 -- `FS`:输入时的域分割符。效果同-F选项 -- `OFS`:输出时的域分割符。 - -1. awk -F: '$3>=100 {print $0}' /etc/passwd \ No newline at end of file +## awk \ No newline at end of file diff --git "a/\350\265\226\345\277\203\345\246\215/20240606 PacVim \344\270\216 SSL\350\257\201\344\271\246 - nginx.md" "b/\350\265\226\345\277\203\345\246\215/20240606 PacVim \344\270\216 SSL\350\257\201\344\271\246 - nginx.md" new file mode 100644 index 0000000000000000000000000000000000000000..19928292a601fff1c714bf8f176b96019cdf080f --- /dev/null +++ "b/\350\265\226\345\277\203\345\246\215/20240606 PacVim \344\270\216 SSL\350\257\201\344\271\246 - nginx.md" @@ -0,0 +1,93 @@ +## PacVim下载 + +[技术|PacVim:一个学习 vim 命令的命令行游戏 (linux.cn)](https://linux.cn/article-9738-1.html) + +## SSL证书 - nginx + +### 购买SSL证书 + +[购买SSL证书_云证书管理服务 CCM (huaweicloud.com)](https://support.huaweicloud.com/usermanual-ccm/ccm_01_0074.html) + +### 申请SSL证书 + +[提交SSL证书申请_云证书管理服务 CCM (huaweicloud.com)](https://support.huaweicloud.com/usermanual-ccm/ccm_01_0075.html) + +### 下载SSL证书 + +[下载SSL证书_云证书管理服务 CCM (huaweicloud.com)](https://support.huaweicloud.com/usermanual-ccm/ccm_01_0027.html) + +### 安装SSL证书 + +[在Nginx服务器上安装SSL证书_云证书管理服务 CCM (huaweicloud.com)](https://support.huaweicloud.com/usermanual-ccm/ccm_01_0082.html) + +#### 创建目录 + +在Nginx的安装目录下创建“cert”目录 + +并且将“server.key”(私钥)和“server.crt”(证书)复制到“cert”目录下 + +![image-20240610144841366](assets/16.png) + +![848ba9a3b7441da0f27ac59e427c94d](assets/17.png) + +#### 修改配置文件 + +因为是另起一个配置文件制作网页 + +没有在nginx作更改所以需要在那个文件配置 + +![fa111e42d6d9a402c65ed119acc0899](assets\18) + +![](assets\19) + +```bash +# 需要将http与https重定向 +# 上一个server需要添加 rewrite ^(.*)$ http://$host$1; +# 上一个server可以将location注释 +``` + +```bash +# 在文件里添加 +server { + listen 443 ssl; + server_name 域名; + ssl_certificate 证书路径; + ssl_certificate_key 私钥路径; + ssl_session_cache shared:SSL:1m; + ssl_session_timeout 5m; + ssl_ciphers HIGH:!aNULL:!MD5; + ssl_prefer_server_ciphers on; + location / { + root 网页内容文件路径; + index index.html index.htm; + } +} +``` + +在nginx里作更改添加到nginx.conf里 + +#### 验证配置是否正确 + +```bash +# 在nginx执行目录下执行命令 +sbin/nginx -t + +# 但是执行目录也有可能在/etc/nginx +# 所以可以进入/etc/nginx执行命令 +./nginx -t + +# 成功会显示一下信息 +nginx.conf syntax is ok +nginx.conf test is successful +# 失败会报错 +``` + +#### 重启nginx + +```bash +cd /usr/local/nginx/sbin +./nginx -s reload + +# 不知道nginx在哪可以使用重启nginx +systemctl restart nginx +``` \ No newline at end of file diff --git "a/\350\265\226\345\277\203\345\246\215/assets/16.png" "b/\350\265\226\345\277\203\345\246\215/assets/16.png" new file mode 100644 index 0000000000000000000000000000000000000000..cfef0d1418b9103e86a957f1baef9bf5e073f8ee Binary files /dev/null and "b/\350\265\226\345\277\203\345\246\215/assets/16.png" differ diff --git "a/\350\265\226\345\277\203\345\246\215/assets/17.png" "b/\350\265\226\345\277\203\345\246\215/assets/17.png" new file mode 100644 index 0000000000000000000000000000000000000000..3295d292db77e692f2d0bf939265577e20e76b38 Binary files /dev/null and "b/\350\265\226\345\277\203\345\246\215/assets/17.png" differ diff --git "a/\350\265\226\345\277\203\345\246\215/assets/18.png" "b/\350\265\226\345\277\203\345\246\215/assets/18.png" new file mode 100644 index 0000000000000000000000000000000000000000..edface51f7d9f89b8bec73155b3261f8f8c7975f Binary files /dev/null and "b/\350\265\226\345\277\203\345\246\215/assets/18.png" differ diff --git "a/\350\265\226\345\277\203\345\246\215/assets/19.png" "b/\350\265\226\345\277\203\345\246\215/assets/19.png" new file mode 100644 index 0000000000000000000000000000000000000000..c7a89ecb96460767b7d88744bf7bbb825d5404b1 Binary files /dev/null and "b/\350\265\226\345\277\203\345\246\215/assets/19.png" differ