首页 技术 正文
技术 2022年11月10日
0 收藏 879 点赞 2,595 浏览 10571 个字

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-8alias 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:$PATHalias 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

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,491
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,907
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,740
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,492
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,132
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,293