linux 第一章 shell编程及自动化运维实现

2023-05-16

linux shell编程及自动化运维实现

第一章 变量

一、shell 前言

1、shell语言的特点:

  • SHELL语言是指Unix操作系统的命令语言,同时又是该命令语言的解释程序的简称。

  • shell本身是一个用c语言编写的程序,它是用户使用unix/linux的桥梁,用户的大部分工作都是通过shell完成的。

  • shell即是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令。

  • 作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。

  • 它虽然不是unix/linux系统内核的一部分,但它调用了系统核心的大部分功能来执行程序。

  • 建立文件并以并行的方式协调各个程序的运行。

  • 因此,对于用户来说,shell是最重要的实用程序。

  • 深入了解和熟练掌握shell的特性及其使用方法,是用好unix/linux系统的关键。

2、shell能做什么:

在这里插入图片描述

3、shell执行方式

shell多种执行方式:

  • 准备测试脚本:
[root@localhost] vim file1
echo "hello 2020"
read -p  "请输入您的姓名:"  name 
echo "哈哈$name是大笨蛋"

执行1:bash file1

[root@localhost] bash file1
hello 2022
请输入您的姓名:666
哈哈哈666是大笨蛋

执行2:sh file1

[root@localhost] sh file1
hello 2022
请输入您的姓名:666
哈哈哈666是大笨蛋

执行3:. file1

[root@localhost] . file1
hello 2022
请输入您的姓名:666
哈哈哈666是大笨蛋

执行3:source file1

[root@localhost] source file1
hello 2022
请输入您的姓名:666
哈哈哈666是大笨蛋

多种执行方式的区别:

准备环境:

#1.准备环境
[root@localhost] ls /home
aofa

vim bash.sh

#!/bin/bash                        #脚本声明
cd /home
ls

1和2的方式,是子shell,执行完不影响本shell。

[root@localhost~] bash     #进入子shell,默认打开
[root@localhost~] exit     #退出子shell    
[root@localhost] bash  bash.sh
aofa
[root@localhost~] sh  bash.sh
aofa
[root@localhost~] pwd
/root #当前的位置还在root你看不见那个shell它运行完就自动关了

3和4的方式,是本shell ,执行完改变本shell。

[root@localhost~] . bash.sh    #影响的是当前shell
aofa
[root@localhost home] pwd
/home
[root@localhost~] source bash.sh    #影响的是当前shell
aofa
[root@localhost home] pwd
/home

4、shell解释器的位置

[root@localhost ~] which  bash
/usr/bin/bash

[root@localhost ~] cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh

二、变量

简介:shell变量用一个固定的字符串去表示不固定的内容,便于修改

==简述:==用户自定义变量是最常见的变量类型,其特点是变量名和变量值都是由用户自由定义的。

学习要点:

  • 定义变量:变量名=变量值

  • 引用变量: 变量名,或 变量名,或 变量名,或{变量名}

  • 查看变量:echo$变量名;set可以查看所有变量(包括自定义变量和环境变量)

  • 取消变量:unset变量名

1、自定义变量

自定义变量只在当前shell内生效

定义变量

该如何定义变量呢?很简单,只需执行“变量名=变量值”命令即可,不过要遵守变量定义规则。例如:

[root@localhost ~] name="hyb    666"
变量调用

当我们需要提取变量中的内容时,需要在变量名之前加入“$”符号。那么最简单的变量调用就是通过echo命令输出变量的值。命令如下:

  • 定义变量name
[root@localhost ~] name="hyb 666"
  • 输出变量name的值
[root@localhost ~] echo $name
hyb 666
  • 错误定义示范

变量的定义就是这么简单,但是如果不遵守变量定义规则,就会报错:比如:

变量名不能以数字开头

[root@localhost ~] 2name="hyb 666"
bash: 2name=hyb 666: 未找到命令...

等号左右两边不能有空格

[root@localhost ~] name = "hyb  666"
bash: name: 未找到命令...

变量的值如果有空格,必须用引号包含

[root@localhost ~]# name=hyb  666
bash: 666: 未找到命令...
重复定义变量

重复定义变量会进行变量叠加 例如:

  • 定义变量aa的值是123
[root@localhost ~] aa=123
  • 重复定义变量aa的值是源aa的值加上456
[root@localhost ~] aa="$aa"456
[root@localhost ~] echo $aa
123456

调用变量aa,发现值已经变成了123456

  • 在进行变量叠加时,也可以使用$(变量名)格式
[root@localhost ~] aa=${aa}789
[root@localhost ~] echo $aa
123456789
  • 这里要小心,在进行变量叠加时,变量名需要用双引号或${}包含。
[root@localhost ~] echo ${name}
hyb 666
[root@localhost ~] echo "$name"
hyb 666
变量查看

我们可以通过echo命令查询已经设定的变量的值,这种查询是已知变量名查询变量值。但是如果我不知道变量值,那么可以查询系统中已存在的变量吗?

[root@localhost ~] set | grep name
变量删除

想要删除自定义变量,可以使用unset命令。命令格式如下

[root@localhost ~] unset  变量名

这条命令执行之后,再查询变量,就会发现这个变量已经为空了

[root@localhost ~] unset name
[root@localhost ~] echo $name
输出是空的
示例
  • 使用变量前

需求:编写测试主机在线的脚本,当主机在线提示在线,当主机不在线提示不在线

编写脚本:

[root@localhost ~] vim  ping.sh

ping -c 1 192.168.18.2   &>  /dev/null  &&  echo 192.168.18.2up  || echo 192.168.18.2down

注释:

&&和||是三目表达式

&&前面的命令成功,执行后面的命令

||前面的命令失败,执行后面的命令

[root@localhost ~] bash ping.sh 
192.168.18.2up                                          #不需要执行权限

授权脚本:

[root@localhost ~] chmod +x  ping.sh

执行脚本:

[root@localhost ~] . ping.sh 
192.168.18.2up                                  #执行需要执行权限

思考:

如果更换测试IP,需要修改脚本的哪些部分?需要修改三个部分

  • 使用变量后

编写脚本:

[root@localhost ~] vim  ping.sh
#!/bin/bash
ip=192.168.18.2
ping -c 1 $ip  &>  /dev/null  &&  echo $ip up  || echo $ip down

授权脚本:

[root@localhost ~] chomd +x  ping.sh

执行脚本:

[root@localhost ~] ./ping.sh 
192.168.18.2 up
交互定义变量
  • read从键盘读入变量值

赋值方法:read 变量名

示例:

[root@localhost ~] vim 1.sh
read -p "请输入您的外号:" name
echo "宇宙最帅的男人就是:"  $name
[root@localhost ~] chmod +x 1.sh
[root@localhost ~] . 1.sh
请输入您的外号:hyb   
宇宙最帅的男人就是: hyb

[root@localhost ~] vim ping.sh
#!/bin/bash
read -p "请输入您需要测试的第一个IP:"  ip1
ping -c 1 $ip1 &> /dev/null && echo $ip1 up || echo $ip1 down
read -p "请输入您需要测试的第二个IP:"  ip2
ping -c 1 $ip2 &> /dev/null && echo $ip2 up || echo $ip2 down
read -p "请输入您需要测试的第三个IP:"  ip3
ping -c 1 $ip3 &> /dev/null && echo $ip3 up || echo $ip2 down
[root@localhost ~] chmod +x ping.sh

[root@localhost ~] . ping.sh
请输入您需要测试的第一个IP:192.168.18.1 
192.168.18.1 down
请输入您需要测试的第二个IP:192.168.18.2
192.168.18.2 up
请输入您需要测试的第三个IP:192.168.18.145
192.168.18.145 up

  • 注意事项,3种引号

定义或引用变量时注意事项:

  1. “ ”弱引用:一般去掉引号内空格的含义
[root@localhost ~] school=1000 phone
bash: phone: 未找到命令...
[root@localhost ~] school="1000 phone"
[root@localhost ~] echo $school 
1000 phone
[root@localhost ~] school=$school is good
bash: is: 未找到命令...
[root@localhost ~] school="$school is good"
[root@localhost ~] echo $school
1000 phone is good
  1. ‘ ’ 强引用:引号内一切符号失去作用
[root@localhost ~] school='$school 666'
[root@localhost ~] echo $school 
$school 666
  1. `` 反引号:命令优先执行
[root@localhost ~] school=date
[root@localhost ~] echo $school 
date
[root@localhost ~] school=`date`
[root@localhost ~] echo $school 
202211月 03日 星期四 10:07:27 CST
注意

变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名需遵循如下规则:

  • 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头

  • 中间不能有空格,可以使用下划线(_)

  • 不能使用标点符号

  • 不能使用bash里的关键字(可用help命令查看保留关键字)

2、整数运算

这里我们只需要掌握一种整数运算的方法4种方法没有高低优劣之分,在企业当中看到其他3种方法你只需要认识看得懂别人的代码就可以。

方法一:expr

语法:

[root@localhost ~] expr 1 + 2    #数字与符号一定要有空格
3
[root@localhost ~] expr 2 \* 4
8
[root@localhost ~] num1=16
[root@localhost ~] num2=4
[root@localhost ~] expr $num1 + $num2
20

案例:

需求:运算学员的成绩总分

制作脚本:

[root@localhost ~] vim sum.sh
#!/bin/bash
read -p "请输入您的第一门成绩:"  number1
read -p "请输入您的第二门成绩:"  number2
echo -n "总成绩是:"            #-n 去掉回车符
expr $number1 + $number2
[root@localhost ~] chmod +x sum.sh
[root@localhost ~] ./sum.sh 
请输入您的第一门成绩:34
请输入您的第二门成绩:43
总成绩是:77

[root@localhost ~] vim sum.sh
#!/bin/bash
read -p "请输入您的第一门成绩:"  number1
read -p "请输入您的第二门成绩:"  number2
num=`expr $number1 + $number2`
echo $num
[root@localhost ~] ./sum.sh 
请输入您的第一门成绩:32
请输入您的第二门成绩:453
485
方法二:$(())
[root@localhost ~] echo $((2**3))    #有2的3次方。
8
[root@localhost ~] sum=$((2+2))  ; echo $sum
4  # ;是执行完前面的再执行后面的命令
方法三:$[ ]
[root@localhost ~] echo $[6+6]
12
方法四:let
[root@localhost ~] num1=21
[root@localhost ~] num2=22
[root@localhost ~] let sum=$num1+$num2
[root@localhost ~] echo $sum
43

[root@localhost ~] let i++ ; echo $i
1
[root@localhost ~] let i++ ; echo $i
2
[root@localhost ~] let i++ ; echo $i
3

3、小数运算(了解)

前提得安装一个会算小数的程序bc

[root@localhost ~] yum install -y bc
[root@localhost ~] echo "2+4" | bc
6
[root@localhost ~]  bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 
2+4
6
6+6
12
[root@localhost ~] echo "scale=2 ; 6/4" | bc
1.50    #scale保留两位小数

4、环境变量(了解)

前言

自定义变量,只能在当前shell生成。其他shell是不生效的。说白了,你的变量只能你用,那如果有些变量,需要所有用户都使用该怎么办呢、

定义环境变量

方法: export 声明变量 当前shell和子shell

[root@localhost ~] name=hyb
[root@localhost ~] echo $name
hyb
[root@localhost ~] export name
[root@localhost ~] bash
mount: /dev/sr0 写保护,将以只读方式挂载
mount: /dev/sr0 已经挂载或 /mnt/cdrom 忙
       /dev/sr0 已经挂载到 /mnt/cdrom 上
[root@localhost ~] echo  $name
hyb
  • 想使变量在当前用户登录后一直生效,可以将变量放到~/.bash_profile (子shell和兄弟shell都可用,但是其他用户不行)

  • 想使变量在所有用户登录后一直生效,可以将变量放到/etc/profile

5、位置变量和预定义变量

位置变量语法

位置变量:可以调用命令 参数1 参数2 参数3…9 9以后重新定义 $0 $1 $2…$9…

系统已经定义好的所以直接调用就行,参数必须跟在代码的后面

[root@localhost ~] vim ping.sh
#!/bin/bash
ping -c 1 $1 &> /dev/null && echo $1 up || echo $1 down
ping -c 1 $2 &> /dev/null && echo $2 up || echo $2 down
ping -c 1 $3 &> /dev/null && echo $3 up || echo $2 down
[root@localhost ~] chmod +x ping.sh 
[root@localhost ~] ./ping.sh 192.168.18.1  192.168.18.2 192.168.18.3   # 参数必须跟在代码的后面
192.168.18.1 down
192.168.18.2 up
192.168.18.2 down
示例

需求:制定脚本程序,用户自行输入两门学科的成绩(整数),自动算出平均分。

制作脚本:

[root@localhost ~] vim avg.sh
#!/bin/bash
echo "($1+$2)/2" | bc
[root@localhost ~] chmod +x avg.sh 
[root@localhost ~] ./avg.sh    43  32
37
[root@localhost ~] ./avg.sh    50 50
50
预定义变量

预先定好的变量

$0脚本名/程序名 本身没有意义

[root@localhost ~] vim avg.sh
#!/bin/bash
echo "($1+$2)/2" | bc
echo "这个程序的名字叫$0"      
[root@localhost ~] ./avg.sh    50 50
50
这个程序的名字叫./avg.sh

$#参数的个数

[root@localhost ~] vim avg.sh
#!/bin/bash
echo "($1+$2)/2" | bc
echo "这个程序的名字叫$0"
echo "这个程序有 $# 个参数"   
[root@localhost ~] ./avg.sh    50 50
50
这个程序的名字叫./avg.sh
这个程序有 2 个参数

$*参数有哪些

[root@localhost ~] vim avg.sh
#!/bin/bash
echo "($1+$2)/2" | bc
echo "这个程序的名字叫$0"
echo "这个程序有 $# 个参数"
echo "该程序当中的参数有$*"
[root@localhost ~]# ./avg.sh    50 50
50
这个程序的名字叫./avg.sh
这个程序有 2 个参数
该程序当中的参数有50 50

$#参数的个数

[root@localhost ~] vim avg.sh
#!/bin/bash
echo "($1+$2)/2" | bc
echo "这个程序的名字叫$0"
echo "这个程序有 $# 个参数"   
[root@localhost ~] ./avg.sh    50 50
50
这个程序的名字叫./avg.sh
这个程序有 2 个参数

$*参数有哪些

[root@localhost ~] vim avg.sh
#!/bin/bash
echo "($1+$2)/2" | bc
echo "这个程序的名字叫$0"
echo "这个程序有 $# 个参数"
echo "该程序当中的参数有$*"
[root@localhost ~]# ./avg.sh    50 50
50
这个程序的名字叫./avg.sh
这个程序有 2 个参数
该程序当中的参数有50 50

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

linux 第一章 shell编程及自动化运维实现 的相关文章

  • C++多线程3-共享数据操作保护

    目录 xff1a 1 多线程操作共享数据引出的问题 2 解决多线程操作共享数据的方法 xff1a 锁 3 互斥量mutex的概念和用法 4 lock普通锁的用法 5 lock guard类模板的用法 6 死锁的概念和解决 7 unique
  • C++多线程4-unique_lock详解

    unique lock和lock guard都是可以自动解锁的类 xff0c 但是lock guard更加高效体现在永远在析构函数中解锁 xff0c 而unique lock更加灵活 xff0c 但执行效率会比lock guard低一些 x
  • C++多线程6-条件变量

    1 条件变量 std condition variable是多线程中经常用到的一个类 xff0c 它的头文件为condition variable 它常用的成员函数包括 xff0c wait notify one notify all等 它
  • Centos6.5系统升级软件操作文档

    为什么要用Centos6 5系统 xff1f 答 xff1a 因为计算板官方推荐Centos6 5 为什么要升级软件 xff1f 答 xff1a 软件需支持C 43 43 11相关库 1 系统信息 系统版本 xff1a CentOS 6 5
  • c++11多线程7-异步线程

    异步线程 异步线程的引入解决了线程有依赖关系的情景 c 43 43 11提供了std async xff0c std packaged task xff0c std promise xff0c 三种方法 1 std async std as
  • HTML中meta标签如何正确使用

    HTML中 lt meta gt 标签如何正确使用 如果我们在浏览器中按下F12或者Ctrl 43 shift 43 J xff0c 便可以打开开发者工具 xff0c 在element中即可看到 lt head gt 元素中有不少 lt m
  • 4.Linux网络编程-select和poll模型

    目录 xff1a 1 补充知识 2 简易版回射服务器的实现 3 select模型实现 4 poll模型实现 1 补充知识 span class token comment 显示进程的pid xff1a span span class tok
  • 5.Linux网络编程-select实现超时API

    一 alarm函数设置超时 它的主要功能是设置信号传送闹钟 信号SIGALRM在经过seconds指定的秒数后传送给目前的进程 xff0c 如果在定时未完成的时间内再次调用了alarm函数 xff0c 则后一次定时器设置将覆盖前面的设置 x
  • 6.Linux网络编程-epoll原理

    一 xff1a 对比select发现epoll的有点 要比较epoll相比较select高效在什么地方 xff0c 就需要比较二者做相同事情的方法 要完成对I O流的复用需要完成如下几个事情 xff1a 1 用户态怎么将文件句柄传递到内核态
  • 7.Linux网络编程-UNIX域套接字

    一 xff1a UNIX套接字 用于同一台pc上运行的进程之间通信 xff0c 它仅仅复制数据 xff0c 不执行协议处理 xff0c 不需要增加删除网络报头 xff0c 无需计算校验和 xff0c 不产生顺序号 xff0c 无需发送确认报
  • 8.Linux网络编程-System V消息队列

    一 xff1a 消息队列 消息队列是进程间通信的一种手段 xff0c 进程产生的数据块以链表的形式存储在消息队列中 xff0c 每个数据块都被认为是有一个类型 xff0c 接收者进程接收的数据块可以有不同的类型 消息队列有以下的几个限制 x
  • 9.Linux网络编程-SYSTEM V共享内存

    一 xff1a 内存映射文件 1 基本原理 mmap是一种内存映射文件的方法 xff0c 即将一个文件或者其它对象映射到进程的地址空间 xff0c 实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系 实现这样的映射关系后 xff
  • ubuntu16.04安装openstack(ocata)

    一 系统和openstack信息 Liunx系统 xff1a ubuntu16 04 server 64位 openstack版本 xff1a stable ocata 二 VMware配置 1 处理器 xff1a 数量1 xff0c 核心
  • 代码注释规范

    一 背景 1 当我们第一次接触某段代码 xff0c 但又被要求在极短的时间内有效地分析这段代码 xff0c 我们需要什么样的注释信息 xff1f 2 怎么样避免我们的注释冗长而且凌乱不堪呢 xff1f 3 在多人协同开发 维护的今天 xff
  • 1.Linux网络编程-字节序和地址转换函数

    1 IPv4套接口地址结构 IPv4套接口地址结构通常称为 网际套接字地址结构 xff0c 它以 sockaddr in 命名 xff0c 定义在头文件 lt netinet in h gt 中 struct sockaddr in uin
  • 2.Linux网络编程-socket函数和C2S实现

    1 TCP客户 服务器模型 TCP服务器 xff1a socket gt bind gt listen gt accept gt block直至客户连接到达 gt read gt 处理请求 gt write gt read gt close
  • form表单通过request取不到值multipart/form-data 文件上传表单中传 递参数无法获取的原因!

    1 什么是multipart form data 首先我们需要明白在html中的enctype属性 xff0c enctype xff1a 规定了form表单在发送到服务器时候编码方式 他有如下的三个值 application x www
  • 3.Linux网络编程-粘包处理

    visiopacket h Created on 2019年5月8日 Author hfeng liu 粘包处理 xff1a 由于TCP是基于流传输的机制 xff0c 当发送多个间隔较小的小报文时 xff0c 它会在缓冲区中缓存成一个报文发
  • linux shell脚本执行sql语句建表建库

    linux shell脚本执行sql语句建表建库 1 创建sql脚本2 创建shll脚本 1 创建sql脚本 创建contract ddl sql span class token comment 创建数据库contract user sp
  • 【Windows版】VScode配置C++开发环境

    博客已更新 xff1a Windows版 VScode配置C 43 43 开发环境 花花少年的博客 CSDN博客

随机推荐

  • Windows+COLMAP三维重建教程【exe安装】

    一 步骤 1 下载COLMAP COLMAP COLMAP 2 解压并运行COLMAP 3 稀疏三维重建 xff0c 生成稀疏图 4 稠密图三维重建 xff0c 生成稠密图 二 可能出现的问题 1 Dense stereo reconstr
  • FFmpeg教程(超级详细版)

    一 参考资料 通过ffmpeg把图片转换成视频 FFmpeg命令 一 使用filter complex命令拼接视频 FFmpeg 视频处理入门教程给新手的 20 多个 FFmpeg 命令示例 FFmpeg命令行转码 ffmpeg 翻译文档
  • yolov5+Deepsort实现目标跟踪

    一 参考资料 项目源码 pytorch yolo5 43 Deepsort实现目标检测和跟踪 工程落地 YoloV5 43 deepsort 43 Fast ReID 完整行人重识别系统 xff08 三 xff09 yolov5 deeps
  • 华为Ascend昇腾适配PyTorch框架

    一 参考资料 PyTorch用户文档 PyTorch网络模型移植 amp 训练指南 AscendPyTorch 第三方框架适配 二 重要说明 CPU架构为ARM架构时 xff0c 由于社区未提供ARM架构CPU版本的torch包 xff0c
  • 提高工作效率的宝藏网站和宝藏工具

    一 好用的网站 面包多 面包多 创作者在面包多 xff0c 通过出售课程 xff0c 文章 xff0c 绘画 xff0c 创意作品 xff0c 软件 xff0c 电子书 xff0c 音乐 xff0c 游戏 xff0c 咨询服务 xff0c
  • ubuntu服务器相关教程

    二 常用操作 1 ssh相关 span class token comment 安装ssh服务 span span class token function sudo span span class token function apt g
  • 超级实用的C++学习网站

    重要说明 xff1a 该博客长期更新 xff0c 方便读者查阅 xff01 一 参考资料 学习C 43 43 这几个网站足矣 二 C 43 43 学习网站 C 43 43 中文网 cppreference 当之无愧的C 43 43 学习第一
  • Vue 安装 Element Plus

    Element UI 是一款基于 Vue 的桌面端组件库 xff0c 提供了丰富的PC端组件 xff0c 简化了常用组件的封装 xff0c 大大降低了开发难度 随着 Vue 版本的更新 xff0c Element UI 2 x 升级到了El
  • gpio接口编程实例

    一 GPIO gpio general purpose ports 通用输入 输出端口 gpio的操作是所有硬件操作的基础 xff0c 这是底层开发人员必须掌握的 以三星公司的s3c2410 s3c2440为例做一下简要说明 s3c2410
  • ubuntu设置pycharm的桌面快捷方式

    写在最前面 xff1a 感谢大佬的分享 xff0c 参考了原文之后操作了一番 xff0c 除了pycharm xff0c 其他类似的软件也是一样的步骤即可创建桌面快捷方式 附上原文链接 xff1a Ubuntu 下安装pycharm 以及创
  • Anaconda在Ubuntu下的安装与简单使用

    一 Anaconda的安装 参考博客 ubuntu16 04下安装 amp 配置anaconda 43 tensorflow新手教程 1 下载 Miniconda 2 安装Miniconda bash Miniconda3 py39 4 1
  • 目标检测中NMS(非极大抑制)的概念理解

    参考博客 物体检测中常用的几个概念迁移学习 IOU NMS理解 目标定位和检测系列 xff08 3 xff09 xff1a 交并比 xff08 IOU xff09 和非极大值抑制 xff08 NMS xff09 的python实现 一 NM
  • VMware虚拟机上不能使用CUDA/CUDNN

    参考博客 VMware虚拟机上不能使用CUDA Linux Ubuntu 系统查看显卡型号 一 综述 虚拟机的显卡是虚拟的 xff0c 不能使用CUDA 虚拟机上装Nvidia显卡驱动会导致其他驱动全都不能用 xff0c 所以不能在虚拟机上
  • CUDA、CUDNN在windows下的安装及配置

    参考文章 全网最详细 Windows 安装 TensorFlow2 0 GPU 详细教程 Wind10安装anaonda 43 cuda10 1 43 cudnn 43 pytorch 43 tensorflow gpu win10 43
  • windows下CUDA的卸载以及安装

    参考博客 windows 7 下cuda 9 0 卸载 cuda8 0 安装 一 前言 对于一个刚玩CUDA菜鸟来说 xff0c 安装问题就是一个巨大的坑 xff0c 安装过程里面有很多需要注意的细节 xff0c 很多自定义的选项 xff0
  • 宇宙最强VisualStudio2017配置pyQt5用于python3.6的UI界面工具

    前言 请务必注意我的写作日期是2017年12月10日 现在的新版都在不停的变化中 xff0c 希望会越来愈好 2017年3月18日 xff0c 微软发布了Visual Studio2017 xff0c 其中的社区版可以自由下载并应用 xff
  • 【CVPR2019】超分辨率文章,SRFBN: Feedback Network for Image Super-Resoluition

    论文地址 代码 CVPR的单图像超分辨率文章 xff0c 主要是用回传机制来提高超分辨率的效果 xff0c 且不引入过多的参数 主要是设计了一个feedback模块 xff0c 多次回传 xff0c 如下图所示 xff1a 上一次feedb
  • selenium与browsermob-proxy

    BrowserMob Proxy允许您操作HTTP请求和响应 xff0c 捕获HTTP内容 xff0c 并将性能数据导出为HAR文件 BMP作为独立的代理服务器运行良好 xff0c 嵌入Selenium测试时尤其有用 下载地址如下 http
  • Ubuntu下Samba服务器搭建

    看网上Samba的搭建教程比较乱 xff0c 因此自己将Samba的搭建过程记录下来 xff0c 方便需要用到时还可以查看 1 安装 Samba xff1a apt get install samba 2 创建一个用于分享的 Samba 目
  • linux 第一章 shell编程及自动化运维实现

    linux shell编程及自动化运维实现 第一章 变量 一 shell 前言 1 shell语言的特点 SHELL语言是指Unix操作系统的命令语言 xff0c 同时又是该命令语言的解释程序的简称 shell本身是一个用c语言编写的程序