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

导读:本篇文章讲解 【Shell 脚本速成】01、编程语言与 Shell 脚本介绍,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

目录

一、编程语言介绍

二、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呢,我们可以看看计算机操作系统的组成:

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

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

请个翻译在你两中间

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

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

1、你学会二进制

2、找个翻译

1、shell介绍

shell就是我们找来的翻译

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

【Shell 脚本速成】01、编程语言与 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:所有的身份验证令牌已经成功更新。

验证脚本是否执行成功:

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

3.2 什么时候用到脚本?

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

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

4、shell脚本语法

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

4.1 shell脚本组成

【Shell 脚本速成】01、编程语言与 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脚本-组团学 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/74570.html

(0)
小半的头像小半
0 0

相关推荐

  • 微软Win10 KB5011543(19044.1618)补丁发布 操作系统

    微软Win10 KB5011543(19044.1618)补丁发布

    0 079
    小半的头像 小半
    2023年2月3日
  • 如何在 Linux 上加密分区? 操作系统

    如何在 Linux 上加密分区?

    0 0163
    小半的头像 小半
    2024年2月27日
  • Win11如何查看硬盘型号? 操作系统

    Win11如何查看硬盘型号?

    0 0268
    小半的头像 小半
    2023年2月3日
  • win11组策略如何开启自动更新 Windows11组策略开启自动更新的设置方法 操作系统

    win11组策略如何开启自动更新 Windows11组策略开启自动更新的设置方法

    0 0236
    小半的头像 小半
    2023年1月31日
  • influxDB 基础了解 操作系统

    influxDB 基础了解

    0 0210
    小半的头像 小半
    2023年1月12日
  • 想重装Win10系统要怎么操作才好? 操作系统

    想重装Win10系统要怎么操作才好?

    0 0136
    飞熊的头像 飞熊
    2023年4月11日
  • vs2017报错 popen pclose 操作系统

    vs2017报错 popen pclose

    0 0128
    小半的头像 小半
    2023年2月10日
  • 电脑默认字体如何进行替换教学 操作系统

    电脑默认字体如何进行替换教学

    0 0238
    飞熊的头像 飞熊
    2023年4月11日
  • Win11更改声音输出设备有什么方法? 操作系统

    Win11更改声音输出设备有什么方法?

    0 0366
    小半的头像 小半
    2023年2月3日
  • VS2017 error C3646: 未知重写说明符 操作系统

    VS2017 error C3646: 未知重写说明符

    0 0179
    小半的头像 小半
    2023年2月10日
  • Proxmox VE(PVE)修改IP地址 操作系统

    Proxmox VE(PVE)修改IP地址

    0 0349
    小半的头像 小半
    2023年11月30日
  • Win7磁盘清理怎么操作?十步让你学会 操作系统

    Win7磁盘清理怎么操作?十步让你学会

    0 0161
    小半的头像 小半
    2023年1月31日

站长精选

  • SpringBoot + Lua = 王炸!

    SpringBoot + Lua = 王炸!

    2024年3月26日

  • 别再用Future了,CompletableFuture 异步多线程是真的优雅!

    别再用Future了,CompletableFuture 异步多线程是真的优雅!

    2023年10月5日

  • 如何优雅的在 SpringBoot 中进行参数校验?

    如何优雅的在 SpringBoot 中进行参数校验?

    2024年1月11日

  • RabbitMQ 消息丢失的场景,如何保证消息不丢失?

    RabbitMQ 消息丢失的场景,如何保证消息不丢失?

    2023年3月16日

  • 一文读懂线程同步类 CountDownLatch

    一文读懂线程同步类 CountDownLatch

    2023年8月20日

  • 两万字浅谈 DDD 领域驱动设计

    两万字浅谈 DDD 领域驱动设计

    2024年2月24日

  • 别再用 JWT 作为 Session 系统,问题重重,后果很危险!

    别再用 JWT 作为 Session 系统,问题重重,后果很危险!

    2023年10月24日

  • Jenkins 也宣布弃用 Java 8,你还在坚守吗?

    Jenkins 也宣布弃用 Java 8,你还在坚守吗?

    2023年6月18日

  • 如何保护你的 SpringBoot 项目:防止源代码泄露,确保更安全的部署

    如何保护你的 SpringBoot 项目:防止源代码泄露,确保更安全的部署

    2023年4月1日

  • 项目终于用上了 PowerJob,真香!

    项目终于用上了 PowerJob,真香!

    2024年6月21日

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!

PHP网站源码福田网站关键词优化民治SEO按天收费木棉湾网站设计塘坑百度竞价包年推广平湖英文网站建设南山网站优化排名大鹏网站开发大运网站排名优化民治关键词排名包年推广龙岗网页制作大浪网站推广系统罗湖设计网站西乡阿里店铺运营同乐网页制作沙井网站优化按天计费龙岗网站优化民治建设网站广州模板制作永湖百度关键词包年推广龙岗网站seo优化横岗模板制作丹竹头模板制作广州百度竞价包年推广荷坳优秀网站设计西乡推广网站福田网页制作深圳建网站福永网站推广工具大鹏设计公司网站坪地优化歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

PHP网站源码 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化