Windows子系统Linux(WSL)的更好的终端体验?
Windows子系统Linux(WSL)的终端相当小。 我没有在Windows上使用终端 – 我通常使用Ubuntu或OSX – 但我很惊讶默认终端是如此裸露。
有可能:
-
将Windows终端程序连接到WSL或
-
从WSL启动Ubuntu终端程序作为X窗口?
我个人做后者:在多种窗口模式下使用VcXsrv作为我的X服务器,然后启动xfce4-terminal(因为gnome-terminal有视觉问题我不想学习如何修复),突然间我具有字体和颜色支持的称职终端。
我发现我需要将这些添加到我的bashrc中…
export DISPLAY="localhost:0" export TERM=xterm-256color
从这个reddit修复 dbus:
sudo sed -i 's$.* $tcp:host=localhost,port=0 $' /etc/dbus-1/session.conf
我还安装了compiz,我使用cbwin项目从我的xfce4-terminal shell运行windows程序。
我很满意这个设置并使用NeoVim +许多原生linux插件,即使我的“for-work”机器必须是Windows。 🙂
也可以在Bash-on-Linux-on-Windows上启动SSH服务器,然后连接到它,例如来自Cytwin的MinTTY。
PS:为了使xfce4-terminal无法启动并且没有额外的bash cmd窗口,我编写了一个程序,除了使用参数启动bash进程以启动xfce4-terminal而没有控制台窗口之外什么都不做。 我在C#中做到了这一点 – 基本上使用参数“UseShellExecute”false和“CreateNoWindow”为真。 然后我把它固定在我的任务栏上,这几乎是无脑的。
编辑:VBScript的答案很棒。 这是相同的脚本,但是JScript版本……
WScript.CreateObject("WScript.Shell").run('bash.exe -l -c "DISPLAY=:0.0 xfce4-terminal"', 0, false);
花了一点时间才弄清楚其他答案中的所有隐含步骤,所以这里是一步一步的总结:
- 在Windows上,安装VcXsrv或XMing 。
- 在Bash for Windows中,安装终端:
sudo apt-get install xfce4-terminal
。 - 将
export DISPLAY=:0
添加到.bashrc
。 (将它添加到.profile
或.bash_profile
对我来说不起作用 )。 这将允许您从bash正确启动xfce4-terminal
,但与下面的命令正交。 -
在快捷方式或运行提示符中运行以下内容(如注释中建议的@OhJeez):
powershell -windowstyle hidden -Command "iex \"bash ~ -c 'DISPLAY=:0 xfce4-terminal'\" "
其他说明:
-
~
在您的主目录中启动bash
,您可以删除它以在.vbs
文件所在的任何目录中启动。 例如,将它放在C:\Users\foo
很方便。 - 请注意,必须运行XMing才能使脚本正常工作; 要使用Windows自动启动它,您可以按照本文中的说明进行操作。
- Emacs 24(包含在Ubuntu 14.04中)似乎不适用于XMing; 我必须按照这篇文章的建议安装更新的版本 。
在一个新的Ubuntu安装上,我刚刚安装了XMing(在Windows中)然后(在Ubuntu中)xfce4-terminal,并且在我export DISPLAY=:0
,它工作正常。
为了摆脱Windows的默认控制台,这个VBS脚本完成了这项工作:
WScript.CreateObject("WScript.Shell").run "bash -l -c xfce4-terminal", 0, True
(在.profile
设置$ DISPLAY。)
编辑:要使脚本可以固定,请使用目标wscript "C:\path\to\thescript.vbs"
thescript.vbs”创建一个快捷方式。
我为Windows子系统Linux(WSL)创建(并使用)一个名为wsl-terminal的开源终端 ,它基于mintty
和wslbridge
。
在Windows上:
- 单击bash窗口的左上角。
- 在打开的菜单中选择“属性”
- 设置你想要的选项,如字体等(甚至有一个Ubuntu单声道字体!)
- 设置属性后,它们将应用于当前窗口。 要将它们设置为默认值,请单击窗口的左上角,然后单击默认值。
- 您可以按Alt + Enter切换全屏模式。
我希望这有帮助。
ConEmu很棒! 只需安装它并启动一个新的{bash}控制台。 我将cd ~
添加到我的.bashrc
以使其默认在我的主目录中启动。
好的解释: https : //conemu.github.io/en/BashOnWindows.html
扩展了aikeru和n.caillou的答案,因为他们的VBScript / JScript解决方案都不能立即为我工作。
Call WScript.CreateObject("WScript.Shell").Run("bash.exe -l -c 'DISPLAY=:0.0 xfce4-terminal --working-directory $HOME'", 0, True).
在run命令中使用括号时,需要通过Call
预先添加脚本,请参见此处 。 另外,蜱需要反过来。 此外, xfce4-terminal的附加参数将启动用户主文件夹中的终端。 很抱歉,如果这实际上是JScript代码,我不知道这些脚本语言。
将其保存为文件vbscript.vbs并从cmd提示符执行
wscript vbscript.vbs
然后在延迟2秒后打开一个xfce4终端窗口(给定XMing或类似的正在运行)。 将此转换为n.caillou的作品所建议的快捷方式并单击快捷方式将自动生成一个新的xfce终端窗口,但有一些延迟。
自从Windows 10(和WSL)的最新更新以来,一切似乎都在使用“本机”Windows bash控制台。 (我不是在谈论着名的1809 Windows更新)。 这甚至在企业版上至少可以用于1803 17134.345版本)。
请参阅https://www.hanselman.com/blog/SettingUpAShinyDevelopmentEnvironmentWithinLinuxOnWindows10.aspx上的文章
有一点需要注意 – 要在Windows中真正使用bash控制台,应该启动tmux – 一切都将按照Scott在他的博客中所展示的那样工作。