在Windows下使用原生的Bash
与Cygwin,Msys2不同,这套方案是完全基于Win32的,而不是经过任何兼容层的Linux环境。
1. 安装busybox-w32
busybox-w32是在win32下编译的原生busybox套件,它包含了大部分常用的命令和一个ash shell。
在 busybox-w32 (frippery.org) 下载二进制包,重命名为busybox.exe
,然后创建以下的自动配置批处理文件:
1 | @echo off |
将busybox.exe
和批处理文件放在同一个目录下,然后运行脚本进行安装即可。
建议在安装之后将Busybox目录加入Defender白名单,并在gpedit.msc中找到计算机配置-管理模板-Windows组件-应用程序兼容性,点击右边的“关闭应用程序兼容性助理”,启用。这有助于提高性能。
你也可以执行busybox --install [-s] C:\Busybox|-u
进行安装,这种安装方式默认使用硬链接,更节省存储空间,你还可以使用-s选项以使用软链接。如果在后面使用-u参数而不是路径的话,会在%USERPROFILE%
目录下进行安装,不建议这么做。
这种方式安装之后想要卸载时,使用busybox --uninstall -n C:\Busybox
列出将会卸载的链接,使用busybox --uninstall C:\Busybox
确定卸载。
注:新版本的Busybox在编译时启用了Unix通配符支持,如果有特殊需求,请下载2020-5-30之前的no-glob版本。
2. 安装Coreutils
Coreutils是GNU的命令行核心工具组,现在有一个用Rust重写的跨平台版本,发行于 uutils/coreutils。
下载二进制包,重命名为coreutils.exe
,然后创建以下的自动配置Shell脚本:
1 | #!/bin/sh |
将coreutils.exe
和脚本放在同一个目录下,然后通过bash
解释运行脚本进行安装,安装完成后执行wmic ENVIRONMENT where "name='path' and username='<system>'" set VariableValue="C:\Coreutils;%path%"
命令即可。
建议在安装之后将Coreutils目录加入Defender白名单。
3. 安装Clink
Clink是对Win CMD的扩展,实现自动补全等readline功能。
原版的Clink只更新到了0.4.9,链接为 Clink (mridgers)
新作者接手后的版本在 Clink (chrisant996)
下载setup版本,安装后会自动配置,数据文件保存于
1 | C:\Documents and Settings\<username>\Local Settings\Application Data # (XP) |
若下载portable版本,则需要在手动配置环境变量后运行clink autorun install [-a] # -a表示为所有用户安装,需要管理员权限
即可自动完成配置。
输入clink autorun show
以确认安装情况。
相应的,卸载即为clink autorun uninstall [-a] # -a表示为所有用户卸载,需要管理员权限
要进行自定义配置,修改%userprofile%\clink_inputrc
或%userprofile%\.inputrc
或(便携版)当前目录下的default_inputrc
即可。例如Vi键位配置
1 | set keymap vi |
如果想在运行Clink之前加载其他的配置文件,执行clink autorun set "配置文件路径"
,然后重新install。
如果安装了Python的话,还可以安装xonshpip install xonsh[full]
4. 配置sudo
Gsudo是一个在Windows下实现sudo的项目gsudo: A Sudo for Windows
下载二进制包后将文件加入环境变量即可。-s
以SYSTEM身份(最高权限)启动
也可以用scoop,choco等工具直接安装。
5. 安装vim
Busybox内置的只有vi,Win32版本的vim在 k-takata/vim-win32-installer 或 vim/vim-win32-installer 下载
当然,也可以pip install pyvim
安装pyvim使用
6. 安装nano
vim并不太好用,安装nano只需在 win32-support (nano-editor.org) 或 GNU nano text editor for Windows 下载git版二进制包后配置环境变量即可。
配置文件.nanorc存放于
1 | %ALLUSERSPROFILE% |
micro编辑器也有Win原生版,在 micro: A modern and intuitive terminal-based text editor 和 micro-help-chinese: Micro 编辑器中文版帮助文档
7. 安装git
在 git-for-windows 下载MinGit-busybox版本,然后
- 在环境变量中设置
GITDIR=git目录路径
- PATH变量添加
%GITDIR%\cmd
即可使用busybox版本的最小化git
但是,busybox版本有至少四个问题:
- 缺少稳定性测试
- 不能查看帮助文本
- bash功能不完整,交互式命令不可用
- 可能有乱码(busybox-w32使用GBK编码)
如果无法接受,请使用PortableGit,安装方法相同
8. 不需要shift,右键打开cmd
将以下内容写入reg文件,导入。
1 | Windows Registry Editor Version 5.00 |
9. SSH
PowerShell/Win32-OpenSSH: Win32 port of OpenSSH
下载二进制包或msi包安装,放在C:\Program Files\中。
解压后,配置环境变量。
Powershell开放安全策略set-executionpolicy remotesigned
安装sshd服务.\install-sshd.ps1
开启sshd服务net start sshd
附:其他获得最高权限SYSTEM的方法
- 万能工具Nircmd
下载地址 NirCmd - Windows command line tool
配置环境变量后nircmd.exe elevatecmd runassystem 命令
- 下载RunAsSystem
在 Tools for Windows
下载RunAsSystem后写入环境变量使用即可。 - 下载psexec
在 https://docs.microsoft.com/en-us/sysinternals/downloads/psexec 下载后配置环境变量psexec -sid 命令
- 使用Nsudo M2Team/NSudo: Series of System Administration Tools
- PowerRun PowerRun v1.6 (Run with highest privileges)