추천, 2020

에디터의 선택

Windows 10에서 Linux Bash Shell이 ​​작동하는 방식

Windows 10 기념일 업데이트가 릴리스됨에 따라 Microsoft는 Linux 용 Windows 하위 시스템 (WSL) 발표했습니다. 이는 Windows 10에서 기본 Bash를 실행하는 방법으로, 기본 Linux 바이너리 실행을 지원합니다. Windows상에서 Ubuntu Linux 이미지를 실행하여이를 수행합니다.

즉, ls, grep, topchmod 와 같은 Linux 명령 줄 도구를 실행할 수 있습니다. 아래에 정품 Ubuntu를 실행하고 있으므로 lsb-release -a 실행하면 다음과 같은 결과가 출력됩니다.

apt-get 및 friends를 사용하여 vim, git, screen, tmux 와 같은 유틸리티를 설치하거나 nethack: 게임을 할 수도 있습니다 nethack:

그러나이 시스템은 베타 버전이므로 서버 작업을위한 것이 아닙니다 . 개발자 (및 열광 자)가 수정하지 않고 Windows에서 Linux 중심의 응용 프로그램을 테스트하는 도구 일뿐입니다. Gnome이나 KDE와 같은 Linux GUI 응용 프로그램이나 환경을 실행하기위한 도구는 아니지만 특정 해킹이 가능할 수도 있습니다. 이것을 지우고 Windows 10에서 Linux 쉘이 어떻게 작동하는지 살펴 보겠습니다.

Linux 용 Windows 하위 시스템 (WSL)

공식 문서에 따르면 "WSL은 네이티브 Linux ELF64 바이너리를 Windows에서 실행할 수있게 해주는 구성 요소 모음입니다." Windows NT 커널 위에 가상화 된 Linux 커널 인터페이스를 구현하여이를 수행합니다. 즉, 실제 Linux 커널의 코드를 사용하지 않습니다. 응용 프로그램이 Linux 전용 시스템 호출 (시스템 호출)을 수행 할 때마다 WSL은 해당 시스템을 Windows 시스템 호출로 변환 한 다음 모든 작업을 수행합니다.

가상 머신 및 Cygwin과의 차이점

이제 Windows 10의 Linux Bash Shell이 ​​가상 머신 및 Cygwin과 어떻게 다른지 살펴 보겠습니다.

가상 머신

당신은 "글쎄, 왜 이것을 사용 하는가? 왜 Windows에서 Linux VM을 사용하지 않습니까? "

가상 머신에 비해 WSL은 리소스를 적게 사용합니다 . 또한 공유 폴더 나 네트워크 공유에 의존하지 않고도 기본 Windows 파일 시스템에 대한 완전한 액세스를 제공하면서 Linux 에서처럼 파일 작업을 수행 할 수 있습니다.

Cygwin

Windows에서 인기있는 Linux / Unix 계열 도구를 실행하는 또 다른 인기있는 방법은 Cygwin입니다. 두 가지 접근 방식의 가장 큰 차이점은 Cygwin이 Windows 에서 기본 Linux 바이너리를 실행할 수있는 방법이 아니라는 것 입니다. Windows 용 Linux 배포판 과 유사한 기능을 제공하는 GNU 및 오픈 소스 도구 집합 만 제공합니다.

반면 WSL 도구는 Windows에서 실행 되는 네이티브 Linux ELF-64 컴파일 바이너리입니다. 예를 들어, WSL에서 apt-get install emacs 명령을 실행하면 Ubuntu 14.04 설치와 동일한 파일이 공식 Ubuntu 저장소에서 다운로드 및 설치됩니다.

WSL의 사용자, 권한 및 파일 시스템

파일 시스템 계층 구조

WSL은 현재 사용자의 %LocalAppData%\lxss\rootfs 디렉터리 아래에 설치됩니다. 이를 WSL 환경 이라고하며 Linux " / "(루트) 디렉토리의 역할을합니다. 예를 들어 Windows 사용자 이름이 beebom 경우 Linux의 루트 디렉토리는 C:\Users\beebom\AppData\Local\lxss\rootfs. 즉, 각 Windows 사용자는 자신의 WSL 환경을 가질 수 있으며 다른 Windows 사용자에게 영향을주지 않으면 서 apt-get install 소프트웨어 패키지와 같은 변경을 할 수 있습니다.

WSL에서 기본 Windows 파일 시스템에 액세스 할 수 있습니다. 모든 드라이브는 /mnt. 아래에 마운트됩니다 /mnt. 예를 들어 C:\/mnt/c 에 마운트되고 D:\/mnt/d 마운트됩니다.

사용자 및 사용 권한

WSL을 처음 설치하면 새 기본 Linux 사용자를 만들라는 메시지가 나타납니다. 이 사용자는 현재 Windows 사용자와 동일한 이름을 가질 필요가 없으며 일반적으로 별도의 엔터티로 처리됩니다. 단일 Windows 사용자가 제어하는 ​​여러 Linux 사용자를 만들 수도 있습니다.

sudo 명령을 사용하여 root 권한을 얻을 수 있습니다. WSL에서 root 것은 리눅스 환경과 파일 시스템 내에서 사용자의 권리에만 영향을 미친다는 점을 명심하십시오. 그들은 부여 된 Windows 권한에 아무런 영향을 미치지 않습니다. 예를 들어 Windows 관리자 권한이있는 WSL 세션은 cd /mnt/c/Users/Administrator 있지만 관리자 권한이없는 Bash 세션은 권한이 거부 된 것으로 나타납니다. sudo cd /mnt/c/Users/Administrator 하면 Windows에서 사용 권한을 제한하므로 관리자의 디렉토리에 대한 액세스 권한을 부여하지 않습니다.

Linux 관련 파일 시스템 기능

Linux는 대소 문자를 구분하는 시스템입니다. 즉, photo.pngPhoto.png 는 서로 다른 두 개의 파일로 취급됩니다. Windows는 기본적으로 대 / 소문자를 구분 하지 않지만 대 / 소문자를 구분 합니다. 즉, photo.pngPhoto.png 는 별개의 두 파일로 취급되지 않지만 확실히 차이점을 알고 있습니다.

WSL은 Linux와 마찬가지로 대소 문자를 구분합니다. 이름이 WSL 환경 외부의 대소 문자 만 다른 두 개의 파일을 만들 수도 있습니다. 그러나 많은 Windows 응용 프로그램이 이러한 상황을 처리 할 수 ​​없으며 파일 중 하나 또는 모두를 열지 못할 수도 있습니다.

마찬가지로 NTFS 파일 시스템을 실행하는 경우 심볼 링크 가 지원됩니다. 그러나 심볼릭 링크는 WSL 내에서만 작동하며 다른 Windows 응용 프로그램에서는 해결할 수 없습니다.

Linux는 또한 파일 이름의 거의 모든 특수 문자를 지원하지만 Windows는보다 제한적입니다. 그러나 WSL은 이러한 특수 문자가 Linux 시스템의 환경에 제한되어 있으면 사용할 수 있습니다.

Windows에서 Linux 명령 행을 실행할 준비가 되었습니까?

따라서 Windows 용 서브 시스템 인 Windows Ubuntu Bash 또는 Linux Bash Shell은 Windows 10에서 작동합니다 (기념일 업데이트 포함). 이 작업과 더불어 Windows에서 Linux 관련 명령을 실행하는 기존의 방법과는 다른 점도 알게되었습니다. 따라서 Linux 명령을 항상 사용하고 싶었던 경우 시작하십시오. 질문, 의견 또는 팁이 있으면 주석 섹션에 알려주십시오.

Top