hello, 大家好,今天我们学习在 linux 下的干货就是 shell 脚本的编辑,所谓 shell 不 会干活儿还累,什么意思呢?也就是同样执行一项重复性任务,如果你每次都一条一条的命令去执行, 那么大神早已用已经写好的执行任务脚本一次性跑完,那么效率就是天差地别。其实 shell 脚本是一种为命令行解释器,是要编辑的程序, 它将多个 shell 命令按一定逻辑组合在一起,保存在一个文本文件中,并赋予可执行权限,从而实现自动化执行一系列任务。那么今天我们就从最基础的新手也能看懂的实操讲起,当然前提是你已经掌握了我们之前讲过的基础的 linux 命令。话不多说,实操走起。 我们今天的任务是编辑一个自动查看目录数结构的脚本。首先我们需要登录在 linux 命令行下,纯手搓编写,这是作为一个合格的运维人员最基本的技能, 掌握这些技能,你已经超过百分之八十以上的新手小白。首先我们先建立一个以扩展名为 s h 的 脚本文件,它是命令。在之前我们的视频当中讲解过,这是一个建立空白文件的命令。一会我们准备用 linux 下的 nano 编辑器来编辑这个 shell 脚本。 nano 编辑器如果系统里没有自带,可以用 sode ipt install nano 来安装一下,输入 nano。 刚才 touch 命令新建的是要脚本文件名进行编辑。 进入了 nano 编辑器后,我们开始正式手写,这个是要脚本规则,要记住每条命令或注示一行以回车结束。我们先写第一行,也是是要脚本必须的重要一行,井号叹号、斜杠 b i n 斜杠拜式,这是固定写法,相当于给脚本定规矩, 告诉 linux 系统用 bash 这个程序来运行咱们写的脚本。第二行,我们写个注,是井号开头空格,后面写备注,后面写的文字内容,方便我们查看说明,不影响脚本运行。 第三行,我们写一个自动更新系统镜像原命令 tool ipt update, 杠 y tool 是 获取系统最高权限, ipt 是 ubo two 系统的软件管理命令, update 是 更新系统镜像源,让后续下载软件更快。杠 y 是 自动确认更新,不用手动点 yes。 第四行,我们写安装 tree 命令, tree 是 咱们要安装的工具,作用是查看目录的文件结构,加上杠 y 还是自动确认安装。第五行,我们写用 tree 命令查看指定目录的结构, 命令是 tree 后面加你指定要查看的目录路径。今天我们通过管道符把查看的结构存入到指定的文件当中,所以这条命令除了查看之外,还要通过大于号指定存入文件。这里认真看我输入的命令, 这里大于号的作用是把上述命令结果存在缀点 txt 文件当中。第六行,我们写通过 cat 命令查看刚才生成的 tree。 第二, txt 文件,这样我们执行这个脚本的结果就会输出缀点 txt 里被写入的目录结构,这样我们这个最简单的是要自动化脚本就写完了, 然后我们按 ctrl 加 o 保存, ctrl 加 x 退出。接下来我们准备执行这个写好的是要脚本,我们在执行这个脚本文件之前, 需要给这个文件写入执行权限,这不是必须的,之前的视频里我们也讲过给文件赋予执行权限的命令,也就是通过 cmd 命令加 x, 是 给文件增加执行权限,增加完执行权限后,我们就可以执行这个脚本文件了。 看我们已经给这个文件成功赋予了执行权限,然后我们直接执行这个 shell 脚本即可执行了。执行的命令是点斜杠,后面跟这个 shell 脚本名或者 s h 或 bash, 后面跟这个 shell 脚本名都可以执行。 到这里我们这个 shell 脚本就执行完了。我们可以看到最后的结果就是 tree 命令输出的目录结构, 我们再用 nano 命令看一下这个目录结构, 在这个文件里,我们清楚地看到了目标目录下的目录结构了。 至此,我们今天讲解的 shell 脚本命令从创建到执行输出结果全部讲完了。这仅是最最简单的一个 shell 脚本,在实际操作应用过程中会涉及到各种写法, 不只是简单的命令执行,还会涉及到很多代码语句以及正则表达式的应用,兄弟们如果有兴趣,可以深入的学习一下。如果你喜欢我的视频,请对我的视频点赞、评论、关注我们,下期再见!
粉丝4288获赞1.9万

兄弟们好,我是阿明,你是否在执行闪耀脚本时,因频繁输入多个选项而烦恼?尤其是决赛圈突然掉悬浮窗了等这样一个一个手动输入开启,黄瓜菜都凉了。那么我将用一段代码来解决这个问题。首先我们先新建一个闪耀脚本文件,然后打开编辑,学过编程的兄弟肯定知道, hello 哇哦, 这也是接触到的第一段代码,它的作用呢,就是打印输出字符号喽喔,当然我们今天要它打印的是别的字母,也就是我们输入的这些,先手动开启一遍记一下,然后删除填入记住的字母保存执行一下看看。对它打印的就是我们要输入的,不过每次输入一个字母之后还需要换行,很多语法中通用换行以恩来表示, 那么我们给每个字母后面添加 n, 在 执行之后每个字母就会换行,做打印的已经没有问题了。但是我们要对内核脚本输入其实也很简单,可以通过管道符来实现,它的作用就是把左边的输出结果给 右边的命令输入内容,此时我已经添加了个管道符号。接下来我们给一个执行内核脚本的命令就行了,试试执行,谁要脚本后面给到脚本滤镜,长按要执行的脚本,点击属性复制名称 给他粘贴上去,这里可以是脚本名称,也可以是绝对路径。就这么一段简单的代码,可以让我们快速启动脚本,现在执行测试一下效果, 他零点一秒基本就输入所有选项,并且开启成功,悬浮窗已经出来了,防录屏看不到而已。再讲一下第二种情况,有的脚本需要执行驱动,就像橘子每次都要刷一遍驱动再执行脚本, 由于橘子没更新了,先用 bin 代替演示,后面要是更新了,可以用这个方法执行两个脚本,就给他复制一行两条命令就行了,就改一下执行要输入的选项字母和脚本名称。 bin 的 驱动没有输入选项命令为直接让他执行脚本就行。是执行命令加脚本名称或路径, 依旧改名称,改输入字母,完工执行。看一下先执行驱动,再执行脚本,一瞬间就好。那 那么这个就是脚本启动器,我们可以在这个基础上升级一下,新建一个就叫自动启动器,在启动器的代码基础上再自动发一点,通过应用进程来执行脚本,当我们打开应用的时候,检测到应用进程就会自动执行脚本,这样就不用每次去管理器执行脚本了。应用包就填你要检测的应用, 可以到安装包提取里面复制包名,找到你脚本的应用或游戏。我这边就拿浏览器来演示,点击包名复制 粘贴到应用包名,剩下的两个就应该不用我说了,和启动器里面步骤是一样的,每次开机仅执行一次就不用管了,只要点了执行就直接可以把后台退掉了。 好的,现在我们来测试一下自动启动器效果,当我们打开应用的时候,后台自己执行脚本,这样就不用每次去打开管理器去点这点那了。可以看到悬浮窗已经出来了,说明执行成功。 ok, 那 么这就是本期的视频了,代码我会放到评论区,如果你对此感兴趣的话,别忘了点赞,还有关注,我是阿明,我们下期再见。

什么是 ceo 脚本?还在 linux 里手动一条条敲命令,加班加到吐,还总出错?运维面试被问 ceo 脚本直接蒙圈,今天一条视频从零到一把, ceo 脚本是什么?能干啥,怎么用,面试怎么答,全给你讲的明明白白。 什么是需要脚本?你可以把 linux 系统当成一家大公司,需要就是公司里的传化员,命令翻译官,你敲的命令,他翻译给系统内核,内核执行完再把结果反馈给你,这就是需要的本质工作。那需要脚本是什么? 就是你把一大堆要重复敲的命令,简单的判断逻辑,全都写进一个后缀式点 s h 的 文本文件,相当于给 shell 下了一整套完整的指令清单,不用再手动一行行输命令,直接运行这个文件,系统就会自动按顺序执行所有操作。 说白了, shell 脚本等于命令打包加自动执行,是 linux 系统的自动化小助手。很多人以为 shell 脚本只是凑命令, 大错特错,他的核心价值就是解放双手,杜绝重复劳动,提升运维效率。核心职责就这三点记牢了。 一、自动化重复任务,批量创建文件、批量备份数据定时清理、日制批量重启服务,这些每天都要做的重复工作,脚本一件搞定,再也不用手动敲几十上百条命令。 二、系统运维与管理服务器状态巡检、硬盘空间监控、进程守护、日制分析、运维人员管理服务器,全靠试药,脚本快速搞定,不用挨个服务器手动操作。三、简化复杂操作。把一连串复杂的命令判断逻辑封装成一个脚本, 哪怕是新手运行脚本就能完成专业操作,降低操作失误率。谁要脚本就是运维人员的效率神器,但凡重复繁琐、批量的系统工作都能教给他。谁要脚本应该怎么用, 不用怕学不会。谁要脚本入门超级简单,三步就能上手,小白也能立刻会。第一步,创建脚本文件, 用文本编辑器新建一个文件名字,比如 test 点 s h。 第一行必须写井号、感叹号 bin bash, 这是告诉系统用 bash 解释器来运行,这个脚本是固定格式。第二步,编辑脚本内容,把你要执行的命令一行行写进去。 比如警号创建文件夹默克点 test 警号进入文件夹 cd test 警号创建文件 touch, 一 二三点 t x t, 警号输出提示 echo, 脚本执行完成了,加警号的是注视,方便自己看懂,不影响执行。第三步,运行脚本 一,给脚本加执行权限 cmd, 加 x test s。 二、直接运行, 点斜杠 t e s t 点 s h, 就 这么简单,写完就能跑,不用复杂编辑,零基础也能快速上手。重点来了, 想做运维、找运维工作的同学,面试官必问,食药脚本教你一套满分答题逻辑直接背会,面试官当场认可。面试官问,你了解食药脚本吗?说说你对食药脚本的理解,我教大家满分回答。 首先,吃药脚本是把 linux 命令、逻辑、判断、循环语句封装在一起的文本脚本,核心作用是实现 linux 系统操作的自动化,减少人工重复操作。我平时会用吃药脚本做服务器日制,定时清理 批量用户,创建服务状态监控数据自动备份。这些运维工作能大幅提升服务器管理效率,减少人为操作失误。同时我掌握 c l 基础语法,比如变量判断、循环,能编辑简单的自动化运维脚本,解决日常运维中的批量重复任务。 如果面试官让你写简单脚本,就说写过日制清理文件备份服务巡检脚本,直接说实操场景,比空谈理论加分十倍,你学会了吗?最后我们做个总结, shell 是 命令翻译官, shell 脚本是命令打包清单,实现自动执行,核心就是自动化, 解决运维重复批量繁琐工作。三步上手见文件写命令加全线运行,面试回答定义加核心作用加实操场景,稳拿高分。 十二、脚本是 linux 运维后端开发的必备基础,看似复杂,其实吃透逻辑,零基础也能快速学会。好了,今天的视频就到这里了,如果大家还有想了解的技术评论区告诉我,我们下期再见。

这一节我们讲解 shell 脚本的多命令处理,上一节呢,我们讲解 shell 脚本文件的时候,里面只输出了一个 hello world, 也就只包含了一个命令, 那接下来我们要讲解的目标是什么呢?掌握我们 shell 脚本文件中执行多个命令啊,就是不仅包含一个命令了,我们脚本文件里面可以写多个命令。好,那多命令介绍处理啊,就是 在我们的 shell 脚本文件中编写那多个啊, shell 命令 就多命令啊,就是多命令的一个处理了。好,那我这里有个阿丽,来看一下阿丽的需求啊,已知一个目录啊,叫做 root i t k 码。这里有一个 i t k 码的目录啊,要已知啊,这个目前没有,我们要创建一下 完之后执行一个脚本文件,叫 bash 的 一个脚本文件好,实现什么呢?它实现有要求了,要求在 root id 黑码里面,在这个目录里面创建一个文件,叫 one 点 tst 的 一个文件, 而并且在这个文件中增加内容,就输出的内容叫 hello shell 啊, shell 的 一个这样的一个要求啊, 那这里注意了,有编辑脚本啊,实现后面的啊,编辑脚本实现后面的一个要求,这后面这个要求就要多个命令来执行了。那好,我们一起来分析一下步骤。 第一个步骤呢,那就是我们要创建一个目录 id 黑码,因为我目前是没有 id 黑码这个目录的啊,好,来看一下,我们看一下啊,真的是没有这个目录啊。 l l 看一下,目前是没有 id 黑码这个目录来了,首先, 但是我们要创建,使用什么呢?使用我们的 macd r, 这个就是命令啊,创建,呃, root, 在 root 下面啊,啊? root 下面创建一个 it 黑码目录,要创建这样一个目录, 这个目录有了以后,我们就来创建脚本文件了啊,创建脚本文件,因为我们要用脚本文件来去执行我们的多条命令,那这个脚本文件叫什么呢?叫 bash 点 s h。 创建这个文件, 创建完这个文件,我们就要编辑这个脚本文件了啊,编辑啊,说白了就是要编写我们的命令了,编辑脚本文件,好,那编辑脚本文件,最后呢?编辑完了,我们再执行脚本文件。执行啊,脚本文件,这是我们要做的 啊,这是我们要做的啊,四个东西就可以了,那这里最重要的是哪一个呢?就是编辑脚本文件,这个编辑脚本文件,我告诉大家要做三个步骤,第一个步骤,第一个步骤呢,我们要干嘛呢?哎,要求了,实现在这个目录下他的要求啊,看这里的要求,这是最核心的要求, 要在这个目录下创建一个文件,叫万点 txt, 这个文件,要在这里创建这个文件啊,那好了,那我们首先就要创建这个文件了,第一个命令一,其实就是我们的命令一啊,干嘛呢?创建 root 下面 it 黑码下面有一个万点 t h t 创建这个文件啊,创建文件, 创建文件啊,这个文件名啊,其实文件名就是他了啊,这个我标注一下吧,这个放这里标注一下。好了,这是我们命令一啊,要创建文件,好了,可以了,还有命令二,森林二,就是我们的要命令二了, 命令二要求做什么事情呢?啊?这里我用一个冒号给大家写出来啊, ok 了,命令二要求在这个文件中要输出一个内容的。 hello, shell, 好, 可以了,那就是输出啊,数据 hello, shell 到文件中,去到万点 t h t 文件中,文件中,这是我们要做的目的, 那这个搞完了之后,你就可以执行脚本文件了,那整个这个步骤分析的过程中,你会发现,哎,这个创建文件啊,我们用 top 命令就可以了啊, top 命令创建文件啊,我就写出来 top 命令啊,这个 top 创建文件就可以了, 那这个输出数据怎么办呢?好,我们学习这样一个命令啊,输出数据啊,这里写一下,就是输出数据到文件中,输出数据到文件中的命令啊,这个时候我们要学一下这个命令啊,这命令是什么呢?是这样的,首先就是我们的数据, 数据完里面有一个大于号,大于号,哎,后面写上文件,这样的话就可以把我们的数据输出到文件了 啊,这个其实是涉及到一个 linux 里面 shell 的 一个重定向的知识点,那这个重定向的知识点呢?我们后面会详细讲解。 这里呢,大家只需要了解啊,就是将文件啊,他就可以将数据输出到文件中去就可以了啊,就完成我们这个案例的这个命令的要求了,这是我们的命令啊, ok 了,那接下来我们就可以按照这个步骤去做了 啊,根据这个步骤,我们就开始去做了,一步一步去做,回过来这边,好,我清一下屏可立。首先第一个问题,我们要创建一个目录啊, mkdr 啊,这是已知的,按照他的要求啊,这个目录是已知的啊, 好,那这里我们来创建这个目录,就是创建一个 it 黑马,因为我现在就在 root 里面呢,走,创建好了 l l, 看一下,现在已经有 it 黑马这个目录了啊,就在这里了。好,有了之后呢,接下来我就可以创建一个脚本文件了。啊,那好,我创建一个脚本文件 touch 啊, batch 啊,点 s h 就 可以了。创建这样的文件,创建了完,第三步,要求我编辑这个脚本文件,我要写多个命令啊,因为我整个要求就是我的目标就是要在脚本文件里面写多个命令。好,来,看了,那这里,那编辑我们的脚本文件 batch 啊,点 s h 就 来了,首先我们编辑插入完之后,首行的要求我就直接写了,编完之后 batch 啊,好,可以了, 这是首行的要求完,接着还按照他的要求,命令一,我们要创建一个文件啊,打就对了,那创建文件套尺,创建文件,创建这个文件名叫什么呢?啊?就写了, root, 在 root 下面写一个 it 黑码, it 黑码,在 it 黑黑码下面创建一个万点 t h d, 好, 就可以了。创建这文件,创建完这个文件,我们要向里面输出内容, 这是命令一啊,命令一,好,还有命令二,命令二呢,大家就自己按照他的要求输出数据到文件中。好,这个命令我们也知道,比如说我们的数据是什么呢? 数据啊,是这样输出啊,这个输出 e c h o 啊,等一下, e c h o, 这才是输出。输出什么数据呢?叫做啊, hello 啊,这个大写吧,按照他的要求, hello 完之后,空格 shell ls 完,这个怎么输出呢?大家注意,大于号,大于号,哎,好,往后面跟着文件文件是谁呢啊?就是 root 下面, 我们的 it 黑码下面有一个 one 点 tht, 哎,搞定了,这就是两个命令 啊,这就是两个命令啊,命令就 ok 了。好,这两个命令 ok 之后,那就这我就保存这个文件了,这也就是我们最核心的第三步啊,编辑文件两个命令,这就叫多命令处理了啊,多命令处理好, es 七完, shift 冒号 w q 走来看,保存完了, 最后去执行我们的脚本文件 s h 啊,执行我们这个脚本文件来看啊,执行脚本文件走出来了,执行完了,执行成功了,那我们就看一下有没有产生这个文件啊,文件里面有没有这个内容。首先看一下 l l 我 的 id 黑码,看一下这个目录有没有这个文件,哎,有这个文件了,说明这个命令执行真的成功了。创建文件有没有,那文件里面有没有内容呢?看它 看一下啊,我们的注意了啊,当前目录下有一个 it 黑码, it 黑码下面有一个文件,万点 t t 走,哎,里面真的有 hello shell, 说明整个就成功了。 好,可以了,这里大家最最重要的就是我们的这个文件里面有了多个命令啊,有了多个命令,好,我们来看一下啊,这里开头完之后呢,我们文件文件是什么呢? it 黑码 i d k 码完,下面有个,呃,不用,直接看这里就行了啊, back 啊,点 s h, 走来看,这里面就执行了多个命令啊,多个命令啊,完成了, 回到这边,我们实现了这个案例啊,小结一下,完成了我们这个多命令处理啊,小结一下, 说 shell 脚本文件中是否可以执行多命令处理啊?肯定是可以啊。啊,肯定是可以啊。 ok, 完就完成了我们 shell 脚本。 shell 脚本的入门多命令的处理啊,那整个就完成了我们整个一个 shell 脚本的一个入门了。

这节我们讲解 excel 脚本入门的一个介绍,那在讲解之前,首先我们有四个目标,第一个啊, excel 是 什么啊?我们要知道 excel 的 一个概念。第二个里面我们最重要要学习叫一个 excel 脚本,那 excel 和 excel 脚本又是什么关系? 好?第三个就是为什么要学习 style 脚本呢啊,其实这也是 style 脚本程序的一个作用啊。最后一个,我们再讲解 style 的 一个解析器,哎,整个通过四个目标可以让我们更清楚认识 style 是 什么啊,完之后对我们今后的学习它起一个什么样的作用? 好,在讲解之前第一个问题啊, linux 系统,我们最主要是讲 linux 系统啊,那这个系统呢?是如何操作计算机硬件的啊?比如说硬件有 cpu 啊,内存啊,硬盘啊,显示器啊等等。哎,我们的系统是怎么操作这些硬件的 啊?因为系统是类似一个软件啊,它怎么操作硬件的?好了,答是使用 linux 的 内核 操作计算机的硬件, ok, 是 通过内核来操作的啊。好,那这个内核大家注意啊, linux 系统我们知道有内核啊,内核的版本也就是我们之前说过的那个托瓦茨呃,团队开发的 linux 系统的内核版啊, ok 了,那这个内核是操作计算机硬件的?好,那我们呢,大家要讲 cell, 那 cell 跟内核有什么关系呢?好了,回过来这个 cell 跟大家说一下啊, cell, 但是这通过命令方式啊,将将什么呢?将通过命令方式啊,命令方式。哎,将命令, 别说通过命令方式吧, cell 编辑应该是通过啊,通过编辑 cell 命令, 那发送给谁去执行呢?发送给我们的 linux 啊,内核去执行, 去执行,执行完之后,最终,最终啊,最终操作的是谁啊?就是操作的就是啊,系统计算机的硬件了,计算机硬件, ok, 好 了,那通过这里我们其实可以看得出来,这个 cell 是 我们操作硬件的一个啊,桥梁了啊,好,所以说,所以 cell 是 用户操作计算机啊,你说操作内核也行啊,因为整个 linux 系统就通过内核来操作计算机硬件的,所以说这个 cell 呢,是用户啊,用户啊,咱们再说的明确一点, cell 命令, cell 命令啊, cell 命令是用户操作计算机硬件的桥梁,桥 梁, ok, 桥梁了, ok 啊,所以说我们想操作了应用系统,想操作这些硬件,想操作 cpu, 想操作内存,那我们就得去通过 cell 命令啊, cell 命令啊,那我们再更加明确的说一下啊啊,啊,为说一下啊,那 cell 是 什么? cell 是 一个命令, cell 是 命令啊,是命令,为什么这么说呢啊?因为类似于什么呢?类似于 windows 系统,大家知道 windows 系统有 dos 命令啊,大家可以很想象,在脑海中想象一下 dos 命令是什么样子。 好, dos 命令, ok 完之后,我们还可以说 cell 是 一门程序设计语言。程序设计语言,为什么这么说呢? 因为大家注意啊,因为,因为 cell 里面还有什么呢?里面含有啊,咱,咱别说里面还有了,就是 simile cell 啊, shell 还有, 还有变量函数,还有什么呢?呃,逻辑控制语句 等等啊,它包含了程序设计语言所需要的一切啊,比如说什么数据类型啊,啊,里面的什么的啊,循环啊等等等,哎,包含了一门语言所需要的各种元素了,所以说 cell 既是命令,又是一种程序设计语言啊。 好了,那这个 shell 大家注意和内核的关系,我用一张图给大家表现一下,回到这边,看这里啊,比如说这个蓝色啊,这有三个圈啊,三个圈,好,这里有个蓝色的圈,这个蓝色圈里面我把它看成什么呢? leak, leaks, 系统的内核内核,那谁来操作这个内核呢?哎,就是我们的 shell, 就是 我们的 shell 啊, ok, shell, shell 来操作这个内核的。好,那我们大家注意要干什么呢?哎,我们通过 shell 命令啊,这里就是回过来叫做 shell 命令, 哎,命令啊,或者也叫什么呢?叫做应用程序都行,哎,应用程序哎,来操作这个 cell, 这个 cell 帮我们去把这些命令哎,给到内核去执行,最终来操作内核硬件了啊,整个内应用系统硬件。好,可以了,那回过来,我把这张图给大家截一下, 复制一下啊,复制,回到这里,回到我们这边啊,把这个放在这里啊,这就是我们,呃, shell 跟 linux 内核操作的东西了啊,那以后呢?他这用户就主要是编辑什么?编辑应用程序啊,编辑 shell 程序啊,编辑 shell 命令啊,哎,这样的操作啊, ok 了,那回到这边需要脚本就是什么?就是通过需要命令命令或程序或程序语言啊,程序啊,编程语言, ok, 程序编程语言来编辑啊,通过需要命令和程序编程语言编辑的 编写的 shell 啊,文本文件,它是个文本文件来的文本文件啊,这就是 shell 脚本, shell 脚本, shell 脚本, ok, 也叫什么呢?也叫 shell 程序,也叫 shell 程序。 好,可以了,搞定,这就是我们说的 shell 的 脚本啊,那我们为什么要学习这个 shell 脚本呢?为什么要学习呢?大家注意啊。哎,那我们通过 shell 来操作系统内核,所以说学习的目的啊,回过来啊,通过 shall 命令, shall 命令啊,命令啊,与编程语言,编程语言语言啊,语言来提高,提高,提高 linux 系统的管理工作效率, 工作效率就可以了啊,因为你用这些命令啊,学了很多命令,学了这种编程语言,我们就可以写很多复杂的程序了, 从而呢来提高 linux 系统的管住工作的一个效率,这样是我们学习 c 脚本的一个目的啊。好了,那整个这个 c 是 怎么运行的?我们来说一下了这个 c 的 运行的过程啊,来看这个过程,这个过程是这样的,哎,我们就需要写 c 的 脚本啊,我们就写 c 的 脚本的指令, 完了,这个脚本指令给到谁去运行呢?哎,给到 cell 解析器去运行完这个解析器呢,大家注意了,他会把这些命令,大家注意啊,注意,翻译成计算机可以执行的,说白了就是调用计算机的硬件了, 把这个硬件对应它进行响应,响应的结果最后通过解析器再返回,返回给最终我们用户看到显示器上啊,最终我们看到显示器就可以看到效果了, 但是我们需要写什么呢?需要有个重点啊,我们需要写这个东西, style 脚本指令,说白了就是 style 脚本了啊, style 脚本 ok 了,那这个 style 脚本走起来来看一下啊,那怎么去写?这是我们整个要讲解的内容啊,最重点就讲这个 style 脚本啊。 那在讲解之前,首先来介绍一下 shell 的 解析器啊,谁来解析我们的命令呢?谁来翻译我们的命令呢?啊,好,它都有哪些解析器呢?来了,先来看一下我们 shell 的 解析器啊, 那 excel 解析器呢?大家注意,你在 linux 系统上是可以通过这样一个命令啊,它里里面有个 excel 的 配置文件,叫做 etc, 下面有个 shelves, shelves 啊,这里就可以看到呃,解 excel 的 解析器的所有类型了,这是 linux 系统的一个命令,叫 cat 啊,查看,查看文件内容的。 那这里我跟大家说一下啊,我现在呢,这里有个环境,就是我们的 centos 零四七的一个系统,咱们基于这样的一个环境呢,去操作整个 cell 的 一个学习。好来了,我这里也有扣端,接下来我们来一起来看一下啊,我连接一下, 连接一下,重新连接一下我们的 cell, 扣端连接进来,连接进来之后,哎,我清一下屏啊, clear 一下,这是扣端啊,扣端。好,我们看一下, 看一下啊,看的啊, etc, 下面有一个 cells, 走,大家看,这里就显示出来我们系统内部的支持的所有的 cell 的 解析器,它有这么多种啊,那接下来我们来介绍一下这些 cell 的 解析器都分别是什么, 这个了解一下即可啊,了解一下即可。首先第一个啊,这个 shell 解析器里面最注意啊,最开始这十组是谁呢?这个 boon shell, boon shell 啊,这个它啊,它是最早的啊,这也是呃, linunix 啊,最初的一个 shell, ok 了,那这是最原始的啊, 现在回过来我们说一下 linix 默认自带的是谁呢?就是这个了, boon again shell 啊,其实它可以注意,其实简称就是 boon shell 的 扩展,它是 boon shell 的 扩展啊, 简称是 bash 啊, bash 啊,这个简称啊,叫 bash。 ok 了,它是目前 linux 系统默认的一个 shell 的 解析器 啊,有非常灵活呀,看它这里举个例子啊,灵活呀,强大的编程接口啊,同时又有很友好的界面啊,交互性非常强啊,我涂成红色了,意味着这个非常重要,这也是所有发行版 linux 系统默认使用的一个 shell 解析器,那我们就用这个 shell 来进解析器来操作啊, ok 了,再往下,还有还有其他的,还有未登录的一个解析器啊,未登录解析器是控制用户不登录的啊,因为有一些所有的程序啊啊,所有的命令啊,就不需要登录就可以操作的。这里还举例例子了,叫邮件服务器啊啊,大部分都是用来接收主机邮件而已啊,并不需要登录这样的一个解析器。 我还有一个戴氏啊,戴氏,这个戴氏呢,大家就醉了,它是一种比较小型的解析器啊,它比我们这个呃推荐的解析器小了很多,所以说呢,这个我们不去讲解啊,这个自己了解就可以了。 还有一种 c a s h, 这个是一个西元风格的 shell 啊,还有一个 t c s h, 这是一个扩展版,是个希那个希希啊的一个扩展版。那这里最推荐大家呢,就是我们的戴氏啊,推荐大家使用这个 呃,解析器,这也是 linux 系统默认推荐的,我们就用这个解析器啊,好,回过来,那这个解析器大家自己回过来啊,那我们到底用的是哪一个呢?我说了是这个红色的,但是不是呢,我们来要较验一下它会不会使用的是这个解析器,怎么看呢?是这样有个语法的, 回来在这里啊,呃, shell 完之后它这样的语法啊,查看的啊, e c h o 啊,这是一个打印输出的,完这里有一个环境变量叫做 shell 哎, ok, 可以 了,这就可以打印出来我们当前系统的呃,使用的默认解析器啊,好,第一个来说一下含义啊, 命令的含义说一下啊,含义是打印输出当前系统环境使用的 cell 解析器类型 shell 啊,解析器类型 ok, 可以 了啊,那我们看一下是不是这样啊,回到哪边呢?回到这边来,我们打印一下 e c h o 完之后,这里 dollar 完之后 shell 好 回车打印出来了,那这里大家可以看得出来啊,我们默认使用的解析就是就是这个啊,我们的 bash 啊, bash 这个解析器啊,好,回到这边可以了,我们知道是它了啊,那这个命令我也详细的介绍一下啊, e c h o 呢,大家注意 这个后面都会有介绍啊,他是呃用于打印输出的啊,打印输出数据的啊,啊,到终端哎,终端的控制台啊,终端可以了。完还有一个大嘴,这个是什么东西呢?这个多了, shell 是 个什么东西呢?给大家看一下啊,这是我们的一个环境变量啊, 是环,是局共享的环境变量啊,环境变量啊,什么叫局共享呢?就是所有的 sell 程序啊,所有的 sell shell 啊, shell 程序都可以都可以读取啊,读取的变量叫做叫做什么呢?共享环境变量啊,好,可以了,完之后这个 shell 呢?大家最啊,它是什么呢?它是局共享什么环境变量呢啊,读取解析器啊,类型的环境变量 读取啊,是全局共享的读取解析器类型的环境变量,环境变量开了啊,那取环境变量,注意啊,叫全局环境变量啊,是什么呢?是所有 cell 程序都可以读取的变量,就叫全局共享环境变量就可以了。 好,那这里大家记我们就介绍完了,这是怎么查看你的系统是什么解析器啊?其实一看就知道了啊,最重要还是这红色的,那 bash, 这个解析器是默认的啊,默认的。 ok 了,那这里大家记我们就介绍完这个 shell 到底是什么东西了。好,我们小节一下, shell 是 什么? shell 是 什么呢?大家就记了,是 啊,命令啊,为什么呢?因为类似大家记啊,类似 windows 的 啊, dos 命令,所以说你可以说它是个命令。 ok 完,又是什么呢?又是又是, 呃,又是,呃,一门程序设计语言,哎,有人说老师没看到啊,没关系啊,这个后面我们在讲解的过程中就会介绍,它是里面包含了很多程序的一个元素,编程程序的元素的啊,好,里面注意,包含,含有啊,含有变量啊, 函数啊,好逻辑控制语句等。 ok, 它包含了一门程序员里面所应有的东西啊,那校脚本又是什么呢?大家注意了,校脚本就是 啊,首先它是一个文文本件,它是一个文文本件。完里面啊,可以编辑,可以编辑啊, sell 命令或编程啊,或进行编程,进行编程,进行编程啊,完之后这个注意了,就是组成了一个 style 脚本,它其实就是个文本文件,我们要在这个文本文件里面边写 style, 命令完之后进行编程,从而, 呃,从而形成一个命令集合啊,形成,形成啊,形成一个可从用 的啊,叫脚本文件。脚本文件啊,文件啊,可以重用执行啊,可重用执行的 执行的脚本文件,它其实就是个脚本文件了啊。好,再往下,那这个 cell 脚本也知道是什么了,那 cell 脚本的作用是干嘛呢?哎,答对了啊,通过编程 cell 编程啊,我们其实最主要是通过四个 cell 编程,哎,来提高, 提高,提高,谁提高?对, linux, linux 啊,啊,系统, 这个系统管理的工作效率,管理的工作效率啊,管理工作效率,这是我们最终要目的啊,效率就可以了。 好,那这里 side 脚本的作用知道了,那最后还有 linus 系统默认推荐使用哪个解析系啊?是不是拜氏?哎,鼻音完之后回过来,这里是拜氏。好,那这里就是给大家讲解的一个 side 脚本的一个介绍,我们保存一下。

从本次开始,我们开始来学习是要脚本编程的系列专题课程, 试药,脚本呢是我们在日常的工作当中一项非常重要的技能,熟练的掌握试药可以提高我们的工作效率,让我们的日常工作变得更加的便捷。本次课呢 是第一次课,我们首先来对 cl 来做一些相关的基础介绍,在本次课 我们来讲三点内容,我们首先来说一下什么是 c l, 再来学一下 c l 编程它有什么样的作用。最后呢,我们来看一下如何学习 c l。 简单来说这样呢,他就是我们用户和计算机进行交互的这个交互的窗口, 我们用户在使用计算机的时候呢,他是需要像计算机来发送指令的,比如说我们在文字当中,我打开 qq, 打开我的浏览器,用播放器看一个视频, 用音乐播放器听一段音乐,这里所有的操作其实都是需要向计算机发指令,然后计算机在收到相应的指令之后呢,他会打开 qq, 会播放视频,会播放音乐。 那么我们人和计算机的这个交互的过程就是发送指令,而发送指令的时候,他所通过的这个媒介就是所谓的 cl。 另外的话呢,计算机在执行完成用户的指令之后呢,他需要把指令的执行结果告知给我们的用户, 通常来说,他给用户来展示这个指引结果的时候呢,也是通过需要的方式来进行展示的,比如说他会 打开视频,让我们用户看到视频,他会打开音乐,让我们用户看到音乐。当然了,在有些时候,如果说发生错误,错误信息也是会展示在我们的视频当中的, 那么这就是实验用户和计算机的一个交互窗口。简单来说,我们的实验会分成两种类型,我们最为常见的是 图形化的摄影, windows 呢,他就是典型的图形化的摄影,就是所有的操作,我们会看到一个图形界面,这个图形界面简单来说就是我们通常意义上的这个桌面, 在桌面上有各种图标,我们通过鼠标可以去点击这个图标,然后呢通过点击图标的形式来向计算机发送指令, 那么 windows 的这种指令或者 windows 这种界面,我们叫做图形化的界面,也叫做图形化的摄像, 简称叫做 g u i, 它的全称叫做 greefice uzent face, 叫做图形化用户窗口。另外一种呢叫做自 字幅画的摄像,字幅画的摄像的话呢,它主要呢是没有鼠标的,就所有操作需要我们用户来发送指令,通过指令的形式来执行, 那么这种式药呢,我们叫做可爱,叫 c l i, 叫 cocomelinter face, 叫做命令行接口。至于说图形化式药,我们平时用的很多,但 大家呢都是比较熟悉的,但是自服摄像他其实功能更强大,而且他的工作效率会更高, 我们可以来简单看一下,比如说我这里, 像这里我们所看到的这个黑色的界面加白色的字体, 这个呢就是一个字符类型的。十二,我们向计算机发送指令,所做的所有操作都是靠我们的命令来实现的,我们说这种方式他的工作效率比较高,我们可以来演示一下, 比如说如果我们在文字当中,我想一次性创建一百个文件,比如说文件名分别叫做 a 一、 a 二一,直到 a 一百,那么他的操作是比较繁琐的, 但是呢在这种字符类型的试验当中的话呢,他的操作效率会非常高,我们可以来操作叫一点点 一百,比如说我们前面加个 a 吧,那么这样操作我们就直接创建出来了这里的一百个文件, 所以说它的效率是非常高的。那么这种试验呢,我们就叫做自服类型的试验,那关于它具体的使用,我们在后面的话也会做详细的介绍,我们现在呢只需要知道有图形和字符。 那我们学习试二编程有什么作用呢?我们通过试二编程,他最主要可以达到两个效果,第一提高工作效率, 第二可以实现自动化,提供工作效率呢,我们刚刚已经看到了,就所有的这种操作,我们通过试药的话呢,或通过这种命令行试药的话呢, 可以很快的把一些复杂的工作给他完成了,他的效率比较高。只是说前期我们可能需要来记忆几个命令,但是这些命令都很简单,这第一工作效率可以变得比较高。第二的话呢可以实现自动化 生产自动化呢,比如说我们的 windows 当中啊,经常会产生很多的系统垃圾,有垃圾之后呢,哎,我们需要手动来扫描,找到垃圾在删除,那我们通过这样呢,我们可以把找垃圾, 删除垃圾这一系列操作给他做一个自动化的任务,比如说我就让他每隔七天或或者每隔十天来扫描一次我的 c 盘,看看有 什么系统垃圾文件,如果找到之后呢,立刻执行删除操作,像这样一系列的工作我们都可以自动化的来实现,那么这就是事业编程才能够达到的效果。那么我们 学习这样的话呢,应该学习什么内容,或者该如何进行学习呢?我们学习这样主要要学习两部分内容,第一,我们需要来学习丽娜克斯的一些基础命令, 这是由于我们在这个使用需要的时候呢,需要目前他的一个主要的工作环境,就是在力量性当中来进行工作和使用的。第二,我们要学习需要的一些基础的语法和规范, 那么至于说力量操作系统的话呢,我们在后面也会做详细的解释的。以上是本次课的主要内容,希望大家通过本次课可以学到一些知识, 如果您觉得我们的课程对您是有所帮助的,欢迎您关注和收藏,谢谢!

欢迎来到 shell 编程完全入门教程。如果你只会用鼠标点点点,或者觉得命令行就是黑乎乎的魔法盒子,这堂客会带你彻底搞懂它。 shell 就是 你和操作系统之间的翻译官。你输入命令, shell 解释给系统内核,内核干活后把结果返回来,整个过程就像打电话,你是用户, shell 是 话筒,内核是听筒。 常见的 shell 有 bash、 z, s h、 s h 等。 macos 二零一五默认用的是 bash, 所以 本教程全部基于 bash 讲解,保证你的电脑能直接跑。你可能会问我为什么要学 shell? 我 用鼠标点点不也能完成操作吗? 答案就是效率!批量给一百个文件改名鼠标操作,得点几百下脚本,一行命令搞定。而且 shell 是 服务器运维的必备技能,面试时拿出来,面试官都得高看你一眼。 不管你是前端、后端还是运维, shell 都能让你的工作效率翻倍。学完这个教程,你就会爱上敲命令的感觉。 这个教程不是那种念 ppt 的 催眠课。我会在 macos 终端里一行一行写代码,用 vs code 编辑脚本,每一步都解释清楚, 所有演示程序都会被自动执行,脚本写好,回车一敲,效果立现。当然,你也可以随时接管操作,自己动手试。学完这个教程,你就可以自己写自动化脚本了,再也不是只能复制粘贴命令的小白,你会理解每一条命令背后的逻辑。 我们还会写一个综合项目,一个显示 cpu 内存、硬盘信息的系统工具。准备好了吗?我们先从第一个脚本开始。 任何编程语言第一课都是 hello world, shell 也不例外。先看这个三行代码,第一行井号 bing bash 叫 shabam, 告诉系统用哪个解释器来跑。这个脚本就像快递单上写的,请交给 bash 先生签收。 第二行是注视警号,开头给人看的计算机忽略第三行 echo 是 最常用的命令,把后面的内容打印到屏幕上, 写 shell 脚本超简单,用 vs code 创建一个 s h 文件,敲入代码,然后在终端里用 bash 命令执行, 也可以给脚本添加执行权限。 mod 加 x 就是 给文件加上可执行属性,然后 hello s h 直接运行 mac 终端里跑一下。看到 hello shell 出现在屏幕上,你就迈出了 shell 编程的第一步,现在我来实际演示一遍。 好,现在打开终端,我们来创建第一个 shell 脚本,用 echo 命令直接写入文件,模拟用 vs code 编辑的过程。 脚本已经写好,第一行 shabang 指明解释器,第二行注视第三行 echo 输出,现在我们用 bash 执行它, 看到了吗? hello shell 打印出来了,你刚刚成功运行了人生中第一个 shell 脚本。 接下来我们给它加上执行权限,让它能像程序一样直接运行。 command 加 x 添加了执行权限, hello s h 直接运行,两种方式都可以,选你喜欢的就好。第一课,完成 变量就像贴了标签的盒子,你可以把数据放进去,需要的时候取出来,需要里定义变量,不用写类型,直接变量名等于值, 注意等号两边不能有空格,这是新手的第一个坑。 name 等于小白会报错,一定要 name 等于小白。 使用变量时,前面加美元符号,双引号里面可以解析变量,单引号会原样输出 echo, 我 叫美元 name 会输出,我叫小白,而 echo, 我 叫美元 name。 会输出,我叫美元 name。 read only 可以 让变量变成只读不可修改,适合定义常量。 onset 可以 删除变量,让它恢复微定义状态。 命令替换是个非常实用的技巧,美元命令会把命令的执行结果赋值给变量,这里 now 等于美元 date, 就 把当前日期时间存进了 now。 变量 shell 中的变量本质上都是字母串, h 等于二十五,也是以字母串形式存储的。做数学运算时需要用美元括起来。后面会讲, 用 export 定义的变量会变成环境变量,能传递给紫禁城 bash c, 启动一个子 shell 也能读到 m y 下划线 r。 特殊变量是 shell 的 内置变量。零美元是脚本名,一美元到九美元是传入的参数,美元简号是参数个数,美元 add 是 所有参数列表。 写脚本时经常用这些特殊变量来处理命令行参数。比如你写了个备份脚本 back up s h back up s h data back up。 在 脚本里一美元就是 data, 二美元就是 back up。 现在动手写个例子, 现在来写一个展示变量定义,只读命令替换和特殊变量。 脚本里用了变量,只读变量命令替换和特殊变量。美元一未传入是参数默认值语法,如果一美元没传就显示未传入,我们不带参数运行看看, 参数个数是零,第一个参数显示未传入,现在带上参数运行 variable s h 张三李四, 参数个数变成二,一美元变成张三。特殊变量美元井号和美元 at 在 写脚本时超级常用,记住它们 想让脚本和用户互动, read 命令就是你的键盘监听器。 read p 显示提示信息,用户输入的内容会被存到后面的变量里, 一次可以读取多个值,中间用空格分格。如果用户输入小名二十, name 就是 小名, h 就是 二十。如果没有指定变量名, read 会默认存到 reply 变量里。 read t 设置超时,时间秒,用户超时没输入命令返回非零状态。美元是上一条命令的退出状态码,零表示成功。 read s 隐藏输入内容,输密码时不会显示在屏幕上。美元并号 password 是 获取字母串长度的语法,这些功能让你的脚本交互性大大增强。下面看看 echo 和 print f 的 区别。 echo 适合简单输出, n 取消换行,亦支持转译符,如反斜杠 n 换行。 print f 是 更专业的格式化输出工具,和 c 语言的 print f 几乎一样,百分号 s, 字母串百分号递整数,百分号 f 浮点,使 s 左对其占时列。 现在我们写一个交互式脚本,把 read 和 echo 都用上 来,写一个交互式问卷。脚本创建 interact s h 自动输入内容,模拟用户操作。 脚本会依次询问名字、年龄和密码,密码输入时不可见。最后用 printf 格式化输出结果。我们用管道自动传入数据演示。 echo 配合管道把三行数据传给脚本,自动完成了输入。名字、年龄、密码长度都正确显示。现在你已经掌握了交互式脚本的基础。 if 语句让脚本有了判断能力,格式是 if 条件, them 命令 five。 注意呵,两边必须有空格,不然会报语法错误。 条件比较用 eq 等于 n, e 不 等于 gt 大 于 g, e 大 于等于 l, t 小 于 l, e 小 于等于对于字母串用等于或等于等于判断相等等于判断不等 是增强版 test, 支持与与合作,逻辑运算不容易出错,推荐使用。条件判断,不仅能比大小,还能检测文件状态。 f 判断是否是普通文件, d 判断目录, x 判断可执行, r 判断可读, w 判断可写。 写脚本时经常需要判断文件存不存在。 f, f concept 点 i, n, i 等。 echo 配置文件缺失 exit 一 five, 这个是逻辑非,如果文件不存在,条件为真。 case 是 多分支选择,比一堆 f, l, f 更清晰。语法, case 变量硬模式命令 e sec 星号是默认分支,相当于 switch 里的 default, 表示分支结束。别忘了写 case 支持通配符匹配,比如 y, y 星号能匹配 y, y, yes, yes 等。开头的输入非常灵活,现在动手写个条件判断的例子, 来写一个条件判断视力,根据输入的数字给评价。创建 condition s h 脚本,先用正则判断输入是否为数字,防止非数字输入,然后 if, if, else 判断分数等级,最后检查 bin bash 文件是否存在。我们用 echo 传入分数,演示 八十五分,输出良好, bash 路径正常。再试试五十九分和无效输入。 条件判断是脚本逻辑的核心,多练习 f case 和文件测试,后面写项目全靠它。 重复操作交给循环 for 循环语法, for 变量 in 列表 do 命令 done 列表可以是数字,字母串,数组,甚至命令的输出 数组用定义美元 fruits at 展开数组所有元素注意要加双引号,否则元素里有空格会出问题。 for i in 一 十可以生成一到十的序列,但 macos 自带的 bash 三点二不支持一十写法,得用 sack 命令。 for i in 美元 sack 一 十 y o, 当条件为真实循环, n t o 正好相反,条件为假十才循环。 count 加加是整数自增的写法,需要 bash, 也可以用 count 等于美元 count 加一。 while 经常和 read 配合,逐行读取文件。 while read, line do, echo, 美元 line down, file, 点 txt, continue, 跳过本次循环,剩下的部分进入下一次 break, 直接跳出整个循环。写脚本时难免要处理边界情况, continue 和 break 能让你灵活控制流程, 注意无限循环的危险。 well true do dumb。 必须配合 break 退出,不然脚本会跑到地老天荒。 现在写一个展示 for 和 while 循环的脚本,创建 loop s h。 脚本包含 for 便列表组、 while 循环以及 continue, break 控制运行,看看效果。 for 循环输出了四种水果, while 从一数到五,循环控制跳过了三,在七处退出。循环是脚本自动化的核心,一定要熟练掌握。 函数就是把一段代码封装起来,起个名字随时调用。定义有两种写法,函数名或者 function。 函数名。效果一样, 函数参数通过一美元二美元访问,就像脚本获取命令行参数一样,美元简号是参数个数,美元 add 是 所有参数。 把常用的操作写成函数,代码会变得简洁又复用。比如一个日制函数, log, echo, 美元 date, 美元星号到处都能用。 shell 函数的返回值有点特殊, return 只能返回整数零杠二百五十五,通常零表示成功,非零表示错误。 想返回字母串或大数字,用 echo 输出,调用时用命令替换美元接收。这是 shell 函数的惯用模式。 local 关键字让变量只在函数内部有效,不会污染局域命名空间。好的习惯是函数内部变量统统用 local 声明。 写多了脚本,你会积累一堆好用的函数,把这些函数放到一个 common s h。 文件里,用 source 或命令引入,就像 python 的 import。 注意与二是把输出重定向到标准,错误,错误信息和正常输出分开是个好习惯。现在我们动手写个带函数的脚本, 来写一个带函数的脚本,计算数字并格式化输出。创建 function s h。 脚本里有加法函数、报告函数和及格检查函数。我们用管道传入数据,自动演示。 小红语文七十,数学八十,总分一百五十,及格了函数让你的脚本结构清晰。一百五十及格了函数让你的脚本结构清晰,是进阶的必经之路。 字幕串处理是脚本携手的日常。美元井号 s t r 取长度,美元 s t r 七比五切片,从第七个字幕开始,取五个美元 s t r old new 替换。第一个匹配美元 s t r old new 替换。所有 美元 st 二井号 pattern 从开头删除。最短匹配美元 st 二井号井号 pattern 最长匹配美元 st 二百分号 pattern 从结尾删除。这些叫参数扩展,是 bash 的 瑞士军刀。 美元 s t r 转大写,美元 s t r 转小写需要 bash。 四点零以上, macos 自带 bash, 三点二不支持,可以用 t 二命令 echo。 美元 s t r t 二 a e a e bash 支持异为缩影数组用定义缩影,从零开始。美元 a r r at 展开所有 a r r 加等于 e, 在 末尾追加元素。注意数组元素如果有空格,定义和引用时都需要加引号。虽然 bash 三点二不支持关联数组字典,但缩影数组足以应对大多数场景。 if 是 内部自断分割符,默认是空格制表符和换行临时修改。 if 等于可以按逗号分割字母串到数组。 read r a 把输入读入数组是 here stream。 把右边字母串传给左边命令数组转字母串用美元 a, r r 星号配合 if 指定连接符。字母串和数组的互转是数据处理的基本功。下面实操一下。 来写一个字母串和数组处理的脚本。创建 string 下划线 array s h 脚本展示了字母串替换数组操作,分割和合并运行。看结果, 字母串被替换,数组追加成功。 c s v 字母串按逗号分割成四个元素,又用横线合并字母串和数组的技能点已经点亮, 重定向是笑的灵魂。把命令的输出写到文件覆盖追加,把文件内容作为命令的输入 管道,把左边命令的输出传给右边命令。当输入 cat 读文件, crap 过滤一连接流水线就搭起来了。 标准输入标准输出,标准错误分别用零一、二表示,二与一把错误输出合并到标准输出,常用于预制记录。 while read 逐行处理文件是 shell 脚本最常见的数据处理模式。 it's 等于保留行首空白。 read r 禁用反斜杠转移。 here document e o f 让你在脚本里直接写多行文本,适合生成配置文件。 e o f 是 结束标记,可以换成其他词。处理大文件时,逐行读取比一次性加载更省内存。 find 命令,按名称、类型、时间等条件查找文件,配合 z r x, 可以 把查找结果传给其他命令处理。 美元 file, 百分号,点 txt, 删除点 txt 后缀,再拼接点 b a, k, 实现批量改后缀,这是参数扩展的经典应用。 文件处理是 shell 脚本的重头戏,配合前面学的变量循环条件判断,你就能写出强大的自动化工具。动手写一个文件处理脚本, 来写一个综合文件处理脚本,创建测试文件,然后处理它。创建 file, 下划线 i o s, h 脚本创建文件储藏、读取 grab, 过滤,批量改名,最后清理运行。看看 文件创建、读取、过滤,批量改名,一气呵成,文件处理就是这么高效。 grap 是 文本搜索之王,基本用法, grap 模式,文件 i 忽略大小写 v, 反向排除 n 显示行号, r 地归目录。 grap e 支持扩展政策表达式,可以匹配复杂模式,比如 ip 地址、邮箱日期等。 在脚本里, grab 常和 f 配合判断输出 if echo 美元 line grab q error then 处理错误, fine q 是 安静模式,不输出,只返回状态。 set 是 留编辑器,非交互式的处理文本。 s o d n g 是 替换命令, g 表示全句替换 side i 直接修改文件, mac os 下需要提供备份后缀,如 i 点 b, a, k set 还能删除行,插入行,打印指定行。功能强大,但语法略复杂,不用全记住,知道它能干什么,查文档就行。 替换是 set 最常见的用途,比如批量修改,配置文件、清理数据等。拷是文本分析的瑞士军刀,它按行处理,自动分割自断。一美元是第一列, n, f 是 最后一列, n, r 是 行号。 f 指定分格符默认为空白。 be 在 处理前执行, and 在 处理后执行。简单任务 grab 搞定复杂替换。 side 上结构化数据分析, arc 显身手,三者配合,文本处理无所不能。现在演示 一个脚本,综合使用 grab set arc 处理一个学生成绩文件,创建 tools s h 脚本生成 csv 数据,用 grab 查找小红。 set, 替换分格符, arc 计算总分并筛选运行 grab set arc 各司其职,数据处理轻松搞定。这些命令值得你多练习,它们是 shell 编程的屠龙刀, 写脚本不可能一次写对,调试是必备技能。 set x 是 最常用的调试选项,它会在每条命令执行前打印出来,让你看清脚本到底干了什么。 set e, 让脚本在遇到错误时立即退出,避免错误像多米诺骨牌一样蔓延。 set u, 在 使用未定义变量时报错,防止 typo 导致的诡异问题。 set o p pfeil, 让管道中任何命令失败都算整体失败,而不是只看最后一个命令。四个选项组合 set yuxo p pfeil 几乎是我每个脚本的开头标配。 在关键位置手动 echo 输出调试信息,从定向到与二标准错误不影响正常输出。 叉 p r 能捕获错误并执行指定命令。美元 lineno 显示出错行号定位问题。超快 bash n 只检查语法不执行,适合快速排错。 bash x, 临时开启调试模式,不用修改脚本。 macos 的 bash 三点二都支持。 新手最常见的三个坑变量赋值等号,两边加空格条件判断和没加空格变量引用没加双引号,记牢这三条能少掉百分之八十的坑,剩下的百分之二十。擅用 set x 和 echo 调试,总能找到问题。 现在我们来故意写一个带 bot 的 脚本,然后用 set x 把它揪出来, 来写一个有错误的脚本,然后用调试技巧修正创建 debug s h, 先让它报错。 脚本里引用了未定义变量,美元 undefined 下划线 far, 先用 bash n 做语法检查,然后用 setu 捕获未定义变量错误 语法检查通过。因为引用未定义变量不报语法错,现在用 bash x 执行。看执行过程, bash x 把每条命令都打印出来了,可以看到美元 undefined 的 下划线 r 被展开为空。现在我们加上 set u, 再试 set u, 让脚本在使用未定义变量时直接报错并退出,防止继续执行导致更大问题。调试技巧掌握好,写脚本事半功倍。 最后一刻,我们把前面学的全部串起来,写一个 mac os 系统信息工具,它能显示 cpu 内存、硬盘网络和系统运行时间。 show 下划线 cpu 函数,用 s, y, c, t, l 命令获取 mac os 的 cpu 型号和物理核心数。 machup cpu brand 下划线 string 是 cpu 品牌字符串, h w physical pi 是 物理核心数。 这个工具结构清晰,函数分工明确,是我们所学知识的综合应用。 show 下划线 memory 函数,获取总内存和空闲内存。 s, y, s, c, t, l h w memsize 返回字结束,通过 b c 计算转换成 g b vm 下划线 stat 是 macos 的 内存统计命令,用拷提取 free pages 数量,再乘 page size 算出空闲内存。这里综合使用了命令替换、算数、运算管道、拷都是我们学过的内容。 show 下划线 disk, 用 d f h 查看磁盘使用拷。提取第二行数据,格式化输出。 show 下划线 up time, 用 up time 获取运行时间。 set 清理输出 main 函数,把所有模块串起来,先显示主机名和系统版本,再一次展示各部分信息。 s w 下划线 where 是 macos 专有命令获取系统版本。 这就是一个生产级的 shell 脚本,模块化,有错误处理,输出清晰,现在演示运行。 现在来写这个系统信息工具,创建 c c 四 h, 写出完整的代码,代码已完成加执行权限并运行。看看你的 mac 信息报告, 完美从 cpu 型号、内存大小到磁盘使用和运行时间一目了然。这就是你学完整个 shell 编程教程的成果,一个实用专业的脚本工具, 恭喜你完成了 shell 编程,完全入门教程。回头看,你已经从只会敲几个命令的小白变成了能写出完整自动化脚本的选手。 你掌握了变量条件、循环函数、文件处理、文本处理调试技巧,还完成了一个实用的系统信息工具,这些技能足以让你在工作中写出高效的自动化脚本。 shell 的 世界还很广阔,你可以深入正则表达式,学 zsh, 提高交互体验。关注脚本安全性,防止注入攻击。把脚本纳入 get 版本管理。 如果在工作中接触服务器运维, shell 更是必备技能。部署脚本、备份脚本、日制分析,处处都有用武之地。

大家好,欢迎来到精灵课堂,我是本节视频的讲师李亚飞。 上一节视频我们学习了校教本中常见的条件测试语法以及判断语句,那么本节视频我们继续来学习常见的循环语句,函数的定义和调用方法。 第一种常见的循环语句就是放循环,放循环语句主要是用在执行次数有限的循环中。 第一种 for 循环的语句写法如下, for 后边是变量名,变量名会依次获取 in 关键字后边的变量取值列表,每一次会获 取一个变量值,然后进入到循环体,重遇见蛋,本次循环会结束,然后取下一个变量值,直到所有的变量值取完,循环会结束。我们来看一下第一种循环语法的使用方法。 我们来写一个简单的测试脚本,我们在这个脚本中进行一下放循环, 我创建一个新的脚本叫 foddy s h。 我们让 for 循环在一个变量值为 one two three 的 这样一个变量循环列表中来进行一个循环,就可以进行一个 for, 后边儿定的一个变量叫做 number, in 就是关键字后边儿呢就是我们的变量取值列表。 one, two three 啊,我们就先念三个,然后就是 do, 后边呢就是循环体,我们的循环体就进行我们每一次 number 变量值的打印。 echo the number 意思就是 dollar n u m 啊,那么我就让它结束循环,我们来看一下它的执行效果, 同样我们需要负执行权限,我们来执行一下每一次循环的变量值,我们就进行了打印,这个呢就是 for 的使用 方,循环中的变量取值列表也可以省略,例如我们在运行过程中,我们脚本有一些参数传递,我们就可以使用 dollar at 来获取变量取值列表,其实我们在讲传餐的时候已经讲到,讲到过,那么我们可以简单的来看一下它怎么使用, 假如说我会有参数的传递, four 后边一个变量 i, 我们就使用 in, in 后边呢就是 dollar at 我们的参数取值列表,我们可以加上一个双引号,我们来看一下执行效果, 就直接是到了爱, 同样我们执行一下,假如后边我们跟 三个变量值啊,我们可以看到我们获取到的传递的参数进行了打印,这个呢就是 for 循环,第一种常见的使用方法, 第二种放循环的使用方法,有点类似于 c 语言的写法,就是可以用两个 括号,一般是适用在数值方式的运算当中。我们可以看到在双括号里边,第一个值呢是初始值,也就是我们要定义的变量的一个初始化的一个值。第二个呢是限制值,也就是变量的取值范围。 第三个参数呢是执行不长,也就是我们要可以进行,我们可以进行变量的自增或者是自减, 然后呢就是进行程序的执行,我们可以简单的举一个例子来看一下第二种循环依据的使用方法, 那同样是这一个脚本,嗯,先把前面的屏蔽一下, 我们进行一个简单的数值循环,放 后边我们再取一个变量 i, 假说它的初始值是一,我让它在一到六之间进行循环,每一次呢增加一, 我们把每一次的 i, 这个变量的取值呢,我们进行一个打印, 我们来看一下执行效果, 这个呢就是 fold 第二种使用的方法, 第二种常见的循环语句呢,就是 well 循环。 well 循环语句的写法如下,在 well 命令后边儿呢,跟的就是条件表达式,条件表达式如果成立就进入到循环体中,每次遇到 d o, n e, 我们会再次进行条件判断,条件判断如果满足会继续循环,直到条件表达式的判断为假,那么就会跳出循环。 当然如果一开始我们的条件判断就不满足条件,那么就会直接不会进入循环体。 当判断是为空的时候,我们也可以写成 will, 后边加 truer 或者是冒号,这个时候呢,就会进入到的是无限循环。我们来看一下 will 的写法, 同样我再定义一个新的脚板, 嗯,假如说我在循环的时候会传递一个参数,那么我判断一下这个参数跟十的大小,如果要是小于十,那么我就会对这个变量进行打印, 并且加一,直到我的变量值大于十之后会跳出循环,我们看怎么写定一个变量,先获取一下传递的参数值, dollar e 循环判断条件呢?我们在上节课也讲过,我们用方括号来表示,方括号空格 到了 i, 如果小于十啊,那么我们就进入到循环,那就用的是杠 l t, 如果忘记的话,我们可以查查我们上一节课内容, 十后边是空格,然后是反括号。进入到循环, 循环呢,我们就打印 dollar i, 然后我们对 i 进行一个操作,就是加一。好 好,我们来试一下, 假如说我传递的参数是二,我们可以看到就打印出了二三四五六七八九,直到为十十。因为我们是 l t, 它是小,于 是没有等号,所以呢就循环结束了,这个呢就是 well 的使用方法。 第三个呢,我们要讲的是函数。我们在进行程序设计的过程中,经常会有一段代码会被重复调用,我们就可以把这一段代码组合成一个函数题,给他取一个函数名, 我们需要重复调用的时候,就直接调用这一个函数名就可以使用。函数调用可以减少代码量,提高效率,增加程序的可读性和一致性。函数的定义方法呢如下, function 后边呢是函数名,函数名后边可以加一个小括号,在大括号里边呢就是我们的代码, 也就是我们要执行的操作。我们需要注意的两个点是 shell 脚本呢,它是从上而下执行的。如果我们要进行 函数的调用,那么函数的定义我们就必须要在调用之前。函数呢,有的时候我们可能会根据他的返回值来进行下一步的操作判断, 那么返回值呢,必须是零到二五五的整数,这个呢就是函数。我们来看一下函数的使用方法, 我们把刚才 well 的那个脚本复制一下,我们继续这个脚本来进行一下改动。 嗯,假如说我要把整 整个 well 的循环,把它放到一个函数里边,那么我就可以定义一个函数,假如说叫做饭待码段呢,我们需要用大括号 调用,你们在结尾呢 acq 一下, 我们执行一下。假如说我的参数是一个大于十的值,我们可以看到进行了 echo 打印,假如说我是一个小于十的值,我们可以看到执行了整个儿放函数里边儿,这个呢就是函数 的定义以及调用方法。我们在函数在使用的过程中呢,也可以进行参数传递,可以进行传餐,我们来看一下传餐怎么使用, 我们把我们的代码修改一下,我把现在的屏蔽一下。 同样,假如说我定义了一个函数, 这个函数怎么用呢?我在调用的时候,我会给他传进去 两个字符串, a, b, c, 假如说是已知的 a, b, c, 我在函数里边呢,需要进行一个字符的判断,判断一下两个字符的大小是否相同, 这个时候呢我们就可以使用我们前边学到德国的 dollar 加上字母 if, 我们可以用方括号,方括号表,注意我们要加上空格 dollar e, 字符判断需要加引号,到了二空格放括号, 如果相同的,我们就打印输出相同, 我们就说 v r 一等于 v a r 二, 反之我们就输出不强等。 我们在函数题里边,如果是使用 dollar 一和 dollar 二,它表示的呢是函数的传餐,我们可以执行一下, 你可以看到是相同的。假如说我的 函数,我的函数的参数呢,其实是通过脚本传递过来的,我们还可以继续使用 dollar 一和 dollar 二。 假如说 a, b, c, b, c, d, 我们可以可以看到打印输出的呢,就是不相等,是相等,这个呢就是我们在使用函数的时候进行参数传递的使用方法。 另外呢,我们刚才也说到了,我们在执行代码的时候,有的时候我们需要根据函数的返回值来进行下一步的操作,那么我们就可以仍然进行返回值的操作,我们也可以简单的看一下, 我们继续这个代码,我们简单的改一改,好,我们在这边加上它,假如说我就不进行打印输出,我进行 return return 一个,一,相同的时候我 return 一, 不相同的时候呢我返回二, 我的参数传递我就不变,那么我可以再根据返回值再进行判断,这个时候呢就可以使用我们前面讲到的特殊变量里边的 dollar 问号, 等于就是杠 e, q 等于一的话空格,不要忘了 我们再给它输入 vr, 一等于 vr 二, 否则 不等 我们来执行一下, 仍然我们的边量是 a, b, c, 嗯,我们看一下啊,代码有点问题,在三十号 啊,我们可以看到在一后边少了一个空格,用中心执行,可以看到两个啊是相同的,这个呢就是我们返回值的使用方法。 以上呢就是我们本节视频的内容,我们讲了常用的循环语句 for, 还有 well, 以及函数的定义和使用方法。我们本节视频呢就先讲到这里,我们下期视频再见。

就是我们实现的方法非常的简单,我们就用 vs code, vs code 有 很多,有很多插件,比如说我们首先有个插件叫 rocode, 然后我们现在用的 coplay 了, coplay 了里面呢它有一个叫远程,远程开发,还有个方法是什么呢?不用电脑安装,我们可以做一个网页版本 vs code 的, 我们是做了一个网页版本的 code server, 不知道大家有没有注意到有个这样的插件,通过这个插件的话呢,你可以有一个网页版本的 vs code 的, 而且这个网页版本的 vs code 呢,它是有一个 coopilot 的 一个插件的,也就是你可以通过这个 icloud 这边本身带有的这个网页版的 code server 来实现一些 ai 的 编程。


在服务器里面有一个叫 linux 系统,是现在各种语言啊,各种企业啊,使用服务器最多的一个服务器啊,那要想玩好服务器,比如说 linux 系统服务器,想提高 linux 系统服务器工作的效率,那我们必须要学一个技术,就是 shell 啊,那无论对任何开发语言的程序员来说,或者是呃开发组长啊,或者是呃呃开发的主管啊,或者是我们说的 cto 啊,都需要了解的一个技术,都需要掌握的一个技术就是 shell 啊,可以大大提高我们工作的效率,尤其是管理 linux 系统的工作效率。好,那我们想提高工作效率,必须要学习 shell 九个部分的内容。好,第一部分就是 shell 脚本的入门, 通过这个入门呢,让大家了解 shell 在 到底在 linux 系统里面起到一个什么样的作用, 他是干什么用的?他的解析器是做什么的啊?完之后我们我们要做什么啊?完之后解析器要做什么?整个 linus 系统是怎么运转的?这就是我们需要脚本入门需要解决的问题,而且我们会做一些呆萌的测试的案例啊, ok 了, 完之后整个 cell 呢,最主要是通过它的编程来提高工作效率。那说到编程,大家注意第一个我们就想到的是变量,任何语言啊,你编程首先都要从变量学起,用来存储数据的啊,用来计算的。 好,那炫耀变量呢?它里面有不同的分类啊,有环境的变量,有系统级环境变量,有用户级环境变量,还有自定义变量,还有一些特殊的符号的变量,哎,我们会深入的讲解,而且这里我们会讲解整个,尤其那个系统级的环境变量和用户级的环境变量,我们会深入剖析 解决里面到底是怎么出石化的,怎么就走了用户级,哎,完整的一个深入的原理解析。 好,那我们还会深入讲解 cell shell 啊,它里面的内置命令啊,一些常用的强大的内置命令,可以方便提高我们的工作效率啊,帮帮我们在后面的制作任务啊,制作大量的计算的时候,哎,使用的命令 完之后,我们必不可少,编程要离不开运算符,那你要做计算肯定离不开运算符的,所以说我们这里会讲解啊,比如说逻辑运算符,算数运算符,波尔运算符,注算测试运算符,还有文件等等等。运算符 都是很常用的啊,对文件的操作,对公式的操作,对啊,自创的操作等等。完之后还有执行的命令啊,那执行命令也有千变万化,好多种方式,那也会给大家讲解很多种方式啊,让大家学习更多的执行命令方式。 好,那还有流程控制语句,那流程控制语句大家就比较清晰了,什么 if 条件句啊啊,或者是 case in 它那个分支结构啊,还有什么 while 循环啊,还有里面的 for 循环啊等等等,让我们可以进行啊,语句块的编程啊,或者是逻辑结构语句块的编程。 好,还接下来还有 excel 函数, excel 函数呢,可以让我们代码具有重用,或者脚本具有重用,或者是我们的 excel 命令具有重用,它是一个函数块,代码块啊。 完,最后呢,这里还会讲到 excel 的 重定项,那重定项呢,就可以帮我们把数据进行整理保存啊,指定输入输出的方向,让我们数据可以保存在文件中。哎,可以保存在我们指定的一个输出的方向,哎,重定项。 完了,最后还会讲解, excel 比较好用的工具啊,比如说截取,对字幕串操作啊,对文件操作截取的工具啊,完之后对排序的工具,对搜索的等等工具,这样的话可以大大提高我们工作的效率,这是最核心的 excel 的。 呃,工具命令啊, 完最后呢,我们会讲解啊,呃,我们大场啊,面试必备的面试题还有一些。呃,咱们比如说什么京东啊,阿里啊啊,面试题我们都会讲的到啊,那大场面试题呢,大家要认真听了,好好听哎,对于你以后去面试呢,绝对是有很好的帮助的, 来提高大家整个校的学习的能力。好,那不多说了,这里只是介绍一个概述,一会我们就开始学习。

这一节我们讲解 excel 脚本入门的编辑还有执行,刚才呢,我们已经知道上一节我们已经知道 excel 脚本是什么了,就是一堆命令, excel 命令和一些它的编程语言。 好了,那接下来我们就要去编辑我们的 excel 脚本了。来看,首先第一个就是我们要知道两个目标,我们要掌握两个目标,第一个就是 啊, shell 脚本编写的规范啊,它有什么规范?它有什么注意呢?好,第二个我们要知道怎么去编写 shell 脚本,它有呃,一编写啊,第二个它有三种方式的执行,执行 shell 脚本的呃, 三种方式好,知道它的区别,这是我们的目标啊,通过这些我们就知道啊, shell shell 脚本怎么写了完之后怎么去执行我们的这个脚本文件了。好,来看,首先看一下它的编写规范啊, 编辑规范里面第一个规范就是我们的呃, shell 脚本文件的后缀名规范后缀后缀名啊,首先第一个啊,我们的 shell 脚本文件 脚本啊,文件就是一个文本文件,这是我们之前说过了啊啊,后缀名啊,后缀名规范要求规范啊啊,后缀名,建议吧,建议使用 d s h 结尾啊,这个我把它标注起来啊, 标做起来点 s 结尾, ok 了,这是推荐,这是我们规范来的啊啊,也可以使用任意的其他名字,但是它可读性就不好了啊,可读性不好了, ok 了,一般建议我们的点 s h 结尾。 完着我们的 shell 脚本文件呢,它的首行格式也是有要求的。首行格式要干嘛呢?要配置 cell 解器的类型,要配置设置啊,设置就行了,设置我们的 shell 解析器的类型啊,首行需要设置首行需要设置解析器类型,那它的语法是什么呢?语法是这样的,来,我给大家写个它的语法啊, shell, 好, 它的首行是简号,开头完之后,感叹号完之后并完了,里面是一个 bash, 注意了,固定的,这是固定的啊,有的同学会问老师为什么这么写呢?哎,固定的,规范的,这就指明了我当前需要脚本是通过哪个解析器来运行的啊,所以说这里写个含义,这下面我写个含义啊,含义, 含义啊,就是设置当前需要脚本文件,脚本 文件采用啊,我们的 bash 解析器啊,解析器啊,运行脚本代码, ok, 这样的一个操作。这首行格式的规范的一个要求 完之后,我们这个文件规范里面还有格式注视,注视的格式啊,啊,怎么去注视我们的代码呢?怎么写一个备注呢?每种语言呢,都有它的备注的好,那我们的 shell 呢,也包含备注的啊,比如说注视,有一个叫单行注视, 单行注视,还有一个多行注视,可以了。那单行注视的语法啊,来看一下啊,它的语法是怎么样的?语法是这样的,语法 好,我们的 shell, 它的语法是紧靠开头空格啊,也不用空格啊,紧号完后面写着注示内容就行了。 注示内容,哎,就这样的一个操作,这是单行注示啊,那同样我们有多行注示,它的语法来看一下啊。语法,它的语法是长什么样子呢?它的语法是这样的,首先是一个冒号,冒号完之后一个感叹号,回车 往里面呢,就是注视的内容了,那注视内容,这个就可以多行了啊,多行注视内容了。哎,这是注视啊,内容一啊,这是注视内容二了,内容二, 当然了,这里面都可以不用写井号了啊,这里还有一个注视的结束,这个结束呢,还是个感叹号,注意啊,所有的符号都是英文的,英文的。好,这就是我们注视格式的要求,有单行注视,有多行注视。 那这里我们就讲了 shell 脚本文件编写的三个规范啊。好,那规范有了,接下来我们就可以写一个 shell 脚本了啊,接下来我们来一个入门的案例啊, hello word 啊,一个入门案例啊, 需求是什么呢?要我们编写一个 shell 脚本文件,叫做 hello word, 点 s h 完,输出 hello word 字串。哎,这是我们的需求啊, 那这个怎么做呢?回过来看这里,这样去做啊,首先我们要创建一个脚本文件啊,那这个创建脚本文件,我们用 touch 这个命令就可以了啊,好,创建文件,这个文件叫做什么呢? hello word, 点 s h。 哎,大家看,这就创建一个文件啊,这文件就有了。好,这文件有了之后呢,在这里我们就可以去编辑这个文件了啊,它,我们要写这个脚本文件嘛,那编辑的时候注意我们 spell 脚本文件的规范啊,怎么编辑呢?利用我们的编辑器 v i m 啊,好,完之后, hello word, 点 s h。 走,打开,打开呢,大家记,我们进入了一个编辑环境,我们编辑了啊,插入完之后呢,首先记住首行的模式啊,首行的要求紧号,感叹号,斜杠,并完之后还有一个 bash, 哎,这就是指明我们使用什么解析器了。 完,接下来它的要求是什么呢?输出 hello word, 哎,大家看,我就写个 hello word, word 搞定了,这就是一个脚本文件了啊,后面我们会学很多的命令,很多的程序设计语言啊,啊,很多的程序编程的那个逻辑控制语句啊,变量等等完,到那个时候我们就可以写很多的编程的代码了, 但是现在只是一个,呃,讲解怎么去写一个文件,只看一个例子啊,就可以了。好,这里我退出完着 shift 冒号 w q, 啊,这里回到我们的命令模式编辑啊,这里冒号,哎, w q, 哎,等一下,这里它那个 乱了啊,这个命令不乱了,不管它,回到这边我们 ctrl c 结束一下,回来了啊, w q, 保存,哎,保存了 啊,刚才那个是乱的啊,我们客户端软件容易啊,不小心一操作就乱了,但没关系,这个文件我已经编辑完了,我们可以看一下文件的内容啊, hello word 走,哎,编辑成功了,里面已经有我们的命令了 啊,已经有我们的啊,这个啊,首行啊啊,输出的命令啊。完,接下来我就要执行这个文件了,那接下来执行这个脚本文件,回过来怎么去执行呢? 哎,脚本文件我们已经编写完了,这时我们的需求已经搞定了,哎,接下来就是执行这个脚本文件。好,执行这个脚本文件。回到这边大家注意,接下来我就要讲解脚本文件执行的三种方式啊,脚本的常用执行三种方式,应该是脚本文件吧。 脚本文件的常用执行三种方式有哪三种方式呢?有第一种大家就对了,他是什么呢?是 s h, 但是对解析器, 解析器执行方式,执行方式啊,然后第二种叫拜式解析器解析器执行方式, ok 啊,好,第三种就是仅 路径执行方式,他有三种啊,那这三种啊,那这三种呢?首先我们一个一个来介绍啊。第一个啊,那第一个他自己回来,我首先介绍他的是什么呢啊?这个只,呃呃,介绍吧,介绍就是利用啊,就是利用, 叫 s s h 命令,那命令执行脚本文件,脚本文件,这是介绍啊,那他的语法是什么样呢?我们把它的语法写一下。语法 它的语法是这样的,来看啊,这样写一下啊,它的语法是 s h 加上脚本文件空格啊,脚本文件,哎,这就是。呃,利用 s h 命令执行脚本文件了,这是它的语法,这是它的介绍啊, ok 了,那它的本质是什么呢?本质就是使用使用我们的 excel 解析器 解析器啊,运行脚本文件,这是它的本质来的啊,本质啊, ok 了,那这里单词就是 s h 执行脚本文件了啊。啊,这个有脚本的呃,直接执行就可以了啊。 s h 加脚本文件,那我们来试一下啊,回到这边来看, 根据我们刚才这个语法啊,这是我们第一种语法啊,看一下啊,第一种语法,回到这边来执行一下。怎么执行呢? s h 完了写成脚本文件 hello world。 点 s h 啊,那这个是一个相对路径啊,的一个执行,没关系,走。哎,执行了就是输出 hello world, 因为我整个脚本文件里面没做别的事情啊,就做了一个输出,所以说一直行,大家看就输出来了, 这个脚本文件就运行了,按照我们的命令输出 hello world 了。 ok 啊,这是相对路径啊,你还可以写全对路,全路径啊,全路径,全路径呢,大家注意,回过来啊,我们的全路径是在哪里呢?我给大家看一下我的位置啊, p w d, 我是 在 root, 超级管理员瞩目如下, 那我要写这个文件的执行。写全路径的话啊, s h 写什么呢? root 下面 hello word, 点 s h 走。哎,也是可以的。 所以说呢,你后面跟着相对路径,绝对路径啊,都可以的,后面跟着脚本文件就行了。好,那这里就完成了我们的第一种解析器的解析方式啊,叫 s h 的 解析方式啊, 那接下来看一下我们的第二种啊,第二种跟我们的第一种非常类似啊,我直接复制过来就可以了,粘贴 这个答对了,这个命令换了,不叫 s h 了,叫 bash。 ok, 那 利用的是什么命令呢?有个 bash 命令,它的本质呢,也是使用 shell, shell 解析器来进行运行脚本的啊,它的,它俩的概念是一模一样的啊,功能也是一模一样的啊。 好,回来,那这里答对,用这种方式也是可以的。 bash 啊,那我们试一下啊,这是我们的玩第二种方式,解析了, 来看一下行不行呢。直接写脚本文件啊,这里写 bash 啊,完之后写什么呢? hello word 啊,点 s h 啊,走成功的,所以说这种方式是 ok 的。 好,这是相对路径,那再来一个全路径 bash, root 完了, hello word, 点 s h 执行, ok 也可以的啊,所以说这是它的第二种执行脚本文件的方式。好,回过来再讲第三种,仅路径方式啊,那仅路径方式,大家注意,回来啊,它的语法啊,就比较简单了。回过来 啊,这把什么命令都没有了。来看啊,他直接就是脚本文件直接就是脚本文件啊, ok 了,那这个脚本文件大家注意回来啊,一般运行的时候啊,应该是这样的,我们指定一个点斜杠啊,就是当前运行的,是当前目录下的脚本文件。 ok 了,那这里介绍一下啊,就是运行啊,执行吧,执行当前啊,目录下的脚本文件啊。执行了,但是回过来这个脚本文件直接啊执行啊,这个是脚本文件自己执行,需要脚本文件自己执行。 需要什么呢?这里回过来,这里我把它放到什么呢?放到注意里面去啊,这里加个注意。 ok, 加个注意啊,交本文件自己执行。需要什么呢?需要具有可执行 可执行权限,否则无法执行,否则是无法执行的。回过来,来,一起来看一下, 走一下,把这个拿过来,这是我们的第三种仅路径方式执行啊。拿过来啊,好,首先我来执行一下,看他有没有这个权限啊,直接点斜杠执行。 hello world, hello world 啊, hello world, 点斜杠啊,点斜杠是当前, hello world, 是 我们的这个脚本文件啊, ok, 走, 大家看,权限不够啊,大家看,我在写的时候他没有提示的,我写了,比如说, hello 啊,我要按 tab 键,不能自动补全,为什么呢?因为系统已经知道你没有这个权限去执行,所以说他都不给你自动补全好了。那怎么办呢?需要添加权限的,添加可执行权限。好,那我们来添加了。 怎么添加呢?七 h mode 啊, m o u d 啊,这个命令啊,他最给谁去添加呢?我给所有用户添加一个可执行权限啊,当然了,你可以给拥有者啊,给主源都行啊。呃,我们给所有人都增加执行的权限, 对哪个文件呢?对这个 hello world, 这个文件走添加了执行权限啊,只要添加了这个执行权限,哎,能不能执行了呢?可以了,点斜杠 hello world, 哎,都有智能提示了,走执行了。 所以说总共执行脚本文件有三种方式啊,那这三种方式呢?大家自己回过来,下面都有详细的描述,都有详细的说明啊。 ok 了,这就是三种方式啊,那这三种方式大家自己回过来,有一些区别的啊,说一下它的区别。 区别啊,好,这区别是这样的。回过来啊,这介绍啊,这区别啊,三种方式的区别,三种 方式的区别啊,那大家注意回过来啊,我们其中 s h 或 b s, 大家注意啊,执行脚本文件方式啊,方式是什么呢?是直接使用 shell, 我们的 shell 解析器运行脚本文件,脚本文件不需要可执行权限,不需要这个权限的,但是仅路径方式,仅路径 路径方式。大家,对了,是执行脚本文件自己是执行脚本文件的,需要 可需要啊,需要可执行权限。 ok, 注意这个问题就行了,这是他们三种方式的一个区别啊。好,搞定了,那这里呢,我们就讲完了 shell 编写的格式和执行的方式啊,编写的格式和执行方式我们小节一下啊。首先来看一下这里第一个 shell 脚本 文件啊,编写的规范有哪些规范啊?他有这几个规范啊,就是文件的后罪名,后罪名,哎,注意了,推荐建议使用什么呢?建议使用 d s h 结尾啊,扩展名,扩展名就可以了,这是他,我还有一个首行的规范啊,首行规范, 首行对,规范,首行规范,他自己回过来啊,是要需要指指明设置啊,需要设置啊,解析器类型, ok, 那 这个解析器注意啊,那这里他的语法,语法是什么呢?是警号, 感叹号啊,完之后必完,里面是拜师,哎, ok, 这是首行的规范。好,最后一个得罪了,就是注视啊,注视啊,脚本文件中的注视,脚本文件中的注视,那这个注视呢?分为两种,一种是单行注视, 单行注式, ok, 还有一种叫多行注式啊和多行注式。多行注式, ok, 那 这个单行注式大家也比较简单啊,多行单行注式呢?呃,就是利用一个井号,利用个井号空格,完之后注内容就可以了。 注式内容啊,完之后我们的,呃,多行注式稍微麻烦一点啊,多行注式,它的麻烦是什么呢?是个冒号,完之后是小于号,小于号,感叹号啊,后面空格啊,这里还得要换行的 啊,换行完了,里面我这里要这样去写了,直接这样去写了,完里面是呃注示的内容了,注示内容啊,好,最后还有个结尾,这个结尾呢,到这里还有一个感叹号,这里感叹号, ok, 这才构成一个多行的注示。 好,这是我们的 excel 脚本 excel 脚本文件的编写规范啊。完,接下来我们还讲解了执行文件的三种方式啊,哪三种方式呢?第一种就是 s h 注意了执行脚本文件,还有一个就是 bash 执行脚本文件,还有最后一个就是仅路径执行脚本文件这三种方式,那这三种方式大家要知道它的区别啊。区别是什么呢?前两种, 前两种,两种啊,是解析器直接执行不需要可执行权限,权限在最后一种。最后一种啊,最后一种,最后一种, 最后一种是脚本文件自己执行,需要可执行权限。哎,这是他们的区别。好,那这一节我们就讲完了编程脚本入门的一个编辑格式和执行方式。
