当前位置: 首页 > Linux

使用wsl-terminal更好的体验Win10WSL终端环境

时间:2023-04-06 11:09:32 Linux

WSL从一开始就充满了不完整的bug,现在除了几个顽固的bug,基本够正常使用了。但是自带终端模拟器的体验还是很差的,在可预见的未来也不会有太大改善。去年8月开始开发wsl-terminal(中文页面),搁置了很久,因为想不出有什么功能可以添加。最近心血来潮,增加了很多实用的功能,使用体验也会提升不少。希望正在使用的朋友多提意见和建议。如果你之前没有尝试过,你也可以体验一下。软件为1.6MB压缩包,解压后即可使用,不会对系统写入任何东西(如果要添加到开始菜单或右键菜单,可以使用工具中的工具).引入基于mintty和wslbridge的适用于Linux的Windows子系统(WSL)的终端仿真器。截图查看更多截图。从这里下载最新版本并解压,或者在cmd中运行bash-c"wgethttps://github.com/goreliu/wsl-terminal/releases/download/v0.8.1/wsl-terminal-0.8。exe或WSL.1.7z&&7zxwsl-terminal-0.8.1.7z”。运行open-wsl.exe,在当前目录下打开一个WSL终端模拟器(wsl-terminal由于某些原因需要放在本地的NTFS分区)。运行tools/1-add-open-wsl-terminal-here-menu.js(帮助)将Openwsl-terminalHere上下文菜单添加到Explorer(运行tools/1-remove-open-wsl-terminal-here-menu.js可以删除它)。如果你使用TotalCommander,可以参考TotalCommander中使用wsl-terminal。run-wsl-file.exe可以在wsl-terminal中运行任何.sh(以及任何其他可执行文件,例如.py.pl文件)脚本文件,您可以将其设置为以文件打开方式打开文件。vim.exe可以在WSL中使用vim打开任意文件(在wsl-terminal中),支持在打开模式下配置。如果使用其他编辑器,可以将vim.exe重命名为emacs.exenvim.exenano.exe等,会调用对应的编辑器打开。快捷键功能Alt+Enter全屏Alt+F2新窗口Alt+F3搜索文本Ctrl+[Shift]+Tab切换窗口Ctrl+=+-0缩放Ctrl+单击打开文件,光标处的目录名或URL将wsl-终端绑定了一个快捷键。命令行参数open-wsl用法:open-wsl[options]...-a:激活正在运行的wsl-terminal窗口。如果use_tmux=1,将附加到正在运行的tmux会话。-l:运行登录shell(如果use_tmux=1则不起作用)。-c命令:运行命令(例如-c"echoab;echoc;cat")。-e命令:运行以下所有命令(例如-eechoab;echoc;cat)。-Cdir:转到dir目录,WSL目录(例如/home/username)。-Wdir:转到dir目录,Windows目录(例如c:\Users\username)。-ddistro:切换分布。-b"options":将附加选项传递给wslbridge。-B“options”:将附加选项传递给mintty。-h:显示帮助信息。-B和-b后面可以加的选项,请参考mintty参数和wslbridge参数。cmdtool(在WSL中运行)用法:cmdtool[options]...wcmd:使用cmd.exe/c运行Windows程序。wstart:使用cmd.exe/cstart运行Windows程序。update:检查更新,如果有更新,可以直接升级。killall:杀死所有WSL进程。安装cbwin:安装cbwin。安装破折号:在Cygwin中安装破折号(用于调试)。installbusybox:在Cygwin中安装busybox(用于调试)。tools目录下的工具:文件名函数1-add-open-wsl-terminal-here-menu.js在资源管理器中添加Openwsl-terminalHere右键菜单。1-remove-open-wsl-terminal-here-menu.js删除Openwsl-terminalHere上下文菜单。2-add-wsl-terminal-dir-to-path.js将wsl-terminal目录添加到Path环境变量中。2-remove-wsl-terminal-dir-from-path.js从Path环境变量中移除wsl-terminal目录。3-write-distro-guids-to-config-file.js将所有发行版的guid写入配置文件etc/wsl-terminal.conf。4-create-start-menu-shortcut.js创建一个开始菜单快捷方式指向open-wsl-C~。4-create-start-menu-shortcut-login-shell.js创建一个开始菜单快捷方式指向open-wsl-l。4-remove-all-start-menu-shortcuts.js删除所有wsl-terminal开始菜单快捷方式。双击.js文件运行它。如果.js文件关联了编辑器,可以修改打开方式为Microsoft(R)WindowsBasedScriptHost,或者在tools目录下运行一个cmd.exe,然后使用wscriptxxx.js运行对应文件.配置文件etc/wsl-terminal.conf是wsl-terminal的配置文件:[config]title="windowtitle"shell=bashuse_tmux=0;icon=;distro_guid=etc/themes/目录是主题文件,使用主题。etc/minttyrc是mintty的配置文件,mintty帮助。升级在wsl-terminal中打开open-wsl.exe,然后运行./cmdtoolupdate查看wsl-terminal最新版本并升级。如果下载速度太慢,可以使用其他方法先从release页面下载wsl-terminal-v{version}.7z文件,然后放到wsl-terminal目录下,然后运行./cmdtoolupdate.该工具依赖于wget和7z命令(安装方法。Ubuntu:aptinstallwgetp7zip-full,Archlinux:pacman-Swgetp7zip)。升级过程不会覆盖配置文件,etc/wsl-terminal.conf和etc/minttyrc会被放到etc/wsl-terminal.conf.pacnew和etc/minttyrc.pacnew中。升级后,bin目录下会残留一些.bak文件,因为这些文件还在运行,无法删除。在下次升级时,所有以前的.bak文件将被删除,或者您可以等待这些进程退出,然后再删除这些文件。使用tmux在WSL中安装tmux。在etc/wsl-terminal.conf中设置use_tmux=1。如果版本号低于0.8.1,还需要加上attach_tmux_locally=1。将以下代码添加到~/.bashrc(如果配置了shell=bash)或~/.zshrc(如果配置了shell=zsh):[[-z"$TMUX"&&-n"$USE_TMUX"]]&&{[[-n"$ATTACH_ONLY"]]&&{tmuxa2>/dev/null||{cd&&exectmux}exit}tmuxnew-window-c"$PWD"2>/dev/null&&exectmuxaexectmux}并且open-wsl将使用tmux。要切换发行版,请使用open-wsl-ddistro(在cmd.exe中运行)来切换发行版:#listalldistros>wslconfig/lLegacy(默认)Ubuntu#使用Ubuntu(将运行wslconfig/sUbuntu,然后打开wsl-terminal)>open-wsl-dUbuntu#Ubuntu已经是默认发行版>wslconfig/lUbuntu(default)Legacy如果不想修改默认发行版,可以在etc/wsl-terminal.conf中设置distro_guid:运行tools/3-write-distro-guids-to-config-file.js(帮助),然后会弹出一个窗口,显示结果:resulthasbeenwrittento..\etc\wsl-terminal.conf:;旧版;distro_guid={12345678-1234-5678-0123-456789abcdef};Ubuntu;distro_guid={47a89313-4300-4678-96ae-e53c41a79e03}删除;在distro_guid之前使用发行版。你可以删除;在distro_guid前面使用相应的发行版。如果你想通过命令行将distro_guid传递给open-wsl:#Passdistroguidtowslbridge>open-wsl-b"--distro-guid{47a89313-4300-4678-96ae-e53c41a79e03}"链接FAQ反馈建议发布页面帮助编译的文档确保您已经在WSL中安装了这些wgettarxzgzipp7zip(安装方法。Ubuntu:aptinstallwgettarxz-utilsgzipp7zip-full,Archlinux:pacman-Swgettarxzgzipp7zip)。运行build.bat。许可MIT付费解决Windows、Linux、Shell、C、C++、AHK、Python、JavaScript、Lua等领域相关问题,定价灵活,欢迎咨询,微信ly50247。