Le terminal pour le sous-système Windows pour Linux (WSL) est assez minime. Je n'ai pas beaucoup utilisé le terminal sous Windows - j'utilise généralement Ubuntu ou OSX - mais je suis surpris que le terminal par défaut soit si dépourvu.
Est-il possible de:
Connectez un programme de terminal Windows à WSL ou
Lancer le programme de terminal Ubuntu à partir de WSL en tant que fenêtre X?
Personnellement, je fais le dernier: utiliser VcXsrv comme serveur X en mode Windows multiple, puis lancer le terminal xfce4 (parce que gnome-terminal présentait des problèmes visuels que je ne souhaitais pas apprendre à résoudre), et du coup je un terminal compétent avec prise en charge des polices et des couleurs.
J'ai trouvé que je devais les ajouter à mon panier ...
export DISPLAY="localhost:0"
export TERM=xterm-256color
Faites le correction de ce reddit pour dbus:
Sudo sed -i 's$<listen>.*</listen>$<listen>tcp:Host=localhost,port=0</listen>$' /etc/dbus-1/session.conf
J'ai également installé compiz et j'utilise le projet cbwin pour exécuter des programmes Windows à partir de mon shell xfce4-terminal.
Je suis très heureux de cette configuration et utilise NeoVim + de nombreux plug-ins Linux natifs, même si ma machine "for-work" doit être Windows. :)
Il est également possible de démarrer un serveur SSH dans Bash-sur-Linux-sur-Windows, puis de s'y connecter, par exemple à partir de MinTTY comme de Cygwin.
PS: pour rendre le lancement de xfce4-terminal indolore et sans la fenêtre supplémentaire bash cmd, j’ai écrit un programme qui ne fait que démarrer le processus bash avec des arguments pour démarrer xfce4-terminal sans fenêtre de console. J'ai fait cela en C # - en gros, utilisez les arguments "UseShellExecute" false et "CreateNoWindow" true. J'ai ensuite épinglé cela à ma barre des tâches et c'est presque sans faille.
EDIT: La réponse avec VBScript est brillante. Voici ce même script, mais une version JScript ...
WScript.CreateObject("WScript.Shell").run('bash.exe -l -c "DISPLAY=:0.0 xfce4-terminal"', 0, false);
Il a fallu un peu de temps pour comprendre toutes les étapes impliquées dans les autres réponses, alors voici un résumé étape par étape:
Sudo apt-get install xfce4-terminal
.export DISPLAY=:0
à votre .bashrc
. (L'ajouter à .profile
ou .bash_profile
n'a pas fonctionné pour moi ). Cela vous permettra de démarrer xfce4-terminal
correctement à partir de bash, mais est orthogonal à la commande ci-dessous.Exécutez ce qui suit dans un raccourci ou dans l'invite d'exécution (comme suggéré par @OhJeez dans les commentaires):
powershell -windowstyle hidden -Command "iex \"bash ~ -c 'DISPLAY=:0 xfce4-terminal'\" "
Autres notes:
~
démarre bash
dans votre répertoire personnel, vous pouvez le supprimer pour commencer dans le répertoire où se trouve le fichier .vbs
. Il est donc pratique de le mettre dans C:\Users\foo
, par exemple.J'ai créé (et utilisé) un terminal open source pour le sous-système Windows (WSL) appelé wsl-terminal , il est basé sur mintty
et wslbridge
.
Sur une nouvelle installation Ubuntu, je viens d'installer XMing (sous Windows), puis (sous Ubuntu) xfce4-terminal, et après export DISPLAY=:0
, cela a fonctionné.
Pour se débarrasser de la console par défaut de Windows, ce script VBS fait le travail:
WScript.CreateObject("WScript.Shell").run "bash -l -c xfce4-terminal", 0, True
(Avec $ DISPLAY défini dans votre .profile
.)
edit: Et pour rendre le script pinable, créez un raccourci avec target wscript "C:\path\to\thescript.vbs"
.
ConEm fonctionne très bien! Il suffit de l’installer et de démarrer une nouvelle {bash} console. J'ai ajouté cd ~
à mon .bashrc
pour qu'il démarre par défaut dans mon répertoire personnel.
Bonne explication: https://conemu.github.io/en/BashOnWindows.html
Sous Windows:
J'espère que ça aide.
Extraterm est plus qu'un simple émulateur de terminal. Il fournit une boîte à outils pour travailler avec vos applications de terminal et de ligne de commande.
Depuis les dernières mises à jour de Windows 10 (et WSL), tout semble fonctionner avec la console "native" de Windows bash. (Et je ne parle pas de la (célèbre) mise à jour Windows de 1809). Cela fonctionne même sur la version Enterprise au moins pour 1803 17134.345 build).
Voir l'article sur https://www.hanselman.com/blog/SettingUpAShinyDevelopmentEnvironmentWithinLinuxOnWindows10.aspx
Une petite mise en garde - pour utiliser réellement la console bash dans Windows, il faut lancer tmux - et tout fonctionnera comme le montre Scott dans son blog.
Un terminal pour un âge plus moderne https://eugeny.github.io/terminus/
Terminus est un terminal fortement inspiré de Hyper. Il est toutefois conçu pour les personnes qui ont besoin de faire avancer les choses.
Aujourd’hui, il vous est suggéré d’utiliser "terminal Windows" qui est une source ouverte créée par Microsoft.
La version officielle peut être obtenue à partir de Windows Store à la mi-juin de cette année.
Mais vous pouvez également le découvrir en utilisant la version d’aperçu ci-dessous. https://github.com/yanglr/WindowsDevTools/blob/master/awosomeTerminal/WindowsTerminal_SelfSigned_x86_x64_arm64.7z
Après l'installation, les résultats en cours sont ci-dessous:
Il vous permet de choisir votre backend Shell 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"
],
Utilisation de ce guide J'ai pu obtenir mon WLS, bash fonctionnant très bien.
L'extension des réponses de aiker et n.caillo , car aucune de leurs solutions VBScript/JScript n'a immédiatement fonctionné pour moi.
Call WScript.CreateObject("WScript.Shell").Run("bash.exe -l -c 'DISPLAY=:0.0 xfce4-terminal --working-directory $HOME'", 0, True).
Le script doit être préfixé par Call
lors de l’utilisation de parenthèses dans la commande d’exécution, voir ici . De plus, les tiques devaient être à l'inverse. De plus, un argument supplémentaire pour xfce4-terminal démarrera le terminal dans le dossier personnel de l'utilisateur. Désolé si cela fonctionnait réellement avec du code JScript, je n'ai aucune idée de ces langages de script.
Enregistrement de ceci en tant que fichier vbscript.vbs et exécution à partir d'une invite cmd par
wscript vbscript.vbs
ouvre ensuite une fenêtre xfce4-terminal (si XMing ou similaire est en cours d'exécution) après un délai de 2 secondes. Transformer cela en un raccourci comme suggéré par n.caillo fonctionne bien et cliquer sur le raccourci fera apparaître automatiquement une nouvelle fenêtre de terminal xfce avec un certain retard.