cmder中设置:

新增task,名称为wsl::bash,右下方的方框内填写:

"%ConEmuBaseDirShort%\wsl;%PATH%" & %ConEmuBaseDirShort%\conemu-cyg-64.exe --wsl --distro-guid={f24dabf4-473d-4aa4-92fd-364654228b77} -cur_console:pm:/mnt

这里面的f24dabf4-473d-4aa4-92fd-364654228b77指的是Ubuntu的唯一标识符,如果重装了子系统,那么这个标识符实惠变得。可以在在注册表(regedit)中查找 计算机\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxsswin+R搜索regedit

安装zsh

查看系统中的shell

cat /etc/shells
or
echo $SHELL

搜索看看仓库里和zsh相关的包有哪些

sudo apt-cache search zsh

看到了包的说明后,我们看看zsh包详细说明

sudo apt-cache show zsh

安装zsh

sudo apt-get install zsh -y

验证下安装是否成功

$ zsh --version
zsh 5.4.2 (x86_64-ubuntu-linux-gnu)

设置默认shell

chsh -s /usr/bin/zsh
or
chsh -s $(which zsh)

chsh -s 其实修改的就是/etc/passwd 文件中和我们所登录的用户名相对应的那一行

$ cat /etc/passwd|grep ^qhong
qhong:x:1000:1000:,,,:/home/qhong:/bin/zsh

如果在wsl系统中并不生效,那么我们可以在.bashrc末尾加上shell代码,当你打开bash时候切换到zsh。

bash -c zsh

or

if test -t 1; then
exec zsh
fi

安装oh-my-zsh

wget https://files-cdn.cnblogs.com/files/hongdada/install.sh -O - | sh

进入~/.oh-my-zsh目录后,看看该目录的结构

qhong@hongda:/$ ls ~/.oh-my-zsh
CODE_OF_CONDUCT.md LICENSE.txt cache lib oh-my-zsh.sh templates tools
CONTRIBUTING.md README.md custom log plugins themes

lib 提供了核心功能的脚本库

tools 提供安装、升级等功能的快捷工具

plugins 自带插件的存在放位置

templates 自带模板的存在放位置

themes 自带主题文件的存在放位置

custom 个性化配置目录,自安装的插件和主题可放这里

启用插件

Oh My Zsh 默认自带了一些默认主题,存放在~/.oh-my-zsh/plugins目录中。我们可以查看这些插件

qhong@hongda:/$ ls ~/.oh-my-zsh/plugins
adb cpanm git-flow-avh lighthouse pyenv systemadmin
ansible dash git-hubflow lol pylint systemd
ant debian git-prompt macports python taskwarrior
apache2-macports dircycle git-remote-branch magic-enter rails terminalapp
arcanist dirhistory gitfast man rake terminitor
archlinux dirpersist github marked2 rake-fast terraform
asdf django gitignore mercurial rand-quote textastic
autoenv dnf glassfish meteor rbenv textmate
autojump dnote globalias minikube rbfu thefuck
autopep8 docker gnu-utils mix react-native themes
aws docker-compose go mix-fast rebar thor
battery docker-machine golang mosh redis-cli tig
bbedit doctl gpg-agent mvn repo timer
bgnotify dotenv gradle mysql-macports ripgrep tmux
boot2docker droplr grails n98-magerun ros tmux-cssh
bower drush grunt nanoc rsync tmuxinator
branch eecms gulp ng ruby torrent
brew emacs hanami nmap rust transfer
bundler ember-cli helm node rvm tugboat
bwana emoji heroku nomad safe-paste ubuntu
cabal emoji-clock history npm salt ufw
cake emotty history-substring-search npx sbt urltools
cakephp3 encode64 homestead nvm scala vagrant
capistrano extract httpie nyan scd vagrant-prompt
cargo fabric iterm2 oc screen vault
cask fancy-ctrl-z jake-node osx scw vi-mode
catimg fasd jenv otp sdk vim-interaction
celery fastfile jhbuild pass sfdx virtualenv
chruby fbterm jira paver sfffe virtualenvwrapper
chucknorris fd jruby pep8 shrink-path vscode
cloudapp fedora jsontools per-directory-history singlechar vundle
cloudfoundry firewalld jump percol spring wakeonlan
codeclimate forklift kate perl sprunge wd
coffee fossil keychain perms ssh-agent web-search
colemak frontend-search kitchen phing stack wp-cli
colored-man-pages fzf knife pip sublime xcode
colorize gas knife_ssh pipenv sudo yarn
command-not-found gatsby kops pj supervisor yii
common-aliases gb kube-ps1 please suse yii2
compleat geeknote kubectl pod svcat yum
composer gem laravel postgres svn z
copybuffer git laravel4 pow svn-fast-info zeus
copydir git-auto-fetch laravel5 powder swiftpm zsh-navigation-tools
copyfile git-extras last-working-dir powify symfony zsh_reload
cp git-flow lein profiles symfony2

Oh My Zsh默认是只启用git插件

plugins=(git)

如需启用更多插件,可加入需启用插件的名称。如下

plugins=(git wd web-search history history-substring-search)

安装类似fish shell的插件

自动补全插件

$ git clone https://github.com/zsh-users/zsh-completions ~/.oh-my-zsh/custom/plugins/zsh-completions

自动提示插件

$ git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions

因为箭头不太方便,在.zshrc中自定义补全快捷键为逗号,但是又一次遇到了需要输入逗号的情况,所以,并不太推荐如下修改:

# 补全快捷键重设
# bindkey ',' autosuggest-accept

语法高亮插件

$ git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

编辑.zshrc启用插件

ZSH_THEME="ys"
............................
plugins=(git zsh-completions zsh-autosuggestions zsh-syntax-highlighting)

安装incr补全插件

wget http://mimosa-pudica.net/src/incr-0.2.zsh
mkdir ~/.oh-my-zsh/plugins/incr
mv incr-0.2.zsh ~/.oh-my-zsh/plugins/incr
echo 'source ~/.oh-my-zsh/plugins/incr/incr*.zsh' >> ~/.zshrc
source ~/.zshrc

zsh扩展

~/.zshrc中找到plugins关键字,就可以自定义启用的插件了,系统默认加载git

git插件

命令内容可以参考cat ~/.oh-my-zsh/plugins/git/git.plugin.zsh

常用的:

gapa    git add --patch
gc! git commit -v --amend
gcl git clone --recursive
gclean git reset --hard && git clean -dfx
gcm git checkout master
gcmsg git commit -m
gco git checkout
gd git diff
gdca git diff --cached
gp git push
grbc git rebase --continue
gst git status
gup git pull --rebase

完整列表:https://github.com/robbyrussell/oh-my-zsh/wiki/Plugin:git

配置私钥

# ssh key path
export SSH_KEY_PATH="~/.ssh/rsa_id"

也可以不配置环境变量就可以

extract

解压文件用的,所有的压缩文件,都可以直接x filename,不用记忆参数

当然,如果你想要用tar命令,可以使用tar -tab键,zsh会列出参数的含义。

autojump

sudo apt-get install autojump
  • j -stat:可以查看历史路径库

git-open

git-open插件可以在你git项目下打开远程仓库浏览项目。

git clone https://github.com/paulirish/git-open.git $ZSH_CUSTOM/plugins/git-open

zsh-history-substring-search

 git clone https://github.com/zsh-users/zsh-history-substring-search ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-history-substring-search

异常

$ source ~/.zshrc
[oh-my-zsh] Insecure completion-dependent directories detected:
drwxrwxrwx 1 qhong qhong 512 Jun 28 13:18 /home/qhong/.oh-my-zsh/custom/plugins/zsh-autosuggestions [oh-my-zsh] For safety, we will not load completions from these directories until
[oh-my-zsh] you fix their permissions and ownership and restart zsh.
[oh-my-zsh] See the above list for directories with group or other writability. [oh-my-zsh] To fix your permissions you can do so by disabling
[oh-my-zsh] the write permission of "group" and "others" and making sure that the
[oh-my-zsh] owner of these directories is either root or your current user.
[oh-my-zsh] The following command may help:
[oh-my-zsh] compaudit | xargs chmod g-w,o-w [oh-my-zsh] If the above didn't help or you want to skip the verification of
[oh-my-zsh] insecure directories you can set the variable ZSH_DISABLE_COMPFIX to
[oh-my-zsh] "true" before oh-my-zsh is sourced in your zshrc file.

要赋予执行权限

chmod 755 home/qhong/.oh-my-zsh/custom/plugins
chmod 755 home/qhong/.oh-my-zsh/custom/plugins/zsh-autosuggestions

一些小技巧

给history命令增加时间

.zshrc中加入以下行

$ vim ~/.zshrc

# 历史命令日期显示格式
HIST_STAMPS="yyyy-mm-dd" source ~/.zshrc

如果没用oh my zsh的话可用如下alias

$ alias history='fc -il 1'

更新oh-my-zsh

设置自动更新oh-my-zsh

默认情况下,当oh-my-zsh有更新时,都会给你提示。如果希望让oh-my-zsh自动更新,在~/.zshrc 中添加下面这句

DISABLE_UPDATE_PROMPT=true
or
# 自动更新的时间间隔,单位是天,这里设置 30 天更新一次
export UPDATE_ZSH_DAYS=1

取消自动升级

DISABLE_AUTO_UPDATE=true

要手动更新,可以执行

$ upgrade_oh_my_zsh

卸载oh my zsh

uninstall_oh_my_zsh

使用技巧

  • 连按两次Tab会列出所有的补全列表并直接开始选择,补全项可以使用 ctrl+n/p/f/b上下左右切换
  • 智能跳转,安装了 autojump 之后,zsh 会自动记录你访问过的目录,通过 j 目录名 可以直接进行目录跳转,而且目录名支持模糊匹配和自动补全,例如你访问过 hadoop-1.0.0 目录,输入j hado 即可正确跳转。j --stat 可以看你的历史路径库。
  • 命令选项补全。在zsh中只需要键入 tar - 就会列出所有的选项和帮助说明
  • 在当前目录下输入 .. 或 ... ,或直接输入当前目录名都可以跳转,你甚至不再需要输入 cd 命令了。在你知道路径的情况下,比如 /usr/local/bin 你可以输入 cd /u/l/b 然后按进行补全快速输入
  • 目录浏览和跳转:输入 d,即可列出你在这个会话里访问的目录列表,输入列表前的序号,即可直接跳转。
  • 命令参数补全。键入 kill <tab> 就会列出所有的进程名和对应的进程号
  • 更智能的历史命令。在用或者方向上键查找历史命令时,zsh支持限制查找。比如,输入ls,然后再按方向上键,则只会查找用过的ls命令。而此时使用则会仍然按之前的方式查找,忽略 ls
  • 多个终端会话共享历史记录
  • 通配符搜索:ls -l **/*.sh,可以递归显示当前目录下的 shell 文件,文件少时可以代替 find。使用 **/ 来递归搜索
  • 扩展环境变量,输入环境变量然后按 就可以转换成表达的值
  • 在 .zshrc 中添加 setopt HIST_IGNORE_DUPS 可以消除重复记录,也可以利用sort -t ";" -k 2 -u ~/.zsh_history | sort -o ~/.zsh_history手动清除

安装jdk

1、更新软件包列表:

sudo apt-get update

2、安装openjdk-8-jdk:

sudo apt-get install openjdk-8-jdk

3、查看java版本,看看是否安装成功:

java -version

查看安装路径

$ sudo update-alternatives --config java
There is only one alternative in link group java (providing /usr/bin/java): /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
Nothing to configure.

设置环境变量

#set jdk environment
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

安装maven

下载

移动安装包到指定位置

$ sudo mv apache-maven-3.6.1-bin.tar.gz /usr/local/

解压

$ sudo tar -zxvf apache-maven-3.6.1-bin.tar.gz

$ sudo rm -rf apache-maven-3.6.1-bin.tar.gz

设置环境变量

export M2_HOME=/usr/local/apache-maven-3.6.1
export PATH=${M2_HOME}/bin:$PATH

查看

$ mvn -v
Apache Maven 3.6.1 (d66c9c0b3152b2e69ee9bac180bb8fcc8e6af555; 2019-04-05T03:00:29+08:00)
Maven home: /usr/local/apache-maven-3.6.1
Java version: 1.8.0_212, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-8-openjdk-amd64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.4.0-18362-microsoft", arch: "amd64", family: "unix"

安装tomcat

下载

移动安装包

$ sudo mv apache-tomcat-8.5.42.tar.gz /usr/local/

解压

$ sudo tar -zxvf apache-tomcat-8.5.42.tar.gz
$ sudo rm -rf apache-tomcat-8.5.42.tar.gz

设置环境变量

export TOMCAT_HOME=/usr/local/apache-tomcat-8.5.42
export PATH=${TOMCAT_HOME}/bin:$PATH

zsh别名

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8 alias cls='clear'
alias ll='ls -l'
alias la='ls -a'
alias vi='vim'
alias javac="javac -J-Dfile.encoding=utf8"
alias grep="grep --color=auto"
alias -s html=mate # 在命令行直接输入后缀为 html 的文件名,会在 TextMate 中打开
alias -s rb=mate # 在命令行直接输入 ruby 文件,会在 TextMate 中打开
alias -s py=vi # 在命令行直接输入 python 文件,会用 vim 中打开,以下类似
alias -s js=vi
alias -s c=vi
alias -s java=vi
alias -s txt=vi
alias -s gz='tar -xzvf'
alias -s tgz='tar -xzvf'
alias -s zip='unzip'
alias -s bz2='tar -xjvf'
#set jdk environment
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH export M2_HOME=/usr/local/apache-maven-3.6.1
export PATH=${M2_HOME}/bin:$PATH alias mccm=mvn clean compile -Dmaven.test.skip=true
alias mcpm=mvn clean package -Dmaven.test.skip=true
alias mcim=mvn clean install -Dmaven.test.skip=true
alias mccs=mvn clean compile -DskipTests
alias mcps=mvn clean package -DskipTests
alias mcis=mvn clean install -DskipTests alias mdt=mvn dependency:tree
alias mdtv=mvn dependency:tree -Dverbose
alias mdti=mvn dependency:tree -Dincludes=
alias mdte=mvn dependency:tree -Dexcludes=
alias mdtvi=mvn dependency:tree -Dverbose -Dincludes=$*
alias mdtve=mvn dependency:tree -Dverbose -Dexcludes= alias mdp=mvn dependency:purge-local-repository
alias mdpi=mvn dependency:purge-local-repository -Dincludes=
alias mdpe=mvn dependency:purge-local-repository -Dexcludes=
alias mdpa=mvn dependency:purge-local-repository -DactTransitively=false
alias mdpai=mvn dependency:purge-local-repository -DactTransitively=false -Dincludes=
alias mdpae=mvn dependency:purge-local-repository -DactTransitively=false -Dexcludes=
alias mdpr=mvn dependency:purge-local-repository -DreResolve=false
alias mdpri=mvn dependency:purge-local-repository -DreResolve=false -Dincludes=
alias mdpre=mvn dependency:purge-local-repository -DreResolve=false -Dexcludes=
alias mdpar=mvn dependency:purge-local-repository -DactTransitively=false -DreResolve=false
alias mdparf=mvn dependency:purge-local-repository -DactTransitively=false -DreResolve=false --fail-at-end
alias mdpari=mvn dependency:purge-local-repository -DactTransitively=false -DreResolve=false -Dincludes=
alias mdpare=mvn dependency:purge-local-repository -DactTransitively=false -DreResolve=false -Dexcludes= alias mdparm=mvn dependency:purge-local-repository -DactTransitively=false -DreResolve=false -DmanualIncludes=

参考:

Windows Subsystem for Linux 环境配置 (最新 1709 版)

WSL+cmder+oh-my-zsh美化win10命令工具(terminal)

zsh+on-my-zsh配置教程指南(程序员必备)【已备份】

robbyrussell / oh-my-zsh

在WSL中安装zsh终端的更多相关文章

  1. ubuntu安装zsh终端

    搬砖博文:https://blog.csdn.net/lxn9492878lbl/article/details/80795413 1.安装zsh sudo apt-get install zsh 2 ...

  2. [后端及服务器][WSL2(Ubuntu)+Docker]从零开始在WSL中安装Docker

    目录 简介 WSL 安装 开启虚拟化(BIOS) 检查系统版本 安装WSL 老版本安装详情 简介 想花三篇文章写下从Windows(WSL)上开启Docker部署php/node/vue/html等项 ...

  3. CentOS 7.x 安装 ZSH 终端

    一.安装基本组件 首先执行 yum 命令来安装需要的 zsh 原始程序与 git 程序来 pull 代码. yum install -y zsh git 安装 oh my zsh 脚本 (这一步需要安 ...

  4. 在WSL中安装和运行Docker CE

    安装环境 Windows 10 64bit 专业版 1809 WSL安装ubuntu 18.04 LTS DOCKER安装 安装过程没有什么问题,安装docker的网站说明进行安装https://do ...

  5. AD域的安装(在Windows Server 2003中安装Active Directory)

    在Active Directory中提供了一组服务器作为身份验证服务器或登录服务器,这类服务器被称作域控制器(Domain Controller,简称DC).建立一个AD域的过程实际就是在一台运行Wi ...

  6. wsl 下安装docker

    docker for windows本身其实是可以直接用的,但是仍然有很多不足,比如说:权限问题.没有docker.sock文件.文件编码问题等.而win10自带的wsl可以非常完美地解决这些问题. ...

  7. WSL中使用systemctl报错问题

    Windows10里面自带的wsl中安装docker后不支持systemctl命令.需要更换命令,用Sysvinit的命令代替systemd,命令如下: Systemd command Sysvini ...

  8. 2019.1.9 Mac安装Iterm2 终端(oh my zsh的安装与配置)

    Mac安装Iterm2 终端(oh my zsh的安装与配置) 安装 curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tool ...

  9. 在ubuntu中安装与配置zsh与oh-my-zsh

    先补充点东西 1.ubuntu中默认安装了那些shell jiang@Linux:~$ cat /etc/shells # /etc/shells: valid login shells/bin/sh ...

随机推荐

  1. 读《PMI 分析手册》

    目录 读<PMI 分析手册> 官方 PMI 基本概况 官方制造业 PMI 官方非制造业 PMI 综合 PMI 产出指数 PMI 分析框架 PMI 与经济周期 官方 PMI 分析 参考研报 ...

  2. Ognl 语法基础教程

    本文将力求用最简单的语言和实例,介绍一下 OGNL 的语法规则,文章主要内容参考自官方文档http://commons.apache.org/proper/commons-ognl/language- ...

  3. PHP微信发红包简明教程

    PHP微信发红包简明教程1首先进入公众号申请微信支付 申请成功账号密码会发到你指定的邮箱 是登陆商户平台的2 进入后申请发红包借口3 调用发红包接口 https://api.mch.weixin.qq ...

  4. mybatis:updatebyexample与updateByExampleSelective

    MyBatis,通常逆向工程工具生成接口和xml映射文件用于简单的单表操作. 有两个方法: updateByExample 和 updateByExampleSelective  ,作用是对数据库进行 ...

  5. Vue父组件如何调用子组件(弹出框)中的方法的问题

    如果子组件是一个弹出框,只有在触发某个点击事件时弹出框才能出现(也就是说在父组件中的子组件使用上用了v-if),那在父组件上如果不点击弹出框是不能获取到$ref的. 原因就是:引用指向的是子组件创建的 ...

  6. 小白的C++之路——求质数

    初学C++,打算用博客记录学习的足迹.写了两个求质数的程序,修修改改. #include <iostream> #include <math.h> using namespac ...

  7. FastReport 程序员手册

    一.使用TfrxReport 组件工作1.加载并存储报表默认情况下,报表窗体同项目窗体构存储在同一个DFM文件中.多数情况下,无须再操作,因而你就不必采用特殊方法加载报表.如果你决定在文件中存储报表窗 ...

  8. Java学习:switch语句使用的注意事项

    switch语句使用的注意事项: 多个case后面的数值不可以重复. switch后面的小括当中只能是下列数据类型: 基本数据类型:byte/short/char/int 引用数据类型:String字 ...

  9. 总结:WPF中ResourceDictionary资源文件的查找和遍历方法

    原文:总结:WPF中ResourceDictionary资源文件的查找和遍历方法 一.查找包含制定关键字的资源 ResourceDictionary GetThemeDictionary()     ...

  10. (原创)C#操作MYSQL数据库

    应用程序对数据库的操作都是只有4个:增,删,改,查. 只有”查”的操作需要使用适配器来存储查询得到的数据.其它3个操作不需要用到适配器. 不同的数据库有共同操作方法:都要建立连接对象,连接对象要有连接 ...