前言
本教程仅在Windows10/11操作系统测试成功;未在MacOS和Linux测试。
学习Linux或者玩VPS,应该使用一个好的方案,以方便与服务器进行命令行交互和文件传输。此前在《VSCode作为终端工具替代FinalShell和MobaXterm》中我已简单介绍过Windows Terminal + FileZilla方案。如果您是Windows 10或以上的用户,Windows Terminal + FileZilla
是一个值得推荐的免费、高颜值、高度自定义的终端+FTP方案:
- Windows Terminal:终端工具,Shell;主要用于命令行交互,一般不能直接传输文件:
- FileZilla:专门通过SFTP在本地与VPS之间传输文件,但一般不能进行命令行交互:
准备工作
基于密钥对的服务器访问
您应该熟练掌握《Linux基础 基于密钥对的SSH远程登陆》的内容——因为这两个软件最方便、最安全的方式就是通过密钥文件访问远程服务器(VPS等)。
我个人感觉使用Windows Terminal使用帐户+密码
的方式并不方便;有不同见解的小伙伴欢迎在评论区留言哈!
文本编辑器
安装好Notepad++或VSCode等可以查看JSON格式等文本的编辑器。我个人比较喜欢Notepad++
:
VSCode由于Python、LaTeX等编程工作的需要,我一般都是安装了的。
Meslo字体
为了配合oh-my-posh
,建议使用 MesloLGS Nerd Font Mono
。该字体不是系统自带的,需要手动安装(下载地址,包含Meslo系列字体)。下载后字体可以批量安装:
我们可以在个性化——字体中搜索字体的系统名称。比如,我用的是MesloLGS Nerd Font Mono
:
这个字体对于OhMyPosh的支持比较好一些,不容易出现乱码。
Windows Terminal
安装软件
咱们直接下载最新版,此时是v1.19.10821.0
安装OhMyPosh
OhMyPosh是一个Shell的美化工具,这样可以让Windows Terminal有类似OhMyZsh的外观:
打开Windows Terminal,在微软商店里安装JanDeDobbeleer.OhMyPosh
:
# winget install --id JanDeDobbeleer.OhMyPosh
winget install --id XP8K0HKJFRXGCK --source msstore
设置OhMyPosh的主题。新建一个profile配置文件:
notepad $PROFILE
添加主题的自启动命令:
oh-my-posh init pwsh --config $env:POSH_THEMES_PATH\montys.omp.json | Invoke-Expression
Ctrl+s保存。重启Windows Terminal即可。
注意事项:
montys.omp.json
等部分主题要添加下列命令才可以显示conda环境
{
"background": "#306998",
"foreground": "#FFE873",
"leading_diamond": "\ue0b2",
"style": "powerline",
"template": "\ue235 {{ if .Error }}{{ .Error }}{{ else }}{{ if .Venv }}{{ .Venv }} {{ end }}{{ .Full }}{{ end }}",
"trailing_diamond": "<transparent,#306998>\ue0b2</>",
"type": "python"
},
JSON配置文件
我个人比较喜欢的特性,即设置可以通过JSON文件直接编辑(这一点类似于VSCode)。根据经验,大多数设置都可以直接在JSON文件中定义。如图,打开设置
:
左下角即有一个打开JSON文件
的选项:
点击后,类似这样:
这里是一个JSON文件的示例:
这个文件中,profiles
的部分内容是最值得关注的:
默认设置
"defaults"
下面的内容
- 通过调节
opacity
和backgroundImageOpacity
可以获得满意的透明度显示。
"initialCols": 140, // 窗口宽
"initialRows": 42, // 窗口高
"initialPosition": "300,20", // 设置窗口默认打开位置
"multiLinePasteWarning": false,
"mouseWheelScrollsLines": true,
"scrollWheelMoveMultiplier": 1,
"defaults": {
"useAcrylic": true,
// "acrylicOpacity": 1,
"opacity": 1,
"backgroundImage": "默认情况下的背景图片本地地址",
"backgroundImageOpacity": 0.3, // 背景图片透明度
"font":
{
"face": "MesloLGS Nerd Font Mono", //字体类型
"size": 16.0 //字体大小
},
"bellStyle": "none",
},
服务器信息
"list"
下面的内容
这里是服务器的信息。一般如下:
[
{
"backgroundImage": "C:/Users/Administrator/Downloads/bbmb-80.jpg",
"commandline": "ssh -i \"id_rsa等密钥的本地地址\" -p 22 [email protected]",
"font":
{
"weight": "bold"
},
"guid": "{xxx}",
"hidden": false,
"icon": "E:\\\u6211\u7684\u575a\u679c\u4e91\\\u6837\u5f0f\u5907\u4efd\\\u5934\u50cf\\zzmx-logo-02.jpg",
"name": "测试1",
"suppressApplicationTitle": true,
"tabTitle": "测试1"
},
{
"backgroundImage": "C:\\Users\\Administrator\\Downloads\\zzmx-83.jpg",
"backgroundImageOpacity": 0.61,
"commandline": "ssh -i \"id_rsa等密钥的本地地址\" -p 3722 [email protected]",
"guid": "{xxx}",
"hidden": false,
"icon": "E:\\\u6211\u7684\u575a\u679c\u4e91\\\u6837\u5f0f\u5907\u4efd\\\u5934\u50cf\\bbmb-logo-09.jpg",
"name": "测试2",
"suppressApplicationTitle": true,
"tabTitle": "测试2"
},
{
"commandline": "%SystemRoot%\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
"guid": "{61xxxxd-c2c6-5xx71-96e7-009xxxxxx44bf}",
"hidden": false,
"name": "BenszShell",
"suppressApplicationTitle": true,
"startingDirectory": "C:\\Users\\Administrator\\Downloads",
"tabTitle": "Win10"
},
]
请注意,在win10
的设置中还设置了一个startingDirectory
参数,其定义了启动Windows Terminal后的默认工作目录(默认值是类似C:\\Users\\Administrator
用户目录)。设置为非用户目录有一个好处,即可以看至conda的环境及python版本:
如果您是首次添加服务器信息,这部分内容建议先在可视化界面里添加:
其中,命令行
这里值得关注,它的形式是:ssh -i "id_rsa等密钥的本地地址" -p 22端口 用户名@IP地址
:
这是一个示例:ssh -i "C:/Users/Administrator/.ssh/id_rsa" -p 6922 [email protected]
,其含义是:
- 局域网主机
192.168.1.111
,通过用户名root
登陆ssh - ssh端口是自定义的
6922
(而不是默认的22
),密钥是id_rsa
,位于文件夹C:/Users/Administrator/.ssh
中。 - 实际上,可以生成很多个
id_rsa
密钥(相当于您有很多把钥匙),只要VPS的authorized_keys
文件里添加该密钥对应的公钥即可(具体见《Linux基础 基于密钥对的SSH远程登陆》)。 - 如果您需要添加代理(假设openwrt的openclash,地址为
192.168.1.1:7890
),上述命令可以改为:ssh -i "C:/Users/Administrator/.ssh/id_rsa" -o ProxyCommand="C:/Program Files/Git/mingw64/bin/connect.exe -H 192.168.1.1:7890 %h %p" -p 6922 [email protected]
。这里的connect.exe的地址可以用everything之类的软件核实一下。
以下一是个连接Linux服务器的典型配置:
备份JSON文件
一般来说,Windows Terminal的JSON文件地址是C:\Users\Administrator\AppData\Local\Microsoft\Windows Terminal\settings.json
。
如果您在一台新的Windows设备上安装Windows Terminal,可以提前备份该JSON文件,直接复制过去,这样包括服务器信息等所有设置都可以还原(当然,图片地址、密钥地址等文件地址在新设备中也要一一对应或相应修改才行)。
FileZilla
安装FileZilla
Windows Terminal只是一个终端工具,只能通过命令行来交互。一般而言,本地电脑与服务器交互时经常还要使用FTP服务来传输文件。FileZilla正是处理该任务的经典软件之一,免费客户端也足够用了。首先,下载FileZilla Client:
像普通Windows软件一样正常安装即可。
FileZilla的工作界面如下:
添加服务器信息
在站点管理器中设置服务器的访问信息。这是一个示例:
虽然SFTP性能比FTP差些,但更加安全;而且可以访问更多文件,我个人比较推荐。实际使用时上传/下载带宽大致在100Mb左右(应该是ssh协议的限制),对于日常文件的传输基本已经够了。
小结
我已经弃用MobaXterm
了,目前用的也是Windows Terminal + FileZilla
方案。准备学习Linux或玩VPS的小伙伴,不妨采用这个方案。我测试了半年,该方案还是十分稳定的。赶紧来试试看吧 (~ ̄▽ ̄)~
参考
- 【教程】终端美化 Windows Terminal+oh-my-posh美化_哔哩哔哩_bilibili
- Home | Oh My Posh
- add sshpass to PowerShell/Win32-OpenSSH · Issue #1943 · PowerShell/Win32-OpenSSH
- 多行粘贴bug
- PSReadLine error on code paste · Issue #15411 · microsoft/terminal
- PowerShell/PSReadLine: A bash inspired readline implementation for PowerShell
- multiline – WT: Paste multiple lines to Windows Terminal without executing – Stack Overflow
---------------
完结,撒花!如果您点一下广告,可以养活苯苯😍😍😍
终端工具有 Ctrl + 鼠标左键 快速移动光标 的功能吗?
https://www.youtube.com/watch?v=YmN2psS4Esc
我试了一下,只有快速首尾移动的键盘快捷键。 暂时没发现您说的这个功能。
notepad $PROFILE
这一步 为什么提示我找不到此路径
我的win11中
$PROFILE
对应的位置是:如果没有的话你新建一个就好了
xshell+xftp
站长你好,请问文章开头的【本文最后更新于 18 天前,如有失效请评论区留言。】如何添加。
如图所示:
查看图片
你这个站 背景图都是很养眼的
呐,这就叫专业
我一般使用 scp 命令进行传输文件
FileZilla相当于有一个可视化窗口,更加符合有Windows使用经验的小伙伴的日常习惯 ~ scp当然可以,但对于初学者来说并不够实用 (~ ̄▽ ̄)~