Windows 10 내 장 된 Linux 서브 시스템 초기 체험

16749 단어
http://www.jianshu.com/p/bc38ed12da1dhttp://www.jianshu.com/p/bc38ed12da1d
WSL
머리말
얼마 전 비행기 위의 win 10 이 1 주년 정식 판 으로 몰래 업그레이드 되 어 어 어 쩔 수 없 었 다.하지만 이 버 전 은 내 장 된 Liux 서브 시스템 을 지원 한 다 는 말 을 듣 고 호기심 을 가지 고 해 봤 습 니 다.그동안 많은 문 제 를 겪 었 지만 전체적으로 볼 때 이 서브 시스템 체험 은 괜 찮 았 습 니 다. 여기 서 관건 적 인 절차 와 겪 은 문 제 를 공유 하고 나머지 는 여러분 이 스스로 괴 롭 히 세 요.
링크 ux 서브 시스템 사용 하기
설정 (16215 버 전 이후 개발 자 모드 필요 없 음)
윈도우 기능
설치 중...
  • 시스템 이 1 주년 정식 판 이상 (1607)
  • 으로 업그레이드 되 었 습 니 다.
  • 순서대로 - - 옵션 에서 '개발 자 모드' 사용
  • 자원 관리자 에서 열기 \ \ , "Windows 기능 사용 또는 닫 기" 를 열 고 "Linux 에 적용 되 는 Windows 서브 시스템 (Beta)"
  • 을 선택 하 십시오.
  • 컴퓨터 재 부팅
  • 명령 행 실행 lxrun /install /y 설치 시작 속 도 는 네트워크 상황 에 달 려 있 습 니 다. 다운로드 한 파일 은 %localappdata%\lxss 디 렉 터 리 아래 lxss.tar.gz (181 M), 압축 을 풀 면 약 500 M, rootfs 디 렉 터 리 는 서브 시스템 루트 디 렉 터 리 입 니 다.
  • 명령 행 실행 bash 은 우 분투 에서 기본적으로 사용 하 는 루트 계 정 에 로그 인하 고 명령 passwd 을 통 해 암 호 를 설정 합 니 다.
  • 괴 롭 히 기 를 좋아 하기 때문에 서브 시스템 환경 (lxs 디 렉 터 리) 을 망 가 뜨 릴 수 밖 에 없 기 때문에 일 을 하기 전에 빨리 복원 할 수 있 도록 백업 하 는 것 이 좋 습 니 다.오른쪽 단 추 를 누 르 고 복사 하거나 포장 하지 마 십시오. 파일 권한 을 잃 어 버 릴 수 있 습 니 다.xcopy %localappdata%\lxss %localappdata%\lxss.bak /E
  • 물론 이전 백업 작업 을 수행 하지 않 아 도 됩 니 다. 명령 행 실행 lxrun /uninstall /full 을 통 해 서브 시스템 을 쉽게 마 운 트 해제 하고 위의 절 차 를 반복 하면 다시 설치 할 수 있 습 니 다. 하지만 다운로드 속도 가 좋 았 다 나 빴 다 하 는 것 에 주의해 야 합 니 다.

  • 위의 절 차 를 통 해 win 10 자체 의 Liux 서브 시스템 (WSL) 을 사용 하여 격 이 많이 올 라 간 것 같 습 니 다.물론 이 걸 어떻게 만족 시 킬 수 있 겠 는가. 다음은 환경의 배치 와 진일보 한 발굴 을 해 야 한다.
    데이터 원본 바 꾸 기 (참조)
    Ubuntu 에서 우 리 는 apt - get 명령 을 통 해 소프트웨어 를 편리 하 게 설치 / 마 운 트 해제 할 수 있 습 니 다. 기본 패키지 창 고 는 외국 에 있 기 때문에 소프트웨어 를 설치 할 때 각종 네트워크 문제 나 다운로드 한 자원 이 완전 하지 않 을 수 있 기 때문에 데이터 원본 을 국내의 미 러 사이트 로 전환 하여 개선 해 야 합 니 다.
    # 1.            
    cp /etc/apt/sources.list /etc/apt/sources.list_backup
    # 2.         
    vim /etc/apt/sources.list
    ##============================================================================================== # deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse # deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse # deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse # deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse # deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse # deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse # deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse # deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse # deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse # deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse #=============================================================================================== # 3.     apt-get update 

    Windows 와 통신
    현재 서브 시스템 과 윈도 우 는 다음 과 같은 두 가지 방식 으로 통신 하고 있다
  • tcp 프로 토 콜 을 통 해 통신 (쉽게 말 하면 네트워크, 포트 가 모두 통 하 는 것)
  • '/ mnt / [디스크] / 디 렉 터 리' 방식 으로 Windows 디 렉 터 리 에 접근
  • 윈도 우즈 의 자원 관리자 에서 하위 시스템 환경 디 렉 터 리 에 있 는 파일 을 직접 수정 한 적 이 있 습 니 다. 하위 시스템 잠 금 으로 인식 할 수 없 기 때문에 bash 에서 작업 해 야 합 니 다.
    bash 클 라 이언 트 소프트웨어 cmder 사용 (참조)
    Windows 자체 명령 프롬프트 cmd 는 잘 사용 되 지 않 습 니 다. (텍스트 선택, 복사 붙 여 넣 기 등) 여기 서 cmder 를 대체 품 으로 사용 하여 체험 효과 가 좋 습 니 다.cmder 홈 페이지 에 미니 버 전 을 다운로드 하 십시오.
    설정:
    1. cmder 를 시작 하여 bash 를 직접 실행 합 니 다.
  • "Settings > Startup > Startup options" 진입,
  • 명령 줄 을 선택 하고 "bash - cur console: p"
  • 을 입력 하 십시오.
    시작 직접 실행 bash
    2. 소프트웨어 아래쪽 에 있 는 추가 버튼 을 통 해 표지 판 을 새로 열 고 bash 에 들 어 갑 니 다.
  • "Settings > Startup > Startup options > Tasks" 에 들 어 갑 니 다.
  • "bash:: bash" 를 선택 하고 명령 을 "cmd / c" bash "- cur console: p - new console: d:% USERPROFILE%"
  • 로 변경 합 니 다.
    새 탭 : cmder path C:\Windows\System32" , win+R
    그래 픽 인터페이스 프로그램 실행 (참조)
    뭐야!Liux 는 이렇게 흑백 인터페이스의 창 이 아 닙 니까?네, 잘못 보지 않 았 습 니 다. 바로 그래 픽 인터페이스 입 니 다. 여기 서 사용 하 는 것 은 Xserver 라 는 동쪽 입 니 다. 원리 에 대해 서 는 여러분 이 스스로 어머니 를 보 세 요.
    Xming
  • Xming 설치 다운로드 주소
  • 설치 하고 바로 열기 Xming 하면 됩 니 다
  • Firefox 테스트 설치 apt-get install firefox
  • 실행 (프로그램 명령 전에 "DISPLAY =: 0" 추가) DISPLAY =: 0 fireforx
  • 설정 을 간소화 하고 실행 할 때마다 DISPLAY =: 0 을 입력 해 야 합 니 다. 다음 명령 을 실행 한 후에 bash 를 다시 시작 하면 이 절 차 를 절약 할 수 있 습 니 다 echo "export DISPLAY=:0.0" >> ~/.bashrc
  • Sublime Text 3 설치
    그래 픽 인터페이스 를 실행 할 수 있 으 니 편집기 도 시각 화 된 것 으로 바 꿔 야 합 니 다. vim 은 저 에 게 적합 하지 않 기 때 문 입 니 다.
    cd /
    #   
    wget https://download.sublimetext.com/sublime-text_build-3126_amd64.deb
    #   
    dpkg -i sublime-text_build-3126_amd64.deb
    #    subl 

    뭐야, 잘못 신 고 했 어!의존 가방 이 빠 진 것 같 아. 응, 설치 해.apt-get -y install libgtk2.0-0
    xfce 데스크 톱 환경 시작 (참조)
    그래 픽 인터페이스 프로그램 이 모두 실 행 될 수 있 게 되 었 습 니 다. ubuntu 의 데스크 톱 환경 을 시험 해 보지 않 고 어떻게 만족 할 수 있 습 니까? 그래서 또 탁탁 검색 을 했 습 니 다.처음에 이 외국 의 튜 토리 얼 을 참조 하여 오랫동안 고생 했 습 니 다. 매번 실행 할 때마다 coposite 플러그 인 을 불 러 오지 않 았 습 니 다. 각종 패 키 지 를 한 번 설치 해도 안 되 었 습 니 다. 나중에 인내심 을 잃 고 이 길 을 포기 하 게 되 었 습 니 다.나중에 누군가가 xfce 를 성공 적 으로 운행 한 것 같 았 지만 구체 적 인 절차 가 없어 서 스스로 모색 할 수 밖 에 없 었 고 결 과 는 정말 잘못 되 었 다.
    # 1.  xfce4
    apt-get install xfce4
    # 2.  xubuntu       
    apt-get install xubuntu-desktop
    # 3.   xfce4-session 

    시동 이 잘못 되 었 습 니 다. 해결 방법 [참고] (https://zhuanlan.zhihu.com/p/21577512?refer=MSFaith)
    sed -i 's$.*$tcp:host=localhost,port=0$' /etc/dbus-1/session.conf 

    다시 열 려 고 시도 하면 Xming 이 데스크 톱, 작업 표시 줄, 메뉴 표시 줄 등 세 개의 창 을 열 었 습 니 다.강 격 은 많이 올 랐 지만 확실히 끊 겼 다.
    xfce4
    하위 시스템 에서 nginx 실행
    작업 항목 에 ssi 기술 을 사 용 했 기 때문에 windows 에서 이미 컴 파일 된 nginx 는 상대 적 인 경로 인용 을 지원 하지 않 습 니 다 (원본 코드 를 수정 하여 재 컴 파일 해 야 합 니 다). 억울 하 게 apache 를 사용 할 수 밖 에 없습니다.하지만 이제 Liux 를 뛸 수 있 게 되 었 으 니 Liux 에서 nginx 를 실행 한 다음 windows 에서 호출 해 보 세 요.
    1. apt - get 으로 설치
    apt-get install nginx
    #      :
    nginx: [emerg] bind() to [::]:80 failed (98: Address already in use) # 80        ,     ipv6   ,    : vim /etc/nginx/sites-available/default #   default_server ipv6only=on;    #        ,         ,80       ,  error.log cat /var/log/nginx/error.log #       : ioctl(FIOASYNC) failed while spawning "worker process" (22: Invalid argument) 
    #     :  master    
    sed -i '1 a\master_process off;' /etc/nginx/nginx.conf
    

    다시 시작 해서 드디어 잘못 보고 하지 않 았 습 니 다. Windows 에서 브 라 우 저 를 열 어 127.0.0.1 을 방 문 했 습 니 다. 정말 실험 에 성 공 했 습 니 다. 하지만 nginx 버 전 은 좀 늙 었 습 니 다. 1.4.6 입 니 다.
    2. 원본 코드 를 컴 파일 해서 설치
    # 1.     
    apt-get -y install build-essential autoconf libtool libxml2-dev openssl libcurl4-openssl-dev libbz2-dev libjpeg-dev libpng12-dev libfreetype6-dev libldap2-dev libmcrypt-dev libmysqlclient-dev libxslt1-dev libxt-dev libpcre3-dev libreadline-dev
    # 2.    
    wget http://tengine.taobao.org/download/tengine-2.1.1.tar.gz
    # 3.   tar -zxvf tengine-2.1.1.tar.gz # 4.     cd tengine-2.1.1 #     ... # 5.   ./configure --prefix=/usr/anyesu/nginx # 6.  &   make && make install # 7.       sed -i '1 a\master_process off;' /usr/anyesu/nginx/conf/nginx.conf # 8.   /usr/anyesu/sbin/nginx 

    위의 절차 에서 나 는 컴퓨터 두 대 를 시험 해 보 았 는데, 그 중 한 대 는 잘못 보고 했다.
    nginx: [emerg] invalid port in resolver "fec0:0:0:ffff::1" in /usr/anyesu/nginx/conf/nginx.conf:123
    /etc/resolv.conf
    나타 난 fec 0: 0: ffff:: 1 은 무슨 귀신 입 니까? 도 모 는 dsn 인 것 같 습 니 다. dns 프로필 /etc/resolv.conf 을 열 었 습 니 다. 과연 이 물건 을 발 견 했 습 니 다. Windows 에서 dns 1 개 만 분 배 했 을 것 입 니 다. 그래서 Liux 는 이렇게 두 개의 기본 값 을 주 었 습 니 다.설명 을 지우 고 nginx 를 다시 시작 하여 Tengine / 2.1.1 을 성공 적 으로 실행 하 였 습 니 다! , bash dns
    ssh 사용 하기 (참조)
    로 컬 은 명령 행 을 통 해 bash 를 열 수 있 습 니 다. 원 격 으로 접근 하려 면 ssh 를 사용 해 야 합 니 다.
    # 1.  ssh(       )
    apt-get install openssh-server
    # 2.      
    cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
    vim /etc/ssh/sshd_config
    #=======(        )=========# # Port 23(22      ) # # (    )ListenAddress 0.0.0.0 # # UsePrivilegeSeparation no # # PermitRootLogin yes # # (  )StrictModes yes # # PasswordAuthentication yes # #================================# # 3.  ssh service ssh start # 4.    “sshd error: could not load host key”,            rm /etc/ssh/ssh*key dpkg-reconfigure openssh-server 

    터미널 도 구 를 사용 하여 접근 합 니 다. 여 기 는 WinSCP + PuTTY 를 사용 합 니 다.
    WinSCP
    PuTTY
    WSL 켜 기 시작
    작업 관리자
    작업 관리 자 를 열 면 하위 시스템 을 실행 할 때 배경 에 bash 프로 세 스 가 실행 되 고 있 습 니 다. 명령 행 창 을 열 때마다 bash. exe 가 하나 더 있 습 니 다. 모든 bash. exe 를 닫 으 면 이 bash 프로 세 스 가 닫 힙 니 다.sshd 등 도 닫 혔 다.Liux 프로그램 이 배경 에서 계속 실 행 될 수 있 도록 vbs 스 크 립 트 를 통 해 배경 에서 bash. exe 를 열 어 bash 프로 세 스 가 계속 열 려 있 도록 합 니 다.물론 윈도 우즈 의 계획 임 무 를 통 해 WSL 을 시작 하고 프로그램 을 열 수 있다.
    # 1.        
    vim /usr/anyesu/boot.sh
    # 2.  
    #================================================================ # #!/bin/sh # /usr/anyesu/nginx/sbin/nginx # service ssh start # $SHELL #     ,        ,    base.exe     #================================================================ # 3.     chmod 777 /usr/anyesu/boot.sh # 4.  vbs  (D:\linux\wsl.vbs) #========================================== # Set ws = CreateObject("Wscript.Shell") # ws.run "bash /usr/anyesu/boot.sh",vbhide #========================================== # 5.       

    계획 임무
    기본 작업 만 들 기
    작업 이름 설정
    작업 트리거 조건 설정 - 사용자 로그 인
    작업 동작 설정 - 시작
    vbs 스 크 립 트 실행 작업 설정
    계획 작업 실행
    리 눅 스 버 전
    1. Xenial (16.04) 로 Ubuntu 버 전 업그레이드
    2. 오픈 수세 로 우 분투 교체
    #   cmd,  bash
    bash
    cd /
    #   openSUSE
    wget -O openSUSE-42.2.tar.xz https://github.com/openSUSE/docker-containers-build/blob/openSUSE-42.2/docker/openSUSE-42.2.tar.xz?raw=true
    #    xz -d /openSUSE-42.2.tar.xz mkdir rootfs tar -C rootfs -xvf openSUSE-42.2.tar #   bash,  cmd exit #           cd %localappdata%\lxss #   ubuntu    (        bash        ) rename rootfs rootfs.ubuntu #   openSUSE             move rootfs.ubuntu\rootfs rootfs #          lxrun /setdefaultuser root #     bash bash #       cat /etc/issue 

    공식 자료
  • github
  • 블 로그
  • insider build 의 업데이트 기록
  • 마지막 에 쓰다
    WSL 이 고생 한 지 좀 되 었 지만 기록 할 시간 이 없 었 다.그 전에 업무 수요 로 인해 가끔 운영 하 는 역할 을 알 바 하고 서버 를 괴 롭 히 는 등 여가 시간 에 Liux 명령 을 배 웠 습 니 다.예전 에 vmware 를 설치 한 적 이 있 습 니 다. 체험 이 좋 지 않 으 면 설치 하고 싶 지 않 습 니 다. 그래서 셸 스 크 립 트 를 쓰 거나 소스 코드 를 컴 파일 하 는 것 은 모두 회사 테스트 서버 에서 연 습 했 습 니 다. 지금 은 WSL 이 생기 면 현지에서 연습 할 수 있 습 니 다 (함부로 소란 을 피 웁 니 다. 하하 하).사용 에 있어 서 단말 도 구 를 체험 하고 사용 하여 원 격 서버 를 연결 하 는 것 은 차이 가 많 지 않다.성능 에 있어 서 서브 시스템 (bash 프로 세 스) 자체 가 메모 리 를 많이 차지 하지 않 습 니 다. 시작 프로그램 은 거의 Windows 프로그램 을 시작 하 는 것 과 같 습 니 다. 그래 픽 인터페이스 메모리 가 비교적 적 게 사용 되 는 것 을 표시 하지 않 으 면 '인상 속 의 가상 컴퓨터' 보다 좋 을 것 입 니 다.전체적으로 볼 때 WSL 은 고생 하 는 것 을 추천 할 만 한 가치 가 있 고 초보 자 들 이 Liux 를 배 우 는 것 도 좋 습 니 다. 저도 작은 백 ⊙ 이지 만 ⊙

    좋은 웹페이지 즐겨찾기