WSL을 사용하여 Windows에 편안한 명령줄 환경 구축

7901 단어 WindowsWSL
유닉스 계열의 OS에서는 커맨드 라인 환경이 충실하고, 커맨드 라인 조작에 익숙해 버리면 GUI보다 스트레스없이 대부분의 작업을 할 수있다.

Windows에는 커맨드 라인 환경이 충실하다고는 말할 수 없지만, 최근 탑재된 WSL이라는 기능을 이용하여 Windows에 Linux를 설치할 수 있게 되었다.

WSL을 사용하여 편안한 명령줄 환경을 얻으십시오.

WSL 환경 구축



WSL을 편안하게 사용하기 위해 Mintty, win32yank, AutoHotKey 등을 사용합니다.
WSL을 포함한 이러한 설치 방법 등은 구그하면 많이 나오므로 자세한 설치 방법 등은 설명하지 않는다.

WSL 활성화 및 배포 설치



Microsoft Store에서 설치하는 방법 외에도 직접 만든 이미지를 설치할 수 있습니다.
htps : // 기주 b. 코 m / 미 c 로소 ft / WSL ぢ

WSLtty (Mintty) 설치



Linux 환경을 손에 넣어도 명령 프롬프트상에서는 강력한 기능을 쓰러뜨릴 수 없다.
따라서 WSL 용으로 개발 된 터미널 에뮬레이터를 사용합니다.
htps : // 기주 b. 코 m / 민 ty / wsl ty
release에서 최신 설치 프로그램으로 설치하는 것이 좋습니다.

win32yank



커맨드 라인에서 클립 보드를 조작하는 커맨드로서 Mac이라면 pbcopy pbpaste Linux이면 xcliprelease에서 최신을 떨어뜨려 경로를 통과하면 된다.

WSL은 exe 파일을 직접 호출할 수 있지만, exe 본체는 Windows 파일 시스템상에 존재하지 않으면 정상적으로 동작하지 않는 것 같기 때문에, 다음과 같이 심볼릭 링크를 하고 있다.
% ls -l /usr/local/bin/
lrwxrwxrwx 1 root root 13 Jan 22 13:05 win32yank -> win32yank.exe
lrwxrwxrwx 1 root root 64 Jan 22 13:04 win32yank.exe -> /mnt/c/Users/takezo/AppData/Local/WSL.opt/win32yank/win32yank.exe

AutoHotKey



win32yank 을 이용해, Mintty 의 윈도우가 액티브한 경우, 左Winキー + C 로 선택 범위의 카피, 左Winキー + V 로 클립보드로부터 붙여넣을 수 있도록 하고 있다.

AutoHotKey.ahk
*<#c::
    if (WinActive("ahk_class mintty")) {
        Send,^{Insert}
    } else {
        Send,^c
    }
    return
*<#v::
    if (WinActive("ahk_class mintty")) {
        Send,+{Insert}
    } else {
        Send,^v
    }
    return

시작 스크립트



open-wsltty.js
var fs = new ActiveXObject("Scripting.FileSystemObject")
var WshShell = new ActiveXObject("WScript.Shell");
var env = WshShell.Environment('PROCESS');

var Distro = WScript.Arguments(0)

var Terminal = "%LOCALAPPDATA%\\wsltty\\bin\\mintty.exe"
var Icon = fs.getParentFolderName(WScript.ScriptFullName) + "\\\"" + Distro + ".ico\""
var Config = fs.getParentFolderName(WScript.ScriptFullName)
var Shell = "/usr/bin/zsh --login"
var Command = Terminal + " -i " + Icon + " --WSL=\"" + Distro + "\" --configdir=" + Config + " -~ " + Shell

env.item("WSLENV") = "PATH/lu:USERPROFILE/pu:LOCALAPPDATA/pu:PROGRAMFILES/pu:ANDROID_HOME/pu:NDK_ROOT/pu"

WshShell.Run("cmd /c start " + Command, 0);

Mintty 옵션


-i : 아이콘 지정--WSL : 배포 지정--configdir : AutoHotKey 파일 디렉토리 지정

나는 zsh를 사용하고 있기 때문에 /usr/bin/zsh --login에서 zsh 로그인 쉘을 시작하고있다.
bash를 사용하면 /bin/bash -lWSLENV 환경 변수를 사용해, PATH USERPROFILE

스크립트 호출



다음과 같은 바로 가기나 배치 파일을 만들어 시작한다.
\path\to\open-wsltty.js "Ubuntu-18.04"

시작 메뉴 등에 놓으면 런처 등을 주워 주므로 편리
config

그건 그렇고, 런처는 LOCALAPPDATA에서 Mac처럼 사용합니다.

WSL 설정



WSLENV


Ctrl + Space 또는 Windows -> WSL 를 호출할 때 환경 변수를 공유하기 위한 특수한 환경 변수.
Hain

/ 에 tc / wsl. 곤 f



WSL 기동시의 마운트 옵션이나 네트워크 구성을 설정할 수 있다.
htps : // / cs. 미 c 로소 ft. 코 m / 그럼 jp / 우동 ws / wsl / 이테로 p

난 기본적으로 사용하고 있습니다.

비고



WSL1은 파일 입출력이 매우 느립니다.
WSL2는 파일 I/O는 개선되지만 처리 성능이 약간 떨어지는 것 같습니다.

좋은 웹페이지 즐겨찾기