01-Shell脚本入门
1.Shell介绍
1.1 疑问
linux系统是如何操作计算机硬件CPU,内存,磁盘,显示器等?
答: 使用linux的内核操作计算机的硬件
1.2 Shell介绍
通过编写Shell命令发送给linux内核去执行, 操作的就是计算机硬件. 所以Shell命令是用户操作计算机硬件的桥梁
Shell是命令, 类似于windows系统Dos命令
Shell是一个门程序设计语言, Shell里面含有变量, 函数, 逻辑控制语句等等
1.2.1 Shell脚本
通过Shell命令或程序编程语言编写的Shell文本文件, 这就是Shell脚本 , 也叫Shell程序
1.2.2 为什么学习Shell脚本?
通过Shell命令与编程语言来提高linux系统的管理工作效率
1.3 Shell的运行过程
当用户下达指令给该操作系统的时候,实际上是把指令告诉shell解析器,经过shell解析器解释,处理后让内核做出相应的动作。系统的回应和输出的信息也由shell处理,然后显示在用户的屏幕上。
1.4 Shell解析器
查看linux系统centos支持的shell解析器
cat /etc/shells
效果
介绍解析器类型
解析器类型 | 介绍 |
---|---|
/bin/sh | Bourne Shell,是UNIX最初使用的shell; |
/bin/bash | Bourne Again Shell它是Bourne Shell的扩展,简称bash,是LinuxOS默认shell,有灵活和强大的编辑接口,同时又很友好的用户界面,交互性很强; |
/sbin/nologin | 未登录解析器, shell设置为/sbin/nologin 是用于控制用户禁止登陆系统的, 有时候有些服务,比如邮件服务,大部分都是用来接收主机的邮件而已,并不需要登陆 |
/bin/dash | dash(Debian Almquist Shell),也是一种 Unix shell。它比 Bash 小,只需要较少的磁盘空间,但是它的对话性功能也较少,交互性较差。 |
/bin/csh | C Shell是C语言风格Shell |
/bin/tcsh | 是C Shell的一个扩展版本。 |
1.4.1 Centos默认的解析器是bash
语法
echo $SHELL
含义: 打印输出当前系统环境使用的Shell解析器类型
echo 用于打印输出数据到终端
$SHELL
是全局共享的读取解析器类型环境变量, 全局环境变量,是所有的Shell程序都可以读取的变量
2.Shell脚本编写格式与执行方式
2.1 编写格式
2.1.1 脚本文件后缀名规范
shell脚本文件就是一个文本文件, 后缀名建议使用 .sh
结尾
2.1.2 首行格式规范
首行需要设置Shell解析器的类型, 语法
#!/bin/bash
含义: 设置当前shell脚本文件采用bash解析器运行脚本代码
2.1.3 注释格式
单行注释, 语法
# 单行注释
多行注释, 语法
:<<!
# 注释内容1
# 注释内容2
!
2.2 shell脚本HelloWord入门案例
需求:创建一个Shell脚本文件helloworld.sh,输出hello world字符串
2.2.1 实现步骤
1、创建shell脚本文件
touch helloworld.sh
2、编辑文件
vim helloworld.sh
3、增加shell脚本文件内容如下,并保存退出
#!/bin/bash
echo "hello world"
4、执行脚本
sh helloworld.sh
运行效果
2.3 脚本文件的常用执行3种方式
2.3.1 介绍
sh解析器执行方式
语法:
sh 脚本文件
介绍: 就是利用sh命令执行脚本文件, 本质就是使用Shell解析器运行脚本文件
bash解析器执行方式
语法:
bash 脚本文件
介绍: 就是利用bash命令执行脚本文件, 本质就是使用Shell解析器运行脚本文件
仅路径执行方式
语法:
./脚本文件
介绍: 执行当前目录下的脚本文件
注意: 脚本文件自己执行需要具有可执行权限, 否则无法执行
2.3.2 3种方式的区别
sh或bash执行脚本文件方式是直接使用Shell解析器运行脚本文件, 不需要可执行权限
仅路径方式是执行脚本文件自己, 需要可执行权限
2.3.3 执行脚本方式1-sh命令执行
相对路径效果
sh helloworld.sh
绝对路径效果
sh /root/helloworld.sh
2.3.4 执行脚本方式2-bash命令执行
相对路径效果
绝对路径效果
2.3.5 执行脚本方式3-仅路径执行
步骤1:设置所有用户对此脚本文件增加可执行性权限
chmod a+x 脚本文件
步骤2:执行脚本语法
脚本文件的相对路径或绝对路径
2.3.6 示例:使用仅路径方式执行helloworld.sh脚本文件
chmod a+x helloworld.sh
相对路径执行命令
./helloworld.sh
绝对路径执行命令
/root/helloworld.sh
3.多命令处理介绍
就是在Shell脚本文件中编写多个Shell命令
需求:已知目录/root/itheima目录,执行batch.sh脚本,实现在/root/itheima/目录下创建一个one.txt,在one.txt文件中增加内容“Hello Shell”。
3.1 步骤分析
使用mkdir创建/root/itheima目录
创建脚本文件batch.sh
编辑脚本文件
3.1 命令1: touch创建文件, 文件名
/root/itheima/one.txt
3.2 命令2: 输出数据"Hello Shell"到one.txt文件中
输出数据到文件中的命令:
数据 >> 文件
3.2 实现步骤
1、进入root目录,执行创建/root/itheima目录命令
mkdir /root/itheima
2、创建/root/batch.sh文件
touch batch.sh
2、编辑batch.sh文件,编写shell命令
vim batch.sh
3、编写命令
命令1:创建/root/itheima/one.txt文件
命令2:输出“I love Shell”字符串数据到one.txt文件中
#!/bin/bash
cd itheima # 切换到itheima目录
touch one.txt # 创建文件one.txt
echo "Hello Shell">>/root/itheima/one.txt #输出数据到one.txt文件中
3.3 运行脚本效果
运行batch.sh脚本文件
sh batch.sh
查看one.txt文件内容
cat itheima/one.txt
01-Shell脚本入门的更多相关文章
- Linux Shell脚本入门--cut命令
Linux Shell脚本入门--cut命令 cut cut 命令可以从一个文本文件或者文本流中提取文本列. cut语法 [root@www ~]# cut -d'分隔字符' -f fields &l ...
- linux的shell脚本入门
Linux shell脚本入门教程 为什么要进行shell编程 在Linux系统中,虽然有各种各样的图形化接口工具,但是sell仍然是一个非常灵活 的工具.Shell不仅仅是命令的收集,而且是一门非常 ...
- (一)shell脚本入门
shell脚本入门 1.脚本格式 脚本以#!/bin/bash 开头(指定解析器) 2.第一个shell脚本:helloworld (1)需求:创建一个shell脚本,输出helloworld 运行: ...
- Linux Shell脚本入门--wget 命令用法详解
Linux Shell脚本入门--wget 命令用法详解 wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上.它有以下功能 ...
- 【shell】shell脚本入门
1. 前言 1.1 为什么学习shell编程 Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具,Linux/UNIX系统的底层及基础应用软件的核心大部分涉及Shell脚 ...
- Linux入门第五天——shell脚本入门(上)基本概念
一.什么是shell脚本 Shell 脚本(shell script),是一种为 shell 编写的脚本程序. 二.shell入门 1.先导知识 变量知识补充:https://www.cnblogs. ...
- shell脚本入门及基本元素
命令和参数 #!/bin/sh 其中#!用来告诉系统它后面的参数是用来执行该文件的程序,必须放在脚本的首行,不然会在执行脚 本 的时候报错.当一个文件开头的两个字符是#!时,内核会扫描其它的部分看是否 ...
- Linux Shell 脚本入门
linux shell 脚本格式 #!/bin/sh#..... (注释)命令...命令... 使用vi 创建完成之后需设置权限 chmod +x filename.sh 执行命令: ./filena ...
- Shell脚本入门与应用
编写第一个shell脚本 如同其他语言一样,通过我们使用任意一种文字编辑器,比如 nedit.kedit.emacs.vi 等来编写我们的 shell 程序.程序必须以下面的行开始(必须方在文件的第一 ...
- shell脚本入门
什么是Shell脚本 示例 看个例子吧: #!/bin/sh cd ~ mkdir shell_tut cd shell_tut for ((i=0; i<10; i++)); do touch ...
随机推荐
- hszxoj ATM [tarjan]
hszxoj ATM 题目描述:\(Siruseri\) 城中的道路都是单向的.不同的道路由路口连接.按照法律的规定, 在每个路口都设立了一个 \(Siruseri\) 银行的 \(ATM\) 取款机 ...
- 一个WPF版的Layui前端UI库
前言 相信做.NET后端开发的很多小伙伴都用过Layui前端UI组件库,今天我们分享一个WPF版的Layui前端UI样式库:Layui-WPF. WPF介绍 WPF 是一个强大的桌面应用程序框架,用于 ...
- 一文读懂Spring框架中依赖注入流程
想读懂Spring的依赖注入流程,我们先简单了解一下Ioc和DI是什么? IoC和DI Ioc-Inversion of Control,即"控制反转",不是什么技术,而是一种设计 ...
- k8s卷管理-1
目录 卷管理-1 1. 本地存储 1.1 emptyDir 1.2 hostPath 网络存储 搭建NFS服务器 使用NFS网络存储 搭建iSCSI服务器 使用iSCSI网络存储 卷管理-1 我们之前 ...
- 如何使用loki查询日志中大于某一数字的值的日志
简介 loki是一款轻量级的日志收集中间件,比elk体系占用的内存更小,采用go语言开发,可以利用grafana来查询loki中存储的日志,loki存储日志只对提前预设的标签做索引,所以日志存储空间占 ...
- 新版以太坊Ethereum库ethersV5.0配合后端Golang1.18实时链接区块链钱包(Metamask/Okc)以及验签操作
区块链去中心化思想无处不在,比如最近使用个体抗原自检替代大规模的中心化核酸检测,就是去中心化思想的落地实践,避免了大规模聚集导致的交叉感染,提高了检测效率,本次我们使用Ethereum最新的ether ...
- 一文掌握数仓中auto analyze的使用
摘要:analyze执行的是否及时,在一定程度上直接决定了SQL执行的快慢. 本文分享自华为云社区<一文读懂autoanalyze使用[这次高斯不是数学家]>,作者: leapdb. an ...
- 协同编辑:Google Wave架构分析
Google Wave的设计初衷是让人们互相发送信息,一起编辑文档,但用户对此感到困惑,很快就以失败告终.Google Wave持续了大约一年时间,于2010年8月被关闭. Wave"领先于 ...
- 火山引擎 DataTester:如何做 A/B 实验的假设检验
A/B 实验的核心统计学理论是(双样本)假设检验,是用来判断样本与样本.样本与总体的差异是由 抽样误差 引起还是 本质差别 造成的一种统计推断方法. 假设检验,顾名思义,是一种对自己做出的假设进行数据 ...
- 如何删除PPT中工具栏口袋动画
口袋动画官网无法打开 http://www.papocket.com/ 插件无法使用 卸载 在[程序和功能]中卸载后,打开PPT,菜单还是存在 选项--加载项,点击以p开头的一串代码(com加载项), ...