preview
目的是在Windows上构建一个和Linux类似的Terminal,让Windows炼丹和Linux一样舒适,同是让Terminal取代Xshell完成远程链接。
预览如下图
在Linux下我们使用zsh和oh-my-zsh结合,Windows下我们使用powershell7和oh-my-posh结合。
前提是机器已经安装了ssh、sshd、conda、git
获取powershell7
从这里https://github.com/PowerShell/PowerShell/releases下载绿色版(避免重装系统消失),放置到D:\Program Files\PowerShell-7.4.1-win-x64
目录下,并这个文件夹里面创建一个 Profile.ps1文件。pwsh启动会先执行这个文件。这里讲解了pwsh启动时,执行profile的顺序。
设置环境变量
HOME=D:\Program Files\PowerShell-7.4.1-win-x64\
# 将这些env加入path
参考命令
$PROFILE | Select-Object * # 查看PROFILE的位置
Test-Path -Path $PROFILE.AllUsersAllHosts # 测试脚本存在
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser # 解除严格模式
set-ExecutionPolicy RemoteSigned # 解除严格模式
Install-Module -Name PowerShellGet -Force # 安装get模块
Get-InstalledModule # 获取已经安装的模块
安装oh-my-posh
Install-Module posh-git -Scope CurrentUser # posh-git
Install-Module oh-my-posh -Scope CurrentUser -RequiredVersion 2.0.496 # oh-my-posh
Install-Module ZLocation -Scope CurrentUser # ZLocation (opens new window)和 autojump 差不多效果。快速 cd 到历史去过的目录。
安装字体
oh-my-posh font install # 需要管理员权限的终端)
这里是把字体安装在操作系统中,如果发现Terminal中字体还是不正确,原因是Terminal中的字体没有调整
编辑profile
这里类似于Linux上的.zshrc的文件。
Linux上的zsh和这里的powershell7一样,都是shell程序。所以这里的$PROFILE就是在shell启动时前运行的脚本配置文件
# sudo命令
function _sudo {
$ss = "$args ; pause"
Start-Process wt -Verb runAs -ArgumentList $ss
}
Function _su {
Start-Process -verb runas "wt"
}
# setup alias 设置命令的别名
set-alias -name sudo -value _sudo
Set-Alias ll ls
Set-Alias su _su
Set-Alias vi "D:\Program Files\vim\vim91\vim.exe"
Set-Alias vim "D:\Program Files\vim\vim91\vim.exe"
#oh-my-posh init
Import-Module posh-git # 引入 posh-git
Import-Module oh-my-posh # 引入 oh-my-posh
Set-Theme PowerlinePlus # 设置主题为 Paradox, Emodipt, Honukai ,PowerlinePlus ,qwerty ,Sorin ,Zash
Set-PSReadLineOption -PredictionSource History # 设置预测文本来源为历史记录
Set-PSReadlineKeyHandler -Key Tab -Function Complete # 设置 Tab 键补全
Set-PSReadLineKeyHandler -Key "Ctrl+d" -Function MenuComplete # 设置 Ctrl+d 为菜单补全和 Intellisense
Set-PSReadLineKeyHandler -Key "Ctrl+z" -Function Undo # 设置 Ctrl+z 为撤销
Set-PSReadLineKeyHandler -Key UpArrow -Function HistorySearchBackward # 设置向上键为后向搜索历史记录
Set-PSReadLineKeyHandler -Key DownArrow -Function HistorySearchForward # 设置向下键为前向搜索历史纪录
激活conda
设置conda环境变量
# 此环境变量要放入到path中
conda3=D:\ProgramData\Anaconda3\Scripts;D:\ProgramData\Anaconda3\Library\bin;D:\ProgramData\Anaconda3
设置conda的默认启动脚本
$global:profiles = "$PSHOME\Profile.ps1"
#region conda initialize
# !! Contents within this block are managed by 'conda init' !!
(& "D:\ProgramData\Anaconda3\Scripts\conda.exe" "shell.powershell" "hook") | Out-String | Invoke-Expression
#endregion
Terminal中运行powershell7
最终预览
Terminal中进行ssh快捷登录,从而代替Xshell
思路
想要在Terminal中实现ssh快捷链接,就是需要再pwsh中引导ssh工作,也就是说只要把启动命令中加入ssh登录语句就可以实现在Terminal中进行ssh,从而代替Xshell
ssh grozta@192.168.199.128 就是我们通常使用的ssh登录语句
在conda的启动快捷方式中,它的启动命令是
pwsh.exe -ExecutionPolicy ByPass -NoExit -Command "&'D:\code\miniconda\shell\condabin\conda-hook'"
所以我们想要快速启动ssh进行远程链接,只需要把-Command 后的参数替换成ssh登录语句就可以了
方法
因此我们只需要新建一个配置文件,要从前面的我们pwsh配置中复制一份,命令行修改为
%PSHOME%\pwsh.exe -ExecutionPolicy ByPass -NoExit -Command "ssh grozta@192.168.199.128"
预览
然后我们开启新的标签,输入密码
参考
打造好用的PowerShell媲美oh-my-zsh | Exploring
给 PowerShell 带来 zsh 的体验
Nerd Fonts - Iconic font aggregator, glyphs/icons collection, & fonts patcher 单独的字体下载给Terminal
Windows Terminal 终端个性化设置指南_windows terminal配色-CSDN博客