前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Shell】Shell脚本入门

【Shell】Shell脚本入门

作者头像
陶然同学
发布2023-10-20 09:33:34
2360
发布2023-10-20 09:33:34
举报
文章被收录于专栏:陶然同学博客

Shell脚本入门

疑问

linux系统是如何操作计算机硬件CPU,内存,磁盘,显示器等?

答: 使用linux的内核操作计算机的硬件

Shell介绍

通过编写Shell命令发送给linux内核去执行, 操作就是计算机硬件. 所以Shell命令是用户操作计算机硬件的桥梁,

Shell是命令, 类似于windows系统Dos命令

Shell是一个门程序设计语言, Shell里面含有变量, 函数, 逻辑控制语句等等

Shell脚本

通过Shell命令或程序编程语言编写的Shell文本文件, 这就是Shell脚本 , 也叫Shell程序

为什么学习Shell脚本?

通过Shell命令与编程语言来提高linux系统的管理工作效率

Shell的运行过程

当用户下达指令给该操作系统的时候,实际上是把指令告诉shell,经过shell解释,处理后让内核做出相应的动作。 系统的回应和输出的信息也由shell处理,然后显示在用户的屏幕上。

Shell解析器

查看linux系统centos支持的shell解析器

代码语言:javascript
复制
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的一个扩展版本。

Centos默认的解析器是bash

语法

代码语言:javascript
复制
echo $SHELL

含义: 打印输出当前系统环境使用的Shell解析器类型 echo 用于打印输出数据到终端 $SHELL 是全局共享的读取解析器类型环境变量, 全局环境变量时所有的Shell程序都可以读取的变量,

效果

Shell脚本文件编写规范

脚本文件后缀名规范

shell脚本文件就是一个文本文件, 后缀名建议使用 .sh 结尾

首行格式规范

首行需要设置Shell解析器的类型, 语法

代码语言:javascript
复制
#!/bin/bash

含义: 设置当前shell脚本文件采用bash解析器运行脚本代码

注释格式

单行注释, 语法

代码语言:javascript
复制
# 注释内容

多行注释, 语法

代码语言:javascript
复制
:<<!
# 注释内容1
# 注释内容2
!

shell脚本HelloWord入门案例

需求

创建一个Shell脚本文件helloworld.sh,输出hello world字符串

效果

实现步骤

1、创建shell脚本文件

代码语言:javascript
复制
touch helloworld.sh

2、编辑文件

代码语言:javascript
复制
vim helloworld.sh

3、增加shell脚本文件内容如下,并保存退出

代码语言:javascript
复制
#!/bin/bash
echo "hello world"

4、执行脚本

代码语言:javascript
复制
sh helloworld.sh

运行效果

脚本文件的常用执行3种方式

介绍
  1. sh解析器执行方式 语法: sh 脚本文件 介绍: 就是利用sh命令执行脚本文件, 本质就是使用Shell解析器运行脚本文件
  2. bash解析器执行方式 语法: bash 脚本文件 介绍: 就是利用bash命令执行脚本文件, 本质就是使用Shell解析器运行脚本文件
  3. 仅路径执行方式 语法: ./脚本文件 介绍: 执行当前目录下的脚本文件 注意: 脚本文件自己执行需要具有可执行权限, 否则无法执行
3种方式的区别

sh或bash执行脚本文件方式是直接使用Shell解析器运行脚本文件, 不需要可执行权限

仅路径方式是执行脚本文件自己, 需要可执行权限

执行脚本方式1-sh命令执行

相对路径效果

代码语言:javascript
复制
sh helloworld.sh

绝对路径效果

代码语言:javascript
复制
sh /root/helloworld.sh
执行脚本方式2-bash命令执行

相对路径效果

绝对路径效果

执行脚本方式3-仅路径执行
语法

步骤1:设置所有用户对此脚本文件增加可执行性权限

代码语言:javascript
复制
chmod a+x 脚本文件

步骤2:执行脚本语法

代码语言:javascript
复制
脚本文件的相对路径或绝对路径
示例:使用仅路径方式执行helloworld.sh脚本文件

添加执行权限

代码语言:javascript
复制
chmod a+x helloworld.sh

相对路径执行命令

代码语言:javascript
复制
./helloworld.sh

相对路径执行效果

绝对路径执行命令

代码语言:javascript
复制
/root/helloworld.sh

绝对路径执行效果

多命令处理介绍

就是在Shell脚本文件中编写多个Shell命令

案例需求

已知目录/root/itheima目录,执行batch.sh脚本,实现在/root/itheima/目录下创建一个one.txt,在one.txt文件中增加内容“Hello Shell”。

步骤分析
  1. 使用mkdir创建/root/itheima目录
  2. 创建脚本文件batch.sh
  3. 编辑脚本文件 3.1 命令1: touch创建文件, 文件名 /root/itheima/one.txt 3.2 命令2: 输出数据"Hello Shell"到one.txt文件中 输出数据到文件中的命令: 数据 >> 文件
  4. 执行脚本文件
实现步骤

1、进入root目录,执行创建/root/itheima目录命令

代码语言:javascript
复制
mkdir /root/itheima

2、创建/root/batch.sh文件

代码语言:javascript
复制
touch batch.sh

2、编辑batch.sh文件,编写shell命令

代码语言:javascript
复制
vim batch.sh

3、编写命令

命令1:创建/root/itheima/one.txt文件

命令2:输出“I love Shell”字符串数据到one.txt文件中

代码语言:javascript
复制
#!/bin/bash
cd itheima     # 切换到itheima目录
touch one.txt  # 创建文件one.txt
echo "Hello Shell">>/root/itheima/one.txt  #输出数据到one.txt文件中

运行脚本效果

运行batch.sh脚本文件

代码语言:javascript
复制
sh batch.sh

查看one.txt文件内容

代码语言:javascript
复制
cat itheima/one.txt
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-10-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Shell脚本入门
    • 疑问
      • Shell介绍
        • 为什么学习Shell脚本?
      • Shell的运行过程
        • Centos默认的解析器是bash
      • Shell脚本文件编写规范
        • 脚本文件后缀名规范
        • 首行格式规范
        • 注释格式
      • shell脚本HelloWord入门案例
        • 脚本文件的常用执行3种方式
          • 多命令处理介绍
            • 案例需求
              • 步骤分析
              • 实现步骤
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档