ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

三、Vim编辑器和Shell命令脚本

三、Vim编辑器和Shell命令脚本 1、Vim文本编辑器作用文本编辑器Vi编辑器的升级版添加了代码着色功能Vim编辑器的模式命令模式控制光标移动对文本进行复制粘贴、删除和查找等工作输入模式a.i.o正常的文本录入末行模式保存或退出文档以及设置编辑环境Vim 模式切换图命令模式常用的一些命令命令功能说明dd删除剪切光标所在行5dd删除剪切光标处开始的第五行yy复制光标所在整行5yy复制光标处开始的第五行n显示搜索命令定位到的下一个字符N显示搜索命令定位到的上一个字符u撤销上一步的操作p将之前删除dd或复制yy过的数据粘贴到光标后面末行模式中一些常用的命令命令作用保存:w退出:q强制退出:q!保存退出:wq显示行号:set nu不显示行号:set nonu执行该命令:命令跳转到该行:整数将光标所在行第一个one替换成two:s/one/two将光标所在行所有one替换成two:s/one/two/g将全文所有one替换成two:%s/one/two/g在文本中从下至上搜索该字符?字符在文本中从上至下搜索该字符/字符1.2 配置主机名称第一步使用Vim编辑器修改/etc/hostname 主机名称文件第二步修改主机名为相应的名称第三部保存并退出文档使用hostname命令检查是否修改成功如不生效重启系统即可1.3 配置网卡信息网卡IP地址配置正确是两台服务器互相通信的前提配置网络服务就是编辑网卡配置文件linux一切皆文件第一步切换到存放网卡配置文件的目录/etc/sysconfig/network-scripts第二步使用Vim编辑器修改对应的网卡使用ifcconfig命令确认配置文件逐项写入配置参数并保存退出网卡各项参数信息说明参数设备类型TYPEEthernet以太网地址分配模式BOOTPROTOstatic/dhcp静态/动态分配网卡名称NAMEens160是否启动ONBOOTyes/no是/否IP地址IPADD192.168.3.100子网掩码NETMASK255.255.255.0网关地址GATEWAY192.1678.3.1DNS地址DNS192.168.3.1第三步重启网络服务并测试联通性1.4 配置软件仓库软件仓库能进一步简化RPM管理软件的难度以及自动分析所需软件包及其依赖关系软件仓库保存有几乎所有的常用工具下面介绍软件仓库搭建的步骤第一步进入存放软件仓库配置文件的目录/etc/yum.repos.d/第二步使用Vim编辑器创建一个名为redhat.repo的新配置文件文件名可以随意后缀必须为.repo逐项写入配置参数并保存退出软件仓库配置参数说明参数说明仓库名称具有唯一性的标识名称描述信息name仓库的描述易于识别仓库作用仓库位置baseurl软件包的获取方式可以是FTP或HTTP下载也可以是本地是否启用enable设置仓库是否启用1为可用0为禁用是否校验gpgcheck设置此仓库是否校验文件1为校验0为不校验公钥位置gpgkey如开启了校验功能此处填写公钥文件位置否则省略不写第三步按配置参数所填写的位置挂载光盘并把光盘的挂载信息写入/etc/fstab文件上图仅供参考以实际配置为准)第四步使用”dnf install httpd -y“命令检查软件仓库是否可用执行完出现complete代表配置正确2. 编写Shell脚本shell解释器相当于人与计算机的翻译官将shell命令通过逻辑语句进行处理即可形成常见的Shell脚本脚本命令工作方式分为以下两种交互式用户每输入一条就立即执行批处理用户编写一个完整的Shell脚本一次性执行脚本中的诸多命令2.1 编写简单的脚本脚本其实就是使用Vim编辑器将Linux命令按照顺序依次写入到一个文件就是一个简单的脚本。下面来编写一个简单的脚本第一步创建一个名为example.sh的脚本文件脚本文件的后缀名为.sh第二步编写脚本内容编写好后保存并退出脚本说明#!bin/bash声明指定脚本使用那种shell解释器执行脚本默认是/bin/bash#For Example BY Test Script描述信息用来描述脚本的作用使用#号注释运行脚本时会被忽略pwd 脚本内容查看当前工作目录ls -al脚本内容查看当前工作目录信息echo hello word 脚本内容在屏幕输出hello world第三步给脚本附加执行权限附加执行权限后脚本文件会变成绿色第四步执行脚本查看脚本执行结果2.2 接收用户参数为了使Shell脚本能更好满足用户的实时需求Shell脚本支持接收用户输入的参数Shell脚本语言内设了用于接收参数的变量变量之间采用空格区分$0对应脚本程序名称、$#对应总共有几个参数、$*对应所有位置的参数值、$?对应上次命令的返回值$N则分别对应N个位置的参数值。2.3 判断用户参数shell脚本的条件测试语法可以判断表达式是否成立条件成立则返回值为0否则返回非0值条件测试语法的执行格式条件表达式两边均应有一个空格[ 条件表达式 ]条件表达式的分类文件测试语句作用运算符测试文件是否为目录类型-d测试文件是否存在-e判断文件是否为一般文件-f测试当前用户是否有权限读取-r测试当前用户是否有权限写入-w测试当前用户是否有权限执行-x逻辑测试语句逻辑与只有当前面的语句执行成功才执行后面的语句||逻辑或只有当前面的语句执行失败才执行后面的语句逻辑非对逻辑测试结果取反值正确则输出错误错误输出正确整数值比较语句整数比较运算符仅对数字的操作不能将数字与字符串、文件内容等一起操作可用的整数比较运算符作用运算符是否等于-eq是否不等于-ne是否大于-gt是否小于-lt是否小于等于-le是否大于等于-ge字符串比较语句字符串比较语句用于判断字符串是否为空值或两个字符串是都相同常见的字符串比较运算符作用运算符比较字符串内容是否相同比较字符串内容是否不同判断字符串内容是否为空-z3. 流程控制语句作用解决基础脚本不能根据条件实现自动循环执行提高了脚本的灵活性使脚本更贴合工作需求3.1 if条件测试语句作用让脚本根据实际情况自动执行相应的命令if语句可以分为三类单分支结构语法格式if 条件测试操作then 命令序列fi示例判断/tmp/media/cdrom目录是否存在不存在则创建存在则结束判断和脚本执行双分支结构语法格式if 条件测试操作then 命令序列1else 命令序列2fi示例使用双分支测试某台主机是否在线根据返回结果显示主机是否在线多分支结构的语法格式if 条件测试操作1then 命令序列1elif 条件操作测试2then 命令序列2else命令序列3fi示例使用多分支语句判断成绩等级3.2 for 条件循环语句for循环语句允许脚本一次性读取多个信息逐一对信息进行处理for循环语句语法格式for 变量名 in 取列表值do命令序列done示例使用for循环语句读取文档批量创建用户并设置密码3.3 while循环语句while条件循环语句通过判断条件测试的真假来决定是否继续执行命令条件为真就继续执行为假就结束循环。while语句的语法格式while 条件测试操作do命令序列done示例使用while语句编写一个猜数值大小的脚本3.4 case条件测试语句case语句是在多个范围内匹配数据匹配成功则执行相关命令并结束整个条件测试case语句的语法结构case 变量值 in模式1命令序列1;;模式2;;*)默认命令序列esac示例使用case语句判断输入的字符类型4. 计划任务服务程序作用系统自动替管理员完成一些周期性规律性的工作计划任务的分类一次性计划任务一般只执行一次用于临时工作需求长期性计划任务需要长时间周期性规律性执行的任务一次性执行计划任务的语法格式默认采用交互式方法”at 时间“作用参数指定包含命令的文件-f指定新任务名称-q显示待执行任务列表-l删除指定的待执行任务-d任务执行后向用户发邮件-le长期性计划任务语法格式crontab -ecrontab命令参数及其作用作用参数编辑计划任务-e指定用户名称-u列出任务列表-删除计划任务-r使用crond设置任务参数字段说明字段说明分钟取值为0~59的整数小时取值为0~23的整数日期取值为1~31的整数月份取值为1~12的整数星期取值为0~7的整数0与7均为星期天命令要执行的命令或程序脚本示例每周一、三、五凌晨3:25使用tar将etc打包处理使其作为一个备份文件
返回列表