suliveevil Life is Short!

Shells

2018-12-04
suliveevil

shell

Kernal(内核) 的外壳,即是 shell。

shell 脚本的开头必须有 #!,叫 Shebang(sharp 和 bang)

查看 shells

# 查看可用的 shells
cat /etc/shells 

# 查看当前shell
echo $SHELL # echo $0

# 查看当前shell的pid,并定位带此shell的进程
echo $$

# 综合
# 说明:ps查看进程 grep -v取反
ps -ef |grep `echo $$` |grep -v grep |grep -v ps # 

切换 shell

sudo chsh -s /usr/local/bin/zsh

bash

GNU 软件之一,最新版本 5.0(截至 January 26, 2019)

环境变量:.bash_profile or .bashrc

zsh

环境变量:.zshrc

PowerShell

emulate mode 仿真模式

支持对两种主流的 Bourne 衍生版 shell(bash、ksh)和 C shell 的仿真

macOS 环境变量

macOS 系统环境变量加载顺序

# 系统级别
/etc/profile # 不建议修改
/etc/paths # 全局性修改
/etc/bashrc # 一般在此添加系统级环境变量

# 用户级别
~/.bashrc
~/.bash_profile # 用户级环境变量 Linux下为.bashrc
~/.bash_login # 若bash shell是以login方式执行时,才会读取此文件。该文件仅仅执行一次!
~/.profile

设置 PATH

# 设置 PATH 的语法:
export PATH=$PATH:PATH1:PATH2:PATH3

# 在终端中设置PATH:
echo 'export PATH=somepath:$PATH' >> ~/.bash_profile

# 查看
echo $PATH

PATH 生效

一般环境变量更改后,需要电脑重启/用户重新登录后生效 使修改立即生效

# source FileName
# example
source ~/.zshrc

临时生效

# 临时生效 直接生效 只在当前shell及子shell中有效
export 变量名=变量值

设置别名

alias ll='ls -la'

参考资料

Zsh和Bash究竟有何不同 - lixinze779


Similar Posts

Comments