目录
介绍
shell能干什么?
自动化的处理一些任务
bash和zsh他们是一系列的命令集合,他们都有像if 和 while这样的控制结构(脚本语言)
shell脚本语言(命令集合:bash/zsh) - shell解释器(命令解释器:bash/zsh)
shell执行环境是什么?
简单理解就是:Shell脚本在执行时使用的环境变量、解释器、所处上下文构成了脚本的执行环境。
例如:在xcode的Run script中执行的脚本的执行环境就是:xcode提供的环境变量 + mac中的shell解释器
#!/bin/zsh
# 配套资料:
# https://pan.baidu.com/s/1APpxZfbZ1i7aJsWW80GRpw?pwd=ra7r
# 配套资料不全,以下是黑马其它shell课的资料可以参考
# https://pan.baidu.com/s/1eanXWGk_rPfi1kUngLyCsQ?pwd=xqeq
# https://pan.baidu.com/s/1_tl67nESeH7uoQ2a9w1KhA?pwd=853a
# 云计算中的shell部分
# https://pan.baidu.com/s/1adF4fWW2Fga9N3H-BTcrQA?pwd=7nmi
# 什么是shell
# Shell是一个计算机操作系统的命令解释器
# Shell是一个通用的术语它包括了多种不同的命令行解释器,而Bash是其中一种具体的Shell,拥有自己的语法和功能
# bash是一个命令行解释器,也是一门脚本语言
# zsh是一个命令行解释器,也是一门脚本语言
# bash test.sh 使用bash解释器执行
# zsh test.sh 使用zsh解释器执行
# ./test.sh 使用shebang指定的解释器执行,
# 如果shebang没有指定使用终端默认解释器
echo "\n------------- shell相关 -------------\n"
# 查看当前shell
echo $SHELL
# 查看所有shell
echo /etc/shells
# 查看当前shell的进程
echo $$
# 更改shell
# chsh -s /bin/bash
# chsh -s /bin/zsh
echo "\n------------- 查看进程树 -------------\n"
# 如果没有pstree先安装
# brew install pstree
# 查看进程树
pstree
echo "\n------------- 用户相关 -------------\n"
# 查看用户
whoami
# 查看用户
id
id lixiaoyi
echo "\n------------- 查看指令位置 -------------\n"
which zsh
which -a ruby #查看所有ruby的安装位置
whereis brew
echo "\n------------- 执行脚本的方式 -------------\n"
# 会在子shell中执行,执行完会退出子shell,不影响当前的shell环境
# bash test.sh
# 会在子shell中执行,执行完会退出子shell,不影响当前的shell环境
# sh test.sh
# 在当前shell中执行,影响当前的shell环境
# source test.sh
# 在当前shell中执行,影响当前的shell环境
# ./test.sh
行者常至,为者常成!