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 介绍

  1. sh解析器执行方式

    语法: sh 脚本文件

    介绍: 就是利用sh命令执行脚本文件, 本质就是使用Shell解析器运行脚本文件

  2. bash解析器执行方式

    语法: bash 脚本文件

    介绍: 就是利用bash命令执行脚本文件, 本质就是使用Shell解析器运行脚本文件

  3. 仅路径执行方式

    语法: ./脚本文件

    介绍: 执行当前目录下的脚本文件

    注意: 脚本文件自己执行需要具有可执行权限, 否则无法执行

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 步骤分析

  1. 使用mkdir创建/root/itheima目录

  2. 创建脚本文件batch.sh

  3. 编辑脚本文件

    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脚本入门的更多相关文章

  1. Linux Shell脚本入门--cut命令

    Linux Shell脚本入门--cut命令 cut cut 命令可以从一个文本文件或者文本流中提取文本列. cut语法 [root@www ~]# cut -d'分隔字符' -f fields &l ...

  2. linux的shell脚本入门

    Linux shell脚本入门教程 为什么要进行shell编程 在Linux系统中,虽然有各种各样的图形化接口工具,但是sell仍然是一个非常灵活 的工具.Shell不仅仅是命令的收集,而且是一门非常 ...

  3. (一)shell脚本入门

    shell脚本入门 1.脚本格式 脚本以#!/bin/bash 开头(指定解析器) 2.第一个shell脚本:helloworld (1)需求:创建一个shell脚本,输出helloworld 运行: ...

  4. Linux Shell脚本入门--wget 命令用法详解

    Linux Shell脚本入门--wget 命令用法详解 wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上.它有以下功能 ...

  5. 【shell】shell脚本入门

    1. 前言 1.1 为什么学习shell编程 Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具,Linux/UNIX系统的底层及基础应用软件的核心大部分涉及Shell脚 ...

  6. Linux入门第五天——shell脚本入门(上)基本概念

    一.什么是shell脚本 Shell 脚本(shell script),是一种为 shell 编写的脚本程序. 二.shell入门 1.先导知识 变量知识补充:https://www.cnblogs. ...

  7. shell脚本入门及基本元素

    命令和参数 #!/bin/sh 其中#!用来告诉系统它后面的参数是用来执行该文件的程序,必须放在脚本的首行,不然会在执行脚 本 的时候报错.当一个文件开头的两个字符是#!时,内核会扫描其它的部分看是否 ...

  8. Linux Shell 脚本入门

    linux shell 脚本格式 #!/bin/sh#..... (注释)命令...命令... 使用vi 创建完成之后需设置权限 chmod +x filename.sh 执行命令: ./filena ...

  9. Shell脚本入门与应用

    编写第一个shell脚本 如同其他语言一样,通过我们使用任意一种文字编辑器,比如 nedit.kedit.emacs.vi 等来编写我们的 shell 程序.程序必须以下面的行开始(必须方在文件的第一 ...

  10. shell脚本入门

    什么是Shell脚本 示例 看个例子吧: #!/bin/sh cd ~ mkdir shell_tut cd shell_tut for ((i=0; i<10; i++)); do touch ...

随机推荐

  1. eclipse工具使用

    eclipse下载 官网下载:https://www.eclipse.org/downloads/packages/ 打开后,找到Eclipse IDE for Java Developers点击进入 ...

  2. Vue学习笔记-介绍&双向绑定

  3. Ubuntu修改root可以远程ssh

    默认情况下,Ubuntu系统不允许root远程登录,新建的系统root密码为随机密码,你不会知道首次ssh登录需要用自建用户远程登录,登录后提示如下: seafile@seafile:~$  是以 ~ ...

  4. Spring表达式语言(SPEL)学习(02)

    构造数组 /** * 数组生成 */ @Test public void test5(){ int[] numbers1 = (int[]) parser.parseExpression(" ...

  5. Flutter 中常用的视频播放器

    Flutter 中常用的视频播放器有很多种,不同的播放器有着各自的优势和缺点.下面是一些常用的视频播放器,以及它们的优势.缺点和性能优化策略. video_player: 优势:Flutter 官方提 ...

  6. flutter杂知识点

    child和children用于在一个容器小部件(如Container.Column.Row等)中放置一个或多个子小部件 1.child属性用于容器只包含一个子小部件的情况: 2.children属性 ...

  7. Git使用经验总结2-配置用户名邮箱

    可以使用git config指令来配置一些设置,比如配置用户名邮箱.在开发团队要求成员配置用户名和邮箱是很有用的,可以配合工具区分成员的代码,以及将代码中的问题发送给成员的邮箱中. 查看当前Git的用 ...

  8. Boost程序库完全开发指南:1-开发环境和构建工具

      Boost官方于2019年12月发布的1.72版编写,共包含160余个库/组件,涵盖字符串与文本处理.容器.迭代器.算法.图像处理.模板元编程.并发编程等多个领域,使用Boost,将大大增强C++ ...

  9. 去哪儿网 (Qunar) DevOps 实践分享

    这是 2017 年王晓翔在 msup 全球软件案例研究峰会上的分享,重点分享了提高工程效率过程中存在的问题.取得的成果和要做的事情.内容详实,具有可操作性.我有幸看到了,所以在征得晓翔的同意下重新截图 ...

  10. Python快速爬取车标网图片,以后不要说这什么车你不认识了!

    知识不分边界...... 人,为什么要读书?举个例子: 当看到天边飞鸟,你会说:"落霞与孤鹜齐飞,秋水共长天一色."而不是:"卧靠,好多鸟."; 当你失恋时你低 ...