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.pswp.cn/news/716494.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/716494.shtml
英文地址,請注明出處:http://en.pswp.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基本流程 術語所用到的技術手段數據數…