更优雅地使用命令行

更优雅地使用命令行

工欲善其事,必先利其器,通过武装自己的命令行工具,从而更优雅地使用命令行,可以使工作更加高效并且有趣。本文将以下几个方面来介绍命令行的使用技巧和提效工具

CLI 一键呼入呼出

iterm2 是一款完全免费,为 MacOS 打造的终端工具,特色功能是可以开启热键窗口,达到一键呼入呼出的效果

效果如下:

更优雅地使用命令行

详细设置如下:

1、首先,进行如下设置

preferences > Keys > HotKey > Create a Dedicated Hotkey Window...

更优雅地使用命令行

2、接着,设置热键,并选择 Animate showing and hidingFloating window 这两个选项

更优雅地使用命令行

zsh

目前常用的 Linux 系统和 OS X 系统的默认 Shell 都是 bash。 oh my zsh 是强化版的 Shell

如果是 Mac OS,默认应该自带了 zsh 了,安装之前可以确认一下

cat /etc/shells

List of acceptable shells for chpass(1).

Ftpd will not allow users to connect who are not using
one of these shells.

/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh

通过如下命令,可以查看当前环境的 shell

echo $SHELL

可以使用如下的命令进行 shell 切换,要特别注意的是,切换 shell 后,重启 CLI 才能生效

chsh -s /bin/bash # 切换bash
chsh -s /bin/zsh # 切换zsh

接下来,开始安装 oh-my-zsh,要特别注意的是,不能使用官网的地址进行安装,否则会提示

Failed to connect to raw.github.com port 443: Connection refused

而应该用如下的地址进行安装

$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

安装完成后,会提示是否将 zsh 设置为默认 shell,选择 Y

Time to change your default shell to zsh:
Do you want to change your default shell to zsh? [Y/n] y
Changing the shell...

Changing shell for root.

Shell successfully changed to '/bin/zsh'.

         __                                     __
  ____  / /_     ____ ___  __  __   ____  _____/ /_
 / __ \/ __ \   / __ __ \/ / / /  /_  / / ___/ __ \
/ /_/ / / / /  / / / / / / /_/ /    / /_(__  ) / / /
\____/_/ /_/  /_/ /_/ /_/\__, /    /___/____/_/ /_/
                        /____/                       ....is now installed!

Please look over the ~/.zshrc file to select plugins, themes, and options.

p.s. Follow us on https://twitter.com/ohmyzsh

p.p.s. Get stickers, shirts, and coffee mugs at https://shop.planetargon.com/collections/oh-my-zsh
</code></pre>
<p>下面简单介绍下 <code>oh-my-zsh</code> 的优点</p>
<p>1、主题提示信息从用户名和主机名变成了当前目录的名称</p>
<p>2、按 tab 键补全,不仅可以补全命令,也可以补全选项、参数、文件等</p>
<p>3、跳转路径可省略 cd 命令,并可进行路径的首字符匹配</p>
<pre><code>c/k/k/t/c
</code></pre>
<p>按下 tab 键之后,会自动补全为如下路径</p>
<pre><code>code/ktsg/ktsg_new/trunk/config
</code></pre>
<p>4、当前所在目录下直接输入 d ,将会展示出历史访问目录列表(最近20个),并且左侧加了数字索引</p>
<pre><code>$ d
0   ~/Desktop/md/blog
1   ~/Desktop/md
2   ~/Desktop
3   ~
</code></pre>
<h3>别名配置</h3>
<p>使用 git 别名配置,可以让 git 体验更简单</p>
<p>可以通过 <code>git config</code> 命令来为命令 <code>git branch</code> 设置一个别名</p>
<pre><code>$ git config --global alias.b branch
</code></pre>
<p>这意味着,当要输入 <code>git branch</code> 时,只需要输入 <code>git b</code> 就好了</p>
<p>更简单的方式,是直接编辑 <code>~/.gitconfig</code> 文件,可以达到相同的效果</p>
<pre><code>[alias]
b = branch
</code></pre>
<p>但如果只想输入 <code>gb</code>,就想实现 <code>git branch</code> 相同的效果,则需要使用 linux 的别名功能</p>
<p>实际上, <code>zsh</code> 已经默认设置了 git 的插件,文件路径如下</p>
<pre><code>.oh-my-zsh/plugins/git/git.plugin.zsh
</code></pre>
<p>下面是一些常用的配置</p>
<pre><code>alias g='git'
alias ga='git add'
alias gb='git branch'
alias gc='git commit -v'
alias gca='git commit -v -a'
alias gcam='git commit -a -m'
alias gcb='git checkout -b'
alias gcmsg='git commit -m'
alias gco='git checkout'
alias gd='git diff'
alias gl='git pull'
alias glog='git log --oneline --decorate --graph'
alias gloga='git log --oneline --decorate --graph --all'
alias gp='git push'
alias gsb='git status -sb'
alias gst='git status'
</code></pre>
<p>使用 <code>gst</code> 的效果如下</p>
<pre><code>$ gst
On branch master
Your branch is up to date with 'origin/master'.

Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    new file:   html_backup.md
    new file:   t.html
</file>
</code></pre>
<h3>homebrew</h3>
<p>brew 又叫 <code>homebrew</code>,是 Mac 上的软件包管理工具,可以在 Mac 中方便的安装或者卸载软件</p>
<p>下面是 <code>homebrew</code> 的常用命令</p>
<pre><code>brew install git # 安装
brew uninstall wget # 卸载
brew list # 列出已安装的软件
</code></pre>
<h3>插件推荐</h3>
<p>下面是一些插件推荐,插件安装完成后,需要打开 <code>~/.zshrc</code>,找到 <code>plugins=</code>,然后在里面写需要的插件名。只要修改了此文件,要使用 <code>source ~/.zshrc</code> 来更新配置</p>
<h4>快速跳转</h4>
<p><code>autojump</code> 插件实现了目录间快速跳转,想去哪个目录直接 <code>j + 目录名</code>,不用再频繁的 <code>cd</code> 了</p>
<p>使用 <code>autojump</code> 命令,或使用短命令 <code>j</code> 来跳转到指定目录。要注意的是,只有打开过的目录插件才会记录。所以,使用时间越长,插件才越智能</p>
<pre><code>j directoryName
</code></pre>
<p><img alt="" src="https://pic.xiaohuochai.site/blog/zsh/zsh_02.png" /></p>
<p>安装如下:</p>
<pre><code>brew install autojump
</code></pre>
<p>然后在 <code>.zshrc</code> 文件中添加如下语句</p>
<pre><code>[[ -s  --prefix/etc/autojump.sh ]] && .  --prefix/etc/autojump.sh
</code></pre>
<h4>命令提示</h4>
<p>使用 <code>zsh-autosuggestions</code> 插件可以在输入命令时提示自动补全(灰色部分),然后按键盘方向右键,即可补全</p>
<p><img alt="" src="https://pic.xiaohuochai.site/blog/zsh/zsh_01.png" /></p>
<p>安装如下:</p>
<pre><code>cd ~/.oh-my-zsh/custom/plugins/
sudo git clone https://github.com/zsh-users/zsh-autosuggestions
</code></pre>
<h4>语法高亮</h4>
<p>使用 <code>zsh-syntax-highlighting</code> 插件,日常用的命令会高亮显示,命令错误显示红色</p>
<p><img alt="" src="https://pic.xiaohuochai.site/blog/zsh/zsh_03.png" /></p>
<p>安装如下:</p>
<pre><code>cd ~/.oh-my-zsh/custom/plugins/
sudo git clone https://github.com/zsh-users/zsh-syntax-highlighting.git
</code></pre>
<h4>命令更正</h4>
<p>使用 <code>thefuck</code> 插件,可以用于命令纠正,输入 <code>fuck</code> 后,可以纠正前一条输错的命令</p>
<p><img alt="" src="https://pic.xiaohuochai.site/blog/zsh/zsh_fuck.png" /></p>
<p>安装如下:</p>
<pre><code>brew install thefuck
</code></pre>
<p>然后在 <code>.zshrc</code> 文件中添加如下语句</p>
<pre><code>eval $(thefuck --alias)
</code></pre>
<h4>搜索关键词</h4>
<p>使用 <code>web-search</code> 插件可以使用搜索引擎进行搜索,比如使用 <code>google</code> 或 <code>stackoverflow</code></p>
<pre><code>$ google oh-my-zsh # 使用 google 搜索 oh-my-zsh
$ stackoverflow oh-my-zsh # 使用 stackoverflow 搜索 oh-my-zsh
</code></pre>
<p><img alt="" src="https://pic.xiaohuochai.site/blog/zsh/zsh_web_seartch.gif" /></p>
<p>该插件不需要安装,直接在 <code>zshrc</code> 文件中的 <code>plugins</code> 中添加即可</p>
<h4>打开远程仓库</h4>
<p>使用 <code>git-open</code> 插件,输入 <code>git open</code> 就能够在浏览器中打开一个仓库的 <code>github</code> 页面</p>
<p><img alt="" src="https://pic.xiaohuochai.site/blog/zsh/git_open.gif" /></p>
<p>安装如下:</p>
<pre><code>cd ~/.oh-my-zsh/custom/plugins/
sudo git clone https://github.com/paulirish/git-open.git $ZSH_CUSTOM/plugins/git-open
</code></pre>
<h4>快捷搜索</h4>
<p><code>fzf</code> 插件是一个通用的命令行模糊搜索工具,依靠模糊的关键词,可以快速定位文件</p>
<p>通过 <code>code $(fzf)</code> 命令可以进行文件搜索</p>
<p><img alt="" src="https://pic.xiaohuochai.site/blog/zsh/fzf.gif" /></p>
<p>安装如下:</p>
<pre><code>brew install fzf
</code></pre>
<h4>翻译</h4>
<p><code>translate shell</code> 是一款默认借助谷歌翻译来进行翻译的命令行翻译器</p>
<p>使用 <code>trans</code> 命令可以进行翻译,加上 <code>-sp</code>选项(speak的简写)同时也可以发音</p>
<p><img alt="" src="https://pic.xiaohuochai.site/blog/zsh/trans.gif" /></p>
<p>安装如下:</p>
<pre><code>brew install translate-shell
</code></pre>
<h4>插件配置</h4>
<p>上面的插件安装完成后, <code>.zshrc</code> 文件的插件部分的相关配置如下</p>
<pre><code>plugins=(
    git
    web-search
    autojump
    zsh-syntax-highlighting
    zsh-autosuggestions
    git-open
    fzf
)

autojump
[[ -s  --prefix/etc/autojump.sh ]] && .  --prefix`/etc/autojump.sh

thefuck
eval $(thefuck --alias)

Original: https://www.cnblogs.com/xiaohuochai/p/12169113.html
Author: 小火柴的蓝色理想
Title: 更优雅地使用命令行

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/547349/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球