功能

以下是oh-my-zsh部分功能:

  • 命令验证
  • 在所有正在运行的shell中共享命令历史记录
  • 拼写纠正
  • 主题提示(Agnoster,RobbyRussell,…)
  • 目录历史
  • 通过zshenv,zprofile,zshrc,zlogin和zlogout启动/关闭脚本
  • 强大的自动完成功能。您可以使用TAB键浏览不同的选项,然后使用enter键选择正确的文件夹。例如Bash会打印所有选项。
  • 添加插件:例如Git插件包含大量有用的Git别名。 此插件显示活动分支并提供有关Git状态的可视反馈

安装

  1. 安装zsh
sudo apt-get install zsh
  1. 根据官方脚本安装Oh-My-Zsh
# 通过curl
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
  1. 安装Powerline字体以使用图标为CLI增添趣味
$ sudo apt install fonts-powerline
  1. 将主题从’robbyrussell’改为’agnoster’为传奇的Oh-My-Zsh主题
vim ~/.zshrc

想要看到修改后的主题结果,执行下面命令

source ~/.zshrc
  1. 现在的主题提示信息太长了,我们去掉用户名和主机名

  1. 修改默认shell,这样下次打开Terminal的时候就默认使用zsh而不是bash
$ chsh -s $(which zsh)

插件

所有插件都列在Plugins,自定义插件可以安装在〜/.oh-my-zsh/custom/plugins中。要使用插件,只需将其添加到〜/.zshrc文件中的插件列表即可。明智地添加,因为太多的插件会减慢shell的启动速度。插件之间使用空格分割。

zsh-autosuggestions

您还可以使用zsh-autosuggestions来完成命令。它根据您的命令历史记录建议命令。很有用!要选择建议的命令,请按向右箭头键。


zsh-syntax-highlighting

提供shell的语法高亮。除此之外,此插件还能够验证命令的正确性.

# 安装
cd ~/.oh-my-zsh/custom/plugins
git clone https://github.com/zsh-users/zsh-syntax-highlighting

# 配置
# 添加到.zshrc配置文件中的plugins中
vim ~/.zshrc

# 例子
plugins=(
  git
  autojump
  colored-man-pages
  zsh-syntax-highlighting
  extract
  emoji
  tmux
  zsh-autosuggestions
)

autojump

autojump可以实现快速跳转到目标目录

tmux

这个插件为 tmux,提供缩写.

要使用它,请将tmux添加到zshrc文件中的plugin array中。

plugins=(... tmux)

这个插件同时支持以下几个特性

  • 确定是否安装tmux,如果没有,提示用户安装tmux
  • 确定终端是否支持256色,设置相应的配置变量
  • 设置要使用的正确的本地配置文件

Aliases

Alias Command Description
ta tmux attach -t Attach new tmux session to already running named session
tad tmux attach -d -t Detach named tmux session
ts tmux new-session -s Create a new named tmux session
tl tmux list-sessions Displays a list of running tmux sessions
tksv tmux kill-server Terminate all running tmux sessions
tkss tmux kill-session -t Terminate named running tmux session
tmux _zsh_tmux_plugin_run Start a new tmux session

Configuration Variables

Variable Description
ZSH_TMUX_AUTOSTART Automatically starts tmux (default: false)
ZSH_TMUX_AUTOSTART_ONCE Autostart only if tmux hasn’t been started previously (default: true)
ZSH_TMUX_AUTOCONNECT Automatically connect to a previous session if it exits (default: true)
ZSH_TMUX_AUTOQUIT Automatically closes terminal once tmux exits (default: ZSH_TMUX_AUTOSTART)
ZSH_TMUX_FIXTERM Sets $TERM to 256-color term or not based on current terminal support
ZSH_TMUX_ITERM2 Sets the -CC option for iTerm2 tmux integration (default: false)
ZSH_TMUX_FIXTERM_WITHOUT_256COLOR $TERM to use for non 256-color terminals (default: screen)
ZSH_TMUX_FIXTERM_WITH_256COLOR $TERM to use for 256-color terminals (default: screen-256color
ZSH_TMUX_CONFIG Set the configuration path (default: $HOME/.tmux.conf)
ZSH_TMUX_UNICODE Set tmux -u option to support unicode

extract plugin

This plugin defines a function called extract that extracts the archive file
you pass it, and it supports a wide variety of archive filetypes.

This way you don’t have to know what specific command extracts a file, you just
do extract <filename> and the function takes care of the rest.

To use it, add extract to the plugins array in your zshrc file:

plugins=(... extract)

Supported file extensions

Extension Description
7z 7zip file
Z Z archive (LZW)
apk Android app file
aar Android library file
bz2 Bzip2 file
deb Debian package
gz Gzip file
ipsw iOS firmware file
jar Java Archive
lrz LRZ archive
lz4 LZ4 archive
lzma LZMA archive
rar WinRAR archive
rpm RPM package
sublime-package Sublime Text package
tar Tarball
tar.bz2 Tarball with bzip2 compression
tar.gz Tarball with gzip compression
tar.lrz Tarball with lrzip compression
tar.lz Tarball with lzip compression
tar.lz4 Tarball with lz4 compression
tar.xz Tarball with lzma2 compression
tar.zma Tarball with lzma compression
tar.zst Tarball with zstd compression
tbz Tarball with bzip compression
tbz2 Tarball with bzip2 compression
tgz Tarball with gzip compression
tlz Tarball with lzma compression
txz Tarball with lzma2 compression
tzst Tarball with zstd compression
war Web Application archive (Java-based)
xpi Mozilla XPI module file
xz LZMA2 archive
zip Zip archive
zst Zstandard file (zstd)

See list of archive formats for
more information regarding archive formats.

其他

Oh-My-Zsh会自动记住您访问过的最后20个目录。您可以使用dirs -v或d来按时间顺序列出历史记录。

您可以使用cd +1转到上一个目录,依此类推,我们还可以直接输入数字进行跳转到对应的目录.

d # 列出历史目录
d 0 # 跳转至历史目录第一个
d +1 # 上一个目录
take test_folder # 创建一个文件夹并进入这个文件夹,效果和下面类似
mkdir test_folder && cd test_folder
take folder1/folder2/folder3
x # 解压tar, bz2, rar, gz, tbz2, tgz, zip, Z, 7z各种压缩文件

参考

github原项目


我很好奇