Windows上构建一个和Linux类似的Terminal

preview

目的是在Windows上构建一个和Linux类似的Terminal,让Windows炼丹和Linux一样舒适,同是让Terminal取代Xshell完成远程链接。
预览如下图
image.png
在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的顺序。
image.png

设置环境变量

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中的字体没有调整
image.png

编辑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-poshSet-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

image.png

最终预览

image.png

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"
image.png

预览

然后我们开启新的标签,输入密码
image.png

参考

打造好用的PowerShell媲美oh-my-zsh | Exploring
给 PowerShell 带来 zsh 的体验
Nerd Fonts - Iconic font aggregator, glyphs/icons collection, & fonts patcher 单独的字体下载给Terminal
Windows Terminal 终端个性化设置指南_windows terminal配色-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/716494.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue 前端开发 v-for和v-if两个指令不能混合使用

原由: 在进行项目开发的时候因为在一个标签上同时使用了v-for和v-if两个指令导致的报错。 提示错误:The undefined variable inside v-for directive should be replaced with a computed property that returns filtered array instead. You should no…

nginx------------缓存功能 ip透传 负载均衡 (六)

一、http 协议反向代理 (一)反向代理示例:缓存功能 缓存功能可以加速访问,如果没有缓存关闭后端服务器后,图片将无法访问,缓存功能默认关闭,需要开启。 ​ proxy_cache zone_name | off; 默认off #指明调…

基于Springboot纯净水配送和商城系统设计与实现 开题报告参考

博主介绍:黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程&#xff…

2023 版王道单科书勘误汇总(3.30)

注:因2023版对题目编号做了优化“历年真题全部放最后、且按年份排序”,以方便大家根据需要保留某些年份的真题作为最后的模拟。所以造成了一些题目和解析的编号错误。 数据结构: P11 P20 P56 P278 P326 “2.”中第 3 行”题 5改成”9”,第6行”题 8”改成…

css3详解

一.什么是CSS3 CSS3是Cascading Style Sheets的第三个版本,是一种用于描述文档样式的语言(CSS3是CSS(层叠样式表)技术的升级版本)。它是前端开发中用于控制网页布局和样式的技术之一。CSS3引入了许多新的特性和功能&a…

Linux常用操作命令大全

Linux常用操作命令大全 Linux,作为一款开源的操作系统,深受全世界开发者和系统管理员的喜爱。在Linux环境下,用户通过命令行界面可以执行各种操作,从而实现对系统的全面控制。本文将详细介绍Linux中常用的操作命令,帮助读者更好地理解和运用这些命令。 一、文件操作命令…

hexo图片显示不出且图片路径错误/.com//

参考博客: hexo 图片显示问题及使用typora设置图片路径-CSDN博客 javascript - hexo 图片路径错误/.com// - SegmentFault 思否 先说如何让hexo图片成功地显示出来 Step1: 修改config设置 将 _config.yml 设置文件中的 post_asset_folder 修改为 true 这一步的作…

平衡二叉树,二叉树的路径,左叶子之和

第六章 二叉树part04 今日内容: 110.平衡二叉树 257. 二叉树的所有路径 404.左叶子之和 110.平衡二叉树 (优先掌握递归) 给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为&am…

【不可不知的考研复试秘籍 1】

----------------------------------------------------------------------------------------------------- 考研复试科研背景提升班 教你快速深入了解掌握考研复试面试中的常见问题以及注意事项,系统的教你如何在短期内快速提升自己的专业知识水平和编程以及英语…

windows下安装cnpm

cnpm是淘宝团队开发的一个针对中国用户的npm镜像源,它是npm的一个定制版本。由于国外的npm源在国内访问速度较慢,所以cnpm镜像源可以提供更快的下载速度。cnpm的使用方式与npm基本相同,只需将npm替换为cnpm即可。 要想使用cnpm等先安装node.…

反序列化逃逸 [安洵杯 2019]easy_serialize_php1

打开题目 题目源码&#xff1a; <?php$function $_GET[f];function filter($img){$filter_arr array(php,flag,php5,php4,fl1g);$filter /.implode(|,$filter_arr)./i;return preg_replace($filter,,$img); }if($_SESSION){unset($_SESSION); }$_SESSION["user&qu…

每日一题 KY148还是畅通工程

某省调查乡村交通状况&#xff0c;得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通&#xff08;但不一定有直接的公路相连&#xff0c;只要能间接通过公路可达即可&#xff09;&#xff0c;并要求铺设的公路总长度…

PostgreSQL对已有表增加自增序列

对已有表增加自增序列&#xff1a; 1、在PostgreSQL当中&#xff0c;我们要实现对已有表的ID字段自增。 首先需创建一个关联序列&#xff0c;以下sql语句是创建一个序列&#xff1a; CREATE SEQUENCE menu_id_seq START 6000001; 序列名称是menu_id_seq&#xff0c;起始…

sizeof 和 strlen的区别

sizeof sizeof是单目操作符,sizeof计算变量所栈内存空间大小,单位是字节,如果操作数是类型的话,会计算类型所占大小,sizeof指在乎占用内存空间大小不在乎内容是什么. int main() {int a 0;printf("%zd\n", sizeof(a));printf("%zd\n", sizeof a );printf…

巧【二叉搜索树的最近公共祖先】【二叉搜索树的性质】Leetcode 235. 二叉搜索树的最近公共祖先

【二叉搜索树的最近公共祖先】【二叉搜索树性质】Leetcode 235. 二叉搜索树的最近公共祖先 【巧】解法1 利用二叉搜索树有序的性质解法2 采用二叉树求最近公共祖先的方法——后序遍历 ---------------&#x1f388;&#x1f388;235. 二叉搜索树的最近公共祖先 题目链接&#x…

huggingface上传或发布自己的模型(大语言模型LLM)

创建huggingface账号和token 在https://huggingface.co/join注册huggingface账号&#xff0c;登录账号后&#xff0c;在https://huggingface.co/settings/tokens创建token&#xff0c;注意需要将token的类型设置为WRITE。 安装必要软件包和初始化环境 安装git lfs curl -s …

Springboot+vue的制造装备物联及生产管理ERP系统(有报告)。Javaee项目,springboot vue前后端分离项目。

演示视频&#xff1a; Springbootvue的制造装备物联及生产管理ERP系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot vue前后端分离项 项目介绍&#xff1a; 本文设计了一个基于Springbootvue的制造装备物联及生产管理ERP系统&#xff0c;采用M&#xff…

WebSocket协议及其在实时通信中的重要性

本文深入介绍了WebSocket协议及其在实时通信中的重要性。从HTTP的限制到WebSocket的优势&#xff0c;再到连接建立和实际应用&#xff0c;全面阐述了WebSocket的工作原理及其在实际业务中的应用场景。 一、引言 在生产中&#xff0c;有时需要服务端向客户端发送消息&#xff0…

三元组的最小距离

题目链接&#xff1a; 三元组最小距离 定义三元组 $(a, b, c)$&#xff08;$a,b,c$ 均为整数&#xff09;的距离 $D|a-b||b-c||c-a|$。 给定 $3$ 个非空整数集合 $S_1, S_2, S_3$&#xff0c;按升序分别存储在 $3$ 个数组中。 请设计一个尽可能高效的算法&#xff0c;计算并…

AI学习集合-前瞻

AI学习前瞻 工作岗位 算法工程师机器学习工程师图像算法工程师ai工程师NLP高级算法工程师 学习路线 应用场景 计算机视觉技术应用场景 自然语言应用 AI流程 AI拟人流程 机器人历史数据经验模型规律依据模型预测未来依据规律做出判断 AI基本流程 术语所用到的技术手段数据数…