oh-my-zsh使用篇

天涯浪子 提交于 2019-12-04 17:57:49

什么是Bash?

https://www.gnu.org/software/bash/manual/bash.html#What-is-Bash_003f

Bash是GNU操作系统的shell或命令语言解释器。这个名字是’Bourne-Again SHell’的缩写,是Stephen Bourne的双关语,他是当前Unix shell sh的直接祖先的作者,出现在第七版贝尔实验室研究版的Unix中。
Bash在很大程度上与sh兼容,并结合了Korn shell ksh和C shell csh的有用功能。它旨在成为IEEE POSIX规范(IEEE标准1003.1)的IEEE POSIX Shell和Tools部分的一致实现。它为交互式和编程使用提供了超过sh的功能改进。
虽然GNU操作系统提供其他shell,包括csh版本,但Bash是默认shell。像其他GNU软件一样,Bash非常便携。它目前几乎运行在每个版本的Unix和一些其他操作系统上 - 为MS-DOS,OS / 2和Windows平台提供独立支持的端口。

什么是Shell?

在它的基础上,shell只是一个执行命令的宏处理器。术语宏处理器意味着扩展文本和符号以创建更大表达式的功能。
Unix shell既是命令解释器又是编程语言。作为命令解释器,shell为丰富的GNU实用程序提供了用户接口。编程语言功能允许组合这些实用程序。可以创建包含命令的文件,并自己成为命令。这些新命令与/ bin等目录中的系统命令具有相同的状态,允许用户或组建立自定义环境以自动执行其常见任务。
Shell可以以交互方式或非交互方式使用。在交互模式下,它们接受键盘输入的输入。当以非交互方式执行时,shell执行从文件读取的命令。
shell允许同步和异步执行GNU命令。 shell在接受更多输入之前等待同步命令完成;异步命令在读取和执行其他命令时继续与shell并行执行。重定向结构允许对这些命令的输入和输出进行细粒度控制。而且,shell允许控制命令环境的内容。
Shell还提供了一小组内置命令(内置命令),这些命令实现了通过单独的实用程序获取不可能或不方便的功能。例如,cd,break,continue和exec不能在shell之外实现,因为它们直接操作shell本身。历史,getopts,kill或pwd builtins等可以在单独的实用程序中实现,但它们作为内置命令使用起来更方便。所有shell内置函数都将在后续章节中介绍。
虽然执行命令是必不可少的,但shell的大部分功能(和复杂性)都归功于它们的嵌入式编程语言。与任何高级语言一样,shell提供变量,流控制构造,引用和函数。
Shell提供专门用于交互式使用的功能,而不是增强编程语言。这些交互式功能包括作业控制,命令行编辑,命令历史记录和别名。本手册中描述了这些功能中的每一个。

什么是Zsh?

zsh:http://zsh.sourceforge.net/
zsh github地址
zsh主题地址
zsh插件地址
zsh扩展主题地址
zsh扩展插件地址
各系统安装zsh

Zsh是一个专为交互式使用而设计的shell,尽管它也是一种功能强大的脚本语言。 bash,ksh和tcsh的许多有用功能都被合并到zsh中;添加了许多原始功能。介绍性文档详细介绍了zsh的一些独特功能。它假定了标准UNIX shell的基本知识;目的是向读者展示已经熟悉其他主要shell之一的原因是什么使zsh更有用或更强大。这份文件并不全面;阅读手册条目以获得完整,简洁和最新的shell描述,尽管有点压倒性且缺乏示例。或者,用户指南提供了许多shell功能的冗长解释。

## 检查mac zsh版本zsh --version## 检查zsh是否是当前系统的默认shellecho $SHELL## 如果不是,如何设置默认shellchsh -s $(which zsh)


Mac安装zsh
Mac 设置oh-my-zsh

 

 

 

## 安装oh-my-zshcurl -L https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh | sh
plugins =(git osx macports)



主目录cd ~会创建.zshrc文件,用于配置zsh主题和指定插件
我的.zshrc文件配置在文章我的zsh .zhsrc配置文章中贴出。
最好安装以下三个插件

 

mac配置agnoster-zsh-theme主题
测试是否支持特殊字体:echo "\ue0b0 \u00b1 \ue0a0 \u27a6 \u2718 \u26a1 \u2699"

 

 

不支持这种字体则需要安装powerline
配色方案 Solarized:https://ethanschoonover.com/solarized/,资源下载然后双击安装到mac的命令行终端里。

 

 

比较舒服的配色:iterm2:profiles-color-dark ,zsh主题:amuse

 

 

 


我的oh-my-zsh .zshrc配置

# If you come from bash you might have to change your $PATH.
## 如果你从bash来,你可能需要改变你的$PATH变量,一些自己配置的应用程序环境变量
# 样例:export PATH=$HOME/bin:/usr/local/bin:$PATH
# scala环境配置例子
export PATH=$PATH:/usr/local/share/scala-2.10.6/bin
# mysql环境配置的例子
export PATH=/usr/local/mysql/bin:$PATH

# Path to your oh-my-zsh installation.
## oh-my-zsh的安装路径
export ZSH=$HOME/.oh-my-zsh

# Set name of the theme to load. Optionally, if you set this to "random"
## 设置要加载的主题,如果你设置random。表示可选的
# it'll load a random theme each time that oh-my-zsh is loaded.
## 它会在oh-my-zsh每次启动时,随机加载一个主题
# See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
## 参考上面的主题链接
ZSH_THEME="avit"

# Uncomment the following line to use case-sensitive completion.
## 取消注释行,使用区分大小写的命令补全
# CASE_SENSITIVE="true"

# Uncomment the following line to use hyphen-insensitive completion. Case
# sensitive completion must be off. _ and - will be interchangeable.
## 取消注释行使用连字符不敏感的补全。区分大小写的补全必须关闭。_和-是通用的
# HYPHEN_INSENSITIVE="true"

# Uncomment the following line to disable bi-weekly auto-update checks.
## 取消注释行来关闭每两周一次的自动检查更新
# DISABLE_AUTO_UPDATE="true"

# Uncomment the following line to change how often to auto-update (in days).
## 取消注释行来改变自动更新的天数
# export UPDATE_ZSH_DAYS=13

# Uncomment the following line to disable colors in ls.
## 取消注释行来关闭ls的颜色
# DISABLE_LS_COLORS="true"

# Uncomment the following line to disable auto-setting terminal title.
## 取消注释行来关闭自动设置终端的标题
# DISABLE_AUTO_TITLE="true"

# Uncomment the following line to enable command auto-correction.
## 取消注释行来开启命令自动更正
# ENABLE_CORRECTION="true"

# Uncomment the following line to display red dots whilst waiting for completion.
## 取消注释行来展示在等待完成时显示红点
# COMPLETION_WAITING_DOTS="true"

# Uncomment the following line if you want to disable marking untracked files
# under VCS as dirty. This makes repository status check for large repositories
# much, much faster.
## 取消注释行荣国你想关闭将VCS下未跟踪的文件标记为脏文件。这使得大型存储库的存储库状态检查更加快速。
# DISABLE_UNTRACKED_FILES_DIRTY="true"

# Uncomment the following line if you want to change the command execution time
# stamp shown in the history command output.
# The optional three formats: "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
## 取消注释行如果你想改变在历史命令行输出的命令执行时间戳,有可选的三种格式
# HIST_STAMPS="mm/dd/yyyy"

# Would you like to use another custom folder than $ZSH/custom?
## 自定义的文件夹不使用$ZSH/custom
# ZSH_CUSTOM=/path/to/new-custom-folder

# 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.
## 你想加载什么插件,(在~/.oh-my-zsh/plugins/*可找到的),自定义插件在添加在~/.oh-my-zsh/custom/plugins/
## 有实例展示,添加太多的插件会拖慢shell的启动速度。

## git插件
plugins=(git)

source $ZSH/oh-my-zsh.sh

# User configuration
## 用户配置

## man手册路径
# export MANPATH="/usr/local/man:$MANPATH"

# You may need to manually set your language environment
## 你可能需要手动设置你的语言环境,这里设置的是美国英文的UTF-8
# export LANG=en_US.UTF-8

# Preferred editor for local and remote sessions
## 本地或者远程会话的首选的编辑器
# if [[ -n $SSH_CONNECTION ]]; then
# export EDITOR='vim'
# else
# export EDITOR='mvim'
# fi

# Compilation flags
## 汇编标记
# export ARCHFLAGS="-arch x86_64"

# ssh 
# export SSH_KEY_PATH="~/.ssh/rsa_id"

# 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`.
#设置私人的别名,覆盖oh-my-zsh提供的库,插件和主题。通过oh-my-zsh,鼓励用户在ZSH_CUSTOM文件夹下定义自己的别名,别名可以在这里替换,完整的别名激活列表,运行 alias
# Example aliases
## 别名举例
# alias zshconfig="mate ~/.zshrc"
# alias ohmyzsh="mate ~/.oh-my-zsh"

source /Users/fubin/.bash_profile
plugins=(zsh-syntax-highlighting)
# Add RVM to PATH for scripting. Make sure this is the last PATH variable change.
export PATH="$PATH:$HOME/.rvm/bin" 


 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!