shell
shell 命令行解释器 遵循一定的语法将输入的命令加以解释并传给系统。用户可以用Shell来启动、挂起、停止甚至是编写一些程序。
运维工程师
shell
shell脚本编程
终端处光标处即为shell
shell----内核的封装 通过给shell传输相应的东西来访问内核
shell不能直接访问内核 而是调用程序来访问内核
shell可以理解可执行文件 应用程序
通过给shell传送命令 shell对此进行解析 再让用户访问相应的内核
shell1. 做命令解析 2. 调用相应功能
没有相应的功能,但可以调用相应的功能
脚本:做 批处理
什么时候使用shell:解决复杂的命令操作的时候使用shell
shell也可以理解为一种语言
语法->开发
shell
是命令 是程序设计语言
互动式的解释和执行用户输入的命令
定义了各种变量和参数 提供了许多在高阶语言中材具有的控制结构 包括循环和分支
调用了系统内核的大部分功能来执行程序、创建文档并以并行的方式协调各个程序的运行
python shell
shell可以直接使用linux系统内部目录
python则需调用函数等等实现该功能
不同命令解释器的语法不同
Bourne shell(sh)
Korn shell(ksh)
Bourne Again shell(bash)
C shell(csh & tcsh)
TENEX/TOPS C shell(tcsh)
shell提供了你与操作系统之间通讯的方式
脚本文件后缀一般为 .sh 现版本没有后缀仍能使用
shell有三种运行方式
sh hello.sh
bash hello.sh
(上为两种解析器解析脚本)
赋予可执行权限 chmod u+x hello.sh
然后./hello.sh
首行:#! /usr/bin/sh
(指定解析器)
前为未指定解析器,使用默认解析器
自动化运维:用一个步骤代替别人的十几个步骤
使用脚本: 实现自动化 机器代替自己来做一些操作
sh文件中需要#注释出来作用
只有linux里的某些配置文件(类似vimrc) 使用的注释是”
无需编译 直接运行
脚本语言:解释型语言(运行效率低 所有操作先给解释器 解释器再进行解释)
通过类似的解析器
变量: $()
变量赋值时 “=”两边都不能有空格
BASH中的语句结尾不需要分号
echo:shell的printf
name=zhangsan
echo $name
字符串:可用单引号 可用双引号(与以前语法相统一 所以统一双引号)
sum=1+2 默认的操作就是字符串 所以echo $sum 也是1+2
num=2
echo {$num}nd ->{2}nd
echo ${num}nd ->2nd
变量分为自动变量
默认变量
内建变量
$# 传入脚本的命令行参数个数
./hello.sh 1 2 3 1 2 3就是命令行参数
$*
$0命令行本身
$1第一个命令行参数
$2第二个命令行参数
如何定义局部变量:
整数也都是字符串
then和if同一行就加;
if后面要加fi
&& 前为真 后一句运行
|| 前为假 后一句运行
- 当前目录的所有文件