前言
本文只作为shell的基本介绍,包括一些语法格式、执行原理以及简单的操作等。适合想入门却不知道不知道里面有什么的同志。我按课程分为四大模块:Shel1基础概念、命令和语法、执行过程和原理、调试和前端集成。
Shel1基础概念
概念
- 终端(tty):指的是获取用户输入并输出的物理设备。在linux中是接收用户输入、输出结果的终端仿真软件,比如我们用的mac terminal、iterm2等。
- 终端模拟器:输入辅助功能、画面绘制输出的模拟终端器。
- Shell:command interpreter.处理来自终端模拟器的输入,解释执行之后输出结果给终端。
- Bash:bash是shell的—种具体实现,可以理解成实例和类的关系。
发展
构成
Shell既是命令解释器,也是一门编程语言,作为命令解释器,它提供给用户接口,使用丰富的GNU工具集,第三方的或者内置的;作为编程语言,它具备控制流程,循环,变量,命令查找的机制。
命令和语法
由Shell的构成知,我们分别需要讲解其命令和语法。
变量
种类
需要说明的是,变量一个变量执行时是可以在父子shell中执行(比如环境变量),比如在调用第三方库要在子shell中执行,执行完子shell后继续执行父shell。具体内容感兴趣自己查找。
定义
自定义变量定义
declare [+/-] 选项 变量
declare -i var=integer #定义一个整数变量
系统环境变量
配置文件加载
当我们登录系统时,会运行shell,其中等待我们输入指令,然后它给我们返回结果的shell是交互式shell。还有其它两种shell。执行步骤如下图:
运算符和引用
不必多说,你先入门再记。
管道
学过linux指令应该知道这玩意。大概意思就是给你很多脑婆,帮我找到我想要的那个。
管道与管道符|,作用是将前一个命令的结果传递给后面的命令语法: cmd1 | cmd2
重定向
大概意思是本来枪的轨道是直的,然后你设计成弯的了。
输出重定向符号
- '>':覆盖写入文件
- '>>'︰追加写入文件
- '2>' :错误输出写入文件
- '&>':正确和错误输出统一写入到文件中
输入重定向符号
- <
- <<
语法部分
判断命令
shell中提供了test、[、[[ 三种判断符号,可用于: 整数测试 字符串测试 文件测试
分支语句
if condition ; then程序段
elif condition ; then
程序段
esle
程序段fi
循环
函数
模块化
常用命令
执行过程和原理
执行
执行过程
shell展开
重头戏