【Shell 脚本速成】01、编程语言与 Shell 脚本介绍

news2024/11/30 10:53:28

目录

一、编程语言介绍

二、shell介绍

1、shell介绍

2、bash shell基本特性

2.1 命令和文件自动补全

2.2 常见的快捷键

3、shell脚本介绍

准确来说:

3.1 案例演示

3.2 什么时候用到脚本?

4、shell脚本语法

4.1 shell脚本组成

4.2 脚本文件命名规范

4.3 代码规范

4.4 脚本执行方法


 

一、编程语言介绍

        编程语言是指计算机能理解的语言,人类通过使用计算机语言可以给计算机批量下达任务,让其按照人类的思想去完成工作。最常见的语言有:汇编语言、C语言、java语言、php语言、Python语言、golang语言等等。

编程语言分类:

  • 编译型语言

        程序在执行之前需要一个专门的编译过程,把程序编译成为机器语言文件,运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。如C、C++、java

  • 解释型语言

        程序不需要编译,程序在运行时由解释器翻译成机器语言,每执行一次都要翻译一次。因此效率比较低。比如Python/JavaScript/ Perl /ruby/Shell等都是解释型语言。

二、shell介绍

shell在计算机中起到什么作用呢?为什么要求shell呢,我们可以看看计算机操作系统的组成:

看图之后问大家个问题,两个人在电话聊天:只会说法语的法国人,只会说汉语的你。如何沟通呢?

请个翻译在你两中间

同理,系统内核只知道二进制

如果你想给计算机内核下任务,让其驱动硬件干活,那么有两种选择

1、你学会二进制

2、找个翻译

1、shell介绍

shell就是我们找来的翻译

        shell是一个程序,采用C语言编写,是用户和linux内核沟通的桥梁。它既是一种命令语言,又是一种解释性的编程语言。通过一个图表来查看一下shell的作用。

2、bash shell基本特性

知己知彼方可百战百胜,如何应用Bash shell,我们先看看他的特性,有助于我们快速应用。

2.1 命令和文件自动补全

Tab能补全命令和文件名称

2.2 常见的快捷键

Ctrl + c    终止前台运行的程序
Ctrl + z    将前台运行的程序挂起到后台
Ctrl + d    退出 等价exit
Ctrl + l    清屏 
Ctrl + a    光标移到命令行的最前端
Ctrl + e    光标移到命令行的最后端
Ctrl + u    删除光标前所有字符
Ctrl + k    删除光标后所有字符
Ctrl + r    搜索历史命令

3、shell脚本介绍

        shell脚本是什么?简单来说就是将需要完成某个任务所执行的命令按照执行顺序保存到文本中,并给予执行权限。

  • 它是按照顺序从上到下执行脚本命令。
  • 它是解释型的,意味着不需要编译。

准确来说:

若干命令 + 脚本的基本格式 + 脚本特定语法 + 思想= shell脚本

3.1 案例演示

# 需求                         # 执行的命令
创建一个用户:harry             useradd harry
密码设置为:yunwei.98989 echo    "yunwei.98989"|passwd --stdin harry
该用户创建文件夹/tmp/zutuanxue   mkdir /tmp/zutuanxue
该用户创建文件/tmp/zutuanxue/README  touch /tmp/zutuanxue/README
将“hello world“输入到/tmp/zutuanxue/README  echo 'hello world' > /tmp/zutuanxue/README

# 实现的代码 test.sh
[root@sql-master ~]# cat test.sh
#!/bin/bash

#DESC: this is a test script 
#AUTHOR: Sky
#RELEASE: 1.0

# 创建用户harry
useradd harry

# 设置用户密码 yunwei.98989
echo "yunwei.98989"|passwd --stdin harry

# 使用harry创建文件夹,文件,输入文件中内容
su - harry -c "mkdir /tmp/zutuanxue"
su - harry -c "touch /tmp/zutuanxue/README"
su - harry -c "echo 'hello world' > /tmp/zutuanxue/README"


# 添加执行权限
[root@sql-master ~]# chmod +x test.sh

# 执行脚本
[root@sql-master ~]# ./test.sh 
更改用户 harry 的密码 。
passwd:所有的身份验证令牌已经成功更新。

验证脚本是否执行成功:

 

3.2 什么时候用到脚本?

重复化、复杂化的工作,通过把工作的命令写成脚本,以后仅仅需要执行脚本就能完成这些工作。

  • 自动化分析处理
  • 自动化备份
  • 自动化批量部署安装等

4、shell脚本语法

来吧,光说不练嘴把式,我们来看看如何书写一个脚本呢,写好一个脚本有哪些规范呢?

4.1 shell脚本组成

4.2 脚本文件命名规范

        咱们编写的脚本文件名称尽量言简意赅,例如编写一个nginx的安装脚本,命名名称可以为nginx_install.sh

  • 脚本扩展名 .sh
  • 名字不要太长,尽量在26个字节内

4.3 代码规范

1、#!/bin/bash
//脚本第一行, #!魔法字符,指定脚本代码执行的程序。即它告诉系统这个脚本需要什么解释器来执行,也就是使用哪一种Shell

2、"#"代表注释,第一行 #!特例 

3、//以下内容是对脚本的基本信息的描述,大家可以根据实际情况尽可能的写详细一些,方便后续使用者阅读了解
# Name: 脚本名字
# Desc:描述describe
# Path:存放路径
# Usage:用法
# Update:更新时间
# Author:作者
# Release: 分发版本

4、//下面就是脚本的具体内容了
commands
...

4.4 脚本执行方法

  • 标准脚本执行方法(建议):
# 编写完脚本文件后,添加执行权限
[root@sql-master ~]# cat 1.sh 
#!/bin/bash
#xxxx
#xxx
#xxx
hostname
date
[root@sql-master ~]# chmod +x 1.sh

#1. 绝对路径执行脚本
[root@sql-master ~]# /root/1.sh

#2. 当前路径执行脚本
[root@sql-master ~]# ./1.sh
  •  非标准的执行方法(不太建议):
[root@sql-master ~]# bash 1.sh
[root@sql-master ~]# sh 1.sh
[root@sql-master ~]# bash -x 1.sh

-x:一般用于排错,查看脚本的执行过程
-n:用来查看脚本的语法是否有问题

注意:如果脚本没有加可执行权限,不能直接使用标准的执行方法执行脚本,可以使用 bash 1.sh

参考文档:编程语言与shell脚本-组团学 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/26211.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring事务配置(案例:转账业务追加日志,事务传播行为)

目录 Spring事务配置 案例 事务传播行为 代码实现: 1.文件大致格式: 2.ServiceAdvise(AOP功能包) 3.JdbcConfig(jdbc配置文件,包含了事务管理器) 4.MybatisConfig(mybatis配置…

Unity技术手册-UGUI零基础详细教程-ScrollBar和ScrollView

往期文章分享点击跳转>《导航贴》- Unity手册,系统实战学习点击跳转>《导航贴》- Android手册,重温移动开发 本文约8千字,新手阅读需要20分钟,复习需要12分钟 【收藏随时查阅不再迷路】 👉关于作者 众所周知&…

2022/11/22 [easyx]关于字符和一些背景

#include<stdio.h> #include<graphics.h> //包含图形库头文件 int main() {//创建一个窗口//(show console 显示控制台)&#xff0c;640&#xff0c;480为窗口大小*initgraph(640,480,SHOWCONSOLE);//showconsole可以换成NOCLOSE:程序不能关闭// NOMINIMIZE不能最小…

洛谷 T292115 [传智杯 #5 练习赛] 树的变迁#并查集+逆向思维

一道质量挺高的题&#xff08;个人感觉&#xff09;&#xff0c;题目说了每次要删除一条边&#xff0c;分成两棵树&#xff0c;那么很容易想到用并查集去维护。但是问题在于如果要将原来那棵树分成新的两个树必然不能使用路径压缩&#xff0c;如图所示 如果使用了路径压缩那就…

数据安全法vs国家标准,40+标准助力数据安全保驾护航~(附整理文档及pdf下载)

2021年9月1日&#xff0c;《中华人民共和国数据安全法》生效施行&#xff0c;如何助力数据安全法的贯彻落实&#xff0c;做到数据合法合规的使用需要建设一系列的数据安全标准体系。也就是说&#xff0c;有了数据安全相关标准&#xff0c;就是有了如何践行数据安全法落地实施的…

Oracle LiveLabs实验:Manage and Monitor Autonomous Database

概述 本研讨会中的实验将引导您完成开始使用 Oracle 自治数据库的所有步骤。 首先&#xff0c;您将创建一个 Oracle 自治数据库实例。 然后&#xff0c;您将练习使用自治数据库工具和 API 从不同位置以不同格式加载数据的几种方法。 您将使用 SQL 分析数据并使用 Oracle Analy…

JavaScript构造函数和原型:继承

ES6之前并没有给我们提供 extends 继承。我们可以通过构造函数原型对象模拟实现继承&#xff0c;被称为组合继承。 call() 调用这个函数, 并且修改函数运行时的 this 指向 fun.call(thisArg, arg1, arg2, ...) thisArg &#xff1a;当前调用函数 this 的指向对象 arg1&am…

weapp源码反编译步骤

一、下载解密工具 解密工具下载&#xff1a;地址 二、在微信电脑版&#xff0c;打开目标小程序,在如下的目录中可以找到小程序的目录 这是我自自定义的缓存目录&#xff0c;找不到自己缓存目录在哪儿的&#xff0c;手机给自己的文件助手发个文档&#xff0c;打开所在目录&…

高标准企业级安全性,华为云会议为线上沟通保驾护航

如今&#xff0c;全球企业正在以办公室为主的工作环境向混合型工作环境转变&#xff0c;线上会议逐渐成为企业的刚需。事实上通过云会议的形式进行的远程沟通协作&#xff0c;如线上招聘、培训、课堂等也已非常普及&#xff0c;不过随之而来的网络安全风险也愈发引起各界关注。…

Linux有多重要?冲30万年薪Linux学习入门指南

与 Windows 相比&#xff0c;Linux 相对来说更加安全稳定&#xff0c;而且Linux可以定制化或者选择不同的发行版&#xff0c;下面借鉴网上的一张图片展示下 Linux 与 Windows 的区别。 ​ ​简单说就是linux 性能更好&#xff0c;直接通过命令行底层运行 1.廉价&#xff08;免费…

热门资讯:超大规模数字产业生态正在加快构建!

数字化转型新闻简报&#xff1a; 近年来&#xff0c;面对数字技术突飞猛进、政府政策倾斜支持、新冠疫情反向刺激&#xff0c;国内企业均从各个环节开始着手进行数字化转型&#xff0c;以期达到提效降本的目的。了解更多关于数字化转型的资讯才能更好地进行数字化转型。 01、华…

[附源码]Python计算机毕业设计宠物短期寄养平台

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

Linux-挖矿木马清理

一、什么是挖矿木马 挖矿木马会占用CPU进行超频运算&#xff0c;从而占用主机大量的CPU资源&#xff0c;严重影响服务器上的其他应用的正常运行。黑客为了得到更多的算力资源&#xff0c;一般都会对全网进行无差别扫描&#xff0c;同时利用SSH爆破和漏洞利用等手段攻击主机。部…

苹果钱包(AppleWallet)接入操作手册,超详细

一、写在前面 1.1 起源 最近有一点忙&#xff0c;更新博客出现了一些延迟。由于在工作中使用了Apple Wallet&#xff0c;所以在结束后准备以此记录一下。希望后面有要做此功能的同学&#xff0c;能够有所启发&#xff0c;觉得有帮助的&#xff0c;记得点赞收藏关注哦~ 1.2 A…

C++多态

目录 多态的概念 多态的定义和实现 深入理解多态 C11 override 和 final 重载、覆盖(重写)、隐藏(重定义)的对比 抽象类 多态的原理 动态绑定与静态绑定 单继承和多继承关系的虚函数表 多态的概念 多态的概念&#xff1a;通俗来说&#xff0c;就是多种形态&#xff0c;具…

SSM整合(五)

SSM整合之事务管理(一) 1.核心准备工作 1.1 导入spring-tx依赖 <!-- 事务spring-tx --> <dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>5.3.22</version> </dependen…

【附源码】计算机毕业设计JAVA研究生招生信息管理

【附源码】计算机毕业设计JAVA研究生招生信息管理 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; JAVA …

旧苹果短信导入新苹果手机上,iphone短信迁移

概述&#xff1a;随着科技的快速发展&#xff0c;手机的更新换代周期也变得越来越短。那么问题来了&#xff1a;旧苹果短信导入新苹果手机上&#xff1f;相信这是新机主心中的痛点&#xff0c;那么今天小编就来教大家如何解决这个问题。 方法一、使用易我手机数据传输软件转移苹…

D0x-17(anti—Sp17)-3C12/TPGS抗精子蛋白单克隆抗体/维生素E聚乙二醇琥珀酸酯偶联阿霉素研究

下面分享了D0x-17(anti—Sp17)-3C12/TPGS抗精子蛋白单克隆抗体/维生素E聚乙二醇琥珀酸酯偶联阿霉素研究方法&#xff0c;来看&#xff01; D0x-TPGS聚乙二醇1000维生素E琥珀酸酯(TPGS)修饰阿霉素研究方法&#xff1a; 用硫酸铵梯度法制备TPGS修饰的阿霉素脂质体,并对其理化性质…

try/catch/finally的各种情况

众所周知&#xff0c;try语句报错&#xff0c;会执行catch语句&#xff0c;然后执行finally&#xff0c;以下这几种情况&#xff0c;看看会如何输出。 1、try语句中包含return&#xff0c;finally包含输出语句 public static void main(String[] args) {// write your code h…