关于macOS 类系统的各种shell解释

配置文件有两个级别, 系统级(/etc)和用户级(~/), 每次调用优先调用系统级
profile用于登录式shell, 而bashrc用于每个交互式shell

bashrc和profile的差异

bashrc是在系统启动后就会自动运行。
profile是在用户登录后才会运行。
进行设置后,可运用source bashrc命令更新bashrc,也可运用source profile命令更新profile。
PS:通常我们修改bashrc,有些linux的发行版本不一定有profile这个文件

/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是"父子"关系。

.bashrc - The individual per-interactive-shell startup file.

这个文件主要保存个人的一些个性化设置,如命令别名、路径等。定义了路径,语言,命令别名(使用rm删除命令时总是加上-i参数需要用户确认,使用ls命令列出文件列表时加上颜色显示)。
每次修改.bashrc后,使用source ~/.bashrc(或者 . ~/.bashrc)就可以立刻加载修改后的设置,使之生效。
一般会在.bash_profile文件中显式调用.bashrc。
登陆linux启动bash时首先会去读取/.bash_profile文件,这样/.bashrc也就得到执行了,你的个性化设置也就生效了

全局profile和用户下的~/.profile

用户可以在Profile文件中加入环境变量,比如ORACLE_HOME,HOME...这样重新登录之后,这些环境变量都会得以设置,不用每次都手工设置。
Unix/Linux有两个profile文件

  • 1./etc/profile:是全局profile文件,设置后会影响到所有用户
  • 2./home/username/.profile或.bash_profile是针对特定用户的,可以针对用户,来配置自己的环境变量。
    注意:profile是unix上才有的;bash_profile是Linux下有的(Linux下,用户目录没有.profile文件)
    /home/username/.profile或.bash_profile,都是隐藏文件,需要使用ls -a才能看到。

Bash登陆(login)的时候,Profile执行的顺序

先执行全局Profile, /etc/profile
接着bash会检查使用者的HOME目录中,是否有 .bash_profile 或者 .bash_login或者 .profile,若有,则会执行其中一个,执行顺序为:
.bash_profile 最优先 > .bash_login其次 > .profile 最后

zsh之oh-my-zsh

所有unix系统分支下在unix 内核的操作系统中,当然现在衍生出好多分支,linux ,OS X 都算.
shell 就算和上面这些系统内核指令打交道的一座桥梁,我们通过键盘输入一种自己容易记忆识别的符号标识(shell 命令)
然后 shell 解析这种命令再反馈给内核去执行一系列操作.
其实 zsh 也是一种 shell ,但是并不是我们系统默认的 shell ,unix 衍生系统的默认shell 都是 bash
以mac 为例,我们看下系统内置了几种shell

zsh的配置文件是.zshrc,所以对于zsh的一切设置,直接去/.zshrc中设置.

注意: 本机是可以识别的,但是如果是使用gitlab-runner的话,默认的配置文件不使用.zshrc,使用的是.bash_profile

什么是oh-my-zsh ?

oh-my-zsh 是zsh的一个配置开源配置文件,因为手动配置zsh太麻烦.

接下来我们需要下载 oh-my-zsh 项目来帮我们配置 zsh

wget 自动安装

wget [https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh](https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh) -O - | sh

安装 oh-my-zsh 时,它自动读取你的环境变量并且自动帮 zsh 进行设置.

所以这时的zsh 基本已经配置完成,你需要一行命令就可以切换到 zsh 模式.

posted @ 2021-10-13 14:03  eastsae  阅读(568)  评论(0编辑  收藏  举报