粉丝2.5万获赞13.7万

运维面试时,你要是这个问题都答不上来,那你也是好日子到头了。今天我们再来说一下 excel 脚本,简单来说呢, excel 就是 linux 和 unix 系统的命令,翻译官最常用的 space, 而 excel 脚本就是把你平时在终端手动敲的命令,比如说 l s c p m k diy 按执行顺序写到一个文本文件里,让系统自动批量执行的工具,而它的优势就在于它不用复杂的编程环境,从文本编辑就能够写,是 linux 下自动化操作的清亮神器。 七号脚本的核心用途有三个,第一是自动化重复操作,比如每天定时备份文件,批量清理过期日期,统一重命名一批文件,不用手动一次次一个个的去敲命令。 第二呢是简化系统管理,一键启动或者停止服务器服务,比如说 nikos 和 micro 等,批量创建用户检查服务器内存状态。第三呢是清量逻辑控制,最简单的判断加执行的场景,比如判断文件是否存在,存在就备份,不存在就提示, 不用写 passion 或者 java 这些复杂的代码。然后这里我们说一下下脚本的,然后我们说一下脚本的核心组成,有几个点大家都需要去注意,首先是解释器说明,脚本第一行必须写这一串代码, 告诉系统却有 bios 来执行这个脚本,这是下脚本的身份证,是不能够缺的。第二呢是注字,用井号开头标注说明,比如井号,这是备份脚本, 这是给人看的,系统会忽略掉。第三呢,变量存储临时数据,不用提前声明类型,比如给用户名存值,用用户名等于张三调用时加金钱符号,金钱符号用户名,注意等号前后是不能够有空格的。最后一个呢则是流程控制, 最常用的是条件判断 if 和循环 for。 核心逻辑是满足条件就执行 a, 不 满足就执行 b, 以及重复执行某段操作 n 次。接下来我们来看一个很简单的脚本识别,这个脚本的逻辑是非常简单的, 首先是提示用户输入名字,第二呢是读取名字,第三呢则是判断名字不为空。第四呢就是输出问候语, 比如说你好张三,它的核心就是从输入再到判断再到输出的基本逻辑。这样的话我们就不用去纠结代码细节,重点理解脚本是按顺序执行命令以及简单的逻辑判断。那最后呢,有关 excel 的 所有资料, 以及我们的一份命令大全,各类的 linux 学习所需要用到的笔记资料等,我都整理成一个工具包了,有需要的同学直接在右边留下, linux 就 能拿到。

从本次开始,我们开始来学习是要脚本编程的系列专题课程, 试药,脚本呢是我们在日常的工作当中一项非常重要的技能,熟练的掌握试药可以提高我们的工作效率,让我们的日常工作变得更加的便捷。本次课呢 是第一次课,我们首先来对 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 脚本的首行叫 shellbang, 可以 读作西邦,是英文 shopbang 的 发音,仅耗叹号的意思。技术领域多直接用英文。大家好,今天不聊枯燥理论,直接通过解析一个脚本,了解 shell 变量定义、条件判断、管道服用法以及自动清理过期备份的方法。 这是一个生产环境常用的 micro 自动备份脚本。脚本首行用于指定 shell 解释器位置,即 shellbang。 常见写法有这几种,有 有三个。事办规则需谨记,一、必须位于文件第一行前面,不能有空格或注视,否则无效。二、仅在直接执行脚本时生效,也就是把脚本当可执行文件执行时有效显示指定解释器时会被忽略。三、若无事办,系统默认用当前少执行,易引发兼容性问题。 先看脚本开头,这里是变量定义区,在少中定义变量很简单,直接写变量名等于值,但要注意等号两边一定不能有空格,否则脚本会报错。这里精妙之处是 date 加小括号,表示执行里面的命令,并将结果赋给变量。我们用花括号形式引用变量,能确保拼接复杂文件名时少不会认错人。规范引用是写出见状脚本的第一步。 下面开始脚本逻辑会看到 if d 这样的语句, d 代表目录,感叹号表示取反。意思是如果目录不存在,就创建一个。这里有个细节方,括号内部两侧必须留空格,这是少的刚性语法。 脚本核心部分是备份数据库使用麦克斯的笔具,这里体现了 linux 的 艺术。管道符竖线可以把它想象成一根水管,是少常用的重定向符之一,核心作用是将前一个命令的标准输出作为后一个命令的标准输入,实现多命令联动处理,让命令按流水线方式执行。 管道服有两个核心特性,一、仅传递标准输出,标准错误不会被管道传递。二、管道前后的命令并行,执行前命令输出一点,后命令就处理一点,无需等待前命令执行完毕。 管道就像一根水管,把 mysc dump 导出的巨大数据流不落地存成文件,直接塞给压缩工具 zip。 其高明之处在于全程在内存中完成,不产生任何中间临时文件,这不仅让备份速度翻倍,还极大节省硬盘 i o 损耗。 最后,这个待遇号叫重定向,负责把压缩后的流水精准装进最终的文件桶,管道转接。重定向收尾是是要处理海量数据的高效秘密武器。 重点来了,问号变量,它代表上一个命令的退出状态,如果它是零,说明备份成功。如果不是零,说明出错了。这是因为脚本里最核心的逻辑开关, 一个优雅的脚本要做好收尾和清理。使用 find 命令,按 time 加七,能自动筛选出七天前的老文件,配合 x x 参数,脚本可精准删掉过期备份。通过这四步,一个经典的全自动备份脚本就完成了。

我们可以将解释器当作人与计算机硬件之间的翻译官,它作为用户与操作系统之间的通信媒界,除了能够支持各种变量与参数外,还能提供控制结构。特性 是要脚本命令的工作方式有两种,交互式和批处理。交互式,每用户输入一条命令就立即执行 批处理,为用户事先写好完整的脚本。一次性执行脚本的诸多命令。编辑简单的脚本 编辑脚本的原则其实就是使用编辑器把命令按照顺序依次写入到一个文件中,这就是一个简单的脚本了。 例如,如果想查看当前工作路径下文件的属性和内容,脚本可以写成这样, 脚本名称可以随意指定,避免误认为是普通文件,可以加上 s h 后缀。 脚本中第一行用来声明用哪种解释器来执行脚本 其他己行为执行的命令,这样一个简单的脚本就写好了,下面我们来执行一下。 除了这种方式,还可以用添加选项的方式来执行, 同样可以执行。下节我们来讲接收用户的参数,谢谢大家关注。

shall 是 什么?很多人把黑窗口叫 shall, 其实那只是终端 terminal 终端只是一个应用程序,用来输入和输出,真正的灵魂是躲在它背后的解释器 shall。 shall 是 用户与操作系统内核之间的交互接口, 也是命令解释器。它将人类的指令翻译成内核,能听懂的系统调用。就像浏览器有很多种,如 chrome, safari, shell, 也有很多家族成员。最经典的是 sh, 还有目前应用最广的 bash。 它是大多数 linux 发行版的默认交互。 shio 下无崩处三抽 s 如果你是 mac 用户,你现在默认使用的则是 zsh, 不 信的话,在终端输入 echo shell, 看看自己当前正在用哪种解释器。看 o 崩处脚本第一行 and s h, 指定了解释器路径。在无泵处终端输入 a o s 杠 l 并 s h, 你 会发现它居然指向了 dash。 这解释了为什么有些 bash 特有的语法在无泵处脚本里运行会报错,但这并不表示一泵处默认是 l 是 dash。 顺便说一句,不要修改无嘣触软连接 s h 指向 bash u 嘣触。很多脚本都是 dash 解释的,修改后可能会出问题。当你在终端输入一条命令 else txt l 并回车,背后发生了什么?当你按下回车键, shell 并不是立刻运行程序 else, 而是先进行一场预处理。此法分析 tokenization, 他 扫描你输入的字串,寻找原字母,在这里是空格。他把长句子切成了三个独立的积木块,展开与替换。一词攀神。 shall 发现第二个积木块里有个星号。假设目录下有 a 点 txt 和 b 点 txt, 执行 execution, shall 到这时才会去寻找 ios 这个程序通常在并 ios 启动 ios 程序,并把加工好的最终清单 a 点 txt b 点 txt l 位给他。结论,程序本身永远看不见星号,他收到的永远是 shall 翻译好的最终清单。如何能让 shall 不 去解析星号呢?下节继续讲 shall 关注我,每天轻松学一个 linux 命令。


hello, 大家好啊,这期我来说一下为什么 ai 时代推荐大家独立开发,别再用 docker。 第一个我们来说一下这个 docker 是 为谁设计的,比如说我们每个电脑的这个 node python 版本它都不一样,然后 docker 的 话就可以统一打包这个环境,让我们的应用锁死在 docker 容器里边解决,我们在每一台电脑它都能跑。 呃,第二个呢,就是跨平台部署,就是一次构建镜像,然后到处运行嘛。第三个呢,就是说到我们独立开发者了,我们独立开发者对于这个 docker 呢,其实是不需要的。呃,我们有好几个证据可以来说这个事情。 第一个就是一个人他不存在,电脑跑不了,我们不需要在一个环境下再换到另一个环境下去跑。如果你是独立开发呢,你可以选择 go 等这些跨平台的语言去运行你的服务,所以这个问题热, 所以这个问题他其实可以是通过语言来解决的,因为我们独立开发者不在乎用什么语言去开发出来, 在 ai 时代的话,你只要有这些 ai 工具,大多都是能跑出来的。因为我们是一台服务器,基本上环境都是自己控制的,如果我们去接入这个 docker 的 话,写 docker file, 然后调制 docker 网络的话,那这个投入的时间跟产出的比很不值, 我们可以用其他方式来解决这些事情。还有呢,之前我也在科技公司开发度过两年,这个小公司的话,它是很可能存在过渡工程的,就比如说你微服务是自己的那种大公司才用的到的, 它是几百人这种规模的才会用到微服务。第二个呢,就是很多小公司运维开发、测试、分离加微服务没有必要。第三个呢,单体应用是能扛住很多大部分业务的, 就比如说你一个构程序放在一个两合两 g 的 服务器上,他就能满足大部分业务需求。而且我们小公司的话,很多业务他根本达不到这个体量,一个两合两 g, 甚至两合一 g 他 就够用了。还有个呢,就是如果我们流量大了怎么办? 其实单体应用我们流量大了很简单,就是加机器,服务器没几个钱,因为你一旦业务量大了之后,你这个服务器的钱就不在乎了,就想加几台机器就加几台。 如果只有你一个人的话,用我们的方式也可以去接管这个服务器的管理的事情。其实,呃,很多顶尖运维,他们都是通过脚本的方式去操作这些机器的, 用好我们的 scp 或者是现有脚本就可以解决这几个问题。微服务的本质呢,是解决团队合作,不是解决性能问题的。在 ai 时代,我们一个人搞定所有的开发流程,单体它是够用的。 如果你一个人开发业务的话,你的业务量达到单体不够用的情况下,那说明你的业务体量就已经是很大的了,这不是你一个人能承受的,所以我们只要是一个人独立开发的公司, 它一定是单体够用的。还有就是如果你学会我这一套流程的话,它其实可以用来接外包或者是做一些小公司的业务,是完全够用的。然后来让我们看一下,呃,不用 docker 这个方案怎么替代 第一个呢? docker 环境隔离,独立开发者,它其实不需要,就我们刚刚讲了,如果你是一个人的话,你一台服务器 根本不需要容器隔离你那些业务,如果你说你打日制,你完全可以通过系统自带的进程去把这个日制定期删除,一个人的话是完全够用的。第二个呢,就是自动重启,是有很多解决方式,只不过 linux 它自带这个进程管理,我们直接可以把系统级的这个程序拿过来,用不用我们自己去写这个现有脚本了?第三个呢,就是一键部署,呃,你觉得 docker compose up 很 简单?呃,我教给你一个更简单的方式,就是在本地 macdpl, 本地 macdpl, 你 配合现在的 ai 工具去自定义命令,又快又准,部署的时间基本是秒级的。 然后第四个呢,就是回滚怎么办?回滚的话,你说你用 dk 容器 tag 加 push, 你 个人开发,其实你用这个手段你完全没必要。 呃,其实你可以用好这个软链接,学过 linux 操作系统的开发同事都知道哈,就这个软链接切换的话,它是一个很灵活的东西, 就比如说我们当前是 v 二,回滚就指向 v 一, 然后前端的话改一下这个软链接的链接地址就可以了,后端的话改完链接地址再重启就可以了。这两点完全都可以通过这个 make fail 去做到。 第三个呢,让我们来看一下这个 docker 方案和原生方案的对比。部署的话,你 docker fail 你 要,你要,你要部署五步,就比如说你平常用的 get up, 你 用的 actions actions 它其实需要五步的,比如说你本地要,你要写一个 docker fail 吧,然后 docker fail 写完了,你要 build 一下吧, build 一下,你要 push 吧 push, 然后 po 吧 铺完了之后再 run 吧。然后我们这个呢,我们直接写一个 shell 脚本,通过 s c p 去把这个 macd pro 直接当成一个 一整步使用。就我们现在是从五步直接到一步 make deploy, 直接可以把所有的最新进程更新到服务器里。接下来我们说一下这个配置文件,配置文件的话其实就是这个 docker file 加 docker compose 嘛,之前是这样,然后再加一个点英文 v, 我们怎么写呢?我们就用这个 mega fail, 加上也是点 e n v, 再加上 system 那 个进程去搞配置这一块儿。然后第三个呢?如果你是首首次部署的话, 呃,你要拉镜像,然后启动容器吧,然后我们首次部署怎么弄呢?我们直接 scp 加启动二镜制,所以可以看到你用 dawk 方案跟原程方案它的差别。如果你是一个人的话,你的精力是有限的, 那这两个方案里边你你选这一种是绝对要比第一种好的。就开发的同学都知道哈,现在 ai 工具都很多,开发一个东西都很快,你们经常会做一些提交什么的, 那你在频繁提交的时候,你在等待这个 doc 方案去部署的时候,那就是灾难级别的,如果你用原生方案,你就是秒级部署。 然后我们来看一下这个大神 linux 它是怎么做的? linux 都知道哈, linux 它是一个研发这个 linux 内核的。 linux 内核是什么呢?它就是我们日常用的电脑、手机这些内核系统其实都是基于它或者是借鉴它来开发的, 所以可以看到它这个 gitup 信息数是二十一万, fork 是 六万,然后它的粉丝是二十七点八,可以看到这个 nios 的 更新频率,它的提交频率是源源不断的,呃,要比各位口袋里的钱还要密集哈。 我们来看一下 nios 的 这个其中一个项目,百分之五十六点七的 c 语言,加上百分之三十八点四的 python, 再加上部分 make fail 去做这个事情, 可以看到顶尖大神他是用部分的开发语言加上一个 make fail, 他 没有用 docker。 我 们再看一下这个最近很火的 cloud code, cloud code 这个项目是它的组成是怎么样的? 首先可以看到它的 shell 脚本将近占到五十哈,百分之五十,其他的脚本基本上 都是开发源。然后 dakar fail 百分之二点一,它是为什么呢?这个我去搜了一下,它其实是它们在开发期间,它们其实在本地用这个 dakar fail 的, 并没有在生产环境上用。说了那么多,我们接下来演示一下到底有多快。然后为什么要用这种方式?比如说我们我们先来执行第一个查看一下当前的版本,这里我们用前端网页做展示, 可以看到当前是我自己的一个网站,然后他的一个版本是 v 三,用来作为这个视频演示的材料的。首先我们来执行一下第一步 可以看到前端的版本是四七 f 九 d b。 来我们核对一下历史,可以看到最新的历史是四七 f 九 d b。 然后呢我们要把刚刚那个标签给回滚到 v 二看一下, 比如说这个标签是 d 一 一九二幺五九, 我们来看一下回滚命令, 好,回滚前端的是这个,我们来回滚到这个指定的。 好,可以看到这个是秒出哈,就是我们前端网页呢,基本上是运行完就出来,也就是说我们现在部署前端是秒出的,我让我们来检验一下结果, ok, 现在 v 还是 v 三,为什么呢?因,可能这个是正常的哈,因为这个浏览器它是有缓存的,让我们来刷新一下这个缓存。 好,可以看到这个版本已经变成 v 二了,接下来我们再更新一下最新版本,试一下。 ok, 可以 看到我们部署是很快的哈,几乎也是秒出。我们刚刚的操作呢,也就是说把 v 三切换成了 v 二,又切换成了 v 三,检验一下结果,可以看到这个结果都是正确的。 ok, 现在我们演示完了,可以看到这个 make a feel, 它的部署的一个便捷性,还有它的一个效率,就对于频繁部署更新迭代的同学来说,它是一个极其好用的工具。 相比于刀客 compose, 你 每次更新要四分钟,三分钟,两分钟,如果你的操作还比较多的话,可能甚至达到一二十分钟,也就是说我们现在用这个 makefile 去做这些事情,几乎都是秒级的。 好,最后我们来总结一下 docker, 它的核心价值呢是环境标准化,就是解决在我机器上能跑,然后在你机器上也能跑的这个问题。 但在 ai 时代呢,这个优势它其实是被削弱了的,所以现在 docker 这个东西,所以 docker 这个东西对于我来说,它是已经淘汰掉了,但是呢,也不是完全淘汰,我刚刚说的这个过程是部署环节,就比如说你用那个 pg circle, 你不想安依赖,那你可以用 docker 去在服务器上把这个 pg circle 镜像给拉下来,这样的话就可以避免你安装依赖嘛,但是它对我的作用也仅仅只有这个了。 现在呢,我觉得对于独立开发者来说,最好用的技术栈还是最老的那一套 make a fail setem 的 软链接,轻量简单, ai 友好。这一期到这里就结束了,推荐大家不要全用 docker。 呃,用这个 makefile, 然后大家如果想获得更多干货的话,接下来可以关注我,下一期我可能会讲 ai 自动运维这个主题。

各位同学大家好,今天我们正式来学习 linux 系统下实战的信号脚本案例,我们自己实战来演练一下信号脚本编线,通过上次课的一些信号脚本,一些必杀技,一些命令的一个练习,对不对? 我们我们知道我们熟悉了另一些什么放循环啊,衣服啊,外啊这些语句的使用,那么今天就来实际的编写一个脚本,在企业这种环境当中来应用, 我们把我们所学的,然后再应用到我们的工作当中,这是最重要的学知识,你学的再多,但是不去运用的话,这是等于零,所以说我们把学的东西,然后组织在一起,然后去应用。好的,那么今天就正式开始,从进入脚本开始, 我们背一份我们自己的 mycicle 数据库,我们之前我们每台服务器都装一个 mycicle, 我们看一下啊,我看我们 mycicle 有没有启动啊? mycicle 变一下 mycicle, 我进去一下输密码, 进去之后我们看有没有什么数据库啊,有个 discard, ds、 c, u、 z, 然后进到 discard 里面,然后看一下有没有表啊, 是不是这么多表,这么多数据,然后可能存出来很多用户啊,上千万,上上百万这种数据,那假设真实环境是这样的话,那么怎么来备份, 怎么来辈分?我自己给大家讲解一下怎么来编写一个脚本呢?首先我们编写一个辈分的一个脚本叫 myserk, 然后 back up 点 s, 这么取名有什么好处嘞?这么取名的话哦,别人一看到你这个脚本名称他都明白哦,你这个是一个效脚本,然后用来干什么的呢?用来买手稿作为备份的。好的, 第一行变一下 best。 我们说备份证一个 myself 需要什么呢?先来看一下备份的命令是什么呀? myself dump, 杠 u r t 杠 p 一二三四五六。然后 数据库叫什么? d s c u z, 然后导出 d s u z 点 c 口,这是备份的语句,对不对?其实最主要的功能,这就这一条。好的,我们就围绕这一条来写, my c 口, my c 口。点, 我们先把这条语句放到这里,我们知道,我们,我,我们今天这个干活是什么呀?备份在一个数据库。好的,首先定义一下这个脚本是干什么的呀? out to back up my cycle database d s c u z 可以说就是辈分这一个 for 吧。 为了这个题,看这个数据库,我们做备份那边形的时间呢?边形的人,大家可以选一个边形的人。 by a u tho 啊,作者是无光科。好的,那么这时候怎么办呢?我们说备份在一个数据库,备份的命令在哪里呢? 命令,命令是长哪呀? 在哪?大家知道吗?这个命令在哪呀? master dump, 这个命令在哪儿呀?我这个 master 的话,应该是这里啊,我的 master 命令在这里啊。 master, 闭一下, master dump, 我的命令是在这里面,这是我的命令。所以这时候我要把这个定一下这个变量, 把它定位成定位成变量啊,我们可以选择 c m d my c m d 等于叫 my second c m d 等于这个,对不对?这是我的命令。嗯, 那这时候还有一个我要定什么病呢?用户名,密码,数据库名,我都需要定义,怎么办呢?然后 p w, d b 吧,我都写 d b, 真好记啊, d b u s r d b 用户是什么呀?我们说我们专门创建一个用户名来备分,这样数据库怎么来创建呢?我们可以设置一个 back up 这一个用户, 或者我们这里为了做演示,我直接用入它啊,然后 d b, p, w, d 等于一二三四五六,然后 d b, d b 的名字叫什么呀? d b data 叫个 data d b 吧啊,就这个 d b data 背死,我们背背死叫什么数据库啊? d, s, c, u, z 对不对? d, s, c, u, z, 然后还有什么呢?背分我们背到哪个目 去啊?是不是 b a, k 啊? b, a, k, d, i, r 等于我们要背到 deta 下, deta 下 back up, 然后 今天的日期,今天日期怎么表示呢?大家说今天日期怎么表示呀? date 加号百分号 ymd, 这是今天的日期这一个目录啊。好的,那这时候怎么办呢?首先 我们是不是首先要判断这个目录存不存在一辅,然后判断一下, 可以选择区域跟它写在一起啊? if, 然后不存在,这个目录不存在。 dollar, dollar b a, k, b, a k 点二,然后目录不存在怎么办呢?创建这一个目录呗, 我再直接粘贴啊,大家可以跟我一起写啊,然后 f i 接吻就行了,就他判断不存在,我的创建存在我就不用管了,对不对?存在就不用管了,然后存在就进行下一步,下一步存在之后怎么办呢?存在之后我们是不是需要 判断你当前的用户是不是入团用户来执行这个脚本的,对不对?那我们判断一下。怎么判断呢?一幅 rotor 用户的 id 是多少? rotor 用户的 id 怎么看呀?在哪儿看?大家告诉我在哪儿看呀?在这样, etc password, 然后 head 杠一用户 id 的话是零啊,若是用户的 id 是零啊,如果别的用户的话,你看别的用户就是一啊,对不对? 谁入团用户的 id 是零,一般系统里面有一个默认的代表入团用户,我们查看 uid, 怎么查看就代表这样,到了 uid 代表当前用户的 id 是零。如果等于零就可以直线,不等于零就不能直线,对不对?好, 录到了 u i d u i d 杠杠杠一颗吧,杠一颗等于零,然后 如果不等于零怎么办?不等于零就不能直行,不等于零又怎么表示啊?大家说高不等于不等于零怎么表示啊? a e 是不等于的意思啊。然后 不等零的话,就代表打印一个消息。 must must to be yours route。 并入庭后 执行这一个 run 吧。 run command, run xiao s c i p t s 并用药品或才能执行这个脚本,然后退出, 对不对?直接就退出了,就不会给他返回任何东西了啊。如果这个用户 id 不等于零的话,就直接退出,然后 这时候怎么办呢?最后才最后才是我们的运行这个命令对不对? myself down, 我们命令在哪呀? 是 d b c m d 啊,好的,我们看一下。 d b c m d, 然后杠 u 杠 u 指定什么呀?刀来,然后 d b u s r 杠 p 小写的,然后密码是什么呀?大写的 d b p w d 对不对?然后数据库的数据库名叫什么呀? 是不是叫什么刀来 d t b s e 啊,都得背死了。然后大于符号我们背,分到哪去啊? 是不是被分到 bacon 公路下去吗?我们肯定要被分到 bac 下去啊。 b k, 然后点二 bac 公路下的一个什么文件啊,就要点着 car 吧, 然后备份完之后,备份完之后我们怎么判断有没有成功呢?哦,怎么判断他是否成功了呢?大家想想。那么首先就要再来判断一个呗,衣服,然后如果到了,到了问号是代表上一个命令判断是否成功。 杠一,可如果等于零的话,就打印一个 respect my circle, 是要 c c e s s f u i l successfully 就对本这个文件备份成功。 else, 如果否则的话就是 listen back up my sack in f a i l f a fill 的就代表失败的意思啊,然后 f i。 所以大家看这个脚本,这逻辑有点清楚了啊,大家看这个脚本,我们可以用 v i m 打开 v i 的话没有支付 v i m 可以用那个,它会其实可以显示颜色的,我这没有显示颜色啊,都一样啊, 大家看到脚本是不是很简单?把逻辑理解理解清楚之后就很简单了,对不对?大家看一下啊,给大家五分钟时间,大家来看一下这个脚本的一个意思,不明白的话就提出来啊。 好的,我们来看一下啊。我们首先来运行这个脚板,看能不能运行啊,看 a x, 它是一个调试的意思啊,杠 n 的话,它可以检测有没有脚本,有没有问题,我们看一下杠 n 有没有特别明显的报错啊?没有杠 x mexic back up, 它就是一个会把执行过程给打印出来啊, 大家看到了吗?现在报错了还是还是干嘛?是不是报错了呀?不能创建这样一个文件对不对?可能是没有权限我们,我们执行个权限啊,填 p 杠啊, my circle back up 是不是?你看我们是不是能看到效果呀?是不是创业成功了?大家现在教我有没有问题啊?如果有问题的话,待会我会给大家可以远程看一下啊。大家看一下这 首先他会执行,他会读取这个变量,对不对?然后打印时间,看这个目录是否存在,对不对?如果不存在的话就创建是不等于零啊? 等于零的话它就运行这一个,因为当前的 u i d 是零嘛?如果不等于零的话。

目前我们的脚本只能执行一些预先设定好的功能,未免太死板了。 为了让脚本程序更好地满足用户的一些实时需求,以便完成灵活的工作,必须能让脚本接收用户输入的参数。 其实在系统中的脚本语言早就考虑了这些,已经内置了用于接受参数的变量, 变量之间可以用空格间隔,比如零对应脚本的名称, e 代表第一个位置,参数代表总共几个参数, 对应的是所有位置的参数值等, 下面我们来练习一下。首先看看预先写好的一个脚本, 这里面是一些要输出的内容,下面我们执行一下, 可以看到执行结果,把各个变量对应的值都显示了出来。 下一节我们学习判断用户的参数,谢谢大家。

好,今天给大家讲一下笑脚本里面的小括号的一些用法啊,大家就是在日常写小本当中啊,可能也有发现他小括号有两种啊,就第一种是单括号啊这种,那么第二种是双括号, 这两种括号其实是有差别的啊,是有差别的,我们详细来讲一下,我这里呢也给大家落了一些例子啊,大家可以先看一下。首先啊, 第一种用法啊,就是说我们用了个小货号来初始化数组啊,初始化数组,然后我用一个负循环把数组里把它给 打印出来哈,给给打印出来啊,这个这个大家先不用管啊啊,知道我是在出出来一个数据,然后把 啊输出来就够了啊,就可以了啊,那么第二种用法啊,第二种用法就是说我们就是需要脚本在运行当中啊,他如果发现有这种格式的啊,这种格式的, 这种格式的,他会什么?他会先打开一个纸屑哦。啊,纸屑啊,往这里写啊,他其实是先执行纸屑哦,就是先执行他啊,他里面其实是一个命令哈,是一个命令, 然后执行完成之后,把这个执行命令的值给赋予给这个变量,然后我去打印这个变量啊 啊,大家记住啊,这个写法啊,这个写法,其实我是推荐大家就是在写需要脚本的时候用这种写法的,因为他比较美观哈,还有一种写法,还有一种写法是什么 写的啊?我给大家写一下,嗯,还有一种写法啊我我简单写一下,叫什么反单银行啊 啊,这样子也是可以的,这样子也是可以的,这个写法和这个写法是一样的,但是我不建议大家用这种啊,不建议大家用这种,为什么?因为这个看着就不是那么的好看啊,而且大家有很有可能把它看成一个单引号了啊, 对吧?哎,就就就是看的不那么清晰哈,不建议大家这样用。好 单单过后就给大家讲到这哈,基本上这就是常见的用法,常见的用法,那我们我们再来讲一下双括号,双括号他主要是做什么?做一些啊? 一个是比较啊,整数的一些比较哈,整数的比较,比如说我这里啊,之前讲过这个例子啊,比如说我在笑脚本后面啊,运行的时候跟个一百,对吧?他去比较一百是否等于一百,是吧?我如果我等于了哈, 我就成立,不等于我就不成立啊,相当于就是数字的什么整数的一个比较哈,一个比较 第二个啊,第二个就是说他可以做什么?可以做禁止的转换啊?禁止的转换,比如说我十六禁止,对吧?我五 f 等于多少哈? 等于多少啊?我可以这样去做,那么第三个哈,第三个用法是什么?就是说我可以去做一些变量的重新复职,怎么来理解哈?就是说,比如说我做一个负循环,我去循环零到四 哈,我就写,比如说他第一个字是零,对吧?那 i 小于五,那么他第最后一个字应该就是四,对吧?因为他整数哈, ok, 哎,加加是吧?我就反正就是循环一下,我就加一个,循环一下,循环一个就加一个,就是第一次他等于零,好,他做完之后他就会加一个,就等于一了,对吧? ok, 第二次数等于一,然后一直到四,因为到五的时候就等于五了吗?这个就不成立了,就不成立了。 那么第四最后一个啊,最后一个用法就是说他可以做一些计算啊,可以做一些计算,比如说哈,就说我要做一个刀刃,对吧? 这到了二加到了三啊,等于多少,对不对啊?我可以把它给算出来啊?我给大家看一下,比如说我现在去运行这个脚本, 好,呃,我输个九十啊,到二一他会他,他会复制到这啊,复制到这相当于这个是不成立的,对吧? ok。 然后到了二和三,在这里我写个什么五十啊,再写个什么四十,他最后算算应该等于多少?应该是等于九十啊, 好,大家可以看一下我第一个对不对?数字他不成立,然后静置转换,对不对?五 f 他是等于九十五的啊,然后重新复制这块,就是刚才我有个循环,你看, 嗯,在在在在在在这啊,零到四哈,零到四,你看哈,我已经把它给循环出来了,对吧?那么还有什么计算啊?我刚才说的是多少?五十和四十,它等于九十,对不对?然后还有个循环啊,就是这, 他就是初始化数组,我把这个一二三四五给循环出来,那么还有一个止歇啊,就是说啊,这啊, 你看对不对?我们看可以看一下哈,是不是一样的, 是不是一样的啊?对吧? ok, 这个啊,就是大家就是在写笑脚板的时候一定要注意哈,比如说如果你在写个单影的话,那肯定是报错的啊,肯定是报错,我们可以尝试一下, 我们可以尝试一下啊,下一个,下一个,对吧? 我再去执行这个名,你看这地方是不是他就报错了,对吧?啊?报错了,报错了,我们把它写上去啊? 好,今天就给大家简单讲了一下,就是单括号和双括号的一些简单的一些用法啊,其实这些就是说在场就是大家写咱们的是经常会用的,经常会用的啊,经常会用的, 所以大家写的时候就是要注意一下,其实也其实这些差别其实大家简单记一下就可以了,也不用就是说一定要去死记硬背,就是用到的时候可以往上去查一下也就好了,因为毕竟比如说你运行交不了,他会报错吗?对吧?报错的时候我们啊知道啊,是什么问题 啊,就可以了,就就就像就相当于怎么说就说一个令他是高手,一个运为高手哈,他其实并不是他能记住多少命令,而是什么,而是他在发现问题的时候他能迅速的找到解决方案,这个就是高手好吗?好,谢谢大家。

ok 啊,终于是弄到了免费的 steam 入库脚本,大小仅仅二 kb, 一 看就非常的纯净,安全,还是有点担心,我们让强大的 defender 扫描一下吧, 并没有扫出威胁,看来确实非常安全。对面说要右键 powershell 执行就可以安装了,我等不及了,正在入库游戏,看来马上就可以安装好了。我桌面上的文件怎么图标消失了, 壁纸也被删除了,任务管理器也没了, 连注册表都被禁用了,呜呜呜,我的电脑啊, ok 啊,这就是这个 ps 娱乐所脚本的运行情况,该脚本会加密桌面文档文件, 还会删除下载文件,加禁用系统功能。接下来我们看看哪些杀毒软件可以防御吧。第一位,我们测试火龙,安全 扫描,并没有检测出来,我们执行脚本 火绒拦截了勒索禁用系统功能的行为,但是没有拦截加密文件的行为,壁纸也被删除, 文件内容证实已被加密,火绒安全防御失败。第二位,我们测试腾讯电脑管家, 好吧,也没有扫出来 一点拦截弹窗没有,让勒索畅通无阻,执行完了全过程, 下载文件夹也是霉的十分安详。腾讯电脑管家,防御失败。第三位,我们测试质量安全, 扫不出岛也正常, m 质量还对执行 power shell 命令有拦截点吗?我们放行看看, 命令窗口消失了,看来是被质量拦截了,顺便触发了威胁,缓解回滚了病毒的操作, 文件一切正常,质量终端安全防御成功。第四位,我们测试瑞星之箭,由于没有自定义扫描,我们直接执行勒索 瑞星右下角弹出了拦截弹窗,此时勒索进程被终止, 不过还是有部分文件被加密。瑞星之箭防御半成功,国产。最后一位,我们测试国内老大哥三六零安全卫士,好吧,也没有扫出来,那我们执行脚本, 三六零弹出了拦截弹窗,我们点下阻止按钮, 虽然生成了一些加密副本,但是原文件没有被删除。三六零防御成功,国外。第一位,我们测试 avast, 没有扫出来,我们执行勒索, avast 阻止了勒索删除文件的行为,文件无异常, avast 防御成功。第二位,我们测试 f secure avira 也是没有扫出来, 好吧,勒索顺利执行完了全过程, f s 防御失败。第三位,我们测试 more wearables, 好 吧,没扫出来, 你怎么也一点防御没有,你的勒索行为检测呢? mower bite 防御失败。第四位,我们测试俄罗斯重武器大蜘蛛, 大蜘蛛的扫描也没有检测出来吗?我们执行勒索大蜘蛛拦截了修改用户文件的行为, 大约三十秒后,原文件被隔离,文件部分被加密,大蜘蛛防御半成功。第五位,我们测试麦克菲,全面安全,好吧,正常, 系统也是爽快趋势。麦克菲防御失败。第五位,我们测试英国莎软 sofos home, 折腾了半天还是什么都没有扫出来, 我们执行勒索, 窗口消失,看来是被 sofos 拦截了, 文件一切正常。 sofos 防御成功。第六位,我们测试比特范德, 命令窗口消失,比特范德右下角弹出了拦截弹窗, 文件一切正常,比特范德防御成功。第七位,我们测试 e set, 居然没扫出来,那多半是废了, 什么触发了 e set 的 勒索行为检测,我们点击阻止 power shell 直接在大量报错中退出了,地址倒是被删除了, 仅仅少部分文件被加密, ecc 防御半成功。最后一位我们测试卡巴斯基 扫描依旧 miss 执行勒索,卡巴终止了进程, 随后原文件被删除, 虽然有加密副本生成,但是原文件还在,看来是被卡巴回滚救回来了,文件无异常。恭喜卡巴司机防御成功。这期视频结束了,下期再见。
