超NB的微信Mac插件——微信小助手

功能

  • 消息自动回复
  • 消息防撤回
  • 远程控制(已支持语音)
  • 微信多开
  • 第二次登录免认证
  • 聊天置底功能(类似置顶)
  • 微信窗口置顶
  • 会话多选删除
  • 自动登录开关
  • 通知中心快捷回复
  • 聊天窗口表情包复制 & 存储
  • 小助手检测更新提醒
  • alfred 快捷发送消息 & 打开窗口 (需安装:wechat-alfred-workflow)
  • 会话一键已读
  • 一键清除空会话
  • 支持国际化
  • 新增一键更新
  • 新增关于小助手
  • 去除微信url转链(从此直接打开抖音链接
  • 史上最强 alfred 扩展
  • 新增移除会话(不删除聊天记录)
  • 菜单栏(关于小助手)新增 alfred 开关
  • 新增是否使用微信自带浏览器开关
  • 新增LaunchBar 扩展

若无使用 alfred,则不必打开 alfred 开关

远程控制:

  • 屏幕保护
  • 清空废纸篓
  • 锁屏、休眠、关机、重启
  • 退出QQ、WeChat、Chrome、Safari、所有程序
  • 网易云音乐(播放、暂停、下一首、上一首、喜欢、取消喜欢)
  • 小助手(获取指令、防撤回开关、自动回复开关、免认证登录开关)

不多说,直接看Demo演示看有多强大吧。

Demo演示

  • 消息防撤回

  • 自动回复

img

  • 微信多开

img

  • 远程控制 (测试关闭Chrome、QQ、开启屏幕保护)

img

  • 免认证 & 置底 & 多选删除

img

  • 通知中心快捷回复

img

  • 聊天窗口表情复制 & 存储

img

  • 语音远程控制 mac

img

img

  • Alfred 搜索最近聊天列表 & 查看聊天记录

img

  • 一键已读 & 一键清除空回话

img


使用

  • 消息防撤回:点击开启消息防撤回或者快捷键command + t,即可开启、关闭。
  • 自动回复:点击开启自动回复或者快捷键conmand + k,将弹出自动回复设置的窗口,点击红色箭头的按钮设置开关。

若关键字为 *,则任何信息都回复; 若关键字为x|y,则 x 和 y 都回复; 若关键字或者自动回复为空,则不开启该条自动回复; 可设置延迟回复,单位:秒; 若开启正则,请确认正则表达式书写正确,在线正则表达式测试 若开启特定联系人回复,则原先的群聊&私聊回复无效

img

  • 微信多开:点击登录新微信或者快捷键command + shift + n,即可多开微信。
  • 远程控制:点击远程控制 Mac OS或者快捷键command + shift + c,即可打开控制窗口。

注意:仅向自己账号发送指令有效

img


安装

详细安装方法(或者需要重新编译)请查阅 Install.md

1. 懒癌版安装

1.1 无需安装Git

打开应用程序-实用工具-Terminal(终端),执行下面的命令安装 Oh My WeChat

1
curl -o- -L https://raw.githubusercontent.com/lmk123/oh-my-wechat/master/install.sh | bash -s

然后运行 omw 即可。

可以访问 Oh My WeChat 的项目主页查看更多用法。

1.2 需要安装Git

打开应用程序-实用工具-Terminal(终端),执行下面的命令安装

1
cd ~/Downloads && rm -rf WeChatPlugin-MacOS && git clone https://github.com/TKkk-iOSer/WeChatPlugin-MacOS.git --depth=1 && ./WeChatPlugin-MacOS/Other/Install.sh

2. 普通安装

  • 点击clone or download按钮下载 WeChatPlugin 并解压,打开Terminal(终端),拖动解压后Install.sh 文件(在 Other 文件夹中)到 Terminal 回车即可。

3. 安装完成

  • 重启微信,在菜单栏中看到微信小助手即安装成功。

GitHub官方地址:TKkk-iOSer/WeChatPlugin-MacOS

感谢插件作者:tkk.ioser ,这个插件真的棒。

卸载

打开Terminal(终端),拖动解压后Uninstall.sh 文件(在 Other 文件夹中)到 Terminal 回车即可。

l

word宏

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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
Sub 首行缩进()
'
' 首行缩进 宏
'
'
With Selection.ParagraphFormat
.LeftIndent = CentimetersToPoints(0)
.RightIndent = CentimetersToPoints(0)
.SpaceBefore = 0
.SpaceBeforeAuto = False
.SpaceAfter = 0
.SpaceAfterAuto = False
.LineSpacingRule = wdLineSpace1pt5
.Alignment = wdAlignParagraphLeft
.WidowControl = False
.KeepWithNext = False
.KeepTogether = False
.PageBreakBefore = False
.NoLineNumber = False
.Hyphenation =
.FirstLineIndent = CentimetersToPoints(0.35)
.OutlineLevel = wdOutlineLevelBodyText
.CharacterUnitLeftIndent = 0
.CharacterUnitRightIndent = 0
.CharacterUnitFirstLineIndent = 2
.LineUnitBefore = 0
.LineUnitAfter = 0
.MirrorIndents = False
.TextboxTightWrap = wdTightNone
.CollapsedByDefault = False
.AutoAdjustRightIndent = True
.DisableLineHeightGrid = False
.FarEastLineBreakControl = True
.WordWrap = True
.HangingPunctuation = True
.HalfWidthPunctuationOnTopOfLine = False
.AddSpaceBetweenFarEastAndAlpha = True
.AddSpaceBetweenFarEastAndDigit = True
.BaseLineAlignment = wdBaselineAlignAuto
End With
End Sub
Sub InsertCaption() '修改系统插入“题注”命令

'功能:自动删除标签与编号间的空格(英文除外),并在题注数字后添加一个空格;适用于:Word 2003 - 2013,不兼容WPS文字!
'真正从原理上协同系统插入题注,无任何前提条件;用户照常插入题注即可,甚至感觉不到程序的存在!
'Endlesswx于2015年8月4日

'另,如果插入的始终未域代码而不是数字,非程序问题,Alt+F9一次即可

Dim Lab As String, startPt As Long, endPt As Long, myrang As Range
'On Error Resume Next '发生错误时让程序继续执行下一句代码
' Application.ScreenUpdating = False '关闭屏幕更新,2013在此处关闭更新会导致输入框灰色不可选,故修正在调出对话框之后

startPt = Selection.Start 'startPt标注起始点

'将if条件隐藏隐藏即可实现----手动替换题注空格
If Application.Dialogs(357).Show = -1 Then '插入“题注”对话框秀出来,如果按确定结束时执行以下程序,避免按取消后的空格,357也可换成wdDialogInsertCaption

Application.ScreenUpdating = False '关闭屏幕更新

Lab = Dialogs(357).Label
endPt = Selection.Start 'endPt标记插入的题注部分终点
Selection.Start = startPt '选定插入的整个题注

'删除标签与编号间的空格(英文后的保留)
With Selection.Find
.Text = Lab & " "
.Forward = True 'False=向上查找,(True=向下查找)
.MatchWildcards = False '不使用通配符
If Lab Like "*[0-9a-zA-Z.]" Then '此处判断标签的最后一个字符是否为英文或数字,是则不删除空格
Else
.Replacement.Text = Lab
.Execute Replace:=wdReplaceOne '替换找到的第一个,此处用作删除空格
endPt = endPt - 1 '删除空格后,末位减1
Selection.End = endPt
End If
End With

'在题注数字后添加一个空格
Selection.Fields.ToggleShowCodes '切换域代码,这样才能用^d查找域
With Selection.Find
.Text = "^d"
.Replacement.Text = "^& "
.Forward = False 'False=向上查找,(True=向下查找)
.MatchWildcards = False '不使用通配符
.Execute Replace:=wdReplaceOne '替换找到的第一个,此处用作添加空格
End With

'选定整个插入的题注内容,将域代码切换回来
endPt = endPt + 1 '增加空格后,末位加1
With Selection
.Start = startPt
.End = endPt
.Fields.ToggleShowCodes '切换域代码(切换回来)
End With

'将光标定位至题注所在段尾处
' Selection.MoveRight Unit:=wdCharacter, Count:=1 '此句光标返回插入题注前的原始位置,对于已经输好标题的情况并不合适
'选择段尾回车符
With Selection.Find
.Text = "^13"
.Forward = True 'False=向上查找,(True=向下查找)
.MatchWildcards = False '不使用通配符
.Wrap = wdFindContinue '继续查找
.Execute
End With
Selection.MoveLeft Unit:=wdCharacter, Count:=1 '定位到段尾回车前

End If
Application.ScreenUpdating = True '恢复屏幕更新

End Sub
Sub 批量修改表格()
Dim tempTable As Table
Application.ScreenUpdating = False
If ActiveDocument.ProtectionType = wdAllowOnlyFormFields Then
MsgBox "文档已保护,此时不能选中多个表格!"
Exit Sub
End If
ActiveDocument.DeleteAllEditableRanges wdEditorEveryone
For Each tempTable In ActiveDocument.Tables
tempTable.Range.Editors.Add wdEditorEveryone
Next
ActiveDocument.SelectAllEditableRanges wdEditorEveryone
ActiveDocument.DeleteAllEditableRanges wdEditorEveryone
Application.ScreenUpdating = True
End Sub
Sub FormatAllTables()
For i = 1 To ActiveDocument.Tables.Count
' ActiveDocument.Tables(i).Style = "my"
With ActiveDocument.Tables(i).Range.ParagraphFormat
.LeftIndent = CentimetersToPoints(0)
.RightIndent = CentimetersToPoints(0)
.SpaceBefore = 0
.SpaceBeforeAuto = False
.SpaceAfter = 0
.SpaceAfterAuto = False
.LineSpacingRule = wdLineSpace1pt5
.Alignment = wdAlignParagraphJustify
.WidowControl = False
.KeepWithNext = False
.KeepTogether = False
.PageBreakBefore = False
.NoLineNumber = False
.Hyphenation = True
.FirstLineIndent = CentimetersToPoints(0)
.OutlineLevel = wdOutlineLevelBodyText
.CharacterUnitLeftIndent = 0
.CharacterUnitRightIndent = 0
.CharacterUnitFirstLineIndent = 0
.LineUnitBefore = 0
.LineUnitAfter = 0
.MirrorIndents = False
.TextboxTightWrap = wdTightNone
.AutoAdjustRightIndent = True
.DisableLineHeightGrid = False
.FarEastLineBreakControl = True
.WordWrap = True
.HangingPunctuation = True
.HalfWidthPunctuationOnTopOfLine = False
.AddSpaceBetweenFarEastAndAlpha = True
.AddSpaceBetweenFarEastAndDigit = True
.BaseLineAlignment = wdBaselineAlignAuto
End With
' 设置表中的字体及大小
ActiveDocument.Tables(i).Select
With Selection
.Font.Size = 10
.Font.Name = "宋体"
.InsertCaption Label:="表格", TitleAutoText:="InsertCaption1", _
Title:="", Position:=wdCaptionPositionAbove, ExcludeLabel:=0
End With
ActiveDocument.Tables(i).Cell(1, 1).Select
With Selection
.SelectRow
.Font.Bold = True
.Shading.BackgroundPatternColor = -603923969
.ParagraphFormat.Alignment = wdAlignParagraphCenter
End With
Next
End Sub
Sub 表格题注()
'
'
If ActiveDocument.Tables.Count >= 1 Then
Set act_Doc = ActiveDocument
For Each otable In act_Doc.Tables
CaptionLabels.Add Name:="表星星星"
With otable.Range.InsertCaption(Label:="表星星星", Position:=wdCaptionPositionAbove)
'Position:=wdCaptionPositionBelow
End With
Next
End If

End Sub

Sub 字体调整()
'
' 字体调整 宏
'
'
Selection.Font.Name = "仿宋_GB2312"
Selection.Font.Size = 14
Selection.Font.Color = -587137025
End Sub
Sub 删除换行及空格()
'
' 删除换行及空格 宏
' 用于调整从PDF文件中复制出的文字格式
'
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = " "
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "^p^p"
.Replacement.Text = "^p"
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
Sub 删除空白()
'
' 删除空白 宏
'
'
' Selection.WholeStory
'
Application.Run MacroName:="Normal.NewMacros.删除换行及空格"
Application.Run MacroName:="Normal.NewMacros.首行缩进"
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "^p^p"
.Replacement.Text = "^p"
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
Sub 英文改times字体()
'
' 英文改times字体 宏
'
'
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "[0-9a-zA-Z]"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub

l

前言概览

记得刚开始接触Linux的时候是大学二年级,使用Linux的时间也有五年多了,至于为何会接触到此系统呢,归于一个带我飞的大学同学左蓝。在这一年多的时间里,使用的最多的 Linux 系统是基于 debian 发行版系列的Ubuntu,对于它的简介呢,那就维基百科ubuntu。我旨在记录并分享我在ubuntu的深渊使用过并觉得推荐的应用或工具,要是你有更好的推荐希望留言或简信,Thanks♪(・ω・)ノ

update 2019.12.14
content 将常用的以及推荐的软件或工具继承GUI界面,可谓一目了然

gui-install

使用方法:

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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
wget https://github.com/alicfeng/Linux_env/blob/master/shell/os/install/helper.sh && bash helper.sh
```git


>为了更方便安装该软件或应用,已经编写好了一个Shell-[AShellTools](https://github.com/alicfeng/Alic_env/blob/master/dever/AShellTools.sh)。Constantly update ...

![AShellTools](http://upload-images.jianshu.io/upload_images/1678789-2f5a044a49c0840c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
___
#### 目录

- 日常工具
- 系统工具
- 开发工具
- 终端工具
___
#### 一、日常工具篇
###### 1.1、Google Chrome
[Google Chrome](https://www.google.com/chrome/)是一个由Google公司开发的免费网页浏览器,其应用商店有众多出色的应用以及插件,此应用属于跨平台于Mac、Linux、Windows、Android等,因而数据的同步就okay了;此外它还拥有一个开源的兄弟Chromium。**强烈推荐**

![Google Chrome](http://upload-images.jianshu.io/upload_images/1678789-e1f450fab50adc18.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

方法一:在官网下载对应版本的deb后执行
~~~
sudo dpkg -i *.deb && sudo apt-get install -fy
~~~
方法二:包管理apt-get安装
~~~
sudo apt-get install google-chrome-stable
~~~
>刚说了Google Chrome有众多的出色的插件,那还是得说几个我常用的
`AdBlock`:最受欢迎的Chrome扩展,拥有超过4000万用户!屏蔽整个互联网上的广告
`The QR Code Extension`:允许当前页面生成QR码,并使用网络摄像头扫描QR码。
`Window Resizer`:调节屏幕的分辨率,诸多时候用户开发
`Vimium`:vim的分身
`Proxy SwitchyOmega`:轻松快捷地管理和切换多个代理设置
`Wechat`:微信
`马克飞象`:使用印象笔记扩展程序一键保存精彩网页内容到印象笔记帐户
`惠惠购物助手`:【网易出品】在您网购浏览商品的同时,自动对比其他优质电商同款商品价格,并提供商品价格历史,帮您轻松抄底,聪明网购不吃亏
`JSON-handle`:顾名思义就是处理JSON数据的工具
... ...

___

###### 1.2、Firefox
[Firefox](http://www.firefox.com.cn/)即火狐浏览器,它是一个安全高效且体积小的浏览器,它具有速度快、隐私保护、不同设备之间同步数据、个性化定制等特性,对于我来说呢,Firefox具有众多的开发插件。

![Paste_Image.png](http://upload-images.jianshu.io/upload_images/1678789-c9bc860c3a69d41d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
~~~
sudo apt-get install firefox -y
~~~
___
###### 1.3、Gparted
[GParted](http://gparted.org/)是一个分区工具,它可以用于创建、删除、移动分区,调整分区大小,检查、复制分区等操作。可以用于调整分区以安装新操作系统、备份特定分区到另一块硬盘等。

![Gparted](http://upload-images.jianshu.io/upload_images/1678789-35df1b78a50b27af.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

~~~
sudo apt-get install gparted -y
~~~
___

###### 1.4、搜狗输入法
[搜狗输入法](http://pinyin.sogou.com/linux/?r=pinyin)顾名思义,它就是一个输入法。

![搜狗输入法](http://upload-images.jianshu.io/upload_images/1678789-8d9877d9112e3032.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

~~~
#在官网下载deb后,执行
sudo dpkg -i *.deb && sudo apt-get install -fy
~~~
___

###### 1.5、FileZilla
[FileZilla](https://filezilla-project.org/)是一个免费开源的FTP软件,分为客户端版本和服务器版本,具备所有的FTP软件功能。可控性、有条理的界面和管理多站点的简化方式使得Filezilla客户端版成为一个方便高效的FTP客户端工具。

![FileZilla](http://upload-images.jianshu.io/upload_images/1678789-def291b922b1a08f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

~~~
sudo apt-get install filezilla
~~~
___
###### 1.6、WPS
[WPS](http://www.wps.cn/)是由金山软件股份有限公司自主研发的一款办公软件套装,可以实现办公软件最常用的文字、表格、演示等多种功能。具有内存占用低、运行速度快、体积小巧、强大插件平台支持等特点。

![WPS](http://upload-images.jianshu.io/upload_images/1678789-a3d437156839db0d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

~~~
#在官网下载对应版本的deb后执行
sudo dpkg -i *.deb && sudo apt-get install -fy
~~~
>顺便路过提提[LibreOffice](https://zh-cn.libreoffice.org/) ,它也是是一款功能强大的办公套件,默认在ubuntu自带,强迫症看起来不舒服不使用。
___

###### 1.7、有道翻译
[有道词典](http://www.youdao.com)是由网易有道出品的全球首款基于搜索引擎技术的全能免费语言翻译软件,为全年龄段学习人群提供优质顺畅的查词翻译服务。

![有道词典](http://upload-images.jianshu.io/upload_images/1678789-cadc9b801e8c7706.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

~~~
#在官网下载对应版本的deb后执行
sudo dpkg -i *.deb && sudo apt-get install -fy
~~~
___
###### 1.8、网易云音乐
[网易云音乐](http://music.163.com/)是一款专注于发现与分享的音乐产品,依托专业音乐人、DJ、好友推荐及社交功能,为用户打造全新的音乐生活。

![网易云音乐](http://upload-images.jianshu.io/upload_images/1678789-1d64ee4ea1d4918a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

~~~
#在官网下载对应版本的deb后执行
sudo dpkg -i *.deb && sudo apt-get install -fy
~~~
◾ 网易云音乐最小化托盘问题 ,解决方案:把原来的Exec那行改为
>Exec=env XDG_CURRENT_DESKTOP=Unity netease-cloud-music %U

___

###### 1.9、VLC
[VLC](http://www.videolan.org/) 是一款自由、开源的跨平台多媒体播放器及框架,可播放大多数多媒体文件,以及 DVD、音频 CD、VCD 及各类流媒体协议。

![VLC](http://upload-images.jianshu.io/upload_images/1678789-c267981da96d5c84.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

~~~
sudo apt-get install vlc -y
~~~
>附带暗转媒体解码框架

~~~
sudo apt-add-repository ppa:mc3man/trusty-media
sudo apt-get update
sudo apt-get install Ubuntu-restricted-extras ffmpeg gstreamer0.10-plugins-ugly libavcodec-extra-54 libvdpau-va-gl1 libmad0 mpg321 gstreamer1.0-libav
~~~
___

###### 1.10、Kazam
[Kazam](http://www.kazam.mobi/) 是 Ubuntu 上一款简易的桌面屏幕录制工具,它只能录制整个屏幕,可以录制声音,并可以快速上传录制好的视频到 YouTube 及 VideoBin 视频分享网站上。

![Kazam](http://upload-images.jianshu.io/upload_images/1678789-c78fa49d58293323.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

~~~
sudo add-apt-repository ppa:and471/kazam-daily-builds
sudo apt-get update
sudo apt-get install kazam
~~~
___


###### 1.11、Silentcast
[Silentcast](https://github.com/colinkeenan/silentcast)是一款专注于GIF录制工具。

![Silentcast](http://upload-images.jianshu.io/upload_images/1678789-df11966b9a975747.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

~~~
sudo add-apt-repository ppa:sethj/silentcast
sudo apt-get update
sudo apt-get install silentcast
~~~
___

###### 1.12、Smplayer
[Smplayer](http://smplayer.sourceforge.net)是一款开源的跨平台软件,其在Linux、Windows系统中有重要地位,影音播放能力很强大。

![Smplayer](http://upload-images.jianshu.io/upload_images/1678789-97d1a13282e30d54.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

~~~
sudo apt-get install smplayer
~~~
___


###### 1.13、Audience
[Audience](http://design.ubuntu.com/audiences)是一款简洁而强大的视频播放器,怎么说呢:简洁到不能再简洁。它是ElementaryOS系统默认的视频播放器,强烈推荐!

![Audience](http://upload-images.jianshu.io/upload_images/1678789-cc11e45e7072db35.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

~~~
sudo apt-get install audience
~~~
___

###### 1.14、Gimp
[Gimp](https://www.gimp.org)是一个图片编辑器,优雅地取代windows、mac下的另一个ps软件。

![Gimp](http://upload-images.jianshu.io/upload_images/1678789-4dca87a18d197bb6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

~~~
sudo add-apt-repository ppa:otto-kesselgulasch/gimp
sudo apt-get install gimp
~~~
___

###### 1.15、Krita
[Krita]()是一个位图形编辑软件,包含一个绘画程式和照片编辑器。Krita是开源软件软件,Krita和gimp是有很大区别的,一句通俗的言语来表名:gimp是编辑图像用的,krita是画画用的。

![Krita](http://upload-images.jianshu.io/upload_images/1678789-3c551749859c4f12.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

~~~
sudo add-apt-repository ppa:kubuntu-ppa/backports
sudo apt-get install kdelibs-bin kbuildsycoca4 --noincremental krita -y
~~~
___
###### 1.16、gedit
[gedit](https://gedit.en.softonic.com/)是一个基于GNOME桌面环境下兼容UTF-8的文本编辑器。它使用GTK+编写而成,因此它十分的简单易用,有良好的语法高亮,对中文支持很好,支持包括gb2312、gbk在内的多种字符编码。甚至你可以配置成用于开发的IDEA,我才不折腾这个呢。

![gedit](http://upload-images.jianshu.io/upload_images/1678789-01cd68387d0b13da.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

~~~
sudo apt-get install gedit
~~~
我还是经常习惯使用ElementaryOS自带的scratch-text-editor编辑器,不过它在ElementaryOS中使用搜狗输入法有一个bug:就是在非root下不能输入中文。
解决方案:
~~~
#将原来的
Exec=scratch-text-editor %U
X-GNOME-Gettext-Domain=scratch-text-editor
#改成如下
Exec=env GTK_IM_MODULE=xim scratch-text-editor %U
X-GNOME-Gettext-Domain=env GTK_IM_MODULE=xim scratch-text-editor
~~~
>既然讲到了文本编辑器,肯定少不了vim,接触过linux的几乎都认识这家伙,我也不多说。
[*Vim*最少必要知识](http://www.jianshu.com/p/881a168d454a)

___

###### 1.17、x11vnc客户端
[x11vnc](http://design.ubuntu.com/audiences)是一种 位图显示的 视窗系统 。它是在 Unix 和 类Unix 操作系统 ,以及 OpenVMS 上建立图形用户界面的标准工具包和协议。x11vnc服务端可以实现Windows远程Linux桌面系统。

![X11vnc-server](http://upload-images.jianshu.io/upload_images/1678789-c660087c3b58ae61.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

~~~
sudo apt-get install x11vnc
~~~
___

###### 1.18、Shadowsocks-qt5
[Shadowsocks-qt5](https://github.com/shadowsocks/shadowsocks-qt5)是一个科学上网利器工具。在天朝莫谈国情,说说Shadowsocks原理就好,它是将原来 ssh 创建的 Socks5 协议拆开成 Server 端和 Client 端,两个端分别安装在境外服务器和境内设备上。

![Shadowsocks-qt5](http://upload-images.jianshu.io/upload_images/1678789-9fafbe3453c332bb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)


~~~
sudo add-apt-repository ppa:hzwhuang/ss-qt5
sudo apt-get update
sudo apt-get install shadowsocks-qt5 -y
~~~
___

###### 1.19、VirtualBox
[VirtualBox](https://www.virtualbox.org)是一款由德国 Innotek 公司开发的开源虚拟机软件。号称是最强的免费虚拟机软件,它不仅具有丰富的特色以及轻量级的体积,而且性能也很优异!可虚拟的系统包括所有的Windows系统、Mac OS X、Linux、OpenBSD、Solaris、IBM OS2甚至Android等操作系统!为了完整地使用VirtualBox,尽量安装VirtualBox Extension Pack。

![VirtualBox](http://upload-images.jianshu.io/upload_images/1678789-812055590d4edf33.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

~~~
#在官网下载对应版本的deb后执行
sudo dpkg -i *.deb && sudo apt-get install -fy
~~~
___

###### 1.20、Steam
Steam是一个整合游戏下载平台,很少玩游戏也不多少了#_#

![Steam](http://upload-images.jianshu.io/upload_images/1678789-f57bada6e5b64743.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

~~~
sudo apt-get install steam
~~~
___
###### 1.21、electronic-wechat
[electronic-wechat](https://github.com/geeeeeeeeek/electronic-wechat)是一个基于nodeJS开发的Linux系统微信。

![Paste_Image.png](http://upload-images.jianshu.io/upload_images/1678789-edcec7f36feaa6c3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

~~~
git clone https://github.com/geeeeeeeeek/electronic-wechat.git
cd electronic-wechat
npm install && npm start
~~~
附上THis
微信之外最优选!纯净安全的聊天工具 – Telegram #iOS #Android #WP #Linux
```shell
sudo add-apt-repository ppa:atareao/telegram
sudo apt-get update
sudo apt-get install telegram

1.22、Skype

Skype 是一款即时通讯软件,具备视频聊天、多人语音会议、传送文件、文字聊天等功能。它允许用户进行跨平台的视频呼叫,可与使用电脑、手机、电视、PSV 等多种终端的 Skype 用户进行视频通话。

Skype


1.23、 Transmission

Transmission 是一个 BitTorrent 客户端软件,它支持速度限制、制作种子、远程控制、磁力链接、数据加密、损坏修复、数据来源交换等功能。

Transmission

1
sudo apt-get install transmission

1.24、 thunderbird

thunderbird是又是一个简洁易用的邮箱客户端。

thunderbird

1
sudo apt-get install thunderbird

1.25、XMind

XMind是一款实用的思维导图软件,简单易用、美观、功能强大,拥有高效的可视化思维模式,具备可扩展、跨平台。但是对于稳定性和性能还是欠佳,在ubuntu上使用占用很大的CPU资源。

XMind

1
2
#在官网下载对应版本的deb后执行
sudo dpkg -i *.deb && sudo apt-get install -fy

1.26、Okular

Okular 是一个 PDF 文档阅读软件,支持 PDF、TIFF、CHM、ODF、EPUB、mobi 等文档格式。

Okular

1
sudo apt install okular -y

1.27、FocusWriter

FocusWriter 是一款写作软件,为了让您的写作空间尽可能的多且不受打扰,FocusWriter 将几乎所有的工具栏都自动隐藏在屏幕边缘。利用 FocusWriter 写作便利流畅,您还可以设置闹钟和每日任务,非常适合撰稿人、小说写手、剧本作家使用。左蓝推荐!

FocusWriter

1
sudo apt install focuswriter

1.28、Typora

Typora是极简的Markdown编辑器,合并了写作和预览。支持表格、代码编辑,拖拽插图等,非常好用;喜欢它的原因也就是:美观、免费。

Typora

1
2
3
4
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys BA300B7755AFCFAE
sudo add-apt-repository 'deb https://typora.io linux/'
sudo apt-get update
sudo apt-get install typora

1.29、OBS Studio

OBS Studio 是一款跨平台的,开源的视频录制和在线直播客户端软件。我觉得一点不好的体验就是不能刻录整个屏幕。ymengyue推荐

OBS Studio

1
2
3
sudo apt-get install ffmpeg
sudo add-apt-repository ppa:obsproject/obs-studio
sudo apt-get update && sudo apt-get install obs-studio

其他系统安装查看


1.30、Pencil

Pencil是一款开源的原型图绘制工具,手绘风格的,就像自己在纸上画的那样。还可以用来绘制各种架构图和流程图,同时还提供 Firefox 的插件。对于经常做设计的人来说是一个不错的软件,可谓是linux下的visio。

Pencil

1
2
wget -c http://pencil.evolus.vn/dl/V3.0.1/Pencil_3.0.1_i386.deb
sudo dpkg -i Pencil_3.0.1_i386.deb

1.31、Remmina

Remmina是一个用远程桌面软件,提供了RDP、VNC、XDMCP、SSH等远程连接协议的支持。这个客户端最大的优点在于界面清爽,方便易用,创建远程连接的界面与Windows自带的远程桌面十分相近。可以到Linux软件管理器中搜索下载安装,十分方便.

Remmina

1
sudo apt-get install remmina

1.32、Meld

Meld是针对开发者的视觉差异和合并工具。MELD帮助您比较文件、目录和版本控制的项目。它提供了两个和三个比较的文件和目录,并支持许多流行的版本控制系统。既可以查看差异有可以同步!

Meld

1
sudo apt-get install meld

二、系统工具篇


2.1、deepin-scrot

deepin-scrot是深度团队开发的一个截图工具。在deepin深度系统作为默认的截图软件,在debian系统安装需要在终端命令使用,为了方便推荐定义快捷键配合使用。强烈推荐!

1
2
3
4
5
6
#安装
wget http://packages.linuxdeepin.com/deepin/pool/main/d/deepin-scrot/deepin-scrot_2.0-0deepin_all.deb
sudo dpkg -i deepin-scrot_2.0-0deepin_all.deb
sudo apt-get install -f
#使用
deepin-scrot

2.2、Albert Spotlight

Albert Spotlight是 Ubuntu的一项快速、随打即找、系统支援的桌面搜寻特色。spotlight 被设计为可以找到任何位于电脑中广泛的项目,包含文件、图片、音乐、应用程式、系统喜好设定控制台,也可以是文件或是PDF中指定的字。优雅地取代了Mac中的mac Spotlight。

Albert Spotlight*

1
2
3
sudo add-apt-repository ppa:noobslab/macbuntu
sudo apt-get update
sudo apt-get install albert

2.3、Guake Terminal

Guake是一个下拉式的gnome桌面环境下的终端程序,因此你只需要按一个键就可以调用他,然后再按一次以便隐藏他。Guake支持快捷键、标签、背景透明等特性。一句话:GuakeTerminal是linux下完美帅气的终端!

Guake Terminal


1
2
3
sudo add-apt-repository ppa:webupd8team/unstable
sudo apt-get update
sudo apt-get install guake
2.4、bleachbit

bleachbit是系统ubuntu系统减肥的一门”中药”,用于清理系统没用的垃圾文件。

bleachbit

1
2
3
sudo add-apt-repository ppa:n-muench/programs-ppa
sudo apt-get update
sudo apt-get install bleachbit -y

2.5、psensor

psensor是监控系统硬件实时状况的一款软件,使用psensor可视化显示系统温度,需要基于lm-sensors和hddtemp等获得的数据。因此你需要在安装psensor的同时,一并安装这两款工具。

psensor

1
2
3
sudo add-apt-repository ppa:jfi/ppa
sudo apt-get update
sudo apt-get install lm-sensors hddtemp psensor -y

2.6、Indicator Netspeed

Indicator Netspeed是一款基于Unity的用于显示软件上传和下载网络流量的软件。

Indicator Netspeed

1
2
3
sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install indicator-netspeed

2.7、gnome-system-monitor

gnome-system-monito是一款基于GNOME桌面的系统监视器软件。不过使用它有点占内存,我还是习惯终端处理。

gnome-system-monitor

1
sudo apt-get install gnome-system-monitor

2.8、catfish

catfish简称文件搜索神器。

catfish

1
sudo apt-get instal catfish

2.9、docky

dockey是一款一个号称花钱也买不到的菜单启动器。为什么这麽说的?很简单:它是开源的,很简洁更美观。就连Mac下的docky都是模仿它的,O(∩_∩)O哈哈~,不要傻了,开玩笑的。

docky

1
sudo apt-get install docky

2.10、TLP

TLP 是一款Linux流行的电源工具软件。你可以使用TLP来调整系统电池,有助于有更好延长电池寿命。

TLP

1
2
3
4
sudo add-apt-repository ppa:linrunner/tlp
sudo apt-get update
sudo apt-get install tlp tlp-rdw
sudo tlp start

2.11、menulibre

menulibre是一个简洁易用的菜单编辑器。

menulibre

1
2
3
sudo add-apt-repository ppa:menulibre-dev/devel
sudo apt-get update
sudo apt-get install menulibre

2.12、indicator-sysmonitor

indicator-sysmonitor是一个系统动态信息监控工具。可以实时查看电脑的cpu,内存占用率,更可以查看网速,非常方便

indicator-sysmonitor

1
2
3
sudo add-apt-repository ppa:fossfreedom/indicator-sysmonitor 
sudo apt-get update
sudo apt-get install indicator-sysmonitor

三、开发工具篇


3.1、Jetbrains 全家桶

Jetbrains_IDEA 全家桶基基于java语言开的一个工具套餐,而且基本覆盖了主流的开发编程语言,还包含了开发ios/macOS的工具。Jetbrains_IDEA包含了哪些工具呢,看图、手累截图!

Jetbrains 全家桶


3.2、Brackets

Brackets是一款使用 HTML,CSS,JavaScript 创建的开源的针对 Web 开发的编辑器。它具有什么优秀的特性的呢:实时预览,快速编辑,跨平台,可扩展,开源,Brackets是一款非常优秀的编辑器,但是我就是不用它O(∩_∩)O哈哈~。

Brackets

1
2
3
4
5
#天朝问题,漫长的等待,推荐下载安装
sudo add-apt-repository ppa:webupd8team/brackets
sudo apt-get update
sudo apt-get install brackets
sudo add-apt-repository -r ppa:webupd8team/brackets

3.3、Android Studio

Android Studio是啥我也就不说了,怕挨揍(^o^)/~用来开发安卓的~~~

Android Studio

顺手推荐几个网站
镜像源androiddevtools
开源库codekk


3.4、Sublime Text

Sublime Text是一个轻量、简洁、高效、跨平台的编辑器。不能再多解释了,只能简单说说它的优点:

  • 可以编辑诸多主流的编程语言
  • 语法高亮、代码提示补全、代码折叠、自定义皮肤/配色方案、多便签
  • 代码地图、多种界面布局与全屏免打扰模式
  • 完全开放的用户自定义配置与神奇实用的编辑状态恢复功能
  • 雷电般快速的文件切换
  • 随心所欲的跳转:快速罗列与定位函数/HTML的元素、跳转到指定行
  • 集所有功能于一身的命令面板
  • Package Contro扩展包管理器

Sublime Text


3.5、Atom

Atom是GitHub推出的一款基于Web技术开发的桌面端的编辑器,其主要的特点是现代, 易用, 可定制。被称为21世纪的黑客编辑器我就笑笑O(∩_∩)O哈哈~

Atom

1
2
3
sudo add-apt-repository ppa:webupd8team/atom  
sudo apt-get update
sudo apt-get install atom

3.6、sqliteman

sqliteman是一款小巧的图形化管理SQLite数据库的软件。轻量级、小巧、功能全面。为它点个赞,推荐!

sqliteman

1
sudo apt-get install sqliteman

3.7、Git、GitG

Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。简而言之就是代码管理工具,常用Git命令记录。既然提到了Git,那么也要说说它的朋友SVN,同样它俩的性质是一样的不必多说,SVN的安装与基本使用

1
sudo apt-get install git

gitg是一个用于查看Git版本控制系统的工具,基于Gnome桌面环境。我还是习惯在终端干这些活。

Git

1
sudo apt-get install gitg

3.8、MySQL workbench

MySQL workbench是一款专为MySQL设计的ER/数据库建模工具,但是在ElementaryOS还是存在不少的问题的。

MySQL workbench

1
2
#在官网下载对应版本的deb后执行
sudo dpkg -i *.deb && sudo apt-get install -fy

3.9、monodevelop

MonoDevelop 是个适用于Linux、Mac和Windows的开放源代码集成开发环境,目前支持的语言有Python、Vala、C#、Java、BOO、Nemerle、Visual Basic .NET、CIL、C与C++。

monodevelop

1
sudo apt-get install monodevelop  g++ xterm -y

3.9、Genymotion

Genymotion是一套完整的工具,它提供了Android虚拟环境,支持Windows、Linux和Mac OS等操作系统,容易安装和使用。开发安卓选择Genymotion模拟器是最佳的选择,除非你使用真机,其实后来我就是选择真机的——笑:-D。

Genymotion

1
2
#在官网下载对应版本的deb后执行 ,需要注册后才能下载
sudo dpkg -i *.deb && sudo apt-get install -fy

3.10、Android Screen Monitor

Android Screen Monitor简称ASM,是一款监视手机或者模拟器屏幕的工具。

Android Screen Monitor


时光机传送安装与使用教程


四、Terminal Tools


4.1、enca、iconv

enca、iconv都是文件编码转换工具。

1
2
#安装
sudo apt-get enca iconv

简单使用

1
2
3
4
#enca查看文件编码
enca filename
#iconv将一个GBK编码的文件转换成UTF-8编码
enconv -L zh_CN -x UTF-8 filename

4.2、Figlet

一句话:Figlet是一个将字符串在终端生成一个logo的终端工具。

Figlet

1
sudo apt-get install figlet

4.3、oh-my-zsh

oh-my-zsh是终极Shell,就这么一句话!

oh-my-zsh

1
2
sudo apt-get install git -y
wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh

zsh的配置文件位于用户目录/home/$USER/.zshrc,**zsh主题**,我的配置文件部分如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# oh-my-zsh的安装路径
export ZSH=/home/alic/.oh-my-zsh

# 主题设置
ZSH_THEME="robbyrussell"

# 大小写是否敏感
CASE_SENSITIVE="false"

# 连字符敏感
HYPHEN_INSENSITIVE="true"

# zsh是否自动不更新
DISABLE_AUTO_UPDATE="true"

plugins=(git)

source $ZSH/oh-my-zsh.sh

# 语言环境
export LANG=en_US.UTF-8

4.4、Asciinema

Asciinema 是一个用 ClojureScript 编写的开源命令行录屏工具。对于详细的终端刻录工具可以查看Linux 终端录制工具

1
2
3
sudo apt-add-repository ppa:zanchey/asciinema
sudo apt-get update
sudo apt-get install asciinema
  • 录制使用
    1
    asciinema rec
    使用 exit 或者 Ctrl+D快捷键结束录制。它会在结束录制的时候提示,如果要上传的话,敲回车。上传之后,Asciinema 会给出一个网址。
    1
    2
    #想嵌入网页
    <script type="text/javascript" src="https://asciinema.org/a/2xcuc0651qtirbj8dkmmtf2nf.js" id="asciicast-https://asciinema.org/a/2xcuc0651qtirbj8dkmmtf2nf" async></script>

4.5、Aria2

aria2是 Linux 下一个命令行下轻量级、多协议、多来源的高速下载工具。

1
sudo apt-get install aria2

使用说明

1
2
3
4
#简单使用:只需要加上下载链接即可
aria2c ${link}
#分段下载
aria2c -s 2 ${link}

Aria2 在百度云环境可以不限速下载,传送Aria2 - 可能是现在下载百度云资料速度最快的方式


4.6、Proxychains4

Proxychains4是一个终端挂代理的工具,可自由切换代理。使用简单只需要在命令前加上proxychains4即可!

1
2
3
4
5
git clone https://github.com/rofl0r/proxychains-ng.git
cd proxychains-ng
sudo ./configure –prefix=/usr –sysconfdir=/etc
sudo make && sudo make install && sudo make install-config
cd .. && rm -rf proxychains-ng

配置文件位于/usr/local/etc/proxychains.conf
将socks4 127.0.0.1 9095改为 socks5 127.0.0.1 ${port} {$user} ${pwd}


4.7、Ubuntu Make

Ubuntu Make 原名 Ubuntu Developer Tools Center,是一款开源的命令行工具软件,主要是针对开发者,它可以安装大量的开发工具。

1
2
3
sudo add-apt-repository ppa:ubuntu-desktop/ubuntu-make
sudo apt-get update
sudo apt-get install ubuntu-make

比如安装Webstorm

1
sudo umake ide webstorm

4.8、sshfs

SSHFS最炫的地方在于可在本地安装的文件系统中,通过SSH获得所有加密的通信优势。sshfs 是基于 FUSE构建的 SSH 文件系统客户端程序,通过它远程主机的配置无需作任何改变,就可以透过 SSH 协议来挂载远程文件系统了,非常方便及安全。

1
sudo apt-get install sshfs

4.8、字体

喜欢锐利清晰字体的 Ubuntu 用户,可以安装文泉驿正黑

1
sudo apt-get install fonts-wqy-zenhei
4.8、mysql_markdown

自己编写的小公举

It can generate markdown structure documents of MySQL succinctly~

1
curl -fsSL "https://raw.githubusercontent.com/alicfeng/mysql_markdown/master/install" | sudo sh
l

自己拥有一台服务器可以做哪些很酷的事情?

方案一

用一台不用的电脑搭的,24GiB内存+6核12线程的CPU

现有的服务大概有这些:

Zerotier

内网穿透用的是 zerotier,因为服务器有ipv6,在大多数情况下都可以直连,基本上可以跑到满速。而且zerotier会对数据进行一次加密,所以也基本不用担心数据安全性问题了。

Nextcloud

目前用的最多的服务就是 Nextcloud,Nextcloud加上一堆的插件基本上可以满足大部分需求。

后端使用的数据库是 Postgresql

现在我在使用的插件有:

Cospend 插件

一个用于记录账单的插件,可以支持多个人共享账单以及计算最终结算方案

Draw.io 插件

一个强大的绘图插件

Maps 插件

地图插件,可以根据图片中的元数据把图片标注在对应的位置,这样就可以看到出去旅行的足迹了

News 插件

一个RSS插件

Talk 插件

一个聊天的插件,还支持视频聊天

Calendar 插件

日历插件,可以用来同步多台设备上的日程安排

Contacts 插件

联系人插件,可以用来同步多台设备上的联系人

Calendar 和 Contacts 这两个插件我主要是用来配合 davx5 来同步多个手机和平板以及电脑之间的日程安排和联系人

Nextcloud 还有 WebDav 可以配合 joplin 这个笔记软件进行多设备间的笔记同步

Overleaf

这个主要写论文的时候用,自己搭的比官方提供的免费版本快太多了,而且还没有时长限制。

需要预先安装dockerdocker-compose

安装

1
2
3
git clone https://github.com/overleaf/toolkit.git ./overleaf-toolkit
cd ./overleaf-toolkit
bin/init

初始配置

修改connfig/下的文件

中文支持

config/variables.env中添加:

1
SHARELATEX_SITE_LANGUAGE=zh-CN

xeLatex支持

新建文件config/docker-compose.override.yml,添加:

1
2
3
4
services:
sharelatex:
environment:
- PATH=/usr/local/texlive/2023/bin/x86_64-linux:$PATH

2023请改成对应路径

启动

1
bin/up

如果要后台运行,可以加-d参数

创建管理员账号

打开: http://hostip:port/launchpad

安装完整宏包支持

1
2
3
4
5
6
7
8
bin/shell
cd /usr/local/texlive
wget http://mirror.ctan.org/systems/texlive/tlnet/update-tlmgr-latest.sh
tlmgr option repository https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet
tlmgr update --self --all
tlmgr install scheme-full
exit
docker restart sharelatex

安装字体

1
2
3
bin/shell
apt update
apt install --no-install-recommends ttf-mscorefonts-installe fonts-noto texlive-fonts-recommended tex-gyre fonts-wqy-microhei fonts-wqy-zenhei fonts-noto-cjk fonts-noto-cjk-extra fonts-noto-color-emoji fonts-noto-extra fonts-noto-ui-core fonts-noto-ui-extra fonts-noto-unhinted fonts-texgyre

Minted包支持

安装pygments

1
2
3
bin/shell
apt update
apt install python3-pygments

配置Shell Escape

2023请改成对应路径

修改/usr/local/texlive/2023/texmf.cnf,在最底下添加一行

1
shell_escape = t

ChatGPT-Next-Web

这个是ChatGPT的一个私人网页应用,需要去购买一个ChatGPT的API就可以使用,具体可以参见官方说明文档:https://github.com/Yidadaa/ChatGPT-Next-Web/blob/main/README_CN.md

Netdata

这是一个很好的服务器监控平台,可以监控服务器的各项参数,出现异常情况可以及时发邮件提醒,这样就不用担心RAIDZ1坏掉一块盘没有及时发现导致第二块盘坏掉的情况了。

Samba

虽然Nextcloud有webdav的接口,但仍然有一些地方只支持smb协议,所以文件也用smb协议共享了一份。

NFS

这个主要是给电脑使用的,因为smb和webdav不支持权限,这就会导致服务器上的可执行文件无法执行(因为没有执行权限),并且且zerotier会对数据进行一次加密,而smb和webdav(https)也会再次加密,在传输大量数据的时候效率不够高,所以文件也用nfs共享了一份。

打印和扫描

打印用的是cups,扫描用的是sane,这样就可以远程使用打印机和扫描仪了(虽然还是要个人去放纸)

数据存储

系统盘是一块160GB的机械硬盘,除去快照,实际使用大概3GiB左右(因为上面只是系统和软件包,不包括docker容器和php文件)

数据存储用的是4块500GB的二手机械组的RAIDZ1,1块120GB的SSD做L2Cache,开zstd和去重

数据存储每天做一次快照,保留1星期。系统盘每星期进行一次快照,并且发送到数据存储中

每次寒暑假会把所有数据备份到磁带,然后带到学校去,算是异地备份:)

关于耗电量

为了省电,我硬盘全部使用的是2.5英寸的磁盘,cpu也只安装了一个(双路主板),目前整机的待机的耗电量大概60W左右,还可以接受。

性能调优

Nextcloud 等 Web 应用都启用了 http2 ,启用之后可以明显感觉到加载速度的提升

ZFS 的 zfs_arc_max 设置的是 20GiB,zfs_arc_sys_free 设置的为 2GiB

Nextcloud、Overleaf、ChatGPT-Next-Web 和 Netdata 都有docker镜像,可以很方便的部署。

方案二

UPDATE 2023.08.03 帖子超过 7700 收藏 及超过 2400 点赞!再追加五篇新内容:最新的 SDXL 模型使用及硬核拆解其中关键组件、最新的 MetaAI LLaMA2 大模型(官方版、中文版、量化版、CPU版)的使用,Traefik 3.0 全面使用指南、使用 Docker 和 Golang 执行 Python 代码,以及将 Python 程序通过 Docker 和 Golang 包装成高性能异构计算服务。

上次更新:AI 加持的代码编写实战、让 OpenAI 更 Open,ChatGPT 自由接入数据源、在 Golang 里运行 Python 代码、基于 Docker 的深度学习开发环境、使用更低成本运行来 Meta(Facebook)的语言大模型、使用 Lora 微调 650 亿参数的大模型、使用 1.5G 显存运行 14B 参数的大模型、以及八十行代码搞定一个 MidJourney、Stable Diffusion Prompt 智能的咒语工具。

前次更新:使用 Nginx 和 Docker 折腾运行在浏览器里的 Web 终端、运行来自 Meta(Facebook)的语言大模型、快速获取完整的 GitHub 数据集,用于数据分析、一篇继续聊聊把玩 Stable Diffusion 模型,两篇聊聊低成本、高性能的数据传输方案、一篇聊聊如何搭建一台新的存储服务器、一篇聊聊如何使用老款 Mac Pro 作为廉价家庭工作站。(欢迎继续三连,给予鼓励,督促内容继续更新

以往更新内容涉及内容:

  • 如何从零到一搭建 Linux 环境

    • 简单清晰的 Ubuntu 桌面和服务器环境安装部署
    • 3MB 大小的能够加速 Linux 软件包下载的工具
    • 如何在一台笔记本中完成完整的 K8s 集群搭建
  • 如何从零到一搭建家用虚拟化环境

    • 基础 Linux 环境、存储、网络、监控、集群相关内容
    • 常见的 NAS 系统的折腾:群晖、Unraid 等
    • 你可以完全自己搞定的 ESXi 虚拟化镜像构建和系统安装
  • 如何从零到一搭建一些实用的程序、工具

    • 比如:简单的自制证书生成方法,只有 3MB 的证书生成工具的使用,搭配 DNS 工具可以让你在家里在自己的设备上用上自己喜欢的任何域名
  • Docker 和 AI 应用

    • 如何使用 Docker 和 Nginx 调用 Embed PHP 实现轻量、高性能的应用
    • 如何零成本使用 Docker 快速把 HuggingFace 上已有模型封装成简单的 AI 应用
    • 做一个NLP内容情感分析应用
    • 实现类似“百度谷歌这类基于语义搜索的功能,而不只是呆呆的进行文本匹配”的搜索引擎
    • 如何用 Docker 玩中文 Stable Diffusion 模型
    • 低成本(经济、时间)上手 AI 模型和应用
  • 以及,如果你想偷懒上手 Linux、Golang 等等,也可以围观文章末尾的追更内容

这套题太简单了,拥有一台服务器能干的事情太多了,如果你手头有闲置的服务,或者有计划入手一台折腾,可以跟我一起来玩。(往下看)

作为一个资深折腾党,先列举一些近几年我自己用的服务器,觉得比较实用的功能,然后再聊聊折腾过程中的血泪史:

  • 搭建自己的个人网站:我用最低规格的云主机,搭建了一个自己的小网站,每周写一两篇不标题党、不消费情绪的技术内容,去年统计下来,大概有100来万独立 IP 访问。
  • 搭建自己的知识采集、阅读工具:不用再担心404,也不用再担心平台老给你推荐你不喜欢的东西、或者遗漏你关注的大神更新了什么值得跟着学和做的事情。
  • 搭建你自己的笔记系统:想写什么写什么,想存什么存什么。没有每个月限制多少条、多少G流量的限制,没有内容限制,没有字数长度限制,想要什么功能,自己简单定制个功能就完事。
  • 搭建你自己的回家隧道:高规格的云端服务器有些肉疼,家里有低成本的硬件可以用,那么跑个隧道回家把闲置资源用起来。
  • 搭建你自己的代码仓库:有一些写着玩,或者还没想好要公开的内容,就先放在自己的小机器上吧
  • 搭建你自己的私密网盘:除了用消费级 NAS 产品省事外,有的时候,需要临时的传一些需要分享的内容,又想避免知名网盘被严重的问题,可以用服务器+对象存储+CDN来化解这个尴尬的状况。
  • 搭建自己的定时任务系统:你可以用它来做任何事情,比如定时检查下你追的剧是否更新了,定时检查一下火车票是不是开售了,或者你心心念念的演出是不是要开始了,或者和多数网友的选择一样,定时签到领个金币 :D。
  • 搭建自己的持续集成服务:如果你从事开发,GitHub Actions也好、Docker AutoBuild也罢都是有限额的,你可以自己搭一套简单的 CI,既能满足私密性要求,还能化解高频构建过程中带来的额度不足的尴尬。
  • 搭建一套网页 IDE、网页 Terminal:偶尔用 iPad 之类的便携设备 Coding 也不是不行,如果你有准备 Web IDE 或者 Web Terminal 的话,关键时候,用手机应急都还是蛮方便的。

接下来,我慢慢聊聊这个服务器的使用体验,以及上面我列举的东西到底有啥价值。

个人网站 / 技术博客

知乎读者喜欢数据,那么我们就先来看一下之前的数据:

img

《2020年岁末总结》时的网站数据

上面的数据来自 2020 岁末总结,2021 很快要过去了,不知道今年的数据如何?

网站现在的运行状态,如果套用 知乎周年庆 的文体风格来描述的话:

截止最近一篇文章《装在笔记本里的私有云环境:监控篇》发布,网站已经运行了五千二百零六天了,比《西游记》里唐僧师徒取经一个来回还要久。在过去十四余年中,网站一共积累了一千一百六十一篇文章内容,包含一百零二万字词(三百一十六万余字符),打印出来差不多相当于一套中文《水浒传》的厚度。其中汉字内容有七十八万,大概有《西游记》狮驼洞中小妖总数的十倍。
在今年新增了四十九万字,包含十万多汉字,文章中代码纯度约占78%。为了直观的了解网站内容状况,我将这些数据进行了一些可视化呈现。

img

十年的关键词绘制的词云,还是蛮震撼的

说起来,这个网站的建立时间比较久,2012年,我刚刚开始在新浪工作的时候,想使用一个新的、短一些的域名来继续记录生活和技术相关的事情,就用注册了 soulteary.com 这个和网络昵称一致的域名,并顺手将高中时积累的一部分内容也迁移了过来。

当时对于网络上大量重复的、没有深度、不够具体、疯狂洗稿的技术文章产生了厌烦情绪。也对之前自己写博客使用过的“转载”这种“转了仿佛就是会了”的动作产生了鄙视。

于是,那个时候,我开始坚持原创,避免发布网络上的重复内容。起初记录的都是一些编程细节、或者一些自己写的小工具,随着工作中接触了越来越多的基础设施、工程效率相关的内容,以及需要自己组建和带团队之后,网站的内容便开始进行了转变,从尽可能浅显的方式去讲述如何去搭建一些技术设施、搭配案例去解决具体问题的一些思路和方案、以及一直以来兴趣相关的:软件、硬件、游戏、感悟。

建立网站的初衷,是用来记录个人点点滴滴的成长历程、学习过程中的收获,并希望在分享的过程中能够帮助到和自己有相同经历或诉求的人,不论我们年龄相差多少,不论我们是否在同一时空。在写文章的这些年里,不论是邮件、私信,亦或者群聊中,也确实结识和帮助到了不少读者,想来还是比较欣慰的。(有趣的是,还因为文章的关系,组建了一个小群体,每天在群里叮叮咣咣的折腾些,乐趣不足为外人道也的事儿)

知识采集 / 阅读器

img

《使用 Docker 和 Traefik v2 搭建 RSS 服务(Miniflux)》配图

我曾经折腾过一阵 RSSHub,并把一部分内容向官方仓库提了 PR。结合一些其他的无状态脚本(用现在流行的话讲,无状态 serverless 服务),可以快速的把你关注的网页、接口转变为可读性比较棒的格式。

虽然我们认知中的“无头浏览器”非常占资源,但是实际上,你随便一台轻量云或者 1c1g1m 的主机也是足够你折腾成一个定制的知识采集仓库来使用的(务必开 swap)。

笔记系统

我曾经也是忠实的 EverNote、Confluence 用户,也维护过 WordPress 定制版,魔改过 Ghost 这类优秀的可以用做笔记用途的开源 CMS / BLOG 程序。

直到,我遇到了 Outline。

img

《从零开始使用开源文档/Wiki软件 Outline(一)》配图

上面的图片是我刚开始使用时的界面,随着几个月的深入使用,我觉得我应该短期或长期不会再进行笔记系统切换了。这套系统在好用、够用的前提下也是足够轻量,上文提到的小主机,甚至足够你跑好几套,分享给你的好基友。(软件本身也支持多用户)

如果你想了解怎么搭建,可以移步:

从零开始使用开源文档/Wiki软件 Outline(一)soulteary.com/2021/09/05/opensource-documentation-wiki-software-outline-part-1.html

方案三

儿子出生几天后,在阿里云买了个服务器,搭了个网站,用来上传并展示儿子每天的照片,访问当然是需要密码的,域名就是儿子的名字。。。。。。嗯。。。期待他长大后无意间搜索自己名字网站的瞬间,看到自己从小到大的样子,能让他感受到老爸我对他的爱。。。

l

国内外核心期刊有哪些?

国外

踏进学术圈,到处都是北核、南核、SCI、EI等耳熟能详的期刊分类……核心期刊类目众多,领域各异,那么它们的差异和价值分别体现在哪里呢?

从世界层面来说,SCI(科学引文索引)、EI(工程索引)、ISTP(科技会议录索引)是世界著名的三大科技文献检索系统,是国际公认的进行科学统计与科学评价的主要检索工具,其中SCI是最重要的一种。

1、SCI 美国《科学引文索引》

SCI《科学引文索引》是美国科学信息研究所于1957年在美国费城创办的引文数据库,收录全世界出版的数、理、化、农、林、医、生命科学、天文、地理、环境、材料、工程技术等自然科学各学科的核心期刊。

SCI“引文索引”的特点在于,它通过先期的文献被当前文献的引用,来说明文献之间的相关性及先前文献对当前文献的影响力,因此成为科研评价的一种依据。

科研机构被SCI收录的论文总量,可反映整个机构的科研、尤其是基础研究水平;而个人的论文被SCI收录的数量及被引用次数,则反映个人的研究能力与学术水平。

2、SSCI 美国《社会科学引文索引》

美国《社会科学引文索引》,SCI的姊妹篇,亦由美国科学信息研究所创建,是目前世界上可以用来对不同国家和地区的社会科学论文的数量进行统计分析的大型检索工具,也是世界最重要的社会科学期刊索引。

SSCI内容覆盖包括人类学、法律、经济、历史、地理、心理学等55个领域,收录文献类型包括:研究论文、书评、专题讨论、社论、人物自传、书信等。

SSCI收录世界上不同国家、地区的社会科学期刊和论文,进行一定的统计分析,并划分为不同的因子区间,是当今社会科学领域重要的期刊检索与论文参考渠道。

3、EI 《工程索引》

EI《工程索引》是美国工程信息公司出版的著名工程技术类综合性检索工具,收录文献几乎涉及工程技术各个领域,例如:动力、电工、电子、自动控制、矿冶、金属工艺、机械制造、土建、水利等。

EI每月出版1期,文摘1.3万至1.4万条,每期附有主题索引与作者索引。此外EI每年会出版年卷本和年度索引,年度索引还增加了作者单位索引。它具有综合性强、资料来源广、地理覆盖面广、报道量大、报道质量高、权威性强等特点。

4、ISTP 《科技会议录索引》

ISTP《科技会议录索引》创刊于1978年,由美国科学情报研究所编辑出版。该索引收录生命科学、物理与化学科学、农业、生物和环境科学、工程技术和应用科学等学科的会议文献,也包括一般性会议、座谈会、研究会、讨论会、发表会等。其中工程技术与应用科学类文献约占35%,其他涉及学科基本与SCI相同。

ISTP收录论文的多少与科技人员参加的重要国际学术会议多少或提交、发表论文的多少有关。在ISTP、 EI、 SCI这三大检索系统中,SCI最能反映基础学科研究水平和论文质量。该检索系统收录的科技期刊比较全面,可以说它是集中各个学科高质优秀论文的精粹,历来成为世界科技界密切注视的中心和焦点。

ISTP、EI这两个检索系统评定科技论文和科技期刊的质量标准方面相比之下较为宽松。

国内

回到国内,中文核心期刊是期刊中学术水平较高的刊物,是我国学术评价体系的一个重要组成部分。

它主要体现在对科研工作者学术水平的衡量方面,如在相当一批教学科研单位申请高级职称、取得博士论文答辩资格、申报科研项目、科研机构或高等院校学术水平评估等,都需要在在核心期刊上发表一篇或若干篇论文。

目前,中国的核心期刊分7类,本篇主要介绍其中5中。

1、北大核心

北大核心是北京大学图书馆联合众多学术界权威专家及国内几所大学的图书馆根据期刊的引文率、转载率、文摘率等指标确定的。

按照惯例,北大核心期刊每四年由北大图书馆评定一次,并出版《北大核心期刊目录要览》一书。

从影响力来讲,其等级属同类划分中较权威的一种,是除南大核心CSSCI、中国科学引文数据库CSCD以外学术影响力最权威的一种。

2、南大核心

南大核心CSSCI是由南京大学研制成功的“中文社会科学引文索引”,是国家、教育部重点研究项目,由南京大学中国社会科学研究评价中心组织评定,两年一评。

南大核心通过对全国所有符合两月以下出版及非一刊号多版的人文社会科学各学科学术性期刊,进行他引影响因子分析,指某刊在统计当年被CSSCI来源期刊文献引用该刊前2年所登载的文章的篇次(不含该刊自引)与前2年该刊载文量之比;

总被引频次指某刊被统计当年被CSSCI来源期刊文献所引用该刊创刊以来登载的文章的总篇次(含该刊自引)。

结果最靠前的的刊物,就是南大核心来源期刊。南大核心收录文史经管方向杂志,不收录工科杂志。从影响力来讲,其等级属同类划分中国内最权威的一种,入选难度高于北大核心。

3、中国科技核心期刊

中国科技核心期刊是由中国科学技术信息研究所经过严格的定量和定性分析选取的各个学科的重要科技期刊,学科范畴主要为自然科学领域,是目前国内比较公认的科技统计源期刊目录。其受科技部委托,每年进行遴选和调整 ,权威性名列国内首位。

4、中国科学引文数据库(CSCD)来源期刊

中国科学引文数据库(CSCD)来源期刊每两年遴选一次。每次遴选均采用定量与定性相结合的方法,定量数据来自于中国科学引文数据库,定性评价则通过聘请国内专家定性评估对期刊进行评审,数据库内容丰富、结构科学、数据准确。

中国科学引文数据库具有建库历史最为悠久、专业性强、数据准确规范、检索方式多样、完整、方便等特点,自提供使用以来,深受用户好评,被誉为“中国的SCI ”。

5、中国人文社会科学核心期刊

中国社会科学评价研究院于2018年11月16日在“第五届全国人文社科高峰论坛暨期刊评价会”上发布《中国人文社科学期刊AMI综合评价报告(2018年)》。

此报告基于学科与期刊特点构建了不同的期刊评价指标体系,对我国1291种人文社会科学期刊(2012年及以前创刊)、164种新刊(2013-2017年创刊或更名)及68种英文期刊进行了评价。

6.《中国核心期刊目录》(RCCSE)

武汉大学邱均平教授主持研制,

7.《中国学术期刊综合引证报告

清华大学图书馆中国学术期刊(光盘版)电子杂志社研制,每年发布。建有《中国引文数据库》(CCD)

l

如何在同一台电脑上使用多个GitHub账号

我们知道,如果使用ssh key去绑定GitHub账号,那么每次从同一台电脑上push代码的时候就不用输入密码,账号这些信息了。那如果有多个GitHub账号呢?比如我就有两个GitHub账号,一个是工作用的,一个是个人的。下面给大家介绍如何在同一台电脑上使用多个GitHub账号,并且每个账号都对应各自的ssh key。

1. 创建SSH key

我们先创建对应公钥和私钥:

1
ssh-keygen -t rsa -b 2048 -C "nas" -f ~/.ssh/id_rsa.github

这个指令会创建一个公钥~/.ssh/id_rsa.github.pub和一个私钥在~/.ssh的目录下。我们可以将这对秘钥当成默认的,用于个人账户。

用于工作的账号,使用下面的命令把公钥绑定到工作账号的邮箱email@work.com,并且,生成一个名为id_rsa_work_user.pub

1
ssh-keygen -t rsa -C "email@work.com" -f "id_rsa_work_user"

现在我们就有了两组不同的秘钥,/.ssh/id_rsa.github和/.ssh/id_rsa_work_user。

2. 将ssh key添加到不同GitHub账号

先来处理个人账号。我们用pbcopy < ~/.ssh/id_rsa.github.pub拷贝公钥,然后登陆到GitHub。

  • 进入settings
  • 点击左边栏的SSH and GPG keys进入到SSH keys的编辑块
  • 点击New SSH key
  • 黏贴刚刚拷贝的内容到Key的编辑框里,并且在title的编辑框内给它取个名字

然后登入到工作的GitHub账号,重复以上步骤,只不过这次是pbcopy < ~/.ssh/id_rsa_work_user.pub

3. 使用ssh配置文件配置不同账号使用的ssh key

打开ssh配置文件(**~/.ssh/config**),按照下面的样式去编辑:

1
2
3
4
5
6
7
8
9
10
11
# Personal account, - the default config
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa.github

# Work account
Host github1.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_work_user

Host是用来区分不同的Git账号,比如“github.com-work_user”你也可以取另外一个名字,但是使用ssh去clone仓库的时候,记得把拷贝过来的clone命令的时候,把命令中的github.com替换成对应的Git账号下的Host。比如,你需要在你的工作账号下克隆这个仓库git@github.com:personal_account_name/repo_name.git,这个就需要把‘github.com’替换成‘github.com-work_user’。

4. 本地仓库

我们可以通过git remote -v看看本地仓库对应的远程仓库URL,检查该URL是否与要使用的GitHub主机匹配,否则更新远程原始URL。如果不匹配,可以通过下面这个命令更新:

1
git remote set-url origin git@github.com-worker_user:worker_user/repo_name.git

注意替换@和冒号中间的字符串,它们对应你在ssh配置文件中配置的host。

如果你要在本地创建一个全新的仓库。我们都知道使用git init,然后你在GitHub上创建一个仓库,同样需要在本地配置远程仓库的URL,像这样:

1
git remote add origin git@github.com-work_user:work_user/repo_name.git 

同样需要注意对应的host。

好了。关于本地使用多个GitHub账号如何配置ssh key和host就介绍这么多。

l

#EmbyServer 4.7.13.0 全端全功能免验证破解(非伪站验证)

由本人破解,不得用于商业,禁止二次传播,黑原神和黑原神玩家的抽象玩意儿自己给我滚蛋。

下载解压文件到embyserver目录中的system里,重启emby服务,进入emby服务端设置,在Premiere Key中随便输入字符确定即可完成本地验证。

img随便输入字符即可

img已经是Emby高级会员了

img可以使用高级会员功能

天翼云下载链接

https://cloud.189.cn/web/share?code=MNZNR3amyaq2(访问码:yyo9)

l

华硕路由器修改本地Hosts局域网DNS转发设置

引子

联通网络,入户给配了智能光猫(集成光猫和无线路由器的功能),192.168.0.1 是智能光猫的地址。光猫后面就是华硕路由器,华硕路由器自动获取的 IP 地址 192.168.0.2 ,路由器本身的登录地址改为192.168.50.1,路由器的子设备为192.168.50.xxx。
在路由器的子设备中有一个 Synology(群辉) 的 Nas,端口映射到外网,有真实的外网 IP 地址,外网可以正常访问。但从光猫、路由器内的局域网中,都无法直接访问这个外网 IP 地址,Ping 也无法 Ping 通。

问题

综上,尴尬的事情就来了,Nas 绑定的域名无法在我的局域网内访问 Nas,因为域名指向的是我 Nas 的外网 Ip 地址,但是这个 Ip 并不能在我家的局域网内访问,所以,一旦连接上我家的 WIFI 后,访问我的 Nas 域名,就要自动指向到我 Nas 的内网 IP 地址。

解决

既然只有连接到我家的 Wifi 时需要将 Nas 的域名指向到我家的内网 Ip 地址,那么我就从路由器动手,在路由器作为 DNS 服务器的时候,将域名的请求指向 Nas 内网 IP 。

修改路由器 Hosts

华硕路由器本身无法直接修改 Hosts 文件,因为文件修改权限不够,就像 iOS 需要越狱、Android 需要 Root 一样,路由器也需要获取到管理员权限,才能对其核心文件进行修改,所以分两步,首先给路由器刷梅林固件,然后再使用 WinSCP 连接路由器,改 Hosts 文件。

华硕路由器刷梅林固件

因为这个不是本篇文章的主要内容,我就简单略过了,梅林固件的安装也非常简单,和安装原版固件基本相同。

升级固件

系统管理 - 固件升级 - 新固件文件,选择梅林固件之后,点击上传,然后按照提示省级,重启就好了。

img

建议
如果可以的话,还是进入系统管理 - 恢复/导出/上传设置里面把配置文件先备份一下,以后也方便。

初始化路由器

升级完成进入https://router.asus.com,会出现自动设置向导,点击 跳过设置向导 (因为等下要恢复出厂),进入 系统管理 - 系统设置,勾选 Format JFFS partition at next boot,点击 应用本页面设置。
img

恢复路由器出厂设置

进入 系统管理 - 恢复/导出/上传设置,在 原厂默认值 一栏,点击 恢复 按钮,恢复出厂设置。

重新配置路由器

重新进入https://router.asus.com,现在可以根据 设置向导 来配置你的路由器登陆密码和wifi密码,或者你可以稍后自己设置。

配置软件中心

进入系统管理 - 系统设置,勾选 Enable JFFS custom scripts and configs,点击 应用本页面设置 (此步关系到软件中心能否正常使用)

这样,华硕路由器的梅林系统就安装完成了,安装梅林系统的同时,路由器的权限也随之获取了,我们下一步就开始干正事。

配置 Hosts 文件

因为已经取得了路由器的控制权限,所以我们首先将路由器的SSH功能开启,然后利用 WinSCP 登录到路由器中。

开启路由器 SSH 功能

进入系统管理 - 系统设置 - SSH 连接,按照我的截图进行设置即可。

注意
我截图里面选择的是只允许有线连接,如果你是无线连接的记得选择 Wifi 可以使用 SSH ,更改 LAN only 那一项即可。

img

建立 SSH 连接

用浏览器打开下面的链接
ssh://admin@192.168.50.1

注意
上面SSH 链接的 admin 是我路由器的管理员帐号。
192.167.50.1 是我路由器的访问地址

如果在 Mac 下可能出现以下错误

复制代码

1
2
3
4
5
6
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.

这个错误我没有列全,因为涉及到地址等信息,如果出现以上错误,在 Mac 本地删除 /Users/你的 mac 用户名/.ssh/known_hosts中的所有文件即可。
Finder 中按 shift + cmd + G 或者直接 点击菜单上的 前往 - 前往本地文件夹
WX20180824-113238
删除该文件夹下的所有内容
WX20180824-113310

我们再次连接,输入 yes ,进行确认。
WX20180824-113737

然后输入路由器后台的登录密码,并出现以下画面,表示登录成功。
WX20180824-113800

ssh登录到路由器

引入 Hosts

登入完成后,点击最上方的…,直到进入根目录,找到 jffs 目录,进入该目录。然后在 jffs 目录下,右键单击,新建一名为dnsmasq.conf.add的文件,在文件中输入

复制代码

1
addn-hosts=/jffs/configs/hosts

完成后,点击左上角保存按钮保存该文件,然后关闭。

配置 Hosts

然后进入该文件夹下的 configs 文件夹,,右键单击,新建一名为hosts的文件,在文件中输入你需要的 hosts 内容

复制代码

1
2
192.168.50.218 www.swimminghao.top
192.168.50.1 www.example.com

完成后,点击左上角保存按钮保存该文件,然后关闭。

重启 DNS 服务

打开刚才链接的 SSH 命令窗口,输入

复制代码

1
service restart_dnsmasq

WX20180824-113807
重启dnsmasq服务,来使hosts生效。
重启路由器后依然存在并且有效。这样,就可以了~!

l

word图片、表格自动编号

在写论文、报告或标书时,为了使数据更加直观,文档中会使用大量图片、表格或图表等元素。

如果图片、表格或图表太多,为了对它们进行区分,我们会在每一张图片(或表格、图表)底部进行编号。编号样式通常为:图1,图2,图3……或者为表1,表2,表3……等。

对于这种情况,许多人会手工输入图片的编号。真的是头晕眼花。还容易出错!

其实,学会利用Word题注+查找和替换功能就能为图片自动编号,不仅能避免手工输入编号带来的烦恼,还非常省事!1000张图片自动编号,10秒搞定

图片自动编号

一、先设置章节

使用word 自带的章节样式,例如:标题一、标题二,不然和标题联动的设置都会出问题

![](https://cdn.jsdelivr.net/gh/swimminghao/picture@main/img/2023-04-05 18.32.10_20230405193155.gif)

二、为图片添加题注

Word中题注的作用就是给文档里的图片、表格、图表或公式等元素添加自动标注,即编号和注释文字。下面以为图片添加题注为例进行讲解(注:为表格、图表或公式添加题注的方法与为图片添加题注基本相同)。

1
2
3
4
5
6
7
1. 选中图片,点击【引用】-【题注】-【插入题注】。

2. 打开“题注”对话框,这里是为图片添加题注,所以我们在“标签”下拉列表中选择“图”。

3. 如果需要对图片设置说明信息,则在题注编号后面输入相应的说明文字,然后单击“确定”按钮即可。

4. 这样我们就为第一张图片加好了题注。

![](https://cdn.jsdelivr.net/gh/swimminghao/picture@main/img/2023-04-05 18.13.45_20230405181431.gif)

技巧提示:在“题注”对话框的“位置”下拉列表框中还可以设置题注位于对象的上方或是下方。默认情况下为“所选项目下方”选项,表示题注位于对象的下方。

三、为图片批量编号

单张图片添加题注学会了,那么,若要为文档中的其他图片添加题注,是不是用相同的方法呢?这个方法虽然也可行,但不够高效。

接下来,教你2个批量为图片添加编号的小妙招:

利用【F4】快捷键(mac版使用CMD+Y)

在Word里用过【F4】快捷键的朋友就会知道,它的作用是重复上一步操作。因此,当我们插入一次题注编号后,按【F4】键,可重复插入编号(如要添加注释说明文字,直接在编号后输入即可)。

![](https://cdn.jsdelivr.net/gh/swimminghao/picture@main/img/2023-04-05 18.15.23_20230405181540.gif)

利用查找和替换

Word里的查找替换功能非常强牛,特别是在批量处理相同格式的内容时,使用该功能效率倍增。因此,我们可以利用查找和替换来批量添加编号。

1
2
3
4
5
6
7
8
9
10
11
12

(1)选择题注,按下【Alt+F9】快捷键,切换到域代码状态。

(2)选中域代码,这里不包含后面的图片注释文字。按【Ctrl+C】键复制,再按【Ctrl+H】键打开“查找和替换”对话框。

(3)在查找文本框中输入【^g】;在替换文本框中输入【^&^p^c】,然后点击【全部替换】按钮。

(4)此时,所有图片下方均添加了编号。按下【Ctrl+A】键全选所有内容,再按【F9】刷新,最后,再按【Alt+F9】切回正常状态,这样就完成了图片的编号。

代码解析:^g 表示图片;^& 指要查找的内容;^p 表示换行符(也就是换一行);^c 表示剪切版的内容(即第二步中复制的代码内容)。

(5)然后,在每张图片的编号后添加上相应的说明文字即可。

![](https://cdn.jsdelivr.net/gh/swimminghao/picture@main/img/2023-04-05 18.16.45_20230405181844.gif)

四、“图”字和数字直接删掉空格,最后添加空格

1
2
3
4
5
6
7
8
9
10
11
12
1. 右击图片题注,样式里全选所有图题注

2. 在查找内容处,输入:空格,替换处什么都不填。

3. 全部替换删掉图字和数字之间的空格

4. 选中使用通配符,在查找内容处,输入:(*)^13,替换处,输入:\1 ^13

5. 单击【全部替换】。


注:要是现成的图题注,需要先去掉所有空格;再在查找内容处,输入:([一-龥][一-龥])(*)^13,替换处,输入: \1\2^13;最后单击【全部替换】

表格自动编号

  1. 粘贴如下代码,创建宏,并设置题注标题
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub 表格题注()
'
'
If ActiveDocument.Tables.Count >= 1 Then
Set act_Doc = ActiveDocument
For Each otable In act_Doc.Tables
CaptionLabels.Add Name:="表星星星"
With otable.Range.InsertCaption(Label:="表星星星", Position:=wdCaptionPositionAbove)
'Position:=wdCaptionPositionBelow
End With
Next
End If

End Sub
  1. 使用宏将所有表格命名为”表星星星”格式,使用第一张表添加题注,接下来复制新建的表格题注,例:表1 ,(注:必须复制“表1”和后面的空格)
  2. 然后查找替换,使用通配符,查找内容:表星星星*表[星]{1,}*[0-9]{1,},替换内容:^c
l

Mac宿主机访问Docker容器网络

img

macOS上面Docker实现方式和Linux不一样,简单说macOS将Docker服务端(docker daemon守护进程)部署在一台虚拟机里面,而Linux里面Docker服务端直接作为宿主机的一个进程。这导致两种平台上Docker容器和其宿主机的网络通信方式有很大不同。

简单的表象是,Linux主机上会有一个docker0网卡,而macOS上没有docker0网卡;带来的区别是Linux上部署的容器应用默认和宿主机就是互联互通的,而macOS宿主机不能直接连通容器。

Linux查看docker0网卡

在阿里云ECS里面启动了Docker服务,终端输入ifconfig查看docker0网卡(容器默认使用bridge模式部署,都通过这个docker0网卡与宿主机通信)

img

Linux宿主机ping容器

启动一个nginx容器(默认使用bridge模式):

1
docker run -d --name nginx nginx

查找nginx容器ip地址:

1
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' nginx

在宿主机使用curl http://172.17.0.4访问容器中nginx页面,可以看到返回结果,说明宿主机可以连通容器网络。

img

Linux容器ping宿主机和其它容器

容器里面ping宿主机可以ping得通,说明容器可以连通宿主机;容器里面ping其它容器可以ping得通,说明容器之间的网络也互通。

img

Linux查看bridge模式网络信息

Docker默认使用bridge模式启动容器服务,使用docker network inspect bridge命令查看bridge模式网络信息。

img

由此可见,Linux宿主机与容器网络是互联互通的

macOS宿主机ping容器

在macOS里面启动nginx和ubuntu容器,使用docker inspect命令获取nginx和ubuntu容器的ip地址。

img

由上可见,macOS宿主机与容器网络默认不连通;并且宿主机ping容器网关地址(172.17.0.1)也ping不通

macOS容器ping其它容器

进入ubunut容器,如果没有安装过相关命令工具先参照下面方法安装网络工具包。

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
ubuntu安装curl:
apt install curl
(使用curl ifconig.me查询本机ip)

ubuntu安装ipconfig:
apt-get install net-tools

ubuntu安装ping:
apt-get install iproute2

ubuntu安装ip:
apt-get install iproute2

ubuntu安装netcat经典版本:
apt-get -y install netcat-traditional

ubuntu安装telnet客户端:
apt-get install telnet

ubuntu安装telnet服务端:
apt-get install telnetd

ubuntu安装lsof:
apt-get install lsof安装lsof

ubuntu启动telnet服务(启动后使用lsof可以看到23端口被使用,macOS telnet服务):
/etc/init.d/openbsd-inetd restart启动telnet

使用ifconfig查看ubuntu容器ip地址是172.17.0.4,容器本地地址是127.0.0.1,注意这个127.0.0.1是ubuntu容器的localhost地址,和宿主机的127.0.0.1不是一回事。

在容器里ping容器网关地址(172.17.0.1)可以ping通,ping其它容器(nginx容器ip地址172.17.0.5)可以ping通,访问nginx容器主页可以成功,说明容器之间的网络是互通的。

img

macOS容器查看宿主机ip地址

Docker for Mac有两个内置的域名host.docker.internalgateway.docker.internal分别表示宿主机ip和网关ip。

容器中ping host.docker.internal得到宿主机ip地址192.168.65.2,ping gateway.docker.internal得到同样的ip地址,ping 192.168.65.1也可以ping通。奇怪为什么默认把宿主机和网关ip都设置为192.168.65.2而不是192.168.65.1。

img

查看Docker For Mac配置信息,发现192.168.65.2地址和默认设置的网段有关。

img

macOS容器ping宿主机真实ip地址

使用curl ifconfig.me获取运营商分配的”真实”ip地址,使用ifconfig | grep "inet " | grep -v 127.0.0.1获取宿主机局域网ip地址,在ubuntu容器里面都可以ping通。

img

容器如果需要连接macOS宿主机上的服务,比如MySQL数据库,那么数据库host地址可以使用192.168.65.2,也可以使用192.168.31.208,但显而易见使用192.168.65.2更为可靠。

macOS部署mindoc作为在线文档工具

mindoc是一款在线文档管理系统,其它就不多介绍了,自己看官网吧。

为了方便文档数据备份和迁移,我使用本地MySQL数据库替换默认的sqlite3数据库,将容器内文件上传目录映射到本地目录,这样以后我添加的所有文档都保存在macOS本地。

  1. 先使用内置sqlite3数据库默认启动一个mindoc服务

    1
    docker run -p 8181:8181 --name mindoc -e httpport=8181 -d registry.cn-hangzhou.aliyuncs.com/mindoc/mindoc:v2.0-beta.2
  2. 进入mindoc容器,将容器里面/mindoc/conf/app.conf拷贝到宿主机

  3. 在宿主机app.conf填写启动配置信息,主要是数据库配置信息

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    ####################MySQL 数据库配置###########################
    #支持MySQL和sqlite3两种数据库,如果是sqlite3 则 db_database 标识数据库的物理目录
    #db_adapter="${MINDOC_DB_ADAPTER||sqlite3}"
    #db_host="${MINDOC_DB_HOST||127.0.0.1}"
    #db_port="${MINDOC_DB_PORT||3306}"
    #db_database="${MINDOC_DB_DATABASE||./database/mindoc.db}"
    #db_username="${MINDOC_DB_USERNAME||root}"
    #db_password="${MINDOC_DB_PASSWORD||123456}"

    db_adapter=mysql
    db_host=192.168.65.2(宿主机ip,我这里也可以写192.168.31.208,但局域网ip容易变动因此不用)
    db_port=3306
    db_database=mindoc
    db_username=XXXXXX
    db_password=XXXXXX
  4. 在宿主机创建mindoc数据库,字符集使用utf8mb4,排序规则使用utf8mb4_general_ci

  5. 关闭并删除原容器,将本地app.conf映射到/mindoc/conf/app.conf,将本地文件上传目录映射到/mindoc/uploads,重新部署mindoc服务

    1
    docker run -p 8181:8181 --name=mindoc --restart=always -v /Users/XXX/XXX/app.conf:/mindoc/conf/app.conf -v /Users/XXX/XXX/uploads:/mindoc/uploads -e httpport=8181 -e MINDOC_ENABLE_EXPORT=true -d registry.cn-hangzhou.aliyuncs.com/mindoc/mindoc:v2.0-beta.2
  6. 使用docker logs查看容器日志,如果初始化成功会在宿主机mindoc数据库创建相关的表;如果出现数据库连接异常,有可能需要修改MySQL配置文件将bing-address改为0.0.0.0,然后重启MySQL即可;如果数据库还连接不上,检查数据库连接用户是否有操作mindoc表的权限,配置好即可

macOS宿主机连接容器网络

查到几种方式,比较一下发现使用docker-connector最简单。

安装docker-connector服务

  1. 使用brew安装docker-connector
1
brew install wenjunxiao/brew/docker-connector
  1. 执行下面命令将docker所有 bridge 网络都添加到docker-connector路由
1
docker network ls --filter driver=bridge --format "{{.ID}}" | xargs docker network inspect --format "route {{range .IPAM.Config}}{{.Subnet}}{{end}}" >> /usr/local/etc/docker-connector.conf

(/usr/local/etc/docker-connector.conf是安装docker-connector后生成的配置文件)

  1. 使用sudo启动docker-connector服务
1
sudo brew services start docker-connector
  1. 使用下面命令创建wenjunxiao/mac-docker-connector容器,要求使用 host 网络并且允许 NET_ADMIN
1
docker run -it -d --restart always --net host --cap-add NET_ADMIN --name connector wenjunxiao/mac-docker-connector
  1. docker-connector容器启动成功后,macOS宿主机即可访问其它容器网络

img

其它补充

如果macOS里面需要使用代理,proxychains4是比较好的选择。

1
2
3
1. 使用brew install proxychains4进行安装
2. 在/usr/local/Cellar/proxychains-ng/4.8.1/etc/proxychains.conf配置Socks5地址
3. 使用proxychains4 command走代理访问,不加proxychains4的command不受影响

参考资料

l