windows下常用的類似unix終端軟件有git fow windows(內置簡版msys2)、mingw、msys2、cgwin。
- git fow windows: 不想折騰的同學,直接使用該軟件就夠用了。缺點是自帶的預編譯的軟件包比較少。
- mingw: 打包了gcc等編譯器,默認沒有git,自帶的預編譯的軟件包比較少。
- cygwin: 最全的類Unix環境支持。缺點:比較龐大。
- msys2:自帶大量預編譯的軟件包,提供pacman便捷安裝git、zsh、gcc等軟件。推薦使用該軟件。
msys2產生的背景:由於 MinGW 萬年不更新,MSYS 更是,Cygwin的許多新功能 MSYS 沒有同步過來,於是 Alex 等人建立了新一代的 MSYS 項目。仍然是 fork 了 Cygwin(較新版),但有個更優秀的包管理器 pacman,有活躍的開發者跟用戶組,有大量預編譯的軟件包(雖然肯定沒有Cygwin多)。
注意:同時安裝git fow windows和msys2,y運行命令可能出現"using incompatible versions of the cygwin DLL"問題。
windows 10新增的wsl2也可以作為開發環境備選。但是由於IO性能差,git操作非常慢,所以用的不多,而 msys2帶有的 Bash 感覺是個不錯的選擇。
本文基於 msys2-bash + zsh + oh-my-zsh 搭建類UNIX開發環境,效果:
下面是詳細內容。
安裝msys2
github: https://github.com/msys2/msys2-installer
鏡像地址:https://mirrors.tuna.tsinghua.edu.cn/msys2/distrib/x86_64/
本文安裝的版本是:https://github.com/msys2/msys2-installer/releases/download/2021-07-25/msys2-x86_64-20210725.exe
1、下載下來安裝到C盤,完整路徑:C:\msys64
。沒有特殊要求,請不要修改路徑,后續都是參照這個路徑增加功能。
2、配置環境變量。PATH里增加:C:\msys64\usr\bin
。
配置pacman鏡像
pacman是arclinux中的軟件管理工具,也是widows上msys2默認的軟件管理工具。pacman可以直接從網絡上的軟件倉庫下載安裝及刪除軟件,自動處理依賴關系,類似ubuntu中的apt-get。
鏡像地址:https://mirrors.tuna.tsinghua.edu.cn/help/msys2/
進入C:\msys64\etc\pacman.d
目錄,分別進行如下操作:
編輯 /etc/pacman.d/mirrorlist.mingw32
,在文件開頭添加:
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/i686
編輯 /etc/pacman.d/mirrorlist.mingw64
,在文件開頭添加:
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64
編輯 /etc/pacman.d/mirrorlist.ucrt64
,在文件開頭添加:
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/ucrt64
編輯 /etc/pacman.d/mirrorlist.clang64
,在文件開頭添加:
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/clang64
編輯 /etc/pacman.d/mirrorlist.msys
,在文件開頭添加:
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/msys/$arch
點擊安裝路徑的mingw64.exe
啟動,然后執行 pacman -Sy
刷新軟件包數據即可。
配置好pacman 鏡像源,就可以安裝常用軟件了。
安裝常用軟件
git
pacman -S git
命令行里輸入git version 可以查看版本:
PS C:\Users\lenovo\Desktop> git version
git version 2.32.0
提示命令找不到可以重啟試一下。
Oh My Zsh
官方網站: http://ohmyz.sh
GitHub: https://github.com/ohmyzsh/ohmyzsh
pacman -S zsh
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# 或者
# sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
所以這時的zsh
基本已經配置完成,你需要一行命令就可以切換到 zsh
模式,終端下輸入zsh
切換,輸入bash
切回去。
ohmyzsh插件,路徑:
~/.oh-my-zsh/plugins/
~/.oh-my-zsh/custom/plugins/
新增插件示例:
git clone git://github.com/zsh-users/zsh-syntax-highlighting $ZSH_CUSTOM/plugins/zsh-syntax-highlighting
git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
啟用插件:修改~/.zshrc
文件,示例:
plugins=(git zsh-autosuggestions zsh-syntax-highlighting)
默認是plugins=(git)
執行下 source ~/.zshrc
激活插件。
配置右鍵打開終端
效果:
新建mingw64.reg后綴文件:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\Background\shell\mingw64]
@="MinGW64 Here"
"icon"="C:\\msys64\\mingw64.exe"
[HKEY_CLASSES_ROOT\Directory\Background\shell\mingw64\command]
@="C:\\msys64\\msys2_shell.cmd -mingw64 -here"
雙擊導入即可。
配置 Windows Terminal 使用 msys2 bash
核心參數:
名稱:msys2
命令行:C:\msys64\usr\bin\bash.exe
icon: C:\msys64\msys2.ico
{
"guid":"{1c4de342-38b7-51cf-b940-2309a097f589}",
"hidden":false,
"name":"Bash",
"commandline":"C:\\msys64\\usr\\bin\\bash.exe",
"historySize":9001,
"closeOnExit":true,
"useAcrylic":true,
"acrylicOpacity":0.85,
"icon":"C:\\msys64\\msys2.ico",
"startingDirectory":null
}
配置 zsh 為 bash 默認終端
編輯 ~/.bashrc
,加入下面的幾行。
# Launch Zsh
if [ -t 1 ]; then
exec zsh
fi
配置idea
配置終端使用msys2 bash
點擊 File -> Settings -> Tools -> Terminal ,配置shell path:
C:\msys64\usr\bin\bash.exe
或者
C:\msys64\usr\bin\zsh.exe
這樣就可以執行bash命令了。例如:
$ cd /d/Download/
$ ls | wc -l
81
$ which mvn
/e/opt/apache-maven-3.6.3/bin/mvn
$ cd ~
附錄1: pacman常用命令
pacman命令較多,作為新手,將個人最常用的命令總結如下:
-
pacman -Sy
: 從服務器下載新的軟件包數據庫(實際上就是下載遠程倉庫最新軟件列表到本地)。 -
pacman -Syu
: 升級系統及所有已經安裝的軟件。 -
pacman -S 軟件名
: 安裝軟件。也可以同時安裝多個包,只需以空格分隔包名即可。 -
pacman -Rs 軟件名
: 刪除軟件,同時刪除本機上只有該軟件依賴的軟件。 -
pacman -Ru 軟件名
: 刪除軟件,同時刪除不再被任何軟件所需要的依賴。 -
pacman -Ssq 關鍵字
: 在倉庫中搜索含關鍵字的軟件包,並用簡潔方式顯示。 -
pacman -Qs 關鍵字
: 搜索已安裝的軟件包。 -
pacman -Qi 軟件名
: 查看某個軟件包信息,顯示軟件簡介,構架,依賴,大小等詳細信息。 -
pacman -Sg
: 列出軟件倉庫上所有的軟件包組。 -
pacman -Sg 軟件包組
: 查看某軟件包組所包含的所有軟件包。 -
pacman -Sc
:清理未安裝的包文件,包文件位於 /var/cache/pacman/pkg/ 目錄。 -
pacman -Scc
:清理所有的緩存文件
附錄2:解決vscode不識別git問題
使用msys2環境安裝git,vscode識別不出來git,在源代碼管理菜單中顯示當前打開的文件夾沒有git存儲庫,打開的文件夾實際存在.git文件夾。
解決辦法:
-
編寫 git-wrap.bat:
@echo off setlocal rem If you don't add path for msys2 into %PATH%, enable following line. rem set PATH=c:\msys64\usr\bin;%PATH% if "%1" equ "rev-parse" goto rev_parse git %* goto :eof :rev_parse for /f %%1 in ('git %*') do cygpath -w %%1
將 git-wrap.bat放到某個文件夾,例如位於:
c:\msys64\git-wrap.bat
。 -
在vscode設置
git.path
:
點擊:File
->Preferences
->User Settings
, 搜索git.path
將git-wrap.bat
寫到配置文件里:"git.path": "C:\\msys64\\git-wrap.bat",
-
重啟vscode
Have fun!
附錄3:Windows Terminal右鍵
編寫wt.reg:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Windows Terminal Here"
[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="C:\\Users\\你的用戶名\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe"
注意替換"你的用戶名"。
參考
1、MSYS2
https://www.msys2.org/
2、Install Terminal + git-bash + zsh + oh-my-zsh on Windows 10 | MiaoTony's小窩
https://miaotony.xyz/2020/12/13/Server_Terminal_gitbash_zsh/
3、msys2軟件包管理工具pacman常用命令_hustlei的專欄
https://blog.csdn.net/hustlei/article/details/86687621
4、玩轉 Ubuntu 20 桌面版 - 飛鴻影 - 博客園
https://www.cnblogs.com/52fhy/p/9571463.html