See You Again

Bash on Ubuntu on Windows

升级到 Win10 的周年纪念版,有一个比较牛逼的功能——内置了原生的bash支持。这对于常年使用 Cygwin、Git bash、虚拟机的程序员来说简直是福音啊。升级后两天,使用感觉良好,推荐安装!简单说下使用感受。

升级

注意要升级到 Win 10 的最新版,然后在 ‘启用或关闭 Windows 功能’里打开 ‘适用于 Linux 的 Windows 子系统(Beta)’,重启就可以了。
在开始菜单里输入 bash,运行命令,然后按照命令提示进行自动下载安装,然后就进入bash命令行界面了。

使用

这个bash使用起来跟原生的没有什么明显的区别,该有的命令行基本都有,没有的也可以通过 apt-get 安装,简直不要太爽:

  1. ~$ nmap
  2. The program 'nmap' is currently not installed. You can install it by typing:
  3. sudo apt-get install nmap

可以看出,其实是‘内置’了一个 Ubuntu 系统,然后把磁盘挂载到了 /mnt/ 目录下。而这个 Ubuntu 系统实际位置是 C:\Users\Administrator\AppData\Local\lxss

  1. ~$ lsb_release -a
  2. No LSB modules are available.
  3. Distributor ID: Ubuntu
  4. Description: Ubuntu 14.04.4 LTS
  5. Release: 14.04
  6. Codename: trusty

平常用的脚本命令都有,awk vim perl python wget curl telnet find wc grep sort uniq,用起来也比较流畅,比Cygwin会好很多。

根据官方的资料,它这个子系统不是通过虚拟机、容器类的解决方案,而是跟Canonical合作的产物,通过类似wine的原理实时把system call翻译成native windows API。因此执行速度有一定的保证。

对一个大文件进行字符串操作,发现确实很快(比在服务器上执行快了一倍):

  1. ~$ ll -h large.log
  2. -rwxrwxrwx 1 xingzx xingzx 121M Aug 10 21:19 large.log*
  3. ~$ time grep 'ver=' large.log |grep -Pio "\`uid=[^\`]+" |awk '!a[$0]++' |wc -l
  4. 8747
  5. real 0m1.208s
  6. user 0m1.672s
  7. sys 0m0.844s

不足的地方:

目前还在积极试用,希望越来越好:satisfied:

2016-08-10 喜欢

Copyright © 2015-2018 转载请注明出处

回到顶部 ↑