Skip to content

Commit

Permalink
补充nix笔记&&笔记调整
Browse files Browse the repository at this point in the history
  • Loading branch information
whitestarrain committed Dec 5, 2024
1 parent 4714b71 commit 0bbd6ff
Show file tree
Hide file tree
Showing 6 changed files with 733 additions and 154 deletions.
12 changes: 6 additions & 6 deletions base/bash.md
Original file line number Diff line number Diff line change
Expand Up @@ -2036,6 +2036,8 @@ done
| `-t` || 执行完第一条命令后退出 |
| `-v` | verbose | 在执行每条命令前,向`stderr`输出该命令 |
| `-x` | xtrace | 在执行每条命令前,向`stderr`输出该命令以及该命令的扩展参数 |
| `-e` | | 脚本只要发生错误,就终止执行。 |
| `-u` | | 执行脚本时,如果遇到不存在的变量,Bash 默认忽略它。 |
- 举个例子,如果我们在脚本中指定了`-x`例如:
Expand Down Expand Up @@ -2317,19 +2319,17 @@ TODO: bash笔记
dirs
## 16.6. 临时文件夹
## 16.7. set,shopt命令
## 16.6. set,shopt命令
[set 命令,shopt 命令](https://wangdoc.com/bash/set)
[set, shopt](https://www.gnu.org/software/bash/manual/html_node/Modifying-Shell-Behavior.html)
## 16.8. mktmp, trap命令
## 16.7. mktmp, trap命令
## 16.9. getoption命令
## 16.8. getoption命令
## 16.10. 命令提示符
## 16.9. 命令提示符
# 17. 后记
Expand Down
205 changes: 113 additions & 92 deletions base/linux_basic.md
Original file line number Diff line number Diff line change
Expand Up @@ -913,7 +913,7 @@ tr '[:lower:]' '[:upper:]'
tab 作为分割符的两个csv文件,根据第一列join起来:
```
join -t, -a1 -a2 -o 0,1.2,1.3,1.4,1.5,1.6,2.6,2.7,2.8 -e '?' \
join -t, -11 -21 -a1 -a2 -o 0,1.2,1.3,1.4,1.5,1.6,2.6,2.7,2.8 -e '?' \
<(sed 1d file1.csv | sed 's/\t/,/g' | sort -t ',' -k 1,1) \
<(sed 1d file2.csv | sed 's/\t/,/g' | sort -t ',' -k 1,1) \
> dataset.csv
Expand Down Expand Up @@ -2478,6 +2478,8 @@ uptime查看系统启动时间与工作负载
## 11.2. cron
### 11.2.1. 介绍
- 执行权限,二选一
- /etc/cron.allow
- /etc/cron.deny
Expand All @@ -2488,7 +2490,106 @@ uptime查看系统启动时间与工作负载
- `/etc/cron.d/*`
- 执行记录:/var/log/cron
周与日月不可共存
- crontab命令
- 是cron table的简写
- corn table是cron的配置文件,也可以叫它作业列表
- 可以在以下文件夹内找到相关配置文件。
- /var/spool/cron/ 目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名
- /etc/crontab 这个文件负责调度各种管理和维护任务。
- /etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。
- 还可以把脚本放在一下目录,让它每小时/天/星期、月执行一次。
- /etc/cron.hourly
- /etc/cron.daily
- /etc/cron.weekly
- /etc/cron.monthly
### 11.2.2. 使用
- 语法
```bash
crontab [-u username]    # 省略用户表表示操作当前用户的crontab
-e # 编辑工作表
-l # 列出工作表里的命令
-r # 删除工作作
```
- crontab -e进入当前用户的工作表编辑
- 是常见的vim界面
- 每行是一条命令。
- cron 命令格式
- crontab的命令构成为 时间+动作
- 时间有
- 分、时、日、月、周五种
- 周与日月不可共存
- 操作符有
- * 取值范围内的所有数字
- / 每过多少个数字
- - 从X到Z
- ,散列数字
### 11.2.3. 实例
- 实例 1:每 1 分钟执行一次 myCommand
```bash
* * * * * myCommand
```
- 实例 2:每小时的第 3 和第 15 分钟执行
```
3,15 * * * * myCommand
```
- 实例 3:在上午 8 点到 11 点的第 3 和第 15 分钟执行
```
3,15 8-11 * * * myCommand
```
- 实例 4:每隔两天的上午 8 点到 11 点的第 3 和第 15 分钟执行
```
3,15 8-11 */2 * * myCommand
```
- 实例 5:每周一上午 8 点到 11 点的第 3 和第 15 分钟执行
```
3,15 8-11 * * 1 myCommand
```
- 实例 6:每晚的 21:30 重启 smb
```
30 21 * * * /etc/init.d/smb restart
```
- 实例 7:每月 1、10、22 日的 4 : 45 重启 smb
```
45 4 1,10,22 * * /etc/init.d/smb restart
```
- 实例 8:每周六、周日的 1 : 10 重启 smb
```
10 1 * * 6,0 /etc/init.d/smb restart
```
- 实例 9:每天 18 : 00 至 23 : 00 之间每隔 30 分钟重启 smb
```
0,30 18-23 * * * /etc/init.d/smb restart
```
- 实例 10:每星期六的晚上 11 : 00 pm 重启 smb
```
0 23 * * 6 /etc/init.d/smb restart
```
- 实例 11:每一小时重启 smb
```
0 */1 * * * /etc/init.d/smb restart
```
- 实例 12:晚上 11 点到早上 7 点之间,每隔一小时重启 smb
```
0 23-7/1 * * * /etc/init.d/smb restart
```
## 11.3. anacron
Expand Down Expand Up @@ -4012,6 +4113,16 @@ modinfo
- 使用标准输入: `--data-binary @-`
- 使用中遇见的RST处理case:
```
21:14:44.255886 IP 10.11.174.174.vcom-tunnel > yq01-bi-dev.yq01.xxxxx.com.19092: Flags [.], ack 245, win 261, length 0
21:14:44.255984 IP 10.11.174.174.vcom-tunnel > yq01-bi-dev.yq01.xxxxx.com.19092: Flags [.], ack 7829, win 320, length 0
21:16:14.476374 IP 10.11.174.174.vcom-tunnel > yq01-bi-dev.yq01.xxxxx.com.19092: Flags [R], seq 26669779, win 0, length 0
```
第三行,尽管发送了 RST,但是 curl 也不会断掉
(104, Connection reset by peer) 对 curl 不生效
### 17.1.3. ftp sftp lftp
- ftp/sftp文件传输:
Expand Down Expand Up @@ -4407,96 +4518,6 @@ TODO: linux 虚拟网络
## 19.14. tcpdump 抓包工具
### 19.14.1. 介绍
- crontab命令
- 是cron table的简写
- corn table是cron的配置文件,也可以叫它作业列表
- 可以在以下文件夹内找到相关配置文件。
- /var/spool/cron/ 目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名
- /etc/crontab 这个文件负责调度各种管理和维护任务。
- /etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。
- 还可以把脚本放在一下目录,让它每小时/天/星期、月执行一次。
- /etc/cron.hourly
- /etc/cron.daily
- /etc/cron.weekly
- /etc/cron.monthly
### 19.14.2. 使用
- 语法
```bash
crontab [-u username]    # 省略用户表表示操作当前用户的crontab
-e # 编辑工作表
-l # 列出工作表里的命令
-r # 删除工作作
```
- crontab -e进入当前用户的工作表编辑
- 是常见的vim界面
- 每行是一条命令。
- cron 命令格式
- crontab的命令构成为 时间+动作
- 时间有
- 分、时、日、月、周五种
- 操作符有
- * 取值范围内的所有数字
- / 每过多少个数字
- - 从X到Z
- ,散列数字
### 19.14.3. 实例
- 实例 1:每 1 分钟执行一次 myCommand
```bash
* * * * * myCommand
```
- 实例 2:每小时的第 3 和第 15 分钟执行
```
3,15 * * * * myCommand
```
- 实例 3:在上午 8 点到 11 点的第 3 和第 15 分钟执行
```
3,15 8-11 * * * myCommand
```
- 实例 4:每隔两天的上午 8 点到 11 点的第 3 和第 15 分钟执行
```
3,15 8-11 */2 * * myCommand
```
- 实例 5:每周一上午 8 点到 11 点的第 3 和第 15 分钟执行
```
3,15 8-11 * * 1 myCommand
```
- 实例 6:每晚的 21:30 重启 smb
```
30 21 * * * /etc/init.d/smb restart
```
- 实例 7:每月 1、10、22 日的 4 : 45 重启 smb
```
45 4 1,10,22 * * /etc/init.d/smb restart
```
- 实例 8:每周六、周日的 1 : 10 重启 smb
```
10 1 * * 6,0 /etc/init.d/smb restart
```
- 实例 9:每天 18 : 00 至 23 : 00 之间每隔 30 分钟重启 smb
```
0,30 18-23 * * * /etc/init.d/smb restart
```
- 实例 10:每星期六的晚上 11 : 00 pm 重启 smb
```
0 23 * * 6 /etc/init.d/smb restart
```
- 实例 11:每一小时重启 smb
```
0 */1 * * * /etc/init.d/smb restart
```
- 实例 12:晚上 11 点到早上 7 点之间,每隔一小时重启 smb
```
0 23-7/1 * * * /etc/init.d/smb restart
```
## 19.15. 内网穿透frp
### 19.15.1. 基本说明
Expand Down
3 changes: 3 additions & 0 deletions distributed_system/distribute_system_concept.md
Original file line number Diff line number Diff line change
Expand Up @@ -357,6 +357,9 @@
- 只看单机代理组件(数据面板)和控制面板的Service Mesh全局部署视图如下:

> ![distribute_system-44.png](./image/distribute_system-44.png)
- 代表产品
- istio
- conduit/linkerd2

> **总结说明**
Expand Down
56 changes: 40 additions & 16 deletions todo.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,24 @@

> todo 和一些想之后看的资料
# 优先级较高项
```
You can't connect the dots looking forward; you can only connect them looking backwards.
So you have to trust that the dots will somehow connect in future.
You have to trust in something - your gut, destiny, life, karma, whatever.
This approach has never let me down, and it has made all the difference in my life.
- [x] [手把手教你构建 C 语言编译器](https://lotabout.me/2015/write-a-C-interpreter-0/)
- [x] 编译原理复习
你展望人生的时候,不可能把这些点连起来;只有当你回顾人生的时候,才能发现它们之间的联系。
所以你必须有信心,相信这些点总会以某种方式,对你的未来产生影响。
你必须相信一些事情----你的勇气、命运、人生、缘分等等。
这样做从未令我失望,反而决定了我人生中所有与众不同之处。
- [ ] emacs, elisp
- common ansi lisp
- [Emacs Lisp 简明教程](https://smacs.github.io/elisp/)
> 乔布斯在斯坦福大学毕业典礼上的演讲
```

- [ ] effective cpp
- 主要是为了刷题,同时复习一下cpp
# 优先级较高项

- [ ] [常用 bash 命令](https://github.com/jlevy/the-art-of-command-line/blob/master/README-zh.md)
- star 不少,可以过一遍,看看有没有自己眼生的,总结到 linux.md 或者 bash.md 中
- [x] [手把手教你构建 C 语言编译器](https://lotabout.me/2015/write-a-C-interpreter-0/)
- [x] 编译原理复习

- [ ] 迁移 nixos
- 一段时间不 `pacman -Syu`,就会有些包因为版本问题没办法使用
Expand All @@ -27,6 +31,18 @@
- [ ] 数据备份
- [ ] 系统安装

- [ ] emacs, elisp
- common ansi lisp
- [Emacs Lisp 简明教程](https://smacs.github.io/elisp/)

- [ ] effective cpp
- 主要是为了刷题,同时复习一下cpp

- [ ] [常用 bash 命令](https://github.com/jlevy/the-art-of-command-line/blob/master/README-zh.md)
- star 不少,可以过一遍,看看有没有自己眼生的,总结到 linux.md 或者 bash.md 中

- [个人数据安全不完全指南](https://thiscute.world/posts/an-incomplete-guide-to-data-security/#%E9%9B%B6%E5%89%8D%E8%A8%80)

- [ ] NAS 搭建 && 数据备份
- 参考:[ntzyz, nas 和数据备份](https://ntzyz.space/zh-cn/post/nas-and-backup/)
- 主要是因为网易云音乐相关,想搞个公共存储
Expand All @@ -51,8 +67,12 @@

- [ ] [emacs GTD 日程管理](https://www.cnblogs.com/yangruiGB2312/p/9101838.html)

- [ ] linux 系统编程

- [ ] [DN42 实验网络介绍及注册教程](https://lantian.pub/article/modify-website/dn42-experimental-network-2020.lantian/)

- [ ] [深入架构原理与事件](https://www.thebyte.com.cn/)

# 小任务

- [ ] traceroute 实现
Expand Down Expand Up @@ -122,11 +142,14 @@
- MIT 6.828: Operating System Engineering
- [SysY 语言编译到 RISC-V-北大编译实践在线文档](https://pku-minic.github.io/online-doc/#/)

# 神级程序员 博客
# 博客、社区

- [bellard](https://bellard.org/)
- [Daniel Holden](https://www.theorangeduck.com/)
- [Thomas E. Dickey](https://invisible-island.net/)
- 神级程序员
- [bellard](https://bellard.org/)
- [Daniel Holden](https://www.theorangeduck.com/)
- [Thomas E. Dickey](https://invisible-island.net/)
- 社区
- [0xffff平台帖子:有什么值得一看的博客推荐](https://0xffff.one/d/12)

# 付费课程

Expand Down Expand Up @@ -696,8 +719,7 @@ cookie和session攻击
- [Nix 和 NixOS:你们安利方法错了](https://nyk.ma/posts/nix-and-nixos/)
- [nix基础](https://juejin.cn/post/7165305697561755679)
- [Nix 详解(三) nix 领域特定语言](https://www.rectcircle.cn/posts/nix-3-nix-dsl/)
- 没有提供源码的专有软件,会通过patchelf ld-linux.so 位置到 /nix/store/xxx-glibc-xxx/lib. [wiki](https://nixos.wiki/wiki/Packaging/Binaries)
- [使用 nix 包管理器解决 glibc 兼容问题](https://v2ex.com/t/892346)
- 没有提供源码的专有软件,会通过patchelf ld-linux.so 位置到 /nix/store/xxx-glibc-xxx/lib. [wiki](https://nixos.wiki/wiki/Packaging/Binaries) [使用 nix 包管理器解决 glibc 兼容问题](https://v2ex.com/t/892346)
- [nixos wiki](https://nixos.wiki/wiki/Main_Page)
- [nix 学习经验:安装和打包](https://linux.cn/article-16332-1.html)
- [Nix Reference Manual](https://nix.dev/manual/nix/2.18/introduction)
Expand All @@ -707,6 +729,7 @@ cookie和session攻击
- 因为没有使用FHS,所以一些工具一起使用的时候可能有问题, 比如
- vscode的terminal中使用gdb,需要使用 vscode FHS environment: [Getting gdb to work in vscode](https://www.reddit.com/r/NixOS/comments/1aep3c5/getting_gdb_to_work_in_vscode/)
- [No starship prompt under nix-shell?](https://github.com/starship/starship/discussions/5378)
- 如果想学习操作系统,nix wrap了那么多层,是不是更需要理解,比较一下 nixos 和 arch 的根目录
## lang
Expand Down Expand Up @@ -939,5 +962,6 @@ cookie和session攻击
- [网易云音乐ncm格式分析以及ncm与mp3格式转换](https://www.cnblogs.com/cyx-b/p/13443003.html)
- [CloudFlare Tunnel 免费内网穿透的简明教程](https://sspai.com/post/79278)
- anki 记忆卡,fsrs 算法
- [物联网 Arduino 入门](http://www.taichi-maker.com/homepage/arduino-tutorial-index/)
Loading

0 comments on commit 0bbd6ff

Please sign in to comment.