wsl2 윈도우에서 리눅스 사용하기

윈도우 업데이트가 다 되있다고 가정하고 진행

install wsl2

powershell을 열고

Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Microsoft Store를 열고 ubuntu 18.04 배포를 선택합니다.

https://www.microsoft.com/en-us/p/ubuntu-1804-lts/9n9tngvndl3q?rtc=1&activetab=pivot:overviewtab

설치하고 나면 실행합니다. 기본 유저와 비번을 넣어야합니다.

cmd에서 bash라고치면 바로 접속됩니다.

저는 root를 사용하고싶어서 다음처럼 진행하였습니다. bash로 접속한상태에서

sudo passwd root
xxx

루트 비번을 변경하고

cmd를 열어서

ubuntu1804.exe config --default-user root

window terminal을 설치합니다.

https://github.com/microsoft/terminal/releases 여기서 다운받아서 설치합니다.

cmd, powershell, bash를 다 할수 잇는 터미널입니다.

기존에 사용하던 ssh 설정이 잇으면 다음처럼 cmd를 이용하여 복사할수 잇습니다.

copy /Y C:\Users\ragon\Dropbox\OS-Backup\MacOs\.ssh\* \\wsl$\Ubuntu-18.04\tmp

ubuntu는 \wsl$ 라는 네트워크 드라이브로 인식되서 서로 파일을 카피할수 있습니다.

이제 window terminal을 실행합니다.

root로 접속이 되는지 확인합니다.

설정합니다. zsh을 사용하고 oh-my-zsh을 사용하므로 다음처럼 설정합니다.

apt-get update
# zsh
apt-get install zsh -y
git clone https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

cd ~/.oh-my-zsh/custom/plugins/
git clone https://github.com/zsh-users/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git

vi ~/.zshrc
# zshrc 설정 
ZSH_DISABLE_COMPFIX=true #first line 추가

#ZSH_THEME="agnoster" 깨지는 부분이 있다. 기본으로 사용하자.

plugins=(git zsh-syntax-highlighting zsh-autosuggestions kubectl kube-ps1) #여기에 추가한다.

# 기본 쉘 변경
chsh -s /bin/zsh

참고로 oh-my-zsh을 사용하고 kube플러그인을 사용하면 기본적으로 적용이 되있다고 한다.

https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/kubectl

기타 많은 alias가 있으므로 참고해서 사용하면 될듯 싶다.

ns 와 nsv 대신에 플러그인에서 제공하는

kgns  #kubectl get namespaces	List the current namespaces in a cluster 전체 네임스페이스
kcgc  #kubectl config get-contexts context 확인
kcn   #kubectl config set-context context 설정 

위 커맨드를 사용하면 된다.

kubectl을 사용하기 위해 설치한다.

cd 
curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl
chmod +x ./kubectl
mv ./kubectl /usr/local/bin/kubectl
kubectl version --client

이렇게 되서 다시 실행해보면 화면이 깨진다.

윈도우에 폰트를 추가하자.

font

https://github.com/powerline/fonts

여기서 다운받아서 윈도우에서 DejaVu Sans Mono for Powerline.ttf 더블클릭을 설치

windows terminal 에서 설정을 눌러서 다음 추가.

"fontFace": "DejaVu Sans Mono for Powerline"

이제 폰트도 이쁘게 나온다.

mac 터미널과 비슷하게 나온다.

prompt 수정

  • 머신 이름 지우기 vi ~/.zshrc
# prompt_context() {
#   if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then
#     prompt_segment black default "%(!.%{ %F{yellow}% }.)$USER" 
#   fi
# }

주석 제거하고 사용, { % 사이 공백 삭제 (깃허브에 지킬에서 에러가 나서 글 수정)

  • directory 명 파란색에 검은색 글짜 보기 싫으면
    sed -i '0,/blue/{s/blue/39d/}' ~/.oh-my-zsh/themes/agnoster.zsh-theme
    

기존 distro에서 .ssh 폴더 복사해오기

기존 distro 파일 위치

C:\Users\ragon\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs\root

탐색기를 이용하여 .ssh폴더를 복사해서 새 distro로 복사해서 넣어둔다.

C:\Users\ragon\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState\rootfs\root

alias 만들기

acs를 치면 다음 명령어가 실행되면 좋겟다. vi ~/.zshrc

alias acs="cd /mnt/c/Users/ragon/Desktop/GitLab/xgrid-server/acs01/acs/xgrid"

wsl 명령어

wsl --list
> Ubuntu-20.04

wsl -t <DistroName> # 재시작
wsl -t Ubuntu-20.04

wsl -s Ubuntu-20.04 # default distros
wsl --list
> Ubuntu-20.04 (Default)

host 파일 관리

distro가 부팅을 하면 호스트(윈도우)에 hosts파일을 가지고와서 업데이트를 한다.

distro에 잇는 호스트를 수정후 재시작하면 없어짐.

teamsmiley's profile image

teamsmiley

2020-02-09 00:00

Read more posts by this author