Windows 10 내 장 된 Linux 서브 시스템 초기 체험
WSL
머리말
얼마 전 비행기 위의 win 10 이 1 주년 정식 판 으로 몰래 업그레이드 되 어 어 어 쩔 수 없 었 다.하지만 이 버 전 은 내 장 된 Liux 서브 시스템 을 지원 한 다 는 말 을 듣 고 호기심 을 가지 고 해 봤 습 니 다.그동안 많은 문 제 를 겪 었 지만 전체적으로 볼 때 이 서브 시스템 체험 은 괜 찮 았 습 니 다. 여기 서 관건 적 인 절차 와 겪 은 문 제 를 공유 하고 나머지 는 여러분 이 스스로 괴 롭 히 세 요.
링크 ux 서브 시스템 사용 하기
설정 (16215 버 전 이후 개발 자 모드 필요 없 음)
윈도우 기능
설치 중...
-
-
옵션 에서 '개발 자 모드' 사용 \ \
, "Windows 기능 사용 또는 닫 기" 를 열 고 "Linux 에 적용 되 는 Windows 서브 시스템 (Beta)" lxrun /install /y
설치 시작 속 도 는 네트워크 상황 에 달 려 있 습 니 다. 다운로드 한 파일 은 %localappdata%\lxss
디 렉 터 리 아래 lxss.tar.gz
(181 M), 압축 을 풀 면 약 500 M, rootfs
디 렉 터 리 는 서브 시스템 루트 디 렉 터 리 입 니 다.bash
은 우 분투 에서 기본적으로 사용 하 는 루트 계 정 에 로그 인하 고 명령 passwd
을 통 해 암 호 를 설정 합 니 다.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 와 통신
현재 서브 시스템 과 윈도 우 는 다음 과 같은 두 가지 방식 으로 통신 하고 있다
bash 클 라 이언 트 소프트웨어 cmder 사용 (참조)
Windows 자체 명령 프롬프트 cmd 는 잘 사용 되 지 않 습 니 다. (텍스트 선택, 복사 붙 여 넣 기 등) 여기 서 cmder 를 대체 품 으로 사용 하여 체험 효과 가 좋 습 니 다.cmder 홈 페이지 에 미니 버 전 을 다운로드 하 십시오.
설정:
1. cmder 를 시작 하여 bash 를 직접 실행 합 니 다.
시작 직접 실행 bash
2. 소프트웨어 아래쪽 에 있 는 추가 버튼 을 통 해 표지 판 을 새로 열 고 bash 에 들 어 갑 니 다.
새 탭
: cmder path C:\Windows\System32" , win+R
그래 픽 인터페이스 프로그램 실행 (참조)
뭐야!Liux 는 이렇게 흑백 인터페이스의 창 이 아 닙 니까?네, 잘못 보지 않 았 습 니 다. 바로 그래 픽 인터페이스 입 니 다. 여기 서 사용 하 는 것 은 Xserver 라 는 동쪽 입 니 다. 원리 에 대해 서 는 여러분 이 스스로 어머니 를 보 세 요.
Xming
Xming
하면 됩 니 다 apt-get install firefox
echo "export DISPLAY=:0.0" >> ~/.bashrc
그래 픽 인터페이스 를 실행 할 수 있 으 니 편집기 도 시각 화 된 것 으로 바 꿔 야 합 니 다. 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
공식 자료
WSL 이 고생 한 지 좀 되 었 지만 기록 할 시간 이 없 었 다.그 전에 업무 수요 로 인해 가끔 운영 하 는 역할 을 알 바 하고 서버 를 괴 롭 히 는 등 여가 시간 에 Liux 명령 을 배 웠 습 니 다.예전 에 vmware 를 설치 한 적 이 있 습 니 다. 체험 이 좋 지 않 으 면 설치 하고 싶 지 않 습 니 다. 그래서 셸 스 크 립 트 를 쓰 거나 소스 코드 를 컴 파일 하 는 것 은 모두 회사 테스트 서버 에서 연 습 했 습 니 다. 지금 은 WSL 이 생기 면 현지에서 연습 할 수 있 습 니 다 (함부로 소란 을 피 웁 니 다. 하하 하).사용 에 있어 서 단말 도 구 를 체험 하고 사용 하여 원 격 서버 를 연결 하 는 것 은 차이 가 많 지 않다.성능 에 있어 서 서브 시스템 (bash 프로 세 스) 자체 가 메모 리 를 많이 차지 하지 않 습 니 다. 시작 프로그램 은 거의 Windows 프로그램 을 시작 하 는 것 과 같 습 니 다. 그래 픽 인터페이스 메모리 가 비교적 적 게 사용 되 는 것 을 표시 하지 않 으 면 '인상 속 의 가상 컴퓨터' 보다 좋 을 것 입 니 다.전체적으로 볼 때 WSL 은 고생 하 는 것 을 추천 할 만 한 가치 가 있 고 초보 자 들 이 Liux 를 배 우 는 것 도 좋 습 니 다. 저도 작은 백 ⊙ 이지 만 ⊙
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.