在Linux系统中一切都是文件,而配置一个服务就是在修改其配置文件的参数
Vim编辑器中设置了3种模式—命令模式、末行模式和编辑模式
命令模式 :控制光标移动,可对文本进行复制、粘贴、删除和查找等工作
输入模式 :正常的文本录入
末行模式 :保存或退出文档,以及设置编辑环境
末行模式
配置主机名字
配置网卡信息
第1步进入保存网卡的文件 cd /etc/sysconfig/network-scripts
第2部编辑网卡信息 vim ifcfg-enss33
第32部重启网卡 service network restart
第4步检验编辑生效 ifconfig
配置软件仓库
第一步进入/etc/yum.repos.d/目录中(因为该目录存放着软件仓库的配置文件
第二部使用Vim编辑器创建一个名为rhel8.repo的新配置文件(文件名称可随意,但后缀必须为.repo),逐项写入下面的配置参数并保存退出
仓库名称:具有唯一性的标识名称,不应与其他软件仓库发生冲突
描述信息(name):可以是一些介绍性的词,易于识别软件仓库的用处
仓库位置(baseurl):软件包的获取方式,可以使用FTP或HTTP下载,也可以是本地的文件(需要在后面添加file参数)
是否启用(enabled):设置此源是否可用;1为可用,0为禁用
是否校验(gpgcheck):设置此源是否校验文件;1为校验,0为不校验
公钥位置(gpgkey):若上面的参数开启了校验功能,则此处为公钥文件位置。若没有开启,则省略不写
第三步按配置参数中所填写的仓库位置挂载光盘,并把光盘挂载信息写入/etc/fstab文件中
第四步使用“dnf install httpd -y”命令检查软件仓库是否已经可用
二、编写shell脚本shell叫脚本可分为交互式、批处理
交互式(Interactive) :用户每输入一条命令就立即执行
批处理(Batch) :由用户事先编写好一个完整的Shell脚本,Shell会一次性执行脚本中诸多的命令
查看当前所在工作路径(pwd)并列出当前目录下所有的文件及属性信息(ls -al)
接收用户参数
0 对 应 的 是 当 前 S h e l l 脚 本 程 序 的 名 称 , 0对应的是当前Shell脚本程序的名称, 0对应的是当前Shell脚本程序的名称,#对应的是总共有几个参数, ∗ 对 应 的 是 所 有 位 置 的 参 数 值 , *对应的是所有位置的参数值, ∗对应的是所有位置的参数值,?对应的是显示上一次命令的执行返回值,而$1、$2、$3……则分别对应着第 N 个位置的参数值
运用变量参数来定义输出的内容
判断用户参数
Shell脚本中的条件测试语法可以判断表达式是否成立,若条件成立则返回数字0,否则便返回非零值。条件测试语法的执行格式。切记,条件表达式两边均应有一个空格
测试语句格式:【 条件表达式 】
文件测试语句;
逻辑测试语句;
整数值比较语句;
字符串比较语句
文件测试即使用指定条件来判断文件是否存在或权限是否满足等情况的运算符,具体参数
如图
检验的方式为【 参数 文件 】运行然后echo ¥?运行,即可查看输出结果。前者为判断后者为查询
逻辑语句用于对测试结果进行逻辑分析,根据测试结果可实现不同的效果。例如在Shell终端中逻辑“与”的运算符号是&&,它表示当前面的命令执行成功后才会执行它后面的命令,因此可以用来判断/dev/cdrom文件是否存在,若存在则输出yes字样
逻辑“与”外,还有逻辑“或”,它在Linux系统中的运算符号为||,表示当前面的命令执行失败后才会执行它后面的命令,因此可以用来结合系统环境变量USER来判断当前登录的用户是否为非管理员身份
第三种逻辑语句是“非”,在Linux系统中的运算符号是一个叹号(!),它表示把条件测试中的判断结果取相反值。也就是说,如果原本测试的结果是正确的,则将其变成错误的;原本测试错误的结果,则将其变成正确的
叹号应该放到判断语句的前面,代表对整个的测试语句进行取反值操作,而不应该写成“$USER != root”,因为“!=”代表的是不等于符号(≠),尽管执行效果一样,但缺少了逻辑关系,这一点还请多加注意。
&&是逻辑“与”,只有当前面的语句执行成功的时候才会执行后面的语句。
||是逻辑“或”,只有当前面的语句执行失败的时候才会执行后面的语句。
!是逻辑“非”,代表对逻辑测试结果取反值;之前若为正确则变成错误,若为错误则变成正确。
先判断当前登录用户的USER变量名称是否等于root,然后用逻辑“非”运算符进行取反操作,效果就变成了判断当前登录的用户是否为非管理员用户。最后若条件成立,则会根据逻辑“与”运算符输出user字样;若条件不满足,则会通过逻辑“或”运算符输出root字样,而只有在前面的&&不成立时才会执行后面的||符号
整数比较运算符仅是对数字的操作,不能将数字与字符串、文件等内容一起操作,而且不能想当然地使用日常生活中的等号、大于号、小于号等来判断。因为等号与赋值命令符冲突,大于号和小于号分别与输出重定向命令符和输入重定向命令符冲突。因此一定要使用规范的整数比较运算符来进行操作
如果想把这个命令写入到Shell脚本中,那么建议把输出结果赋值给一个变量,以方便其他命令进行调用
三、
if条件测试语句: if条件语句的单分支结构由if、then、fi关键词组成,而且只在条件成立后才执行预设的命令,相当于口语的“如果……那么……”。单分支的if语句属于最简单的一种条件判断结构
if条件语句的双分支结构由if、then、else、fi关键词组成,它进行一次条件匹配判断,如果与条件匹配,则去执行相应的预设命令;反之则去执行不匹配时的预设命令,相当于口语的“如果……那么……或者……那么……
if条件语句的多分支结构由if、then、else、elif、fi关键词组成,它进行多次条件匹配判断,这多次判断中的任何一项在匹配成功后都会执行相应的预设命令,相当于口语的“如果……那么……如果……那么……”。if条件语句的多分支结构是工作中最常使用的一种条件判断结构
在下面的脚本示例中,只有当用户输入的分数大于等于 85 分且小于等于 100 分时,才输 出 Excellent 字样;若分数不满足该条件(即匹配不成功),则继续判断分数是否大于等于 70 分且小于等于 84 分,如果是,则输出 Pass 字样;若两次都落空(即两次的匹配操作都失败 了),则输出 does not exist 字样
执行则用 bash 脚本名
for语句测试:允许脚本一次性读取多个信息,然后逐一对信息进行操作处理
先创建一个用户名列表 userlist.txt 里面包含用户ID,有了用户名列表开始编写脚本 addusers.sh
在脚本中使用 read 命令读取用户输入的密码值,然后赋值给 PASSWD 变量,并通过-p 参数向用户显示一段提示信息,告诉用户正在输入的内容即将作为账户密码;开始利用循环,`(tab键上面)将采用查看users.txt;在执行该脚本后,会自动使用从列表文件 users.txt 中获取到所有的用户名称,然后逐一使用“id 用户名”命令查看用户的信息,并使用$?判断这条命令是否执行成功,也就是判断该用户是否已经存在。
想要批量删除用户,将useradd改成userdel
/dev/null 是一个被称作 Linux 黑洞的文件,把输出信息重定向到这个文件等同于删除数据(类似于没有回收功能的垃圾箱),可以让用户的屏幕窗口保持简洁
while 循环语句通过判断条件测试的真假来决定是否继续执行命令,若条件为真就继续执行, 为假就结束循环
case语句测试:case 语句是在多个范围内匹配数据,若匹配成功则执行相关命令并结束整个条件测试;如果数据不在所列出的范围内, 则会去执行星(*)中所定义的默认命令
语法格式如图:
以上就是vim与shell的学习笔记了,理解起来很简单,但是要熟悉运用,还需要多敲。