Shawn's Blog

一个伪程序员的伪技术博客

0X00 简单介绍

想必看到这篇博客的各位肯定会经常工作在 Terminal 中吧,而且对自己稍微好一些的人应该也都会配置一下自己的终端环境,比较常见的就是 Linux 下装个 terminator 或者 macOS 下装一个 iTerm2 这种软件,然后再用 zsh 配合不同的主题和插件完善自己的体验。而且真正用过一段时间终端的人肯定都会有那种一个窗口不够用的情况,那么你可能要用到终端模拟器(terminator/iTerm2)的 tab 功能了,每次都额外开一个新 tab 出来,或者上下左右开始分屏了。

一切都很顺利,直到你开始频繁的连接到远端的服务器上去,然后发现自己习以为常的分屏和 tab 全都没有了,每次想再开一个远端的 shell 时都需要在本地开一个分屏然后重新 ssh 重新输密码,需要 sudo 的话还可能需要再重复一下密码。一次两次还好,次数多了肯定就麻了,这时候就是 tmux 大展身手的时候了~

tmux 本身是一个终端复用器,可以做到的功能包括终端横向纵向的分屏、多 tab 切换等等。

0X01 基本用法

要用 tmux 首先要有 tmux 才行(废话文学),有些 Linux 发行版本预装了的,如果没有的话用对应的软件包管理器装一下就行了,非常小且没什么依赖。

在使用之前先要区分一下 tmux 中 Server/Session/Window/Pane 这四个比较重要的概念:

  • Server 服务,是最上级的,是整个 tmux 的后台服务,一般很少会直接操作它
  • Session 会话,是我们在终端敲下 tmux 之后随之启动的东西,类似于其他终端模拟器的一个窗口
  • Window 工作区,默认情况下新建一个 Session 就会带有一个 Window,类似于其他终端模拟器的 tab,也就是说一个 Session 可以创建很多个 Window
  • Pane 就是最小一级了,默认情况下一个 Window 就会带有一个 Pane,也就是说一个 Window 下面可以选择左右上下分很多个 Pane,类似下面这张图(这个是我自己配置过的,跟原生配置不同但是概念是一致的)

SCR-20230517-txv

图里看到的是一个 Session,我在其中创建了 4 个 window 并且在 window 4 上创建了 3 个 pane

然后打开自己的终端,输入 tmux 并回车就可以了,看起来和刚刚没什么区别。现在对着这个平平无奇的终端开始介绍一下具体的用法。

tmux 本身有非常多的快捷键,使用这些快捷键的前提是「进入 tmux 的命令模式」,默认按键是 <Ctrl> + B ,熟悉 vim 的人可能比较容易理解。因为默认配置下进入命令模式之后界面上并没有什么提示,所以不放心的话可以先敲两次 ESC 回到普通模式再按触发键。

要搞成上面我截图的这种(指的是用法不是外观)是很简单的,首先我们先按快捷键 <Ctrl> + B 进入命令模式,然后再按 b 就可以创建一个新的 window 了,连续创建 3 个之后大概会长成这样(截图是一个没有经过配置的 tmux 的样子)

SCR-20230517-u9t

可以看到下面有四个 window 了,其中打了星号的就是当前正在操作的 window。想切换不同的 window 的话就是命令模式下直接输入数字即可。

SCR-20230517-ufn

接下来在当前 window 下进行分屏,命令模式下 " 是左右分屏,% 是上下分屏。在一个 window 下有多个 pane 的时候可以使用命令模式下的方向键在多个 pane 之间切换,存在光标的就是当前正在激活的 pane(通过绿颜色的边框同样可以快速找到当前正在激活状态的 pane)。

0X02 修改配置

「新安装一个软件之后第一件事不是开始用,而是先点开设置看看有什么好玩的东西」的人应该不止我一个喔。

tmux 的配置文件是 ~/.tmux.conf (其实还有其他会影响全局的,但是不建议改它所以这里并不打算告诉你),这里贴下我自己的一部分配置并在注释里简要说明一下,仅供参考。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# bind new prefix  修改前缀按键(也就是命令快捷键)
unbind-key C-b # 取消绑定 Ctrl + b
set-option -g prefix C-f # 绑定 Ctrl + f
bind-key C-f send-prefix

# using vi mode
setw -g mode-keys vi # 使用 vi 模式
bind-key -T copy-mode-vi 'v' send -X begin-selection # vi 模式下的粘贴
bind-key -T copy-mode-vi 'C-v' send -X rectangle-toggle
bind-key -T copy-mode-vi 'y' send -X copy-selection # vi 模式下的复制

# plugins # 一些插件,可以在 GitHub 上找到详细介绍
set -g @plugin 'tmux-plugins/tpm' # 插件管理器
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'
set -g @plugin 'tmux-plugins/tmux-yank'

# status bar # 截图下方右侧的状态栏
set -g status-style bg='black',fg='white'
set -g status-interval 1
set -g status-left '#{?client_prefix,,}'
set -g status-right '#[bg=default]#[fg=default]#(date "+%R ")#[bg=black]#[fg=brightgreen]#[bg=brightgreen]#[fg=black]Shawn#[bg=brightgreen]#[fg=black]' # 字体原因可能现实不全,但是可供参考

# window bar # 截图下方左侧的 window bar
set -g window-status-current-format "#[bg=brightgreen]#[fg=black]#[bg=brightgreen]#[fg=black]#I:#W#[bg=black]#[fg=brightgreen]" # 同上字体原因
set -g window-status-format "#[bg=default]#[fg=default]#I:#W"

# pane border # pane 之间的分割线配置
set -g pane-border-style fg='gray'
set -g pane-active-border-style fg='brightgreen'

# window and pane index # 违背祖宗之法的从 1 开始编号
set -g base-index 1
set -g pane-base-index 1


# hotkeys # 配置一些快捷键
bind h select-pane -L # 继承自 vim 的 h 为切换到左侧 pane
bind j select-pane -D # 同上继承自 vim
bind k select-pane -U # 同上继承自 vim
bind l select-pane -R # 同上继承自 vim
bind y resize-pane -L 5 # 选取 hjkl 上面四个按键,用于上下左右拉伸 pane
bind u resize-pane -D 5
bind i resize-pane -U 5
bind o resize-pane -R 5
bind r source-file ~/.tmux.conf \; display-message "Config reloaded.." # 修改配置文件后方便重载配置

set -g display-panes-time 3000
set-option -g mouse on # 启用鼠标操控

# split pane
unbind '"' # 弃用双引号分割
unbind % # 弃用百分号分割
bind - splitw -v -c '#{pane_current_path}' # 将 - 绑定为上下分屏(图像记忆,像是横着的一刀)
bind \\ splitw -h -c '#{pane_current_path}' # 将 \ 绑定为左右分屏(同上)


# run TmuxPluginManager 插件管理器
run '~/.tmux/plugins/tpm/tpm'

⚠️ tmux 就像 vim 一样,你当然可以在自己的电脑上疯狂配置,但是请牢记:首先不论如何都要记得默认配置下的基本用法,否则当你远程到服务器上的时候必定会一脸懵逼;其次千万不要修改服务器上的操作相关的配置,否则你的同事可能会提刀来见你☠️

0X03 命令速查

默认配置

系统指令:

  • ? 帮助文档
  • d 断开会话
  • D 选一个 session 断开
  • C-z 挂起当前 session
  • r reload 当前 session
  • s 显示 session 列表并切换
  • : 进入系统 shel
  • [ 进入复制模式,按 q 退出
  • ] 粘贴复制模式的文本window 指令
  • c 新建
  • & 关闭当前
  • 0~9 切换
  • p 上一个
  • n 下一个
  • w 打开列表用于切换
  • ‘ 重命名当前 window
  • . 修改当前编号
  • f 快速定位(匹配名称Pane 指令
  • ” 左右分屏
  • % 上下分屏
  • x 关闭当前 pane
  • z 临时全屏,再按恢复
  • ! 将 pane 挪出当前 window
  • ; 切换到上一个 pane
  • { 向前置换
  • } 向后置换
  • Alt + ↑↓←→ 调整当前 pane 边缘
  • t 显示时间
  • o 切换 pane
  • q 显示 pane 的 index,快速输入 index 可切换

0X04 更好的资料

是的没错,阮一峰大佬的文章当然比我写的更好很多很多倍😄

0X00 基本内容

你应该听人跟你说过类似于「你看 2333 这个端口在没在监听」这句话吧,也应该听过「我可以 ping 通所以肯定不是网络的问题」这种话吧。虽然听的多了,但实际上它漏洞百出。

首先我们都知道端口号是一个数字,从 0 到 65535 其中 0~2013 叫 well-known ports 知名端口,也就是说通常某个端口就固定给某个服务使用,比如你见到 22 就第一反应该是 ssh 而非 MySQL,见到 80 就知道是 HTTP 而非 smtp。也正是如此,在 Linux 中你自己开发的程序平时监听 8080 没啥问题,但是想监听 80 的时候就要校验你的 root 权限了。

其次要知道端口是 IP 地址上的,并非电脑上的。也就是说当你电脑同时拥有 192.168.2.123192.168.2.234 两个 IP 的时候,你可以启动两个 Nginx 分别监听他们的 80 端口。

最后要知道端口也是分类型的,即使是同一地址的统一端口也可以 tcp 和 udp 分开监听,也就是说你可以同时监听:

1
2
3
4
192.168.2.123:80 tcp
192.168.2.123:80 udp
192.168.2.234:80 tcp
192.168.2.234:80 udp

SCR-20230331-paqh

0X01 如何检查

通常来说有什么服务直接用就试了,不过有时候我们需要自底向上的检查问题,那么第一步就是检查服务端的监听是否正常,正常的话客户端的连通是否顺利。首先保证我们的 TCP 和 UDP 通信时正确的,再来排查上层的程序,否则可能你调了半天程序最终发现网络压根就没通。

ss 命令

首先介绍一下用 ss 命令(socket statistics)来查看自己机器上的端口开放情况,比较常见的用法是 ss -apnl

  • a 是所有 socket,包含了 tcp udp 的,也可以单独使用 t 或者 u 筛选
  • p 显示进程名和 PID 这些
  • n 不解析服务名,这样不仅速度更快而且也更便于筛选端口号
  • l 仅显示监听状态

SCR-20230331-ohke

nc 命令

这个 nc 命令一般会随系统附带,没有的话需要安装 netcat 软件包。它可以快速绑定一个地址和端口并进行监听,也可以快速向指定 ip 和端口发送数据。

1
2
3
4
5
6
7
8
9
10
11
# 监听 tcp 0.0.0.0 2333
nc -l 0.0.0.0 -p 2333

# 监听 udp 0.0.0.0 2333
nc -ul 0.0.0.0 -p 2333

# 向 tcp 127.0.0.1 2333 发内容
echo "hello, world" | nc 127.0.0.1 2333

# 向 udp 127.0.0.1 2333 发内容
echo "hello, world" | nc -u 127.0.0.1 2333

用法应该很好理解,其中 -l 是 Listen 也就是监听,-u 是指 UDP(默认情况下是 TCP)

好了,现在可以和以前那个只知道用 ping 来判断网络通不通的自己说再见了👋

0X00 介绍

奖杯系统这东西是从 PlayStation 上借鉴过来的,PlayStation 上每个游戏均会设置一些奖杯,当玩家达成奖杯对应条件的时候就会解锁该奖杯,从而给玩家的游玩过程以正反馈。XBox 上也有类似的成就系统,都是用来给玩家正反馈的。

我作为一个游戏玩家就很喜欢拿到奖杯的感觉,尤其是拿到了一个金杯、白金杯(虽然我还从来没拿过白金杯)然后看到只有百分之一的玩家得到了这个奖杯的时候。既然游戏制作人可以为游戏设置将被,那我们为什么不考虑把自己的人生作为一个游戏来给它设置一些奖杯呢~

在开始之前要说明一下人生奖杯系统是什么又不是什么:

  • 奖杯系统是成就系统,不是代办清单
  • 奖杯系统是自我激励和正向反馈的,不是用来给自己压力的
  • 奖杯系统是非常个人化的,不是有最佳实践的

0X01 我的奖杯系统

奖杯系统

先来给大家介绍一下我自己的奖杯系统,它是用 Notion 的数据库功能制作的。细心的朋友可以看出来我整个 Notion 都是「游戏化」的,工作区叫做「地球Online」,核心页叫「初始台地」,专业技能的笔记叫「主修技能」,一些其他的非专业技能笔记叫做「辅修技能」,还有武功秘籍之类的东西。

不要问我为啥我一个奖杯都没拿到,这不是为了截图公开出来就把完成了的放在后面了嘛~

我的奖杯系统算是比较简单的,目前只设置了:名字、描述、难度、日期和图片五个字段。

  • 其中「名字」是尽可能参照之前玩过的游戏奖杯风格去设计的。我觉得用「永不消失的电波」作为奖杯名比「通过无线电考试」感觉更酷一点~
  • 「描述」则是对成就的具体描述,说清楚了如何才能拿到这个奖杯。比如光看「好机车噢」可能并不能知道怎么才能拿到,所以需要一个描述的稍微详细一些的字段
  • 「难度」就很好理解了,我是把它分成了:青铜、白银、黄金、白金、梦幻五个档次。其中铜杯是稍稍努力就能轻松拿到的,银杯是七八成努力就稳稳能拿到的,金杯是全力输出后大概率可以拿到的,白金杯是全力输出后拿到奖杯的概率也并不很高的,梦幻则是全力输出也大概率拿不到的(比如我奖杯系统中的买一套 130+ 平米的房子😭)
  • 「时间」和「图片」最好理解,就是拿到这个奖杯的时间和记录性质的一张照片或者截图。

0X02 你的奖杯系统

介绍完了我的奖杯系统该看看如何创建你的奖杯系统了~

首先选择一个工具,比如 Notion、Excel、滴答清单、甚至最朴素的纸笔都是可以的。如果打算创建一个我这类的奖杯系统建议选择对表格支持的比较好的软件。

其次就该规划字段了,看看每个奖杯都有一些什么属性。通常来说:名字、描述、难度、加入时间、完成时间、奖励点、照片、感受、备注等等这种字段都可以加,完全看自己觉得需要些什么东西。

  • 「名字」最好短一些,与奖杯内容关联强一些,有趣一些就更好了
  • 「描述」也是精简一些,说清楚究竟完成了什么事情就能拿到这个奖杯即可
  • 「难度」则可以从三档到五档分一分,当然你想用 0~100 的数字来精细化管理也是可以的
  • 「奖励点」是我一直想设置,但最终因为麻烦放弃的。如果要设置的话,可以根据每个奖杯的具体难度设置一些奖励点,例如「通过英语四级考试 – 3点」、「通过英语六级考试 – 5」、「首次跑完一场半马 – 3」、「首次跑完一场全马 – 5」这样,然后再给这些奖励点一个倍数比如 100。这样当你完成半马之后就获得了 3 * 100 = 300 元的奖励资金,可以买个自己喜欢的东西来奖励自己~当然也可以针对性的对每一个奖杯设置一个奖励,比如「跑完一场半马 – 奖励自己一双xxx跑鞋」或者「自己的照片被XX杂志选中 – 奖励自己一颗新镜头」

好了现在奖杯系统设置好了,就差内容填充了。那么 什么样的事情适合作为奖杯加入其中呢? 其实原则上小到「连续一周不迟到」,大到「三小时速登珠峰」都是可以的。但是如果太多极低难度奖杯的话,拿到奖杯的成就感会大打折扣,难度太高的话又会导致三两年也拿不到一个,最后都是让这个奖杯系统废掉。所以我认为比较合理的就是从「稍稍努力就能完成」到「全力以赴才有一点点可能」的这个范围内的事情,从简单到困难数量递减分布,这样每隔一段时间都会拿到一个奖杯有正向反馈,也会有高难度奖杯在吊着你让你更努力的生活去完成它。

那么现在你的奖杯系统已经准备好了,可以开始尽情的填充内容了~

年度总结:今年摆烂,完了。

0X00 开篇

不开玩笑,又到了一个年尾巴。本以今年会是轻松的一年,结果却是异常的艰辛😮‍💨 千算万算肯定是算不到 2022 年对生活影响最大的仍是疫情。本以为今年就彻底解决疫情了,但奈何天不遂人愿,一直到今天疫情仍然与你我密切相关。今年我核酸做了一两百次、居家办公一轮又一轮、收集了两个省的黄码、喜提了两周的铁皮围栏隔离,最后几天还是没顶住,至今仍在干咳。

接下来就简单整理一下今年发生过的值得记录下来的一些事情吧🎉

写完发现长度有点离谱,又尽力缩减了一些,有些实在是觉得写了不舍得删就继续留下了,这可能是我最长的一篇年终总结甚至是最长的一篇博客了。

0X01 生活

今年的生活过的比较普通,依旧没有发生什么惊天地泣鬼神的大事。不过人的一生又能经历几次大事呢?这些零零散散的小事情一件一件拼起来才是绝大多数人的生活吧。

智齿

首先是今年年初去拔了智齿,切身体会到了电钻在嘴里飞速旋转的感觉。很多人都说拔了一颗之后要缓很长时间才能去拔第二颗,但是我第一次就拔了同一侧的两颗,医生还说一周后来拆线然后可以顺便把另外一遍的也拔掉。我就严格按照医生说的在连续两个周末拔掉了三颗智齿,也没觉得有什么特别的🤣 不过第二次给我拔牙的一个医生不是很靠谱,拔完之后有一小块残留的牙齿碎片在里面,导致我流血不止,大半夜的还跑去医院急诊了一趟😮‍💨

如果说有什么经验可以分享的话,那就是真的没必要拔个智齿也往华西跑,只要在靠谱的三甲医院找一个职称靠谱的医生就可以啦。

搬家

另外一个就是今年又搬家了,新房间比原来大了不少,尤其是这个视野非常不错,唯一烦人的地方就是冬天晒不到太阳🌞现在再也不用担心跟室友抢洗衣机、抢微波炉、抢阳台、抢冰箱了,确实还是要舒服很多(虽然成本也高了不少)。

新住处-2
新住处-1

父母

还有就是今年父母又过来了一趟,这次在成都算是比较熟悉了,不像是刚刚毕业那段时间想去找个好吃的好玩的地方都不知道。这次还是带着父母去了些不错的馆子,去了都江堰和大熊猫繁育基地,而且因为有了驾照还可以租车短程自驾了一段。再加上换了更大的住处,总的来说比上次过来的时候体验上应该还是好了很多的。

要说有什么不太好的,那就是自己没有车,还是要跟父母一起坐地铁出行,而且去远一点的地方自驾还得租车,着实是不太方便。如果手头有一辆代步车的话,就能更方便去机场接送、去周边吃喝、去近郊出游了。还是要努力赚钱呀💰

做饭

最后就是最近又开始做饭了,感觉自己的「厨艺」终于像那么回事了。以前都是蛋炒饭、土豆丝、番茄炒蛋、辣椒炒肉这种难度一颗星的菜品,现在可以逐渐尝试火爆牛肉丝、干煸排骨甚至是拔丝糖醋排骨这种两星甚至三星难度的菜了。现在挡在我做菜前面最大的障碍可能就是「刀工」了,经常把丝切成条、把丁切成块、把片切成坨。

我做的饭

0X02 学习

接下来就是今年学习的部分了,其实今年总共完成的学习任务并不多,但是也还算比较满意。其实我很好奇其他人在下班时间之后会留给自己多久的学习时间。自己下班不学习的话会觉得又在摆烂了,怪不得同事什么都懂就我像个废物;下班学习半个一个小时又觉得时间太短并没有什么用;学他两个多小时吧又觉得自己晚上时间完全不够用,也好想看看电影动画呀。

今年一定得把学习娱乐的时间给安排好,并且要严格执行,不能再这样反复横跳了。

Golang

今年又双叒叕一次从头学了一下 Golang,并且完成了一个练手的小玩意儿,再加上今年的工作当中也用到了一些,所以这次应该算是入了一点点门了🤏

我纠结了一会儿还是把这个玩意儿截图发上来了,各位不要嘲笑我🤪

Tetris

网络

其次就是又一次的去看了计算机网络的书,这种越是基础越是根基的东西就越是这样,每次看完都觉得自己看懂了,然后再次去看又能感叹「喔!原来是这样!」。起因是经常在工作中听到一些网络相关的词汇,结果自己对其又是一知半解的,越想越难受,所以干脆把书掏出来再看一看。

所以不论是网络、操作系统还是数据结构、算法这些,每当想要学习却不知道具体方向的时候就把他们拿出来吧,准是没错的。

容器

最后就是年前这段时间在补的 Docker 和 Kubernetes 了,说起来也不怕丢脸,我虽然用了挺久的 Docker 了但是直到最近我才搞明白「容器的本质并非虚拟化,而是从操作系统中隔离出来的进程(组)」。

今年的主动技术提升可能就只有这些了,再有就是不成块的,平时逐渐积累起来的一个个小点,在这里也就自然无法总结了。

0X03 工作

学习后面自然就是工作了,我对自己今年的工作结果来说算是满意的,虽然不优秀但也算是保质保量完成了。不过要说起工作效率,那是真的低。我就是那种,如果手头工作不忙不紧急的话就会慢慢悠悠得去搞,东瞟一眼西看一下的,不知不觉时间就过去了,结果多出来的时间啥都没干成。但是如果有一个紧急重要的工作交给我的话,我又会极度专注,甚至真的废寝忘食,一天下来忘记喝水忘记午休也不会去看手机,每每完成这种工作后又有一种强烈的精神满足感。不知道有没有人跟我一样😅

💪 明年还是要提升一下工作效率,不说多为公司创造效益什么的,就算是节省出来时间学习提升自己也算是对自己和对公司都好的事情呀,怎么都好过把时间浪费过去。

补充,在今年倒数第二个工作日,我玩砸了。 本来只是一个通过 csv 文件创建数据库数据的脚本,结果在复用之前旧脚本的时候忘记了老脚本存在删数据的逻辑😥 结果今天就三个人前前后后忙了一整天,才终于把数据恢复回来了。这个「心细」对我来说真的是太重要了,很多次工作上的失误都是由于不够心细导致的,明年要重点改进这里了。

0X04 出游

今年算下来有两次省外游和几次成都周边的徒步,虽然绝对数量上并不多,但比起我大学毕业前的 0 次旅游经验来说也是「海量」了 🐶

跨年

年度的第一次出游应该就是跨年了,跟女朋友两个人跑到理县去了,短程徒步加滑雪什么的。那次唯一的遗憾就是没有运动相机,所以没有录下来人生中的第一次滑雪体验。其实旅途本身没什么特别的,只是想放两张照片在这里而已,你猜为什么 😁

跨年-1
跨年-2

三星堆

另一次值得记录的是一次成都的周边游,跑到了广汉,看到了自己心心念念三星堆文物。如果大家有兴趣的话强烈推荐去一趟三星堆,真的太震撼了,不仅有历史书上的青铜树还有新鲜出土的三四千年前的金面具和其他文物。博物馆本身并不是特别大,但是所谓的「镇馆之宝」全部都是可以看到的,而且最酷的是有一个考古工作人员办公室也是可以参观的。游客本身与考古学者之间用玻璃墙隔开,然后游览区就可以看到考古工作者在认真工作,还能近距离观察到刚刚出土的最新文物。

三星堆-2
三星堆-1

九顶山

还有去九顶山那次的露营体验也是非常非常棒的(其实也没有,我女朋友到了山顶就开始高反,日落晚霞云海星空她是一样都没看到😮‍💨)。只是我看到路线比较简单就背了很多很多东西上去,导致上山过程还是有点难受的。所以说不管多简单轻松的徒步,还是要轻量化自己的装备呀。

最终露营地大概海拔 3800 米,虽然上到露营地之后已经累得快要不行了,但是看到那么漂亮的景色还是忍不住抱着三脚架冲出帐篷去拍照。这算是我今年看到的最漂亮的景色了,唯一觉得遗憾的就是当天晚上的星空特别漂亮,但真的是太冷了,导致一张可用的星空照片都没拍到,就钻回帐篷里了。明年一定要弥补这个遗憾,拍到好看的星空🌃

九顶山-2
九顶山-1
九顶山-3

重庆

这已经是我第三次去重庆了(毕竟这是离成都最近的大城市了 hhh)。这次依旧是无攻略无目的无所事事的三无出行,基本也都是逛解放碑、看洪崖洞夜景、吃火锅、逛文创街古街,这种日常操作。那为什么还是要提一嘴呢,当然是为了放两张照片了 🤪

重庆-1
重庆-2

长沙

印象最深的一次应该就是长沙游了,国庆期间和朋友五个人顶着被隔离甚至感染的风险还是冲到了长沙。这次长沙的体验不能用好坏来形容,只能说有点怪🤔

先说体验优秀的地方吧,从长沙落地出来感觉长沙的天气超级棒,比成都好很多。因为时间并不充裕,所以也都是去的一些热门目的地,橘子洲头、文和友之类的。不过几天玩下来对长沙印象最深的应该就是湘菜了,味道确实好,辣也是真的辣,我一个在四川自认为比较能吃辣的人,都觉得湘菜的辣是真的顶🥵 如果说哪道菜给我的印象最深,那一定是「香菜炒韭菜」了,这个听起来很邪神的菜居然莫名其妙的很好吃。

还有长沙的茶颜悦色,是真的多,基本上站在市区的任何位置都能看到至少一家,最离谱的是还排着队。味道的话其实我没觉得多惊艳,但是绝对是中上水平,再加上我特喜欢他们奶茶的少糖模式,不像很多奶茶一样齁甜,所以总的来说给个 8.5 分我觉得完全没问题。

最后就是同事推荐的她母校长郡中学门口的小吃街,有一家炸串还挺好吃的。没想到的是我只随手拍了一张炸串的照片,她就直接看出来我们在她学校门口还看出来我们吃的哪一家了,我照片里只有串没有任何环境啊,不愧是自称「南门口一姐」的女人 🤯

那体验差劲的地方呢?本来我们五个人一起出行,而且按规矩做落地核酸和每日核酸的,结果有一天突然码就黄了。投诉一圈也不知道为什么黄的,就告诉一个「大数据赋码」,告知我们需要「三天两检」之后才能绿过来。觉得非常离谱的我们开始一大圈的投诉,最后是一个叫做「健康365」的公众号客服帮我们解决了问题。那是怎么解决的呢?既然是要三天两检才行,他就直接帮我复制了前一天的核酸结果,这样我就有了三天两检,健康码就绿了……

毕竟这里是年终总结的部分,就不过多吐槽这个事情了,如果对具体过程有兴趣的话可以看另一位同行朋友写的博客:又去了一次长沙

如果问我以后有机会还会再去长沙玩吗,我一定还会去的,毕竟湖南省博我还没去成🥺

长沙-5
长沙-4
长沙-1
长沙-3
长沙-2

其他

最后再强行贴上一张我觉得很好玩的照片 🤪

飞踢

0X05 分享万物

这个模块是用来满足我个人分享欲的极其重要的点,打算分享一下今年买到的满意的东西、玩到的满意的游戏、读到的喜欢的书之类的东西~

【电子产品】Eypc 7551p

试问哪个男孩子能拒绝一颗 32C64T 3.0Ghz 却只卖 1000 块的 CPU 呢?好了不开玩笑,我装这台机器单纯就是因为想要学习 K8S、MySQL 集群和网络知识等。毕竟 MacBook 单热管压着的 i7 再加上区区 16G 内存并不能跑的动几个虚拟机。所以我就干脆整了这个第一代 Eypc 处理器,再配上 4 根 16G 的 reg ecc 内存,前前后后也就三千出头就配上了 32核64线程64G内存 的服务器 🤓

7551p
服务器

【日用品】喜德盛自行车

我这就是个纯纯的入门款,为了上下班代步,毕竟我们这个上班时间小区楼下的共享单车早就被抢完了。再加上之前买的电动滑板不让进电梯,所以就只能自己买一辆自行车喽。自从买了自行车之后每天上下班通勤加一起也就半个小时,还能在路上顺便买个早饭,还是挺舒服的。而且还骑着这个小车完成了我的第一次 100KM 成都环城绿道的骑行~

现在它已经不长这样了,我给它加了一对副把用来增加长时间骑行的舒适度,还把前后轮胎都换成了更细的半光头胎,这样骑行城市道路会省力一些。

自行车

【电子产品】DJI Action 3

某天我第 N 次想买运动相机,就想去大疆官网看一下之前评价不错的 Action 2,发现当天刚刚发售 Action 3。接下来就是等 Tim 评测的日子,心想只要 Tim 的评价不错我就直接冲到大疆实体店里去买。

没两天就等到了评测,再加上那段时间心情非常非常差,正好借机让自己开心一下,然后我的头上也就长出了一颗摄像头 🤯

Action 3 其实画质并没有很好,但是它的存在让我更愿意录制视频了,这一点比它的画质收音都更重要。以前我是不喜欢录视频的,因为我的 iPhone 12 mini 如果录视频的话很快就没电了,而且存储占用也是个很大的问题。更别说拿相机录了,画质虽好但设备真的太大了。现在用 Action 3 即使是关机的时候也可以一键开始录制,自身又带有磁吸,可以随手吸在任意一个金属面上,即使是手上拿着也并不会很麻烦,所以我也就更愿意拿它去记录我的生活。

【折腾】网络改造

以前其实也没太在意过家里的网络状况,毕竟自己又不玩网游不搞 pt 的。但是自从买了相机尤其是运动相机之后,每次往 NAS 里备份数据都得等上大半天,所以想着干脆把家里的网络环境升级一下。具体的升级项目如下,仅供参考

  1. 设置光猫调整为桥接模式,拨号由 J4125 软路由负责
  2. 原来的 AX5400 路由器关掉 DHCP 等功能,仅做 AP 用
  3. 软路由上配置统一的大梯子,有必要时单独打开,方便设备出海
  4. 软路由再配置 DNS 等常用服务,大幅提升网络体验
  5. 软路由上还配置了诸如 AdGuard Home 等服务
  6. 为 NAS 和 homelab 添加 2.5G 网卡,从此内网传输速度上了一个大台阶
  7. 电信把本来 300M 的宽带直接给免费升级到 1000M 了,原地起飞 👏

整体的体验最明显的就是往 NAS 里备份照片和电脑数据快了很多。以前纯无线网的时候电脑上传只有 70MB/s,现在最多跑到 230MB/s 还多点,速度上直接变成三倍了。不过这里不得不吐槽一下我这台 MacBook Pro,好歹也是 2020 年买的当时最新的设备,结果不支持 Wi-Fi 6 协议,而且想自己换张网卡都不行,最后只能在桌子上备个 type-c 的 2.5G 有线网卡,真的太蠢了。另外一个感受就是打开网页什么的明显变快了,因为我自己配置了大半天的广告过滤规则和 DNS 缓存,所以还是在带宽不变的情况下实现了上网速度的提升~

【日用品】COOLMAX

无聊逛知乎上关于户外的话题,看到有人在推荐凯乐石的 COOLMAX T恤,看他说的还不错的样子就听去买了一件来试穿。价格比优衣库的普通 UT 要贵上一点点,但也就 120 块钱的样子。本来以为也就像之前买的速干衣一样普普通通,结果这个面料穿起来特别舒服,排汗速干的效果也特别好,强烈推荐给有速干衣需求的朋友去尝试一下这个面料。这应该是我今年买过最满意的一件衣服了,年后打算再买两件 🤣

虽然我自己很喜欢凯乐石的衣服和户外装备,但还是强调一下 COOLMAX 并非凯乐石的技术,其他很多品牌也都有采用该面料的衣服可以选择~

【游戏】sifu 师父

师父是我今年玩过最好玩的 ACT 游戏了,虽然体量不大但是打得是真过瘾。整个游戏虽然画面上并不是真实取向的,但是看着比较舒服,最值得说道的是里面的动作。不论是赤手空拳的搏斗、长棍短棍的动作还是挥舞手中的匕首,甚至是飞过去一板砖,都非常流畅真实。不仅是战斗系统,这个游戏的美术设计和关卡设计也非常值得一提。印象最深的就是美术馆的那关,从美术设计上说真的是漂亮的离谱(词穷了);从关卡设计上说,时而第三人称时而横版 3D 的玩法也足够有趣(继续词穷)。

本来以为我这种没有 PC 的玩家跟这个游戏无缘了,结果某天突然看到他登陆 Switch 了😱 立刻买了回来当天晚上就趴床上打了大半天,确实是非常棒了。

【游戏】双人成行

双人成行是今年才通关的,作为一款「配置要求极高」的游戏,好在我可以流畅运行它。为什么说这款游戏配置要求极高呢?因为它是个纯双人游戏,必须要有朋友跟你一起玩才行🐶不仅如此,你的朋友还得会玩游戏尤其是会用手柄才可以,否则他的角色就会出现以下:走路撞墙上、跳跃掉坑里、拿脸接子弹等等症状。

这款游戏应该是自旷野之息和马里奥奥德赛之后最让我感到惊讶的游戏了,真的是太有趣了。他的双人游玩并非是魂斗罗那种多了一个人之后内容完全不变的,也不是马里奥奥德赛那种一主一辅两位玩家。而是两个人有完全不同的游玩内容,两名角色所掌握的技能也是互补的,只有两位玩家互相配合才能前进。所以如果你用某角色通关之后,其实完全可以再交换角色开二周目,体验另一个角色的玩法。

【游戏】神界:原罪 2

神界原罪我最早是在 Gamker 那里听说的,但是迫于没有 PC 就一直没有机会玩到。直到今年我装了那台 32C 的服务器,自然也就顺手买了张老显卡拿来玩玩老游戏喽,所以也就终于玩到了这款神作。具体这款游戏的介绍那就还是去看拉我入坑的 Gamker 视频吧。

整个游戏最吸引我的其实并不是「角色扮演」的部分,也不是「宏伟剧情」的部分,而是战斗。游戏本身的战斗系统非常有趣也比较有深度

  • 弓箭手如果站在高地上则会获得攻击距离和伤害的加成;
  • 远程直线攻击比如射箭和火球术之类的可能会被敌我之间的障碍物挡住;
  • 远程投掷武器即使敌我之间有障碍也可以从障碍上方丢过去;
  • 地图着火之后再加上雨水则可以灭火,还会生成大雾进而降低雾中命中率;
  • 敌人在大雾或是水中的时候,单体的雷属性技能可以秒变 AOE;
  • 角色走在冰面上可能会摔倒;

所以可以先丢油瓶让敌人减速 -> 再丢火系技能引发大火/爆炸 -> 丢水系技能留下积水和大雾 -> 丢闪电技能带来大型 AOE。不过不只你能这么干,NPC 当然也是可以这样折磨你的 😄

【训练】暂停实验室

有一段时间我一直觉得很难控制自己的情绪,也觉得对身边的很多事情提不起兴趣来,正好想到想到之前关注的 UP 主推荐过这么一个训练营,也就自己花钱去报名了。可以简单给各位介绍一下,我参加的是 EBP 情绪训练,整个周期是连续 22 天的课程,每天会有一个小任务交给你,你自己去完成就好。我的 EBP 训练营体验下来主要是进行「正念」,有整年的呼吸、品尝、书写、行走等等。

当时我报名参加的时候有这么两种想法:一个是「万一能改善我的情绪和心理问题,即使只能改变一点,那几百块也是划算的」,另一个是「就当拿自己做个心理学实验,不管有没有用都还挺有趣的」。所以我就义无反顾得报名了这个训练营。完整的体验下来我是觉得有效果的,能感觉到自己对生活的感知更加敏锐了,也更能控制自己的情绪了。总的来说我觉得花个几百块钱能给自己带来一些这样的变化是值得的。

各位有需要的话可以扫下面的二维码去了解一下,如果用我的邀请码报名了的话可以联系我把我的返现佣金再转给你,这样可以再给你省下一些钱~你说是不是广告?当然不是啦,谁打广告还把返现的佣金送出去 🤣

IMG_6287

【书】大师之书

这本旷野之息设定集真的是太~棒~了!整本书 400 多页全彩印刷,里面包含了所有旷野之息里出现过的人物、怪物、武器、物品等等,清晰度极高比 Switch 上的渣渣画质不知道高到哪里去了

每次拿出来随便翻上几页,就总能看到一些以前从来没有注意到过的游戏中的细节,然后又双叒叕想去海拉鲁大陆当流氓拯救公主了。

如果你是一个非常喜欢旷野之息的玩家,那我强烈推荐买一本回来收藏。不过毕竟是精装全彩高清印刷的 400 多页的设定集,还是要卖两百多块钱呢,都快能买一张旷野之息的卡带了 🤣

【书】你想活出怎样的人生

这本书看完说真的觉得收获很大吗?并没有,里面讲的很多事情都是自己这个二十大几岁的人都懂的。但是知易行难,很多事情自己知道怎样是对的,更知道当前这样做是错的,但还是做出了错误的选择。我是觉得这本书虽然并不一定能给我带来多大的改变,但是如果某天我又作出明知是错误抉择时想起这本书里的故事,也许就避免了一次错误。

要说读完这本书最大的感受,其实是感叹自己从小没有受到这么高质量的教育

【书】What If

这本书非常有趣,里面充斥了「如果人体内的 DNA 瞬间消失会怎样」「如果把海水抽干会怎样」「如果地球膨胀到太阳那么大会怎样」这种问题,并且用非常严谨和科学的态度回答了它们。如果你平时喜欢看科普类的内容或者自己也会想这些奇奇怪怪的问题的话,那我强烈推荐你去读一读这本书,真的很有趣。它还有个姊妹篇叫做 how to,副标题是「如何不切实际的解决实际问题」。如果我小学的时候有这么两本书,我一定能天天翻天天看,一直把书翻烂为止(我真的好想把现在自己拥有的好多东西拿给小时候的自己啊 😭)。

不知道读过这本书的朋友有没有这么一种感觉,看这本书的时候总感觉自己在刷知乎 🤔

【书】三体

是的,我有罪,我现在才开始看《三体》,甚至黑暗森林都还没看完,我有罪😭

不过被大家吹上天的作品确实是好看,这应该是我看过最长的一部小说了,强烈推荐对科幻感兴趣又没有看过的赶紧去看(除了我真的还有这样的人吗)。不过从我自己的感觉,三体这套书对读者还是有那么一点点挑的,大刘应该默认了读者都是掌握了基本的理工科、天文和一些其他相关知识的。如果对这些完全不了解的话,看起来还是会有些吃力,不过仍然强势推荐一波,真的很好看。

0X06 总结&展望

又到了给总结写总结的套娃时刻,不过今年的年终总结确实是有点长,也配的上单独有一个总结。总的来说呢就是今年过的比较一般,中规中矩,对明年整体看好,但又没有完全看好🤣毕竟现在疫情这么一放开,大家怎么说也要感染上个一二三四次,到时候 2023 会成为咳嗽元年也说不准呢。

对明年的展望也就列在这了,等明年年底的时候再来看看有多少是实现了的

  • 工作效率较今年有明显提升
  • 把无聊刷B站的时间全部拿来读书(不是戒掉B站)
  • 多出去徒步,把今年疫情少去的补回来
  • 我要拍星空,我要拍星空,我要拍星空
  • 开足马力,多写博客,写博客还挺好玩的

展望不是计划,喜欢看我年度计划的可以私聊我(我也没想到,去年被人催更年度计划来着)🧐


一万多字的年终总结到这里也就结束了,如果真的有人能看到这儿可以来微信找我领取一份神秘大礼口头奖励🎁

最后祝看到这里的所有朋友们,新年快乐~

0X00 简单用法

内容比较少,主要是介绍一下 xargs ,直接开始吧~

首先假定各位能够熟练运用基础的管道操作,能够理解 ps aux | grep nginx | awk -F ' ' {print $1} 这样的命令。

我们日常使用管道的时候肯定会用到 ls | grep xxx | grep xxx | rm 这样的操作,想从一堆文件里筛选出自己需要的文件并将其删除/移动/复制等。但其实这样的操作是不行的,因为前面管道传过来的是数据流但是 rm 命令却并不能处理它。如果想实现这种效果就可以用 xargs 将其进行转换了,如下图所示使用 ls | grep bbb | grep "[3-5]" | xargs rm 就可以完成任务。

20221227-xargs-1

此处 xargs 的功能就是将前面的数据流逐行分解并一个个丢给 rm 去执行。不过通常的管道都是一个命令执行一次,配合 xargs 之后就是做一个循环了,将管道前面的的输出逐行取出作为参数交给下一个命令去执行。我这里画了一个简易的图,也许能够便于理解。

20221227-xargs-2

其实如果只是找到文件并删除的话,还有更简单的方法啦,例如 find . -regex "\./test_bbb_[3-5]" -delete

现在虽然解决了删除的问题,但其实并没有解决复制的问题。因为你写了 ls | xargs cp target_dir/. 之后它会翻译成 cp target_dir/. ./aaa ./bbb ./ccc 这样的命令,显然是不对劲的。所以 xargs 还提供了宏功能,使用类似 find . -regex "\./test_bbb_[3-5]" | xargs -I {} cp {} target_dir/. 这样的命令就可以将前面的输出拆分后准确的塞入到后面命令的指定位置,实现想要的功能了。

20221227-xargs-3

阅读全文 »
0%