软件测试第一阶段:web前端技术基础-16- linux系统安装软件,运用shell脚本等

2023-11-17

一丶yum安装

用yum安装软件分三步

  • 第一步:准备一个软件源。软件源其实就是一个目录,在这个目录中有很多的rpm包
  • 第二步:创建yum的配置文件,文件需要指向到软件源。
  • 第三步:用yum进行安装/卸载软件

第一步:配置软件源

1)首选将系统镜像文件挂载到linux中

  • 安装系统的时候,那个后缀是iso的文件,就是系统镜像文件

  • # 将光盘挂载到mnt下
  • #/dev/cdrom 这个是光盘
  • #/mnt 这就是Linux的一个目录,这个目录是作为外部设备的挂载点来使用的

[root@localhost ~]# mount /dev/cdrom /mnt     

 # 重启系统后,需要重新进行挂载 mount: /dev/sr0 写保护,将以只读方式挂载

  • # 检查挂载点
  • # 只要挂载点下面有内容,就说明挂载成功了

[root@localhost ~]# ls /mnt/

第二步:修改配置文件

关于yum的配置文件

  • 1)yum的配置文件路径:/etc/yum.repos.d
  • 2)yum的配置文件名:配置文件名不是固定的,而是有一个统一的后缀,.repo
  • 3)yum的默认配置文件,都是无效的,建议删除原有的所有配置文件

# 切换到yum的配置文件路径下

[root@localhost ~]# cd /etc/yum.repos.d/

# 删除原有的配置文件

[root@localhost yum.repos.d]# rm -rf *repo

# 检查是否还有配置文件,如果为空就正常了

root@localhost yum.repos.d]# ls

# 创建一个新的配置文件,只要保证后缀是.repo就可以

[root@localhost yum.repos.d]# vi new.repo

 修改了配置文件以后,需要检查是否配置成功

[root@localhost yum.repos.d]# yum repolist

第三步:安装卸载软件

yum命令格式

  • yum  参数  软件名

参数

  • install:安装软件
  • remove:卸载软件

#1 用yum安装httpd

[root@localhost ~]# yum install httpd

#2 用 rpm -q 软件名 可以检查软件是否安装了

[root@localhost ~]# rpm -q httpd

二丶计划任务

1.周期行计划

  • 通过周期性计划任务,可以定时、自动完成特定的工作
  • 使用周期性计划任务,需要开启服务:crond

  • crontab -e 创建计划任务
  • crontab -l 查看计划任务

1)检查crond服务

[root@localhost ~]# systemctl status crond

# 确保服务处于运行状态

2)创建计划任务

crontab -e 可以创建计划任务

  • 分钟  小时  日  月  周  命令

#案例1:每天5点27分,删除一次 tmp下的全部的文件a.txt

27 5 * * * rm -rf /tmp/a.txt

#案例2: 每个月7号的5点27分,删除一次 tmp下的全部的文件a.txt

27 5 7 * * rm -rf /tmp/a.txt

#案例3: 每年3月7号的5点27分,删除一次 tmp下的全部的文件a.txt

27 5 7 3 * rm -rf /tmp/a.txt

#案例4: 没个小时的27分,删除一次 tmp下的全部的文件a.txt

27 * * * * rm -rf /tmp/a.txt

三丶shell脚本编程

1.简介

  • 也是一种编程语言,最大的特点的就是简单
  • 在shell中,其实就是包含了各种linux命令
  • 这个保存了命令的文件就是shell脚本
  • 通过shell脚本可以实现批量执行linux命令

2.写shell脚本的流程

     第一步:用vi/vim去创建一个后缀是.sh的文件

  • vi是Linux的文本编辑器
  • vim是vi的升级版,在vim中可以实现内容的高亮显示
  • vim可能没有安装,可以执行 yum install vim 进行安装

注意:

  • 1)Linux中文件的后缀,对于文件的属性,没有任何影响
  • 2)因此,vi创建的shell脚本的后缀可以不是.sh

例如:创建一个文件 new.sh

[root@localhost ~]# vim new.sh

第二步:在sh文件中写入指令

  • 第一行固定写法:#!/bin/bash
  • 从第二行开始,写你想要执行的命令

# 要求:在shell脚本中,

# 1)在home下创建一个文件a.txt            touch /home/a.txt #

2)删除tmp下的所有的文件                    rm -rf /tmp/*

# 3)创建一个用户tom                            useradd tom

# 4)查看etc下有哪些文件                      ls /etc

shell脚本的内容

#!/bin/bash

touch /home/a.txt

rm -rf /tmp/*

useradd tom

ls /etc

第三步:给脚本赋予权限

[root@localhost ~]# chmod +x new.sh

第四步:执行脚本

[root@localhost ~]# ./new.sh

3.shell流控制

1)循环

  • 周而复始执行一个命令

格式:

for 变量 in 列表

do

done

for的执行流程

  • 1)量列表中的元素,拿出一个赋值给变量,然后执行do和done之间的代码
  • 2)do和done之间的代码执行完成后,会再次去列表中取出一个元素,然后执行do和done之间的代 码
  • 3)do和done之间的代码执行完成后,会再次去列表中取出一个元素,然后执行do和done之间的代 码
  • 4)当列表中的元素用尽了,就会结束循环,结束循环后,才会去执行done后面的代码

案例:

#!/bin/bash

for num in 1 2 3 4 5 6 7 8 9 10

do

       echo "hello"

       echo "a"

done

      echo "over"

执行流程

首先 将 1 赋值给 num,然后输出 hello 和 a

  • 输出后,再去将2 赋值 num,然后输出 hello 和 a
  • 输出后,再去将3 赋值 num,然后输出 hello 和 a
  • 输出后,再去将4 赋值 num,然后输出 hello 和 a ...
  • 输出后,再去将10 赋值 num,然后输出 hello 和 此时列表结束,此时会执行done后面的内容,也就是输出over

2)判断

  • 只有当符合条件的时候,才会执行命令

格式1:

if [ 判断条件 ];then

      语句

fi

  • 这种格式称之为单分支格式 
  • 中间的语句,必须当条件满足的时候,才会执行

格式2:

if [ 判断条件 ];then

         语句1

else

        语句2

fi

  • 这种格式称之为双分支格式 #
  • 中间的语句1,必须当条件满足的时候,才会执行
  •  当条件不满足的时候,会去执行语句2

案例:

#!/bin/bash                   # 指定解释器

m=3                            # 定义变量,变量名是m,变量中的值是3

n=5                             # 定义变量,变量名是n,变量中的值是5

if [ $m -gt $n ];then

           

    # 条件是m中的值大于n中的值。变量名前必须加上$才能获得变量中的值   

     

     echo "ok"                      # 当条件成立,输出这里的内容

     echo "$m"

else

     echo "error"                 # 当条件不成立,输出这里的内容

     echo "$n"

fi

4.shell脚本和计划任务

案例:要求每天晚上23点55分1执行如下操作

  • 1)在home下创建一个文件
  • 2)删除tmp下的所有的文件
  • 3)创建一个用户
  • 4)查看etc下有哪些文件

第一步:用vim创建一个文件

[root@localhost ~]# vim 1.sh

第二步:文件内容如下

#!/bin/bash

touch /home/a.txt

rm -rf /tmp/*

useradd tom

ls /etc

  • 然后进入末行模式 wq保存退出

第三步:给这个脚本赋予权限

[root@localhost ~]#chmod +X 1.sh

第四步:创建一个计划任务

[root@localhost ~]#chmod -e 

内容如下

55 23 * * *bash  /1.sh

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

软件测试第一阶段:web前端技术基础-16- linux系统安装软件,运用shell脚本等 的相关文章

  • 如何在 Linux shell 中将十六进制转换为 ASCII 字符?

    假设我有一个字符串5a 这是 ASCII 字母的十六进制表示Z 我需要找到一个 Linux shell 命令 它将接受一个十六进制字符串并输出该十六进制字符串代表的 ASCII 字符 所以如果我这样做 echo 5a command im
  • 两种情况或 if 哪个更快? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我必须制作一个 非常 轻的脚本 它将接受用户的选项并调用脚本中的函数来执行一些任务 现在我可以使用 IF 和 CASE 选项 但我想知道两
  • 如何在Linux内核源代码中打印IP地址或MAC地址

    我必须通过修改 Linux 内核源代码来稍微改变 TCP 拥塞控制算法 但为了检查结果是否正确 我需要记录 MAC 或 IP 地址信息 我使用 PRINTK 函数来打印内核消息 但我感觉很难打印出主机的MAC IP地址 printk pM
  • NPTL 和 POSIX 线程有什么区别?

    NPTL 和 POSIX 线程之间的基本区别是什么 这两者是如何演变的 POSIX 线程 pthread 不是一个实现 它是几个函数的 API 规范 纸上的标准 英文 其名称以pthread 以及定义在
  • Linux:如何从特定端口发送TCP数据包?

    如何打开原始套接字以从特定 TCP 端口发送 我希望所有连接始终来自临时端口以下的一系列端口 如果您正在使用raw套接字 然后只需在数据包标头中填写正确的 TCP 源端口即可 相反 如果您使用 TCP 套接字接口 socket connec
  • C语言中如何通过内存地址映射函数名和行号?

    如何用 GCC 中的内存地址映射回函数名称和行号 即假设一个 C 语言原型 void func Get the address of caller maybe this could be avoided MemoryAddress get
  • 查找哪些页面不再与写入时复制共享

    假设我在 Linux 中有一个进程 我从中fork 另一个相同的过程 后forking 因为原始进程将开始写入内存 Linux写时复制机制将为进程提供与分叉进程使用的不同的唯一物理内存页 在执行的某个时刻 我如何知道原始进程的哪些页面已被写
  • 查找哪个程序运行另一个程序

    我有一个 NAS 运行在 Redhat Linux 的有限版本上 我按照指示破解了它 这样我就可以访问 shell 这很有帮助 我还做了一些修改 其他人也做过修改 除了一个问题之外 它们似乎都工作得很好 不知何故 每隔 22 天 系统就会关
  • 如何通过ssh检查ubuntu服务器上是否存在php和apache

    如何通过ssh检查Ubuntu服务器上apache是 否安装了php和mysql 另外如果安装的话在哪个目录 如果安装了其他软件包 例如 lighttpd 那么它在哪里 确定程序是否已安装的另一种方法是使用which命令 它将显示您正在搜索
  • 如何更改 Apache 服务器的根目录? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何更改 Apache 服务器的文档根目录 我基本上想要localhost从 来 users spencer projects目录而不是
  • Gtk-ERROR **:检测到 GTK+ 2.x 符号

    我正在使用 gcc 编译我的 c 应用程序 并使用以下标志 gcc evis c pkg config cflags libs gtk 2 0 libs clutter gtk 1 0 libs gthread 2 0 Wall o evi
  • 是否可以创建一个脚本来保存和恢复权限?

    我正在使用 Linux 系统 需要对一组嵌套文件和目录进行一些权限实验 我想知道是否没有某种方法可以保存文件和目录的权限 而不保存文件本身 换句话说 我想保存权限 编辑一些文件 调整一些权限 然后将权限恢复到目录结构中 将更改的文件保留在适
  • Linux 上的用户空间能否实现本机代码的抢占式多任务处理?

    我想知道是否可以在 Linux 用户空间的单个进程中实现本机代码的抢占式多任务处理 也就是说 从外部暂停一些正在运行的本机代码 保存上下文 交换到不同的上下文 然后恢复执行 所有这些都由用户空间精心安排 但使用可能进入内核的调用 我认为这可
  • 我不明白 execlp() 在 Linux 中如何工作

    过去两天我一直在试图理解execlp 系统调用 但我还在这里 让我直奔主题 The man pageexeclp 将系统调用声明为int execlp const char file const char arg 与描述 execl exe
  • 按进程名称过滤并记录 CPU 使用情况

    Linux 下有选项吗顶部命令 https www man7 org linux man pages man1 top 1 html我可以在哪里按名称过滤进程并将每秒该进程的 CPU 使用情况写入日志文件 top pgrep 过滤输出top
  • 如何在基于 Linux 的系统上的 C 程序中使用 mqueue?

    如何在基于 Linux 的系统上的 C 程序中使用 mqueue 消息队列 我正在寻找一些好的代码示例 可以展示如何以正确且正确的方式完成此操作 也许是一个操作指南 下面是一个服务器的简单示例 该服务器接收来自客户端的消息 直到收到告诉其停
  • Linux - 从第二个选项卡获取文本

    假设我们有这样的文件 一些文本11 一些文本12 一些文本13 一些文本21 一些文本22 一些文本23 文本由制表符分隔 我们知道第 1 列中的一些文本 但希望从第 2 列中获取文本 我知道我可以通过以下方式获取线路 grep somet
  • waitpid() 的作用是什么?

    有什么用waitpid 它通常用于等待特定进程完成 或者如果您使用特殊标志则更改状态 基于其进程 ID 也称为pid 它还可用于等待一组子进程中的任何一个 无论是来自特定进程组的子进程还是当前进程的任何子进程 See here http l
  • 在两次之间每分钟执行一次 Cronjob

    我需要在 crontab 中每分钟运行一个 bash 脚本8 45am and 9 50am每天的 Code 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 8 home pull sh gt ho
  • 捕获实时流量时如何开启纳秒精度?

    如何告诉 libpcap v1 6 2 将纳秒值存储在struct pcap pkthdr ts tv usec 而不是微秒值 捕获实时数据包时 Note This question is similar to How to enable

随机推荐

  • C++中的并行与并发

    1 1 并行基础 std thread 用于创建一个执行的线程实例 所以它是一切并发编程的基础 使用时需要包含
  • 夜夜肝到秃顶,2022年Java面试题目收集整理归纳

    开始的碎碎念 本文大多是各大企业的topN题目 针对java中高级开发 本文会持续收集更新内容 如果大家有优质的Java面试题 也欢迎大家来投稿 特意整理出这个分类的目录 方便大家平时复习和收藏哈 希望正在准备面试的朋友们能顺顺利利找到自己
  • 用python进行图片处理和特征提取

    原文来自 http www analyticsvidhya com blog 2015 01 basics image processing feature extraction python 毫无疑问 上面的那副图画看起来像一幅电脑背景图
  • 区块链 2.0笔记

    区块链 2 0 以太坊概述 相对于比特币的几点改进 缩短出块时间至10多秒 ghost共识机制 mining puzzle BTC 计算密集型 ETH memory hard 限制ASIC proof of work gt proof of
  • 【每日一题】1572. 矩阵对角线元素的和

    每日一题 1572 矩阵对角线元素的和 1572 矩阵对角线元素的和 题目描述 解题思路 1572 矩阵对角线元素的和 题目描述 给你一个正方形矩阵 mat 请你返回矩阵对角线元素的和 请你返回在矩阵主对角线上的元素和副对角线上且不在主对角
  • 解决Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'.

    一 Android Studio 引用多个jar aar或者工程时出现 com Android build api transform TransformException Java util zip ZipException duplic
  • C# language Study - 1

    本节讲叙了一些基本的C 语法上的知识 这些知识一般都是在C语言中接触不到的 最基础的 C语言中也存在的知识点 就略过不提了 1 C 中预定义的值类型 a 整型 sbyte System SByte 8位有符号整数 short System
  • 华为OD机试 - 快速开租建站(Java)

    题目描述 当前IT部门支撑了子公司颗粒化业务 该部门需要实现为子公司快速开租建站的能力 建站是指在一个全新的环境部署一套IT服务 每个站点开站会由一系列部署任务项构成 每个任务项部署完成时间都是固定和相等的 设为1 部署任务项之间可能存在依
  • 华为od机试题2 真题

    华为od机试题 真题 77 满足最大消费额度 76 小朋友身高位置 75 字符连续出现最大次数 74 最少停车数 73 字母多条件排序 71 交叉排序 70 水仙花数 69 消除相邻且相同字母 以下题目附带Java解法 是我个人写的 不一定
  • RobotFramework入门(二)appUI自动化之app启动

    前言 本章主要讲述appUI自动化的一个小示例 ps 这里虽然是一个小示例 但如果你要通过robot去做appUI自动化 思路都是一样的 可以自行搜索关键字组合去使用 其实正常情况下 我们会直接使用代码去实现自动化 而不是在ride上实行哈
  • discuz主题列表页伪静态化设置方法(lnmp+wamp+lamp通用)

    大家都知道在discuz程序中 伪静态化后 门户文章跟帖子内容都可以设置成功并能正常的访问 但是在论坛帖子的列表页却还是动态的地址 http www 52hgn com forum php gid 40 比如这种 我们想把他变成这种静态地址
  • Java从入门到实战总结-4.4、JDBC

    Java从入门到实战总结 4 4 JDBC 文章目录 Java从入门到实战总结 4 4 JDBC 1 简介 2 JDBC体系结构 3 JDBC核心组件 4 CRUD语法介绍 回顾 5 使用步骤 6 JDBC连接步骤 6 1 JDBC执行SQ
  • ES6非空判断

    es6 Null传导运算符 const firstName message body user firstName default 运算符相当于一种短路机制 只要不满足条件 就不再往下执行 Null 判断运算符 属性的值为null unde
  • gitLens插件简单使用(默认上传github)

    1 安装 在vscode中的插件管理输入如下后下载 GitLens Git supercharged 2 配置 点击文件 首选项 设置 点击右上角设置小图标 3 github使用 首先仓库文件一定是要git init是git所管理的 1 在
  • Quartus II 安装

    本次介绍使用的 Quartus 版本为 10 1 目前 Quartus II 官网已经没有 13 1 以下版本的安装包 大家可以安装 13 1 以上版本的软件 功能都是大同小异 下载地址 FPGA Software Download Cen
  • 16进制(CRC16)(MODBUS RTU通讯)校验码在线计算器

    最近在项目上遇到 用485协议命令控制灯光继电器的开关需要计算16进制 CRC16 MODBUS RTU通讯 校验码来写控制命令 这种在网上有现成的计算器 我们直接使用即可 以下为我用的一个计算器的链接 个人感觉还是蛮好用的 同时他还涵盖了
  • react Native java JDK与Gradle版本不兼容 构建失败

    react Native 版本介绍 本篇适用react Native已经搭建了java jdk 1 8的版本开发环境 如果需要写0 67版本及以上的项目 现在的gradle版本比较高 比如gradle6 0 构建版本和打包的时候会出现不兼容
  • ThinkPhp5使用bootstrap样式分页

    1 查看分页的配置 在application config php文件中最后 分页配置 paginate gt type gt bootstrap var page gt page list rows gt 15 2 下载 https v3
  • 04-Qt软件加入Log文件输出与终端彩色打印(包含行号)

    一 目的与需求 在开发qt应用程序中 经常使用打印调试软件 qt自己的qDebug 就满足了需求 但是当需要把一部分log记录到文件的时候qt就没有提供了 这个时候可以使用qDebug 的qInstallMsgHandler来指定打印回掉函
  • 软件测试第一阶段:web前端技术基础-16- linux系统安装软件,运用shell脚本等

    一丶yum安装 用yum安装软件分三步 第一步 准备一个软件源 软件源其实就是一个目录 在这个目录中有很多的rpm包 第二步 创建yum的配置文件 文件需要指向到软件源 第三步 用yum进行安装 卸载软件 第一步 配置软件源 1 首选将系统