原问地址:https://zhuanlan.zhihu.com/p/34152045

最近从MacBook换到了种草已久的Surface Book 2,而我的工作环境也自然要从macOS换到Windows10了。作为使用Mac系统多年做开发的程序员,使用Windows最大的问题之一就是终端。不能说Windows10的CMD和PowerShell太差,只是做开发真的需要支持Linux Bash、高效、并且美观的终端啊。比如macOS下的iTerm终端神器,真让人怀念啊。

为什么不继续用macOS?因为经过多方面比较后,我觉得Surface Book 2是目前为止最值得体验的笔记本。选择了它,就只能选Windows10了。不多说了,进入正题吧。我对Windows10下的终端期待的是:

  1. 支持Linux Bash,最好支持GNU工具链,能安装和执行Linux二进制可执行程序。嗯,只能是Linux了。
  2. 高效。能用Linux Bash就高效很多,其他辅助例如支持复制粘贴、多tab切换、和Windows文件系统交互。
  3. 美观。如果一个产品很丑(CMD?),真的不想碰啊!

经过研究,我决定使用Ubuntu子系统(Linux)、oh-my-zshcmder结合的解决方案。

安装Ubuntu子系统

参考我之前写的一篇文章:

Raysmond:Windows10开启Ubuntu子系统简易步骤​zhuanlan.zhihu.com

安装和配置oh-my-zsh

安装oh-my-zsh首先需要安装zsh。zsh(Z Shell)是一个功能强大的交互式shell脚本命令解释器。它不仅支持bash,还提供一些强大和g高效的功能,例如更好的自动补全和纠错。

$ sudo apt-get install zsh
$ zsh --version
zsh 5.1.1 (x86_64-ubuntu-linux-gnu)

安装oh-my-zsh可以通过curl或者wget方式:

使用curl

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

或者wget

sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"

在.bash_profile中启用zsh,编辑文件,在末尾添加:

exec zsh
source .zshrc

安装cmder和配置

cmder是一个Windows上的一个终端模拟器,基于ConEmu,又加上了clink和Monokai的配色主题。cmder是一个非常美观的终端。直接下载解压到本地就可以运行了。

cmder中可以运行Windows的CMD和PowerShell,也可以运行一些模拟的Linux Bash和程序。我们需要在cmder运行Ubuntu子系统的zsh。配置也很简单,打开设置,在Tasks中添加一个{bash::ubuntu}的task。

配置完后,在右下角的图标中可以运行这个task。

更多阅读:

  1. Windows10开启Ubuntu子系统简易步骤
  2. 【如何评价微软 Surface Book 2?】Surface Book 2 15寸购买对比过程和使用初体验

Raysmond | 2018-03-01
http://raysmond.com

Windows10终端优化方案:Ubuntu子系统+cmder+oh-my-zsh的更多相关文章

  1. Windows10内嵌Ubuntu子系统配置python开发环境

    Windows10内嵌Ubuntu子系统配置python开发环境 安装pycharm. 到intellij idea网站下载Linux环境下载免费的pycharm,通过ubuntu子系统内部的/mnt ...

  2. Windows10访问Ubuntu子系统(WSL)的桌面环境

    原文地址:https://blog.csdn.net/xmh19936688/article/details/90212960 Windows10访问Ubuntu子系统(WSL)的桌面环境文章目录Wi ...

  3. Windows10的Ubuntu子系统开启桌面环境

    原文:Windows10的Ubuntu子系统开启桌面环境 Ubuntu 优势之一就是桌面环境比较好,所以咱们的子系统当然也不能少了这一环节,本小结开始安装Ubuntu 桌面系统. 安装环境 使用下面指 ...

  4. Windows10内置ubuntu子系统安装后中文环境设置

    原文:Windows10内置ubuntu子系统安装后中文环境设置 第一开启相关设置,使用小娜(Win键+c)直接查找关键字打开更快.   ①设置→查找"针对开发人员"→开发人员模式 ...

  5. 系统 (一) Windows10安装Ubuntu子系统

    前言 本文将基于 Windows10专业版 安装 Ubuntu子系统 1.控制面板 -> 程序 -> 选择启用或关闭Windows功能 -> 勾上 适用Linux的Windwos子系 ...

  6. Windows10开启Ubuntu子系统并搭建Docker环境

    前言 很早就听说微软有个基于Ubuntu的子系统,一直也没机会尝试一下,之前也只是用VMware安装,但是还要单独安装软件,安装镜像,一点都不fit,所以就瞎折腾下(也是因为最近有空). 搭建Ubun ...

  7. Windows10 ubuntu子系统的启用即基础配置

    Windows 10 在一周年更新后,本身集成一个不带有图形界面的ubuntu 14.04系统了,大大方便了Linux开发,并且本身使用很方便,像我这种Windows死忠,只会在Linux下跑一下一定 ...

  8. windows10安装配置WSL(Ubuntu)

    windows10安装配置WSL(Ubuntu) 怎么在windows系统上用上Linux?有这么几种方法: 1. 安装双系统.这种方法的缺点是每次切换系统都需要关机.切换系统. 2. 虚拟机+Lin ...

  9. Linux 性能优化之 IO 子系统 系列 图

    http://blog.sina.com.cn/s/articlelist_1029388674_11_1.html Linux 性能优化之 IO 子系统(一) 本文介绍了对 Linux IO 子系统 ...

随机推荐

  1. eclipse- MAT安装及使用

    1.安装eclipse mat插件 1)查看当前eclipse版本 进入eclipse目录:右击eclipse图标,看到安装目录/home/zhangshuli/adt-bundle-linux-x8 ...

  2. Android学习笔记之详细讲解画圆角图片

    package xiaosi.RoundConcer; import android.app.Activity; import android.graphics.Bitmap; import andr ...

  3. transfer learning(matlab 实现)

    一句话总结 transfer learning 的核心即是对一个已训练模型微调,使其适应新的应用,如下图示: 为 matlab 接口所训练完成的经典深度神经网络下载地址:Index of /matco ...

  4. Flume的Collector

    Collector的作用是将多个Agent的数据汇总后,加载到Storage中.它的source和sink与agent类似. 数据源(source),如: collectorSource[(port) ...

  5. 1.24 Python知识进阶 - 类与对象

    类 语法格式: class Dog(object): print("the dog is barking ...") Dog为类名,object为要继承的基类,Dog类会从基类ob ...

  6. COGS 163 [USACO Mat07] 牛语

    COGS 163 [USACO Mat07] 牛语 输入文件:latin.in   输出文件:latin.out   简单对比 时间限制:1 s   内存限制:128 MB 奶牛们听说猪发明了一种秘密 ...

  7. Java Web学习总结(2)——Servlet入门

    一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向 ...

  8. SpringMVC 传递相同名称的参数的最佳方法

    华为云4核8G,高性能云服务器,免费试用 >>>   SpringMVC 多个对象的相同字段参数传递解决方案,在SpringMVC中,有时需要传递多个对象(除了Model和web元素 ...

  9. mmx-编译脚本

    脚本目录位置 /home/zhangshuli/git2/vanzo_team/xulei/Mmx.py 在-/bin目录下,链接Mmx.py ln -sf ~/git2/vanzo_team/xul ...

  10. 14.inline与namespace使用

    #include <iostream> using namespace std; namespace all { //inline作用为默认调用 inline namespace V201 ...