使用终端是您作为开发人员的日常工作中获得的最大的生产率提升之一。如果您知道快捷方式,您将比使用鼠标更快。在本文中,我想向您展示我的终端设置以及我每天如何使用它。封面图片显示了我当前的设置。
我是macOS用户,因此本文主要关注此操作系统,但我演示的大多数软件也适用于Windows和Linux用户。
安装自制软件
Homebrew是macOS(或Linux)缺少的软件包管理器,使安装软件包超级容易。
要将其安装在macOS上,只需在终端中粘贴以下命令:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
之后,您应该可以运行brew,可以通过brew -v在终端中运行来检查安装是否成功:
▶ brew -v
Homebrew 2.2.4
Homebrew/homebrew-core (git revision 22532; last commit 2020-01-31)
Homebrew/homebrew-cask (git revision 19d828; last commit 2020-01-31)
iTerm2
我建议用iTerm2替换Terminal.appmacOS中的默认值。
您可以使用安装它brew:
brew install --cask iterm2
iTerm的一些最佳功能:
- 将您的终端分成多个窗格,您可以通过热键进行切换
- 注册一个热键,使您在另一个应用程序中时将终端带到前台
- 强大的页面查找功能
- 不同的用户配置文件可保存您的窗口安排等
- 粘贴历史记录,显示您已粘贴到终端的所有内容
- 和更多
ZSH和Oh My ZSH
从macOS Catalina(10.15.2)开始,默认外壳现在为ZSH而不是Bash。您可以使用Oh My ZSH框架来丰富ZSH,该框架提供了一些可提高生产率的功能:
- 通过Tab按键进行自动补全,可以选择可用的目录,命令和文件。
- 使用别名命令,您可以通过
alias
在终端中运行来获取所有可用别名的列表 - 您可以省略
cd
(更改目录)命令:(..
代替cd ..
),../..
(代替cd ../..
)/
(对于根目录)和~
(对于主目录) take
命令创建一个新目录并更改其路径。示例:take testFolder
与mkdir testFolder && cd testFolder
- 使用
-
你的上一次与当前路径之间快速导航 - 许多很酷的主题
- 令人惊叹的插件列表
- Git集成
- 还有很多…
您可以使用以下终端命令安装它:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Oh My ZSH
可以通过.zshrc
配置文件进行配置:
vi ~/.zshrc
我的.zshrc
配置看起来与此类似:
# If you come from bash you might have to change your $PATH.
export PATH=$HOME/bin:/usr/local/bin:$PATH
export JAVA_HOME="/Library/Java/JavaVirtualMachines/openjdk-11.0.2.jdk/Contents/Home/"
# jenv
export PATH="$HOME/.jenv/bin:$PATH"
eval "$(jenv init -)"
# Path to your oh-my-zsh installation.
export ZSH=/Users/mhoffman/.oh-my-zsh
# Set name of the theme to load. Optionally, if you set this to "random"
# it'll load a random theme each time that oh-my-zsh is loaded.
# See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
ZSH_THEME="avit"
# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
plugins=(
git
brew
docker
npm
osx
bgnotify
zsh-syntax-highlighting
zsh-autosuggestions
web-search
)
source $ZSH/oh-my-zsh.sh
# Set personal aliases, overriding those provided by oh-my-zsh libs,
# plugins, and themes. Aliases can be placed here, though oh-my-zsh
# users are encouraged to define aliases within the ZSH_CUSTOM folder.
# For a full list of active aliases, run `alias`.
alias zshconfig="nano ~/.zshrc"
alias ohmyzsh="nano ~/.oh-my-zsh"
alias gpf='git push -f'
# Docker alias
alias dkps="docker ps"
alias dkst="docker stats"
alias dkpsa="docker ps -a"
alias dkimgs="docker images"
alias dkcpup="docker-compose up -d"
alias dkcpdown="docker-compose down"
alias dkcpstart="docker-compose start"
alias dkcpstop="docker-compose stop"
# Kubectl alias
alias kdev='kubectl -n dev'
alias kpg='kubectl -n playground'
alias ktest='kubectl -n test'
alias kprod='kubectl -n prod'
alias kpreprod='kubectl -n preprod'
关于使用过的插件的一些话,在这里您可以找到所有可用Oh My ZSH
插件的列表:
- git:提供了许多别名和一些有用的功能的git。
- brew:为常用的brew命令添加几个别名。
- docker:为docker添加自动完成功能。
- npm:提供完成功能,并为npm添加许多有用的别名。
- osx:为OSX提供了一些实用程序。
- bgnotify:长期运行命令的跨平台后台通知
- 网络搜索:添加用于通过Google,Wiki,Bing,YouTube和其他流行服务进行搜索的别名。
- zsh-autosuggestions:根据历史记录和完成情况建议输入命令
- zsh-syntax-highlighting:为shell zsh提供语法高亮显示,红色表示无效,绿色表示有效命令:
使用素材主题
我真的很喜欢Material Design,所以由于这个iTerm2配色方案,我也在iTerm中使用了它。可以在此处找到安装说明。
结果应类似于我的终端:
使用最小主题
选择“最小主题”以使界面更干净,标签更小,如上面的屏幕快照所示:
将字体更改为Cascadia字体
我在iTerm中使用Microsoft的Cascadia字体。在操作系统上安装字体后,需要在iTerm配置文件中选择它作为字体:
良好的CLI工具
在本章中,我想演示一些我经常在终端中使用的CLI工具,这些工具可以大大提高您的生产率:
- lazygit:git命令的简单但令人惊奇的终端UI
- HTTPie:命令行HTTP客户端,具有直观的UI,JSON支持,语法突出显示,类似wget的下载,插件等,我经常使用它们代替诸如Postman或Insomnia之类的图形程序
- htop:“用于Unix系统的交互式进程查看器”,我用它代替了macOS
Activity Monitor.app
- Midnight Commander:视觉文件管理器
- tree:以树状格式列出目录的内容
- bat:cat具有语法高亮和Git集成的克隆
免费课程
如果您想了解有关ZSH的更多信息,我强烈推荐Wes Bos提供免费的Command Line Poweruser课程。
结论
我仍处于航站楼旅程的开始,但到目前为止我真的很喜欢。更加频繁地使用终端,可以减少握住鼠标的时间,并且使用CLI可以比使用图形界面更快地完成许多操作。当然,即使您只是浏览目录,您看起来也很酷。
让我知道您正在使用哪些有用的CLI工具以及可以与我和社区分享哪些生产力提示。
参考
https://www.mokkapps.de/blog/boost-your-productivity-by-using-the-terminal-iterm-and-zsh/