wsl interop

  • rm -rf같은 리눅스 명령어를 윈도우에서 작성하고 싶다
  • 명령어를 똑같이 쓸 수 있는 방법이 있다
  • 파워셸 코어가 필요하다

전제조건

  • WSL 활성화

설치

terminal
1
Install-Module WslInterop
  • 파워셸 코어를 실행하고, Install-Module WslInterop으로 설치한다

사용하기

terminal
1
Import-WslCommand

새 터미널을 킬 때마다 다시 설정해줘야 한다?

  • Import-WslCommand 명령으로 wsl로 실행할 명령을 지정할 수 있다
  • 그런데 새로운 터미널을 켤 때마다 매번 명령을 쳐줄 수 없다
  • 파워셸 프로필을 설정해서 자동으로 임포트 명령이 실행되도록 한다
1
2
3
4
5
6
7
# 프로필 생성
if (!(Test-Path -Path $PROFILE)) {
New-Item -ItemType File -Path $PROFILE -Force
}

# profile파일 열고 wsl interop 설정
notepad $PROFILE
1
Import-WslCommand "apt", "awk", "emacs", "grep", "head", "less", "ls", "man", "sed", "seq", "ssh", "sudo", "tail", "vim", "rm", "touch"
  • 인터럽트 할 명령어를 위와 같이 나열한다
  • 이제 파워셸에서 나열한 셸 명령어를 사용할 수 있다

참고

cli에서 줄바꿔서 명령어 계속 입력하기

cmd
1
2
3
echo 1 ^
2 ^
3
powershell
1
2
3
echo 1 `
2 `
3
shell
1
2
3
echo 1 \
2 \
3
  • cmd, powershell, bash 다 달라서 흠이다
  • cli에서 긴 명령어를 작성할 때 가독성을 높여줄 수 있다

리눅스에서 파일, 폴더 삭제 명령

1
2
3
4
5
rm -rf {디렉터리명}
rm -rf {파일명}
rm -rf {파일명} {디렉터리명} {이렇게 계속 나열하기}

rm -rf node_modules package-lock.json
  • cli로 삭제할 파일 또는 디렉터리를 하나이상 나열하여 한번에 삭제할 수 있다

shell script 실행하기

terminal
1
2
3
sh my_script.sh

./my_script.sh

shell script 경로에서 실행

bash
1
2
3
dirpath=`dirname $0`
echo $dirpath
cd $dirpath
  • 셸 스크립트 파일 경로로부터 명령을 실행할 수 있다