使用 ohmyzsh 打造 windows、ubuntu、mac 系统高效终端命令行工具

如果觉得内容不错,可以设为星标置顶我的公众号

原标题名:oh my zsh 和 windows git bash 设置别名提高效率

写于2018年06月03日

在我的微信交流群中听闻很多前端开发比较贫穷,没有买mac电脑(比如我),也没有用过ohmyzsh。于是就有了这篇写于2018年文章的更新。

这篇文章没啥难度,很快就能看完,主要还是希望读者你看完后可以安装开始使用高效终端工具。有了这么强大的终端工具后我发现Windows很好用呀,瞬间感觉都不需要买mac了。

主要就是:

  • 利用Windowslinux子系统功能

  • 安装Ubuntu系统,安装ohmyzsh和一些插件

  • 安装windows Terminal工具

  • 安装vscode remote-wsl插件

  • 安装 tig 查看 git 记录

先看下效果。反正我用了ohmyzsh后,离不开了。

最终终端效果

windows 安装 Ubuntu 子系统 安装 windows Terminal

搜索启用或关闭 windows 功能,勾选适用于 LinuxWindows 子系统,确定后重启电脑。

搜索 Ubuntuwindows Terminal 并安装(windows Terminal 可能要求win10系统比较高的版本,一般更新到最新版本即可)

Ubuntu安装好后会要求设置用户名和密码。

搜索 启用或关闭 windows 功能
勾选 适用于 Linux 的 Windows 子系统
搜索 Ubuntu

建议安装最新版 Ubuntu 20.04

Windows Terminal

win10安装了ubuntu子系统和oh my zsh后,则可以通过/mnt/f/访问win10下的f盘,或者其他盘。也就有上面的pwd效果图。

安装 vscode remote-wsl 插件

下载安装vscode,并且安装remote-wsl插件。

vscode remote-wsl 插件

安装 oh my zsh

简述下oh my zshoh my zsh官网的安装方法。github ohmyzsh

安装oh my zsh部分适用于Ubuntumac系统。

echo $SHELL
# /bin/bash 默认是bash
# 查看下有哪些shells
cat /etc/shells
# 安装 zsh
sudo apt-get install zsh -y
# 查看zsh版本
zsh --version
# 5.1.1
# 安装后zsh 后cat /etc/shells 才有/bin/zsh /usr/bin/zsh# 切换成zsh
chsh -s $(which zsh)
# 或者这条命令
# chsh -s /usr/bin/zsh
# 三种安装方案可供选择:
# Via curl
$ sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"# Via Wget
$ sh -c "$(wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"# 如果上面两种情况还安装不了,可以使用如下方式。# via git clone
git clone https://github.com/ohmyzsh/ohmyzsh.git ~/.oh-my-zsh
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
chsh -s $(which zsh)
# 打开新的终端会应用新的zshrc配置

如果以上三种方式还装不了,可以来找我(若川 微信ruochuan12)。也可以查看oh my zsh文档

安装成功后,配置信息会在~/.zshrc。可以通过code ~/.zshrc(如果没安装vscode,可以用vim ~/.zshrc)打开编辑zsh配置信息,可以看到默认配置了git 插件Plugin:git。也就是说,可以更加简便的使用git 相关的一些别名。

# 比如
`git status`时,只需要输入`gst`。
`git pull` 时,只需要输入`gl`。
`git push` 时,只需要输入`gp`等等。

是因为配置里有这些简写,还有更多可以查看这里oh my zsh plugin git.plugin.zsh文档配置,github oh my zsh plugin git.plugin.zsh文件地址。安装成功后,同时会创建~/.oh-my-zsh的文件夹,其实就是.oh-my-zshgit 仓库master分支。可以发现文件夹中有一个plugins文件夹,内置了很多插件。可以自定义主题theme,具体可以看example.zsh-theme。custom自定义相关。插件相关会安装在这里,更多可以查看example.plugin.zsh

我暂时安装了这几个插件。

plugins=(# 内置插件,启用即可gitcpmv# 按两下esc键,用sudo权限sudo# 记录历史输入的zsh命令,自动提示,快速使用zsh-autosuggestions# zsh 命令高亮zsh-syntax-highlighting
)

顺带讲下后面两个插件的安装方法 安装 zsh-autosuggestions

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

安装zsh-syntax-highlighting

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting

$ZSH_CUSTOM 其实是个变量,代表这个路径~/.oh-my-zsh/custom, 也就是安装到了这个目录下。还有很多高效插件,等您发掘~oh my zsh官网不过插件安装多了,感觉会有些卡顿~

# 每次修改了这个`.zshrc`配置文件,需要重载一下,才能生效。
source .zshrc
# 也可以封装成一个简写命令 alias
alias rl='source ~/.zshrc'

也可以在这个配置文件中配置更多alias

# ~/.zshrc
# 比如跳转到工作目录
alias dgg='cd /mnt/f/git-source/github'
# vscode 打开要编辑的文件或文件夹
code blog

这也就是开头的效果图了。

最终终端效果

那不是win10,也想通过设置别名来提高效率,是不是就没有办法了呢,可以使用git bash设置alias,安装git,自带git bash

windows git bash 设置别名提高效率

windows 桌面或任意资源管理器位置,右击,选择Git Bash Here,即打开了git bash命令行。先设置下主题,右击选择options, Looks > theme > dracula我选择的是dracula主题,看起来比较舒适。还可以设置字体等。

# 跳转到根路径
cd ~
# 查看下是否有.bash_profile文件
la
# 如果没有.bash_profile文件,需要创建
touch .bash_profile
# 打开编辑 (我这里安装了vscode,所以直接用其打开文件)
code .bash_profile

可以根据修改设置一些别名。比如我们常用的git status命令,可以封装成gst。清屏clear命令封装成cls

alias gst='git status'
alias cls='clear'

每次修改这个文件需要输入source ~/.bash_profile重载这个文件,才会生效。code ~/.bash_profile,用vscode编辑这个配置文件,封装成一个命令。比如:

alias rl='source ~/.bash_profile'
alias bashconfig='code ~/.bash_profile'

这样每次修改保存后就只需要输入rl,即可重载生效了。还可以把一些工作目录封装,我的一些项目是放在/f/git-source/github文件下。

# github上的项目
alias dgg='cd F:/git-source/github'
# 周报相关
alias dcwk='cd F:/git-source/coding/weekly'

每次进入项目,就直接dgg,即可跳转到这个目录,然后选择相应的目录即可。比如dgg进入工作目录,cd analyse-vue-cli进入项目目录,(输入analtab键智能提示)

#  /f/git-source/github/analyse-vue-cli (dev)
# 查看状态 git status
gst
# 用vscode 打开这个文件夹,开始编辑~
code ./

git 相关的, 例举一些平时用的比较多的。

alias g='git'
alias ga='git add'
alias gaa='git add -all'
alias gp='git push'
alias gl='git pull'
alias gcmsg='git commit -m'
# 分支相关
alias gb='git branch'
alias gbr='git branch -r'
alias gba='git branch -a'
# checkout
alias gco='git checkout'
alias gcb='git checkout -b'
# merge
alias gm='git merge'
# diff
alias gd='git diff'
alias gdw='git diff --word-diff'

更多可以把oh my zsh的插件一些命令拷贝过来,留alias相关的即可,oh my zsh plugin git.plugin.zshPlugin:git wiki相当于解锁了oh my zshgit插件。还有很多插件,比如npm点击查看, node 等,都可以研究下。

git bash,有没有类似oh my zsh的插件呢,我暂时没发现,如果您知道,欢迎告诉我。目录相关的操作,也可以设置一些别名。比如:

# 回退到上一级
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
alias .....='cd ../../../..'
alias ......='cd ../../../../..'

更多别名可以自定义~windows上命令行工具还可以使用cmder点击查看cmder官网命令行工具。虽然我几年前就安装了,但发现还是git bash用的顺畅些,可能是我还不太习惯cmder。关于cmder配置相关,这里推荐晚晴幽草轩轩主的一篇文章:《Win下必备神器之Cmder》

也有cygwin,也是windows命令行工具,也可以安装on my zsh

当然,git也是可以设置别名的。

git设置别名,使用tig神器

# git status => git st
git config --global alias.st status

更多可以查看廖雪峰老师的这篇文章git 配置别名。不过可能大多数人不知道,他们可能用着可视化工具。我觉得可视化工具也是对git的一些封装,具体背后是什么命令,我们还是需要去了解熟悉的。命令行使用git,我推荐使用tiggit log增强版,性能很好。Ubuntulinuxmac可以直接安装,windows稍微麻烦些。具体安装方法查看tig github仓库中的官方安装文档,或者查看这篇文章:颠覆 Git 命令使用体验的神器 -- tig

小结

磨刀不误砍柴工,花时间折腾研究工具,有利于提高开发效率。

学习源码整体架构系列

1.学习 jQuery 源码整体架构,打造属于自己的 js 类库
2.学习 underscore 源码整体架构,打造属于自己的函数式编程类库
3.学习 lodash 源码整体架构,打造属于自己的函数式编程类库
4.学习 sentry 源码整体架构,打造属于自己的前端异常监控SDK
5.学习 vuex 源码整体架构,打造属于自己的状态管理库
6.学习 axios 源码整体架构,打造属于自己的请求库
7.学习 koa 源码的整体架构,浅析koa洋葱模型原理和co原理
8.学习 redux 源码整体架构,深入理解 redux 及其中间件原理

一般人都看不到文章末尾,看到这里你已经超越90%的人了。

  1. 觉得文章不错,可以点个在看呀^_^另外欢迎留言交流~

  2. 加我(若川)微信ruochuan12,拉你进交流群,长期交流学习

  3. 关注我的公众号若川视野,回复pdf领取前端优质书籍pdf

  4. 我的博客地址:https://lxchuan12.cn 欢迎收藏

小提醒:若川视野公众号原创文章合集在菜单栏中间【原创精选】按钮,欢迎点击阅读。

由于公众号限制外链,点击阅读原文,或许阅读体验更佳

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/276451.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

request获取mac地址_【Go】获取用户真实的ip地址

原文链接:https://blog.thinkeridea.com/201903/go/get_client_ip.html用户请求到达提供服务的服务器中间有很多的环节,导致服务获取用户真实的 ip 非常困难,大多数的框架及工具库都会封装各种获取用户真实 ip 的方法,在 exnet 包…

iPhone开发四剑客之《Objective-C基础教程》

iPhone 开发四剑客之《Objective-C 基础教程》 Objective-C 语言是 C 语言的一个扩展集,许多(可能是大多数)具备 Mac OS X 外观的应用程序都是使用该语言开发的。它以 C 语言为基础,添加了一些微妙但意义重大的特性。 苹果公司为…

keras训练完以后怎么预测_还在使用“龟速”的单显卡训练模型?动动手,让TPU节省你的时间...

点击上方关注,All in AI中国本文将介绍如何使用Keras和Google CoLaboratory与TPU一起训练LSTM模型,与本地计算机上的GPU相比,这样训练能大大缩短训练时间。很长一段时间以来,我都在单张GTX 1070显卡上训练我的模型,它的…

手把手教你写个小程序定时器管理库

背景凹凸曼是个小程序开发者,他要在小程序实现秒杀倒计时。于是他不假思索,写了以下代码:Page({init: function () {clearInterval(this.timer)this.timer setInterval(() > {// 倒计时计算逻辑console.log(setInterval)})}, })可是&…

[New Portal]Windows Azure Virtual Machine (14) 在本地制作数据文件VHD并上传至Azure(1)

《Windows Azure Platform 系列文章目录》 之前的内容里,我介绍了如何将本地的Server 2012中文版 VHD上传至Windows Azure,并创建基于该Server 2012 VHD的虚拟机。 我们知道,VHD不仅仅可以保存操作系统,而且可以保存数据文件。 如…

python 退出程序_Python:用Ctrl+C解决终止多线程程序的问题!(建议收藏)

前言:今天为大家带来的内容是Python:用CtrlC解决终止多线程程序的问题!文章中的代码具有不错的参考意义,希望在此能够帮助到各位!(多数代码用图片的方式呈现出来,方便各位观看与收藏)出发点:前段时间&#…

若川知乎高赞:有哪些必看的 JS 库?

欢迎星标我的公众号,回复加群,长期交流学习我的知乎回答目前2w阅读量,270赞,现在发到公众号声明原创。必看的js库?只有当前阶段值不值看。我从去年7月起看一些前端库的源码,历时一年才写了八篇《学习源码整…

基于EasyUI的Web应用程序及过去一年的总结

前言 一个多月之前已经提交了离职申请,好在领导都已经批准了,过几天就办理手续了,在此感谢领导的栽培与挽留,感谢各位同事在工作中的给我的帮助,离开这个团队确实有一些不舍,不为别的,只因为这个…

快速使用Vue3最新的15个常用API

之前我写了一篇博客介绍了Vue3的新特性,简单了解了一下Vue3都有哪些特色,并且在文末带大家稍微体验了一下Vue3中 Compsition API 的简单使用上一篇文章地址:紧跟尤大的脚步提前体验Vue3新特性,你不会还没了解过Vue3吧因为这个月的…

超级马里奥代码_任天堂的源码泄露,揭示超级马里奥的前世之生

被黑客盯上的任天堂任天堂遭到了史上最大规模的黑客攻击,Wii 完整源码、设计以及《宝可梦》多部作品的信息遭到泄露,而此次泄露事件的后续影响似乎也爆发了出来。《马里奥赛车》和《超级马里奥世界2》(耀西岛)的早期原型视频,以及《超级马里奥…

漫画 | 前端发展史的江湖恩怨情仇

时间总是过得很快, 似乎快得让人忘记了昨天,前端WEB领域的发展更是如此,转眼间已是近30年,时光荏苒,初心不变,在一代又一代前端人的努力下,前端已经是互联网不可或缺的一部分。然而很多前端打工…

10 个你可能还不知道 VS Code 使用技巧

经常帮一些同学 One-on-One 地解决问题,在看部分同学使用 VS Code 的时候,有些蹩脚,实际上一些有用的技巧能够提高我们的日常工作效率。NO.1一、重构代码VS Code 提供了一些快速重构代码的操作,例如:将一整段代码提取为…

构建安全的Xml Web Service系列之如何察看SoapMessage

上一篇文章地址:构建安全的Xml Web Service系列一之初探使用Soap头 (5-22 12:53) 要分析Xml Web Service的安全性,首先要解决的问题是我们能了解和清楚Soap消息的格式和内容,如果获得不了SoapMessage,分析如何能构建安全Xml w…

前端高效开发必备的 js 库梳理

之前有很多人问学好前端需要学习哪些 js 库, 主流框架应该学 vue 还是 react ? 针对这些问题, 笔者来说说自己的看法和学习总结.首先我觉得在学习任何知识之前必须要有一个明确的学习目标, 知道自己为什么要学它, 而不是看网上说的一股脑的给你灌输各种知识, 让你学习各种库, …

交叉报表crosstab隐藏列名显示_SAP软件 报表查询之 输出格式设置

SAP不仅是功能强大、逻辑严谨的ERP软件,还提供了强大的报表查询功能。SAP的ALV报表展示功能是SAP的一大特点,实现了类似于EXCEL的功能。使用好ALV报表功能可以方便用户从SAP中取到想要的数据,尤其是财务用户。大家在使用SAP报表时&#xff0c…

seo每日一贴_白杨SEO:我看ZAC的外贸SEO应该怎样做?(策略篇)

前言:这是白杨SEO公众号更新第64篇。本该写写头条SEO啥的,最近在师徒培训讲站内SEO时有旁听同学提到后面讲讲谷歌SEO怎么样,因为谷歌全世界搜索市场占有率,所以外贸SEO最主要还是做谷歌SEO。以白杨特意又去了前辈ZAC的SEO每日一贴…

[转]网页栅格系统研究(2):蛋糕的切法

[出自]http://lifesinger.org/blog/2008/10/grid-system-2/首先澄清一个应用场景问题。研究(1)中指出,对于结构复杂的网站,不少设计师们喜欢采用960固定宽度布局。但要注意的是,960并不是万能钥匙,大部分网…

Vue3响应式原理

关注若川视野,回复"pdf" 领取资料,回复"加群",可加群长期交流学习本文结构- 关于Vue3- Vue2响应式原理回顾- Vue3响应式方案- Vue3响应式原理- 手写mini版Vue3响应式本文共计:2349字2图预计阅读时间&#xff…

找准切入点,调试看源码,事半功倍

关注若川视野,回复"pdf" 领取资料,回复"加群",可加群长期交流学习最近写了很多源码分析相关的文章,React、Vue 都有,想把我阅读源码的一些心得分享给大家。React:React 架构的演变 - 从…

Android布局大全

Android的界面是有布局和组件协同完成的,布局好比是建筑里的框架,而组件则相当于建筑里的砖瓦。组件按照布局的要求依次排列,就组成了用户所看见的界面。 所有的布局方式都可以归类为ViewGroup的5个类别,即ViewGroup的5个直接子类…