Лучший опыт работы с терминалами для подсистемы Windows для Linux(WSL)?
Терминал для Windows Subsystem для Linux (WSL) довольно минимален. Я не очень часто использовал терминал в Windows - я обычно использую Ubuntu или OSX - но я удивлен, что терминал по умолчанию настолько прост.
Можно ли:
Подключите терминальную программу Windows к WSL или
Запустить терминальную программу Ubuntu из WSL как окно X?
12 ответов
Я лично делаю последнее: использую VcXsrv в качестве моего X-сервера в режиме нескольких окон, затем запускаю xfce4-терминал (потому что у gnome-терминала были визуальные проблемы, которые я не пытался научиться исправлять), и внезапно у меня компетентный терминал с поддержкой шрифтов и цветов.
Я обнаружил, что мне нужно добавить их в мой bashrc...
export DISPLAY="localhost:0"
export TERM=xterm-256color
Сделайте исправление из этого reddit для dbus:
sudo sed -i 's$<listen>.*</listen>$<listen>tcp:host=localhost,port=0</listen>$' /etc/dbus-1/session.conf
Я также установил compiz и использую проект cbwin для запуска программ windows из моей оболочки xfce4-терминала.
Я очень доволен этой установкой и использую NeoVim + множество родных плагинов для Linux, хотя моя "для работы" машина должна быть Windows.:)
Также можно запустить SSH-сервер в Bash-on-Linux-on-Windows, а затем подключиться к нему, скажем, из MinTTY, как из Cygwin.
PS: чтобы сделать запуск xfce4-терминала безболезненным и без дополнительного окна cmd bash, я написал программу, которая ничего не делает, кроме запуска процесса bash с аргументами для запуска терминала xfce4 без окна консоли. Я сделал это в C# - в основном использовать аргументы "UseShellExecute" false и "CreateNoWindow" true. Затем я прикрепил это к моей панели задач, и это почти не кажется.
РЕДАКТИРОВАТЬ: ответ с VBScript блестящий. Вот тот же сценарий, но версия JScript...
WScript.CreateObject("WScript.Shell").run('bash.exe -l -c "DISPLAY=:0.0 xfce4-terminal"', 0, false);
Потребовалось некоторое время, чтобы выяснить все подразумеваемые шаги в других ответах, поэтому вот пошаговое резюме:
- В Windows установите VcXsrv или XMing.
- В Bash для Windows установите терминал:
sudo apt-get install xfce4-terminal
, - добавлять
export DISPLAY=:0
на ваш.bashrc
, (Добавление его в.profile
или же.bash_profile
не работает для меня). Это позволит вам начатьxfce4-terminal
правильно из bash, но ортогонально команде ниже. Запустите следующее в ярлыке или в приглашении "Выполнить" (как предложено в комментариях @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; Я должен был установить более новую версию, как предложено в этом посте.
Сегодня вам предлагается использовать "терминал Windows", который открыт от Microsoft.
Официальную сборку можно получить в Windows Store в середине июня этого года.
Но вы также можете испытать это, используя приведенную ниже предварительную версию. https://github.com/yanglr/WindowsDevTools/blob/master/awosomeTerminal/WindowsTerminal_SelfSigned_x86_x64_arm64.7z
После установки, результаты работы ниже:
Я создал (и использую) терминал с открытым исходным кодом для подсистемы Windows для Linux (WSL) под названием wsl-терминал, он основан на mintty
а также wslbridge
,
https://raw.githubusercontent.com/wiki/goreliu/wsl-terminal/images/wsl-terminal-3.png
При новой установке Ubuntu я только что установил XMing (в Windows), затем (в Ubuntu) xfce4-терминал и после того, как export DISPLAY=:0
, это сработало.
Чтобы избавиться от консоли Windows по умолчанию, этот сценарий VBS выполняет свою работу:
WScript.CreateObject("WScript.Shell").run "bash -l -c xfce4-terminal", 0, True
(С установленным $DISPLAY в вашем .profile
.)
редактировать: и чтобы сделать сценарий выводимым, создайте ярлык с целью wscript "C:\path\to\thescript.vbs"
,
В Windows:
- Нажмите на верхний левый угол окна bash.
- В открывшемся меню выберите "Свойства"
- Установите параметры, которые вы хотите, как шрифт и т. Д.(Есть даже моно шрифт Ubuntu!)
- После настройки свойств они будут применены к текущему окну. Чтобы установить их по умолчанию, щелкните в верхнем левом углу окна и выберите по умолчанию.
- Вы можете нажать Alt+Enter для переключения в полноэкранный режим.
Надеюсь, это поможет.
ConEmu прекрасно работает! Просто установите его и запустите новую консоль {bash}. я добавил cd ~
к моему .bashrc
чтобы он по умолчанию начинался в моем домашнем каталоге.
Хорошее объяснение: https://conemu.github.io/en/BashOnWindows.html
Extraterm - это больше, чем просто эмулятор терминала. Он предоставляет набор инструментов для работы с терминалом и приложениями командной строки.
- Характеристики
- Поддерживает Linux и macOS, в Windows WSL, CMD, PowerShell и Cygwin
- совместимый с xterm
- Несколько вкладок и панелей, разделенных и выложенных плиткой, как вам нравится
- Показать изображения в терминале
- Поддержка юникода
- Цвет смайликов
- Клавиатура "Командная палитра"
- Настраиваемые привязки клавиш
- Выбор на основе клавиатуры
- Интеграция с оболочкой; может изолировать и выводить команду frame. (bash, zsh и fish поддерживаются)
- Простая загрузка и загрузка с использованием интеграции оболочки
- Вывод команды можно редактировать на месте. Редактирование нескольких курсоров
- Предыдущий вывод команды можно использовать как ввод для новых команд
- Поддерживает темы iTerm2 и TextMate
- Увеличение текста
Поскольку последние обновления для Windows 10 (и WSL), похоже, все работают с использованием "родной" консоли Windows Bash. (И я не говорю об (в) известном обновлении Windows 1809). Это работает даже на версии Enterprise, по крайней мере, для версии 1803 (17134.345).
См. Статью на https://www.hanselman.com/blog/SettingUpAShinyDevelopmentEnvironmentWithinLinuxOnWindows10.aspx
Небольшое предостережение - чтобы действительно использовать консоль bash в Windows, нужно запустить tmux - и все будет работать, как показано Скоттом в его блоге.
- Он основан на электроне, что позволяет легко развивать и расширять с помощью JavaScript.
- Он не использует консоль Windows по умолчанию в любом случае.
Это позволяет вам выбрать вашу оболочку bash, cmd, PowerShell.
the shell to run when spawning a new session (i.e. /usr/local/bin/fish) if left empty, your system's login shell will be used by default Windows - Make sure to use a full path if the binary name doesn't work - Remove `--login` in shellArgs Bash on Windows - Example: `C:\\Windows\\System32\\bash.exe` PowerShell on Windows - Example: `C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\powershell.exe` shell: 'C:\\Windows\\System32\\bash.exe',enter code here
Очень хорошие темы и плагины
plugins: [
//"hyper-dracula"
//"hyper-solarized-dark"
"hyper-material-theme"
],
Используя это руководство, я смог получить мой WLS, Bash работает очень хорошо.
Расширение ответов 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).
Сценарий должен предшествовать Call
при использовании скобок в команде запуска смотрите здесь. Также галочки должны были быть наоборот. Более того, дополнительный аргумент для xfce4-терминала запускает терминал в домашней папке пользователя. Извините, если на самом деле работал код JScript, я понятия не имею об этих языках сценариев.
Сохранение в виде файла vbscript.vbs и выполнение из командной строки cmd
wscript vbscript.vbs
затем открывает окно терминала xfce4 (если запущен XMing или похожий) через 2 секунды. Превращение этого в ярлык, как на самом деле предлагают работы n.caillou, и нажатие на ярлык автоматически вызовет новое окно терминала xfce с некоторой задержкой.
Терминал для более современной эпохи https://eugeny.github.io/terminus/
Terminus - это терминал, в значительной степени вдохновленный Hyper. Тем не менее, он предназначен для людей, которые должны добиться своей цели.
- Работает на Windows, MacOS и Linux
- Тематические и цветовые решения
- Полностью настраиваемые ярлыки
- Полная поддержка Юникода, включая символы двойной ширины
- Не душит быстродействующие выходы
- Правильный опыт работы в Windows в оболочке, включая завершение табуляции (через Clink)
- Поддержка PowerShell (+Core), WSL (Bash для Windows), Git-Bash, Cygwin, Cmder и CMD
- Помнит ваши вкладки
- Интегрированный SSH клиент и менеджер соединений