socks是一种网络传输协议,主要用于客户端与外网服务器之间通讯的中间传递。根据OSI七层模型来划分,SOCKS属于会话层协议,位于表示层与传输层之间。
当防火墙后的客户端要访问外部的服务器时,就跟socks代理服务器连接。该协议设计之初是为了让有权限的用户可以穿过过防火墙的限制,使得高权限用户可以访问外部资源。经过10余年的时间,大量的网络应用程序都支持socks5代理。
这个协议最初由DavidKoblas开发,而后由NEC的Ying-DaLee将其扩展到版本4,最新协议是版本5,与前一版本相比,socks5做了以下增强:
- 增加对UDP协议的支持;
- 支持多种用户身份验证方式和通信加密方式;
- 修改了socks服务器进行域名解析的方法,使其更加优雅;
参考:https://www.digitalocean.com/community/tutorials/how-to-set-up-dante-proxy-on-ubuntu-20-04
验证:
配置文件路径:
重启服务:
使用SSH
- 使用动态端口转发将目标机器作为本机的代理
- 设置浏览器代理
以火狐浏览器为例:
- 测试
可以看到,显示的ip已经为目标服务器的ip了。
:::tip{title="提示"} 此方法其实不需要目标服务器安装代理软件,属于ssh使用的一个技巧,可以临时使用。 :::
使用Proxifier
- 下载安装proxifier
:::info{title="proxifier介绍"} Proxifier是一款代理客户端软件,可以让不支持代理服务器工作的程序变的可行。支持各种操作系统和各代理协议,它的运行模式可以指定端口,指定程序的特点。 ::: 下载地址: https://www.proxifier.com/
- 添加代理服务器
- 添加规则
- 测试
- 查看出口ip
可以看到已经在走代理服务器的流量
- 通过代理登录服务器
能登录上,说明配置成功。
- 安装
:::info{title="ProxyChains介绍"} ProxyChains是Linux和其他Unix下的代理工具。 它可以使任何程序通过代理上网, 允许TCP和DNS通过代理隧道, 支持HTTP、 SOCKS4和SOCKS5类型的代理服务器, 并且可配置多个代理。 ProxyChains通过一个用户定义的代理列表强制连接指定的应用程序, 直接断开接收方和发送方的连接。
GitHub:https://github.com/rofl0r/proxychains-ng :::
- 配置
配置文件路径:
代理配置格式:
在配置文件中找到并添加代理:
如果填写了多个代理,那么 proxychains 将会将这些代理组成链。
:::warning{title="注意"} 在配置文件中要取消选项:
:::
- 使用
在需要使用代理的程序前加上即可使用代理:
举例:
:::tip{title="科学上网"} 如果你在其他机器上设置好了clash代理,也可借用代理实现科学上网。
修改配置文件,将代理只保留下面这个(将ip修改为你的clash客户端运行机器的ip):
测试:
:::
Vim是一款文本编辑器,它可以在终端或命令行界面下使用。Vim最初是由Bram Moolenaar在1991年发布的,并基于另一款文本编辑器Vi开发而来。
Vim具有强大的编辑功能,可以帮助用户快速编辑和处理文本文件。它支持多种编辑模式,包括命令模式、插入模式和可视模式,可以通过快捷键在不同的模式之间切换。Vim还支持多种自定义配置选项,可以让用户根据自己的需求进行定制。
由于Vim可以在终端下运行,因此它特别适合在远程服务器上进行编辑操作。Vim也有广泛的使用者社群和丰富的插件生态系统,可以通过插件扩展其功能。由于Vim的学习曲线较陡峭,因此需要一定的学习成本。但是一旦掌握了Vim的基本用法,就能够大幅提高文本编辑效率。
官网:https://www.vim.org/
命令模式
窗口管理
tab页管理
文本内容处理
其他
- 保存需要用sudo权限保存的文件:
- 取消搜索高亮:
光标移动
输入模式
替换模式
- : 进入char替换模式
可视模式
说明:
- : 命令执行次数
- : 命令类型,包括、、、等
- : 指明光标移动范围
- : 文本块对象
例如:
- : 修改当前word
- : 复制当前word
- : 删除当前字符
- : 修改直到前面的内容
- : 删除3行
- : 向后删除2个word
# 文本对象(text object)
在Vim中,text objects(文本对象)是一种用于快速选择和操作文本块的功能。它可以让用户在编辑时快速选择一段文本,而不需要使用鼠标进行拖拽或者键盘进行移动光标来选择。text objects可以让用户通过一些命令快速选择文本对象,然后进行复制、剪切、粘贴或其他操作。
在Vim中,text objects有多种类型,例如:
其中, 表示,包含定界符; 表示,不包括定界符
术语解释:
来源:
动作(motion)
在vim中,motion表示移动光标的操作。具体来说,motion是指通过键盘输入一系列命令来使光标在文本中向前或向后移动的操作,这些命令通常与方向键(如上、下、左、右)无关,而是使用vim的特殊命令,例如单词、行、段落等。
motion是vim中的重要概念之一,熟练掌握各种motion的使用可以提高vim的操作效率。
下面介绍vim中常见的motion:
行内移动
移动到行首/行尾
按单词移动
word和Word的区别
按括号移动
按指定字符移动
跨行移动
复制/剪切/修改/粘贴
复制
粘贴
剪切
修改
查找
格式:
- : 向后查找
- : 向后查找
- : 向后查找光标下所在单词, 相当于
- : 向前查找光标下所在单词, 相当于
与配合使用,可以实现对匹配项的批量修改或删除==
例如:
测试文本: cucumber carrot lettuce cabbage carrot lettuce cucumber cucumber cucumber carrot kale cucumber kale
操作序列:
结果: foo carrot lettuce cabbage carrot lettuce foo foo foo carrot kale foo kale
替换
格式:
说明:
- : 作用范围,如:
- 表示整个文档
- 表示第3行至第5行
- 表示第1行至最后一行
- 表示当前行及后面两行
- : 表示匹配的模式
- : 表示替换的内容
- : 替换标志位,如:
- : 表示全部匹配项替换
- : 表示忽略大小写
- : 表示替换前提示要求确认
例如:
环绕
其他
参考:https://www.iteye.com/blog/liuzhijun-
查看寄存器内容:
语法
- 通过语法来指定使用命名寄存器,向其中覆盖写入内容
- 通过语法来指定使用命名寄存器,向其中追加写入内容
- : 录制宏, 以为界开始录制,以为界结束录制
- : 调用宏
- : 添加标记到中,可以为
- : 跳转到存储的标记处
- : 跳转到存储的标记处行首
- : 在当前光标处与标记处来回切换
- : 当前光标所在行处与标记处来回切换,光标定位在行首
- : 重复执行上次修改
- : 撤销上次更改
- : 恢复上次更改
常用基础配置
插件管理
插件管理器:vim-plug
- 安装
- 使用
添加插件示例(支持多种格式):
命令说明:
推荐配置
参考: https://github.com/amix/vimrc
安装:
此时,会生成一个默认的文件,包含了该项目为我们指定的推荐配置。 我们可以将自己补充的配置添加在中。
VSCode
可以安装vim插件,来获得类似原生vim的编辑体验。
启用与关闭vim: :
自用配置:
JetBrains
同样可以安装vim插件
- https://vim.rtorr.com/
- https://www.lesswrong.com/posts/ioGf4LHid42mCK3SK/vim
- Learn Vim | vscode插件
VS Code(Visual Studio Code)是一款免费、开源的代码编辑器,由微软开发和维护。它支持多种编程语言和框架,并提供了丰富的扩展功能,可以轻松地满足开发者的不同需求。
以下是 VS Code 的一些主要特点:
- 跨平台:VS Code 可以在 Windows、macOS 和 Linux 上运行。
- 内置调试器:VS Code 内置了调试器,支持多种语言和框架的调试。
- 丰富的扩展功能:VS Code 有大量的扩展可供选择,可以满足不同开发者的需求。
- 集成终端:VS Code 内置了终端,可以在编辑器内进行命令行操作。
- Git 支持:VS Code 提供了 Git 集成,可以轻松地进行版本控制操作。
- 快速编辑:VS Code 提供了多种快捷键和编辑工具,可以提高开发效率。
总之,VS Code 是一款功能强大的代码编辑器,可帮助开发者更高效地进行开发工作。
官网:https://code.visualstudio.com/
文档:https://code.visualstudio.com/docs 扩展市场:https://marketplace.visualstudio.com/VSCode
- 方法一
可以通过快捷键打开快捷键面板,在其中可以查看、修改、新建和删除快捷键
- 方法二
找到想要的功能,然后点击该条最右侧的齿轮图标,可以直接跳转到快捷键分配界面
光标移动
行内跳转
下面功能的依赖插件Quick and Simple Text Selection:
当前文件跳转
跳转到上次光标所在位置
下面功能的依赖插件Bookmarks:
- :跳转到下一个bookmark位置
- :跳转到上一个bookmark位置
跨文件跳转
多光标
文本删除
文本插入
文本复制
文本移动
文本合并
文本选择
: 切换大小写匹配(默认是忽略大小写)
: 切换全词匹配(默认是忽略全词匹配)
: 切换正则匹配(默认不开启)可以选中当前文件中所有当前出现的光标所在单词选中所有文本选中当前行文本鼠标拖选,可以纵向选择文本
下面功能的依赖插件Quick and Simple Text Selection:
下面功能的依赖插件Bookmarks:
文本查找
当前文件查找
跨文件查找
文本替换
变量重命名
文本折叠与展开
文本注释
文本自动换行
文本排序
文本格式化
文件路径
文件查找
文件对比
屏幕滚动
分屏
文件(夹)打开与关闭
编辑器组
聚焦
布局调整
编辑器移动
编辑器切换
在替换窗口勾选正则表达式按钮,在第一个文本框输入,选择全部替换即可。
参考:https://code.visualstudio.com/docs/editor/userdefinedsnippets#_assign-keybindings-to-snippets
- 打开snippets配置

选择要设置snippet的语言,然后添加snippet
样例:
- 为snippet设置快捷键
添加条目,示例如下:
先占有文件,修改完后,再复原
参考: Profiles in Visual Studio Code
支持的操作:
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/3598.html
word和Word的区别