zoukankan      html  css  js  c++  java
  • Windows Subsystem for Linux(WSL)安装记录

    什么是WSL

    Windows Subsystem for Linux(简称WSL)是一个为在Windows 10上能够原生运行Linux二进制可执行文件(ELF格式)的兼容层。它是由微软与Canonical公司合作开发,目标是使纯正的Ubuntu 14.04 "Trusty Tahr"映像能下载和解压到用户的本地计算机,并且映像内的工具和实用工具能在此子系统上原生运行.

    以上来自维基百科,简单的说WSL就是可以运行在Win10上的一个Linux子系统,有点类似于cygwin的那种。说白了,就是在win10装个小小Ubuntu。按照微软的说法,他可以给web开发者或者经常在开源项目上工作的人提供方便,同时提供Bash工具以及一些公共的Linux工具(如sed和awk)等。

    对于使用ruby和Python这种Linux第一优先的语言也是不错的选择。

    wsl相对于虚拟机的优势

    相比于VMware等虚拟机,wsl占用内存和CPU资源更少,在wsl上运行软件的消耗和直接在Windows上差不多。

    在wsl上可以直接操纵Windows上的文件资源,但是不推荐使用Windows工具反过来操作Linux文件。实际上在Windows磁盘里面是无法直接看到wsl的安装文件和根目录的。

    wsl不能做什么

    首先他不支持GUI桌面以及应用,如Gnome等。
    同时,也不建议直接在上面部署Redis做稳定的服务器等。因为他有时会莫名的丢失文件之类的。

    当然,自己平时练练手是没问题的。

    安装

    开启"Windows Subsystem for Linux" 可选特性

    打开`PowerShell`,运行下面指令:
    
    Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
    

    或者通过控制面板的"启动或关闭Windows功能"选项来开启该特性。最后,重启系统。
    开启Linux功能

    安装wsl

    • 首先,开启开发者模式。进入控制面板,设置-->更新和安全-->针对开发人员-->打开开发人员模式

    • 进入PowerShell,输入指令lxrun /install /y,网速不是很稳定。

    注:如果你是16215之后的版本,直接进入APP Store,搜索Linux,就会显示Ubuntu、suse等几个发行版,点击进行安装即可,方便快捷。

    进入wsl系统

    打开PowerShell,输入指令bash即可进入wsl子系统。默认是root账户,无密码。可以使用passwd指令设置密码。

    几个常见的小问题

    如何卸载wsl

    运行指令lxrun /uninstall /full

    如何切换到Linux操作目录

    当你运行bash进入wsl的时候,默认目录是/mnt/c/Users/<userName>对应Cc:/Users/<userName>目录。如果要切到wsl根目录,使用cd /即可。

    如果想切到C盘目录,访问Windows资源,使用cd /mnt/c即可。当然也可以使用mount指令将Windows目录挂在到wsl上。

    或者通过ln指令,创建连接到Windows资源的symbolic link

    比如,创建一个连接到windows目录的symbolic link。

    ln -s "/mnt/c/idea_project" /home/Projects
    

    如何备份wsl

    切到dos运行,

    ##xcopy是dos下的拷贝整个文件夹的命令,在bash下目前还不能用
    xcopy lxss 目标目录 /E
    

    这样备份了整个wsl子系统的文件,如果搞坏了可以直接覆盖回去,据说不会丢失权限。

    消除shell中按键无效的滴滴嗡鸣声

    ## 创建配置文件,如果有则不需要
    touch ~/.inputrc
    vim ~/.inputrc
    ##在里面输入下面内容
    set bell-style none
    

    去掉vim状态下的嗡嗡声

    ##创建配置文件
    touch ~/.vimrc
    vim ~/.vimrc
    ##写入下面内容
    noeb vb t_vb=
    

    更换数据源

    在Ubuntu中一般通过apt-get命令安装软件,系统配置的软件仓库默认在国外,网络环境较差。可以通过切到国内的镜像仓库比较好。

    备份配置文件

    cp /etc/apt/sources.list /etc/apt/sources.list_backup
    

    更新数据源配置文件

    vi /etc/apt/sources.list
    

    添加清华的数据源仓库

    ##把原来的数据源都删了,添加下面的数据源
    deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main multiverse restricted universe
    deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main multiverse restricted universe
    deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main multiverse restricted universe
    deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main multiverse restricted universe
    deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main multiverse restricted universe
    deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main multiverse restricted universe
    deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main multiverse restricted universe
    deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main multiverse restricted universe
    deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main multiverse restricted universe
    deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main multiverse restricted universe
    

    更新配置

    apt-get update
    

    注意事项

    deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main multiverse
    

    中的xenial是16.04 Ubuntu的版本代号,更新源的时候注意自己的版本代号,替换成自己的版本号即可,否则更新配置会报错。

    更好的bash客户端软件cmder(参考)

    我们的bash命令符界面是有Windows自带的cmd工具启动的,我们可以下载cmder作为替代启动工具。它的体验,包括颜色以及复制等较好。

    下载安装

    cmder官网可以下载到mini版。

    设置

    • 启动cmder
    • 进入Setting-->StartUp-->Startup Options
    • 选择Command line,输入bash -cur_console:p
    • 进入Setting-->Startup-->Tasks
    • 选择bash::bash,将指令改为cmd /c "bash" -cur_console:p -new_console:d:%USERPROFILE%
    • 最后,将cmder的目录添加进环境变量Path中,这样通过Win+R,输入cmder就可以快速启动了。

    运行图形界面

    前面说过,wsl没有原生支持GUI的。这里通过一个叫Xserver,具体就是XMing这个工具实现可视化。

    Xserver下载地址

    之后的步骤:

    • 安装XMing,保持Xming开启
    • 安装firefox测试(apt-get install firefox
    • 配置运行参数(echo "export DISPLAY=127.0.0.1:0">>~/.bashrc
    • 也可以配置环境参数export DISPLAY=127.0.0.1:0
    • 最后直接在bash里面敲firefox,XMing即运行可视化浏览器,目前浏览器乱码有些问题等待解决

    注:在配置.bashrc文件时,敲export DISPLAY=:0本机上也能运行,但是远程ssh -x就不行了。
    firefox测试

    装Ubuntu Desktop

    sudo apt install ubuntu-desktop
    

    这样Gnome-terminal,gedit,libre都能用了。
    gedit图形界面

    注意事项

    这个并没有为我们添加模拟Ubuntu桌面的GUI环境,只是替我们安装了Ubuntu GUI默认安装的图形工具,比如gedit等

    安装sublime Text 3

    cd /home/<username>
    
    # 下载
    wget https://download.sublimetext.com/sublime-text_build-3126_amd64.deb
    # 安装
    dpkg -i sublime-text_build-3126_amd64.deb
    # 运行
    subl
    

    sublime图形化界面

    pss:

    使用gtk作为图形依赖包。

    说实话,界面超级丑而且满满的xp系统既视感。如果在wsl上编辑文本的话,最好还是使用vim,如果不是在vim上开发项目的话,只需掌握简单的指令应该能满足平时改改配置文件之类的需求。大多时候,我们完全可以在win10上用IDE编辑项目,在wsl上给项目目录做一个sybbolic link,然后用wsl的环境对项目部署等。

    另外,关于图形界面XMing的中文处理上暂时还没找到解决方法。所以,目前所有关于图形界面的软件和安装包只能说是玩具,并不实用。

    安装配置jdk

    下载

    wget http://download.oracle.com/otn-pub/java/jdk/8u162-b12/0da788060d494f5095bf8624735fa2f1/jdk-8u162-linux-x64.tar.gz?AuthParam=1519703559_88bc1814ec45189fb948c5db85cc8b50
    

    也可以在windows上下载,再cp进安装目录

    解压

    mkdir /java
    tar -xzvf jdk-8u162-linux-x64.tar.gz
    

    配置环境

    vim /etc/environment
    
    ## 添加下面路径配置
    PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:$JAVA_HOME/bin"
    export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
    export JAVA_HOME=/java/jdk1.8.0_162
    
    ##执行配置
    source /etc/environment
    
    ##测试是否成功
    java -version
    

    解决重启java配置时效问题

    通过配置,etc/profile文件,可以是配置对全局、所有用户有效

    vim /etc/profile
    
    ## 添加下面信息
    export JAVA_HOME=/java/jdk1.8.0_162
    export JRE_HOME=$JAVA_HOME/jre
    export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
    export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
    
    ## 启用配置
    source /etc/profile
    

    root用户还是没法解决问题

    经过上面配置,我发现root用户仍然重启后无效。解决方法是,在root/.bashrc下添加配置。每个用户下都有个.bashrc文件,他是专门针对用户有效的配置,即作用域是当前用户。经过这么修改后,目前问题已经解决。

    vim /root/.bashrc
    ## 下面的都一样
    

    安装配置Python3

    (to be continue)

    设置bash为后台进程

    (to be continue)

    安装ssh-server

    安装ssh之后,就可以使用xshell连接wsl进行操作了。而且xshell的界面非常的美观。

    安装ssh-server

    sudo apt-get install openssh-server openssh-client
    

    为sshd生成ssh key

    sudo /usr/bin/ssh-keygen -A
    

    修改ssh-server配置

    vim /etc/ssh/sshd_config
    

    相关修改:

     ListenAddress 0.0.0.0  #去掉原配置的注释即可;监听本地回环
     UsePrivilegeSeparation no # yes->no;不知道为什么,不改连接会理解关闭
     PasswordAuthentication yes # no->yes;不改只能使用秘钥登陆
     PermitRootLogin yes #这个改成yes后,就可以使用root账户远程登陆了,无不需要则不改
    

    启动服务

    service ssh start
    

    重启

    service ssh --full-restart
    

    注:相关的修改以及服务启动基本上都需要在root权限在操作,如果不是root账户,请在每个指令前加一个sudo指令。

    参考文章

    Windows10内置Linux子系统初体验

    Windows 10 Installation Guide

    Windows Subsystem for Linux(WSL)的配置

    Windows Subsystem for Linux 安裝及基本配置

  • 相关阅读:
    记一次线上Kafka消息堆积踩坑总结
    golang Time to String
    转MongoDB 使用Skip和limit分页
    golang mongodb (mgo)插入或读取文档的字段值为空(nil)问题解决
    Golang 中操作 Mongo Update 的方法
    基础知识
    Linux安全之SSH 密钥创建及密钥登录
    ssh配置authorized_keys后仍然需要输入密码的问题
    SSH隧道技术----端口转发,socket代理
    社会信息化环境下的IT新战略
  • 原文地址:https://www.cnblogs.com/Franken-Fran/p/install_wsl.html
Copyright © 2011-2022 走看看