Linux 용 Windows 서브 시스템 (WSL)에 대한 더 나은 터미널 환경?


29

Linux 용 Windows 서브 시스템 (WSL)의 터미널은 매우 작습니다. Windows에서 터미널을 많이 사용하지 않았습니다. 일반적으로 Ubuntu 또는 OSX를 사용하지만 기본 터미널이 너무 노출되어 있다는 사실에 놀랐습니다.

다음 중 하나가 가능합니까?

  1. Windows 터미널 프로그램을 WSL 또는

  2. WSL에서 Ubuntu 터미널 프로그램을 X 창으로 시작 하시겠습니까?

답변:


26

나는 개인적으로 후자를한다 : 다중 윈도우 모드에서 VcXsrv를 X 서버로 사용하고 xfce4 터미널을 시작하십시오 (그놈 터미널에는 시각적 인 문제가있어서 수정하는 방법을 배우려고하지 않았기 때문에). 폰트와 컬러를 지원하는 유능한 터미널.

나는 이것을 bashrc에 추가해야한다는 것을 알았다 ...

export DISPLAY="localhost:0"
export TERM=xterm-256color

할 일 이 레딧에서 수정 DBUS를 들어 :

sudo sed -i 's$<listen>.*</listen>$<listen>tcp:host=localhost,port=0</listen>$' /etc/dbus-1/session.conf

또한 compiz를 설치하고 cbwin 프로젝트를 사용하여 xfce4 터미널 쉘에서 Windows 프로그램을 실행합니다.

이 "작업"시스템이 Windows 여야하더라도이 설정에 매우 만족하고 NeoVim + 많은 기본 Linux 플러그인을 사용합니다. :)

Bash-on-Linux-on-Windows에서 SSH 서버를 시작한 다음 Cygwin과 같은 MinTTY에서 연결하는 것도 가능합니다.

추신 : xfce4 터미널을 고통스럽지 않고 추가 bash cmd 창없이 시작하기 위해 콘솔 창없이 xfce4 터미널을 시작하는 인수로 bash 프로세스를 시작하는 것 외에는 아무것도하지 않는 프로그램을 작성했습니다. C #에서이 작업을 수행했습니다. 기본적으로 인수 "UseShellExecute"false 및 "CreateNoWindow"true를 사용합니다. 그런 다음 작업 표시 줄에 고정했는데 거의 보이지 않습니다.

편집 : VBScript의 대답은 훌륭합니다. 동일한 스크립트이지만 JScript 버전은 다음과 같습니다.

WScript.CreateObject("WScript.Shell").run('bash.exe -l -c "DISPLAY=:0.0 xfce4-terminal"', 0, false);

1
포괄적이고 선택하여 stackoverflow.com/a/39188790 ; MobaXterm을> 9.0으로 업데이트하면 WSL에 알맞은 터미널이 생겼습니다.
David LeBauer

사람이 궁금하면 여기에 레딧 게시물에 대한 링크의 어떤에서 the "fix from reddit" for dbus해제되었다.
tel

@tel 감사합니다! 나는 실제로 그것이 어디에서 왔는지 알지 못하고 링크를 추가했습니다 ...
aikeru

"수정할 필요가없는 시각적 문제"인 경우 디렉토리 또는 파일 이름 프롬프트의 일부를 볼 수없는 이유는 진한 파란색이기 때문입니다. 보라색 그놈 터미널 배경에는 보이지 않습니다. 트릭은 진한 파란색을 청록색으로 다시 매핑 한 다음 정상적으로 작동합니다.
WinEunuuchs2Unix

22

다른 답변에서 모든 암시 적 단계를 파악하는 데 약간의 시간이 소요되었으므로 단계별 요약은 다음과 같습니다.

  1. Windows에서는 VcXsrv 또는 XMing을 설치 하십시오 .
  2. Bash for Windows에서 터미널을 설치하십시오 sudo apt-get install xfce4-terminal.
  3. 에 추가 export DISPLAY=:0하십시오 .bashrc. (추가 .profile또는 .bash_profile 작동하지 않음 ). 이렇게하면 xfce4-terminalbash에서 올바르게 시작할 수 있지만 아래 명령과 직교합니다.
  4. 주석에서 제안한대로 @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에서 작동하지 않는 것 같습니다. 이 게시물에서 제안한대로 최신 버전설치해야했습니다 .

1
당신의 도움을 주셔서 감사합니다. 스크립트를 실행할 때 아무 일도 일어나지 않는 것 같습니다 (Xming 서버가 실행 중임). 그러나 bash를 열고 실행 xfce4-terminal하면 정상적으로 작동합니다. 또한 bash -l -c xfce4-terminalWindows cmd에서 실행 하면 경고가 표시 Gtk-WARNING **: cannot open display:되고 아무 일도 일어나지 않습니다. 이 명령이 동일하게 작동해야한다고 생각했을 때 혼란 스럽습니다.
rperryng

@rperryng 예-또한 추악한 bash 명령 프롬프트없이 xfce를 열려면 하나의 라이너를 사용하려고하지만 아직 운이 없습니다.
Andrew Mao

1
바로 가기를 사용하여 xfce4 터미널을 시작하기위한 최상의 솔루션입니다. 깜박임이 있지만 뒤에 창이 C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -windowstyle hidden -Command "iex \"bash.exe ~ -c 'DISPLAY=:0 xfce4-terminal'\" "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -windowstyle hidden -Command "iex '& \"C:\Program Files (x86)\Xming\Xming.exe\" -multiwindow'; iex \"bash.exe ~ -c 'DISPLAY=:0 xfce4-terminal'\" "
남지

@OhJeez, 그 명령의 복잡성을 해결해 주셔서 감사합니다.
Andrew Mao

고해상도 디스플레이에 대한 해결 방법. 4k 디스플레이를 사용하는 경우 터미널에 글꼴이 흐리게 나타납니다. 이 문제를 해결하려면 다음이 필요합니다. 1. Xing sourceforge.net/projects/vcxsrv 대신 "VcXsrv Windows X Server"를 사용 하십시오. 2. 호환성 모드에서 xserver를 실행하십시오. 이렇게하려면 다음이 필요합니다. 마우스 오른쪽 버튼으로 VcXsrv 바로 가기를 클릭하십시오. "속성"을 선택하십시오. "호환성"탭에서 "높은 DPI 스케일링 동작 무시 ..."에 대해 확인란을 설정하고 다음 드롭 다운에서 "응용 프로그램"을 선택하십시오. 3. xfce4 터미널을 실행하고 글꼴 설정을 변경하십시오. 글꼴을 더 큰 글꼴로 변경하십시오.
koorchik

10

내가 생성 (사용)라는 리눅스 (WSL) 용 Windows 하위 시스템에 대한 오픈 소스 단자 WSL-단자 , 그것을 기반으로 mintty하고 wslbridge.

스크린 샷


자체 홍보에주의하십시오. 스팸처럼 보일 수 있습니다. askubuntu.com/help/promotion

2
스스로 홍보해도 괜찮습니다
David LeBauer

그리고 당신은 그것을 인정하지 않았습니다.
muru September

5
wsl-terminal더 나은 터미널 환경을 제공하는 이유에 대한 세부 정보를 추가하십시오 .
Cynplytholowazy

2
이것을 공유해 주셔서 감사합니다. 당신의 물건은 이미 내장 터미널보다 잘 작동합니다. 최소한 명령 줄의 줄 바꿈을 조금 더 잘 처리 할 수 ​​있습니다. 그래도 명령의 시작 부분으로 빠르게 이동하는 CTRL-A는 여전히 실패합니다. 나는 이런 것들을 스스로 홍보하는 사람들에게 행복하다. 사람들은 진정해야합니다.
EdH

5

새로운 우분투 설치에서는 방금 XMing (Windows)을 설치 한 다음 (Ubuntu) xfce4 터미널 export DISPLAY=:0을 설치했습니다.

Windows의 기본 콘솔을 제거하기 위해이 VBS 스크립트는 다음 작업을 수행합니다.

WScript.CreateObject("WScript.Shell").run "bash -l -c xfce4-terminal", 0, True

(에 $ DISPLAY가 설정되어 있습니다 .profile.)

편집 : 스크립트를 고정 가능하게 만들려면 target을 사용하여 바로 가기를 만드십시오 wscript "C:\path\to\thescript.vbs".


VBS가 작동하는 것 같지만 터미널 창이 열리고 닫힙니다. 계속 실행하려면 어떻게해야합니까?
TCB13

3

Windows에서 :

  • bash 창의 왼쪽 상단을 클릭하십시오.
  • 메뉴가 열리면 '속성'을 선택하십시오
  • 글꼴 등 원하는 옵션을 설정하십시오 (우분투 모노 글꼴도 있습니다!)
  • 속성을 설정하면 현재 창에 적용됩니다. 기본값으로 설정하려면 창의 왼쪽 상단을 클릭하고 기본값을 클릭하십시오.
  • Alt + Enter를 눌러 전체 화면 모드를 전환 할 수 있습니다.

이게 도움이 되길 바란다.


마우스 지원을 추가한다는 점을 제외하고는 우분투 (Gnome 's) 터미널과 동일한 모양 / 사용법을 나타냅니다. 즉htop
WinEunuuchs2Unix


2

Extraterm 은 단순한 터미널 에뮬레이터 그 이상입니다. 터미널 및 명령 줄 응용 프로그램 작업을위한 도구 상자를 제공합니다.

  • 풍모
  • Windows WSL, CMD, PowerShell 및 Cygwin에서 Linux 및 macOS 지원
  • xterm 호환
  • 여러 탭과 창, 원하는 방식으로 분할 및 바둑판 식 배열
  • 터미널에 이미지 표시
  • 유니 코드 지원
  • 컬러 이모티콘
  • 키보드 친화적 인 "명령 팔레트"
  • 구성 가능한 키 바인딩
  • 키보드 기반 선택
  • 쉘 통합; 명령 출력을 분리하고 '프레임'할 수 있습니다. (bash, zsh 및 fish 지원)
  • 쉘 통합을 통한 손쉬운 업로드 및 다운로드
  • 명령 출력을 제자리에서 편집 할 수 있습니다. 멀티 커서 편집
  • 이전 명령 출력을 새 명령의 입력으로 사용할 수 있습니다
  • iTerm2 및 TextMate 테마 지원
  • 텍스트 줌

나는 정말로 원하는 기능을 가지고 있기 때문에이 터미널을 사용하고 있습니다. cmd, powershell, bash, fish 등을 쉽게 전환 할 수있는 방법
nelaaro

1

Windows 10 (및 WSL)에 대한 최신 업데이트 이후 모든 것이 "기본"Windows bash 콘솔을 사용하여 작동하는 것 같습니다. (그리고 나는 유명한 1809 Windows 업데이트에 대해 이야기하고 있지 않습니다). 이것은 적어도 1803 17134.345 빌드에서는 Enterprise 버전에서도 작동합니다).

https://www.hanselman.com/blog/SettingUpAShinyDevelopmentEnvironmentWithinLinuxOnWindows10.aspx 의 기사를 참조하십시오.

약간의 경고-Windows에서 bash 콘솔을 실제로 사용하려면 tmux를 시작해야하며 Scott의 블로그에서 모든 것이 작동합니다.


재밌어요! "exec tmux"는 실제로 모든 Windows 기본 "bash.exe"터미널 문제를 해결합니다 (크기 조정 후 이상한 줄이 끊어짐).
Yves Dorfsman

1

보다 현대적인 시대를위한 터미널 https://eugeny.github.io/terminus/

터미널은 하이퍼에서 크게 영감을받은 터미널입니다. 그러나 작업이 필요한 사람들을 위해 설계되었습니다.

  • Windows, macOS 및 Linux에서 실행
  • 테마 및 색 구성표
  • 완전히 구성 가능한 바로 가기
  • 2 바이트 문자를 포함한 전체 유니 코드 지원
  • 빠르게 흐르는 출력을 질식시키지 않습니다
  • 탭 완성 (Clink를 통한)을 포함하여 Windows에서 적절한 쉘과 유사한 경험
  • PowerShell (+ Core), WSL (Bash on Windows), Git-Bash, Cygwin, Cmder 및 CMD 지원
  • 탭 기억
  • 통합 SSH 클라이언트 및 연결 관리자

1

https://hyper.is/

  • 전자를 기반으로하여 자바 스크립트를 사용하여 쉽게 개발하고 확장 할 수 있습니다.
  • 어떤 방식 으로든 기본 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는 매우 잘 작동했습니다.


감사합니다. 흥미로운 프로젝트처럼 보이지만 소프트웨어 및 WSL을 구성하는 방법에 대해 더 자세히 말씀해 주시겠습니까?
David LeBauer

1
@DavidLeBauer 도움이 되길 바랍니다.
nelaaro

하이퍼는 매우 느립니다.
미스릴


0

VBScript / JScript 솔루션 중 어느 것도 바로 작동하지 않았 으므로 aikerun.caillou의 답변을 확장 했습니다.

Call WScript.CreateObject("WScript.Shell").Run("bash.exe -l -c 'DISPLAY=:0.0 xfce4-terminal --working-directory $HOME'", 0, True).

Callrun 명령에서 괄호를 사용할 때는 스크립트를 앞에 추가해야합니다 ( 여기 참조) . 또한 진드기는 다른 방향으로 돌아와야했습니다. 또한 xfce4 터미널에 대한 추가 인수 는 사용자의 홈 폴더에서 터미널 을 시작합니다. 이것이 실제로 JScript 코드를 사용하고 있다면 죄송합니다.이 스크립트 언어에 대해서는 전혀 모릅니다.

이것을 vbscript.vbs 파일로 저장하고 다음과 같이 cmd 프롬프트 에서 실행하십시오.

wscript vbscript.vbs

그런 다음 2 초 지연된 후 xfce4 터미널 창을 엽니 다 (XMing 등이 실행 됨). n.caillou의 작품에서 제안한대로 이것을 바로 가기로 바꾸고 바로 가기를 클릭하면 약간의 지연과 함께 새로운 xfce 터미널 창이 자동으로 생성됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.