当前位置: 首页 > news >正文

【Linux】常用工具(上)

Linux 常用工具

  • 一、Linux 软件包管理器 yum
    • 1. 软件包
    • 2. 查看软件包
    • 3. 安装/卸载软件
    • 4. yum 其他指令的功能
  • 二、Linux 编辑器 - vim 使用
    • 1. vim 的基本概念
    • 2. vim 的基本操作
      • (1)光标移动(命令模式)
      • (2)光标定位(命令模式)
      • (3)复制粘贴撤销(命令模式)
      • (4)其他操作(命令模式)
      • (5)保存并退出(底行模式)
      • (6)替换模式
      • (7)视图模式
      • (8)多文件编辑
  • 三、Linux 编译器 - gcc/g++ 使用
    • 1、程序的翻译过程
    • 2、动静态库的理解

一、Linux 软件包管理器 yum

1. 软件包

  • 在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序.
  • 但是这样太麻烦了,于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成 windows 上的安装程序)放在一个服务器上,通过包管理器可以很方便的获取到这个编译好的软件包,直接进行安装.
  • 软件包和软件包管理器, 就好比 “App” 和 “应用商店” 这样的关系.

2. 查看软件包

通过 yum list 命令可以罗列出当前一共有哪些软件包,由于包的数目可能非常之多, 这里我们需要使用 grep 命令只筛选出我们关注的包,例如:

在这里插入图片描述

  • 软件包名称: 主版本号.次版本号.源程序发行号-软件包的发行号.主机平台.cpu架构.
  • “x86_64” 后缀表示 64位 系统的安装包,“i686” 后缀表示 32位 系统安装包. 选择包时要和系统匹配.
  • “el7” 表示操作系统发行版的版本. “el7” 表示的是 centos7/redhat7. “el6” 表示 centos6/redhat6.
  • 最后一列,updates 表示的是 “软件源” 的名称,类似于 “小米应用商店”,“华为应用商店” 这样的概念

3. 安装/卸载软件

通过 yum,我们可以通过很简单的一条命令完成 sl 命令的安装,sudo yum install slsl 命令是一个有趣的命令,输入 sl 命令回车后屏幕上会有火车开过;我们先安装 sl 命令,因为安装需要 root 权限,所以我们在安装时要在前面加上 sudo,意思是使用 root 权限执行这条命令,如何才能使用 sudo 将会在后面介绍;如下图:

在这里插入图片描述

执行这条命令之后可能会让你输入当前用户的密码,我们输入即可,输入之后在短时间内再次使用 sudo 将不会再次输入密码;

随后将会进入安装过程,可能会让你确认是否安装,如下图:

在这里插入图片描述

意思是需要多少内存,是否确认安装,我们输入 y (确认)即可,安装好后如下图:

在这里插入图片描述

随后我们执行 sl 命令如下:

在这里插入图片描述

我们如果需要卸载 sl 命令,在命令行输入 sudo yum remove sl 即可,如下图:

在这里插入图片描述

在这里插入图片描述

如上图,就已经卸载成功了,我们再次执行 sl 命令时如下:

在这里插入图片描述

说明已经卸载成功。

同时,我们在进行安装和卸载操作时,可以在后面加上 -y 选项,即 sudo yum install sl -y ,默认确认安装,系统就不会再次询问我们是否确认安装。

4. yum 其他指令的功能

  • yum makecache 命令的功能是将服务器的软件包信息缓存到本地
  • yum search 命令可以在所有软件包中搜索包含有指定关键字的软件包
  • yum clean all 命令可以清除缓存中老旧的头文件和软件包
  • yum clean all 命令可以清除缓存中老旧的头文件和软件包
  • yum -y upgrade 只升级所有包,不升级软件和系统内核,软件和内核保持原样

二、Linux 编辑器 - vim 使用

1. vim 的基本概念

vim 是一款多模式的文本编辑器。

vi/vim 的区别简单点来说,它们都是多模式编辑器,不同的是 vimvi 的升级版本,它不仅兼容 vi 的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x window、 mac os、windows。

我们先来熟悉 vim 的三种常见的模式,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode)。

他们之间的转化图如下:
在这里插入图片描述

  • 正常/普通/命令模式(Normal mode) 控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入 Insert mode下,或者到 last line mode
  • 插入模式(Insert mode) 只有在 Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。
  • 底行模式(last line mode) 文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。在命令模式下,shift+: 即可进入该模式。要查看你的所有模式:打开vim,底行模式直接输入 : help vim-modes

例如我们先 touch 一个 test.c 文件:

在这里插入图片描述

再使用 vim 进入 test.c

在这里插入图片描述

在这里插入图片描述

其中,我们进入 test.c 之后默认是 命令模式 ,从转换图中可以看见,我们按下 i (或a、o),就可以进入插入模式,在左下角就会显式 insert 这个单词,如下图:

在这里插入图片描述

此时我们就可以对 test.c 这个文件进行编辑,例如我们写一个简单的 .c 文件:

在这里插入图片描述

此时如果我们想进入底行模式,从转化图可以看出,我们先要按下 Esc 进入命令模式,再按下 shift + ; 就可以进入底行模式了;进入底行模式后左下角会出现一个 : 如下图:

在这里插入图片描述

此时输入我们需要的指令即可。

2. vim 的基本操作

我们在上面已经知道,vim 默认打开的模式是命令模式,所以我们先熟悉在命令模式下的操作。

(1)光标移动(命令模式)

首先在命令模式下,我们的光标只能使用键盘的操作移动;我们可以使用键盘的 ↑ ↓ ← → 移动光标,但是我们并不常用箭头的操作移动光标,而是使用 h、j、k、l 移动。

  • h:光标向左移动一个单位

  • j:光标向下移动一个单位

  • k:光标向上移动一个单位

  • l:光标向右移动一个单位

(2)光标定位(命令模式)

除了上下左右移动光标外,我们还可以在文本中进行特定的操作,如下:

  • gg:定位到代码的第一行
  • shift + g:定位到代码的最后一行(n + shift + g :定位到代码的第n行)
  • shift + 6(^) :定位到特定一行的开始
  • shift + 4($) :定位到特定一行的结尾
  • w:以单词为单位,进行向后移动,支持跨行的
  • b:以单词为单位,进行向前移动,支持跨行的

(3)复制粘贴撤销(命令模式)

我们也可以对文本进行复制粘贴等操作:

  • yy:复制光标所在的一行(n + yy:复制n行)
  • p:粘贴内容到当前行之后(n + p:粘贴n行)
  • dd:剪切/删除光标所在行(n + dd)
  • u:对刚刚的操作进行撤销(即windows下的ctrl+z)
  • ctrl + r:反撤销(windows下的ctrl + y)

(4)其他操作(命令模式)

  • shift + `(~):文本大小写相互转换
  • r:替换光标所在的字符(n + r:替换n个字符)
  • x:向后删除一个字符(n + x:向后删除n个字符)
  • shift + x:向前删除一个字符(n + shift + x:向前删除n个字符)
  • shift + 3(#):查找同名单词,按n单次跳转

我们简单学完命令模式下的操作之后,我们再学一下底行模式的常见操作。

(5)保存并退出(底行模式)

我们在命令模式下按下 Esc ,再按下 shift + ;,即可切换到底行模式,我们在底行模式下可以执行以下操作:

  • w:保存文本(w!:强制保存文本)
  • q:退出当前文本(q!:强制退出文本)
  • wq:保存并退出(wq!:强制保存并退出)
  • set nu/nonu:为文本设置行号

除了我们所学的三个模式之外,我们再简单学两个模式,分别是替换模式、视图模式,他们之间的模式转换图如下:

在这里插入图片描述

(6)替换模式

首先介绍替换模式,我们在命令模式下按下 shift + r 后,就进入了替换模式,此时左下角会出现 REPLACE 这个单词,如下图:

在这里插入图片描述

此时我们可以直接进行替换单词,替换的是光标所在的单词,每按下一次,就会进行一次单词替换。

(7)视图模式

视图模式是用来帮助我们完成批量化注释的,例如我们需要注释多行代码,就可以使用视图模式。首先我们需要在命令模式下按下 ctrl + v 进入视图模式,进入视图模式后左下角会显示:

在这里插入图片描述
例如我们的文本如下,需要注释全部的 printf 函数:

在这里插入图片描述

随后我们需要进行批量化注释,按 j/k 两个按键上下选中区域:

在这里插入图片描述

随后按下 shift + i,光标会回到初始的位置:

在这里插入图片描述

随后我们就在这个位置加上注释符 //,最后按下 Esc

在这里插入图片描述

如上图就完成批量化注释了。

总结:需要完成批量化注释的操作步骤:

  1. 在命令模式下:ctrl+v 进入视图模式;
  2. j/k 两个按键上下选中需要注释的区域;
  3. 按下 shift + i
  4. 给当前行加上注释符;
  5. 按下 Esc

接下来我们进行批量化删除注释;同理我们先要进入视图模式,然后hjkl 选中区域,以上面注释的代码为例,我们删除全部注释的代码,选中区域后如下:

在这里插入图片描述

随后按下 d 即可,如下图:

在这里插入图片描述

总结:删除批量化注释步骤:

  1. ctrl + v 进入视图模式
  2. hjkl 选中区域
  3. 按下 d 即可

我们在进行选中区域的时候有一个小技巧,可以使用命令模式中的 n + shift + g 快速选中需要的区域。

(8)多文件编辑

vim 也支持多文件编辑, 我们需要先使用 vim 打开一个文本,进入底行模式,在底行模式中输入vs + 需要打开的文本名字 ,例如下图:

在这里插入图片描述

如下图,就可以进行多文件编辑了:

在这里插入图片描述

需要注意的是,我们的光标在哪一个文本,操作的就是哪一个文本,我们可以在命令模式下按下 ctrl + ww 可以切换光标到下一个的文本。

小技巧:我们在使用 vim 时,打开文本后,光标所停留的地方是我们上一次保存退出后所在的位置,我们可以使用 vim test.c +n 打开 test.c 后直接将光标定位到第 n 行;这是为了方便我们编译文件时,出错后可以直接定位到那一行。

三、Linux 编译器 - gcc/g++ 使用

1、程序的翻译过程

在学习 gcc/g++ 之前,我们先回忆一下程序的翻译过程,预处理和程序环境;程序的翻译过程包括预处理、编译、汇编、链接。

  1. 预处理

预处理就是进行头文件的展开、去注释、条件编译、宏替换等操作,我们可以使用 gcc 验证这一过程,假设我们在 test.c 文件中有一段以下代码:

在这里插入图片描述

我们只需要执行 gcc -E test.c -o test.i 即可生成预处理完后的文件,以 .i 后缀结尾,如下图:

在这里插入图片描述

我们使用 vim 进入 test.i 文件查看,如下图:

在这里插入图片描述

从图中可以看出,我们的代码已经到800多行了,说明前面的头文件已经展开了,并且注释和宏替换也已经进行了。

gcc -E test.c -o test.i 这段指令中,其含义是使用 gcc 进行程序的翻译,待处理完预处理后就停下来,并将预处理完的程序生成以 .i 为后缀的文件;其中 -E 就是对文件进行预处理操作;-o + 文件名 就是生成指定文件。

  1. 编译

编译的过程就是将 C语言 转化为汇编语言,我们可以直接从源文件转化为汇编语言,也可以从预处理完后的文件转换为汇编语言;

如果从源文件直接转化为汇编语言,其指令为 gcc -S test.c -o test.s

但是我们上面已经有预处理完的文件,如果直接又从源文件开始,就重复工作了,所以我们直接从 test.i 文件转换为汇编语言,其指令为 gcc -S test.i -o test.s,如下图:

在这里插入图片描述

其中 gcc -S test.i -o test.s 这段指令中,-S 代表开始程序翻译工作,等编译完成后就停下来;其中,编译后的文件应该是以 .s 后缀为结尾的。

  1. 汇编

汇编的过程是将汇编语言转化为可重定位的二进制文件,同上,我们也可以从源文件直接转化为二进制文件,但是我们已经将文件转为汇编文件了,所以可以从汇编文件开始转化为二进制文件,其指令为 gcc -c test.s -o test.o,如下图:

在这里插入图片描述

其中 -c 选项代表汇编工作完成就停下来,可重定位的二进制文件是以 .o 后缀为结尾的文件,test.o 是一个不可执行的文件。

  1. 链接

链接是将 test.o 文件加上系统库生成可执行程序的过程,其指令为 gcc test.o -o 可执行文件名,如下图:

在这里插入图片描述

上图中的 mycode 就是一个可执行的程序文件,我们执行它只需输入指令 ./mycode,如下图:

在这里插入图片描述

如上图就完成了程序的执行。

上面的四个步骤就是我们程序的翻译过程,但是我们平时想要执行一个程序的时候并不需要分别执行上面的步骤,例如我当前的目录下只有一个 .c 文件,如图:

在这里插入图片描述

我们当前可以直接将 test.c 文件直接生成可执行文件,只需要执行指令 gcc test.c 即可,如下图:

在这里插入图片描述

系统默认生成的可执行文件的名称为 a.out ,我们想要执行它的时候,只需要在当前目录下找到它直接执行即可,其指令为 ./a.out,如图:

在这里插入图片描述

这样就完成了我们程序的执行;另外,如果我们想要 test.c 文件生成指定名称的可执行文件,可以带上 -o 选项,即执行 gcc test.c -o 文件名 即可。

以上是 gcc 的使用,其实 g++ 的使用和 gcc 的使用类似,可以完全参考 gcc,只是使用的时候将 gcc 改为 g++ 即可。其中 gcc 是编译 C语言 的编译器,而 g++ 可以编译 C语言C++ .

2、动静态库的理解

我们上面的 C程序 中,并没有定义 “printf” 的函数实现,且在预编译中包含的 “stdio.h” 中也只有该函数的声明,而没有定义函数的实现,那么,是在哪里实现 “printf” 函数的呢?

答案是系统把这些函数实现都被做到名为 libc.so.6 的库文件中去了,在没有特别指定时,gcc 会到系统默认的搜索路径 /usr/lib64/libc.so.6 下进行查找,也就是链接到 libc.so.6 库函数中去,这样就能实现函数 “printf” 了,而这也就是链接的作用;我们可以看到这个文件确实存在:

在这里插入图片描述

  1. 静态库

静态库是指编译链接时,把库文件的代码全部加入到可执行文件中,因此生成的文件比较大,但在运行时也就不再需要库文件了。其后缀名一般为 .a

其中,静态库C/C++ 或者其他第三方提供的所有方法的集合,被所有程序以拷贝的方式,将需要的代码,拷贝到自己的可执行程序中;

静态链接的优点:无视库,可以独立运行;
静态链接的缺点:体积太大,浪费资源;

默认情况下,我们的服务器是没有安装 C 静态库的,只有动态库,如果需要安装C静态库,只需要执行指令 sudo yum install glibc-static;如果需要安装C++静态库,执行指令 sudo yum install -y libstdc++-static 即可。

		sudo yum install glibc-static   // c 静态库sudo yum install -y libstdc++-static // c++ 静态库
  1. 动态库

动态库与之相反,在编译链接时并没有把库文件的代码加入到可执行文件中,而是在程序执行时由运行时链接文件加载库,这样可以节省系统的开销。动态库一般后缀名为 .so,如前面所述的 libc.so.6 就是动态

gcc 在编译时默认使用动态库。完成了链接之后,gcc 就可以生成可执行文件。

动态链接的优点:形成的可执行程序体积比较小,节省资源;
动态链接的缺点:稍慢一些,强依赖动态库,动态库没了,所有依赖这个库的程序都无法运行了;

相关文章:

【Linux】常用工具(上)

Linux 常用工具 一、Linux 软件包管理器 yum1. 软件包2. 查看软件包3. 安装/卸载软件4. yum 其他指令的功能 二、Linux 编辑器 - vim 使用1. vim 的基本概念2. vim 的基本操作(1)光标移动(命令模式)(2)光标…...

【kafka】可视化工具KAFKA EAGLE安装分享

目录 准备: 开始: 1.解压 2.环境变量配置 3.生效环境变量配置文件 3.修改配置文件 1.修改zookeeper集群信息 2.修改mysql配置信息 4.启动 5.异常排查 6.页面 创作不易,你的动力是我创作的动力,如果有帮助请关注我&…...

【深度装机】深度U盘装机后黑屏闪光标

装x64的系统 装机版的gho文件太多预装软件了。几年前买的这种无风扇的机器,之前装的ubuntu:装机U盘启动后,先删掉的所有的ubuntu分区。使用了10几年的AOC又肩负使命: 感觉发热还是挺大的。 有人说因为secure boot 打开secure boo…...

【性能测试】JMeter:集合点,同步定时器的应用实例!

一、集合点的定义 在性能测试过程中,为了真实模拟多个用户同时进行操作以度量服务器的处理能力,可以考虑同步虚拟用户以便恰好在同一时刻执行操作或发送请求。 通过插入集合点可以较真实模拟多个用户并发操作。 (注意:虽然通过加入集合点可…...

21天学会C++:Day11----运算符重载

CSDN的uu们&#xff0c;大家好。这里是C入门的第十一讲。 座右铭&#xff1a;前路坎坷&#xff0c;披荆斩棘&#xff0c;扶摇直上。 博客主页&#xff1a; 姬如祎 收录专栏&#xff1a;C专题 目录 1. 知识引入 2. 运算符重载 2.1 operator<() 2.2 operator() 2.3 o…...

面经pc端项目

创建项目 安装脚手架-----创建项目------选择自定义 sass基础语法 https://www.sass.hk/ sass语法有两个:sass(旧) scss(新) 1.scss语法 和less语法类似,支持嵌套,支持变量… scss: $变量名 less: @变量名 $color:orange; .box{width: 400px;height: 400px;borde…...

三步在两台服务器间迁移conda环境

引言&#xff1a; 背景是我现在要跑的实验在一台服务器上跑有点来不及了&#xff0c;需要将conda环境和文件一起迁移到另一台服务器上。文件的迁移可以用scp或者rsync。但是conda虚拟环境的迁移则不行。 步骤&#xff1a; step 1 将当前的虚拟幻境信息写入environment.yml c…...

websocket服务部署在内网,app无法访问

描述&#xff1a;websocket服务部署在内网&#xff08;ws://&#xff09;&#xff0c;app无法访问外网&#xff0c;需要将内网地址映射到外网 解法&#xff1a;通过nginx配置ws代理&#xff0c;部署nginx的服务器连通的外网和内网&#xff0c;通过nginx配置将原有的ws请求转换…...

vs2010对于c++11的支持

不支持 using代替typedef变参模板for each...

OpenCV cv::Mat和QImage互相转换

在使用OpenCV和Qt进行图像处理时&#xff0c;经常需要将cv::Mat和QImage之间进行转换。下面是cv::Mat和QImage之间的相互转换方法&#xff1a; 将cv::Mat转换为QImage&#xff1a; cv::Mat cvImage; // 你的cv::Mat图像// 将cv::Mat转换为QImage QImage qtImage(cvImage.data…...

pgsql 主从搭建

在 PostgreSQL 中&#xff0c;主从复制&#xff08;Master-Slave Replication&#xff09;是一种常见的数据库高可用性和数据备份解决方案。它允许你创建一个主数据库服务器&#xff08;Master&#xff09;&#xff0c;并在一个或多个从数据库服务器&#xff08;Slave&#xff…...

JS中的数值精度问题(二)

一、精度范围&#xff0c;精度最多只能到53个二进制位 JavaScript 能够准确表示的整数范围在-2^53到2^53之间&#xff08;不含两个端点&#xff09;&#xff0c;超过这个范围&#xff0c;无法精确表示这个值。 国际标准IEEE 754规定&#xff0c;有效数字第一位默认总是…...

WPF——Control与Template理解

文章目录 一、前言二、控件三、模板3.1 DataTemplate3.2 ControlTemplate3.3 ContentPresenter 四、结语 一、前言 最近又翻看了下刘铁猛的《深入浅出WPF》&#xff0c;发现对模板章节中的部分内容有了更深的体会&#xff0c;所以写篇文扯扯。 文章标题是Control与Template&a…...

华为HCIA学习(一)

文章目录 一.根据考试题总结知识点&#xff08;一题一点&#xff09;二.上午学习三.下午学习四.今天只做了70题&#xff0c;需要的可以找我 一.根据考试题总结知识点&#xff08;一题一点&#xff09; 二.上午学习 ① VRP系统是VRP是华为公司从低端到高端的全系列路由器、交换…...

使用jmeter+ant+jenkins+git搭建自动化测试平台

最近正在学习自动化测试&#xff0c;于是随手搭建了一下jmeterantjenkinsgit平台。 接下来&#xff0c;我会按照jdk&#xff0c;jmeter&#xff0c;ant&#xff0c;jenkins,git这个顺序一步一步的搭建起来。 一、jdk。这个就不多说了。我用的是1.8版本的&#xff0c;配环境变…...

C# Winform中在DataGridView中添加Button按钮,操作Button按钮

.Net的DataGridView控件中&#xff0c;提供了一种列的类型&#xff0c;叫 DataGridViewButtonColumn &#xff0c;这种列类型是展示为一个 按钮&#xff0c;可以给button赋予相应的text&#xff0c;并且&#xff0c;此button可以用来做处理事件的判断依据。 DataGridViewButto…...

Docker 网络学习

docker的网络模式 当你开始大规模使用Docker时&#xff0c;你会发现需要了解很多关于网络的知识。Docker作为目前最火的轻量级容器技术&#xff0c;有很多令人称道的功能&#xff0c;如Docker的镜像管理。然而&#xff0c;Docker同样有着很多不完善的地方&#xff0c;网络方面…...

django创建web服务器

安装 pip install django 创建项目 django-admin startproject report django-admin startapp data //project下可创建多个app 执行使用 python manage.py migrate //orm代码到数据库 python manage.py runserver 0.0.0.0:80 权限管理 python manage.py createsuperuser 创建…...

极光笔记 | 推送服务数据中心选择:合规性与传输效率的双重考量

随着全球化进程的深入&#xff0c;跨境数据传输与存储问题已经变得愈发重要。推送服务的数据中心节点选择不仅关乎数据访问速度和用户体验&#xff0c;同时也直接牵扯到数据合规性和安全保障。EngageLab Push深知这一点&#xff0c;为了满足更多国际客户和全球用户触达需求&…...

Python灰帽编程——初识Python上

1. Python 简介 常用安全工具语言示例perljoomscan whatwebrubymetasploit-frameworkpythonsqlmap pocsuite3gogoby 1.1 Python 起源 1.1.1 语言的作者 贵铎范罗萨姆&#xff08;Guido van Rossum&#xff09;荷兰人于1989 年圣诞节始创了python。 大神就是大神&#xff0…...

OLED透明屏交互技术:开创未来科技的新篇章

OLED透明屏交互技术作为一项前沿的科技创新&#xff0c;正在以其高透明度、触摸和手势交互等特点&#xff0c;引领着未来科技的发展。 不仅在智能手机、可穿戴设备和汽车行业有着广泛应用&#xff0c;还在广告和展示领域展现出巨大的潜力。 那么&#xff0c;尼伽在这篇文章中将…...

揭秘Spring Boot内嵌Tomcat原理

tomcat 介绍 tomcat 是 web容器&#xff08;servlet 容器&#xff09;&#xff0c;不管请求是访问静态资源HTML、JSP还是java接口&#xff0c;对tomcat而言&#xff0c;都是通过servlet访问&#xff1a; 访问静态资源&#xff0c;tomcat 会交由一个叫做DefaultServlet的类来处…...

分类散点图 stripplot() 加辅助线axhline() 多图合一

分类散点图 stripplot 加辅助线axhline 多图合一 效果图代码 画图没有什么可说的&#xff0c;直接上图 效果图 代码 # 绘制图&#xff0c; 查看是否数值在阈值上 plt.figure(figsize(30, 18)) n 0 for header, value_list in info_dict.items():ref_value_list ref_info_dic…...

一文告诉你为什么时序场景下 TDengine 数据订阅比 Kafka 好

在 TDengine 3.0 中&#xff0c;我们对流式计算、数据订阅功能都进行了再升级&#xff0c;帮助用户极大简化了数据架构的复杂程度&#xff0c;降低整体运维成本。TDengine 提供的类似消息队列产品的数据订阅、消费接口&#xff0c;本质上是为了帮助应用实时获取写入 TDengine 的…...

reg与wire的用法,证明reg可以在右边,wire型在左边,来作组合逻辑处理。

reg与wire的用法&#xff0c;证明reg可以在右边&#xff0c;wire型在左边&#xff0c;来作组合逻辑处理。 1&#xff0c;RTL2&#xff0c;生成的原理图 1&#xff0c;RTL 参考文献&#xff1a; 1&#xff0c;verilog 中 wire 和reg 的使用 2&#xff0c;解决一个assign问题&…...

Studio One6.2简体中文免费最新版本宿主软件

对于一些有创作需求的朋友来说&#xff0c;为自己写的歌制作伴奏是很平常的。今天要和大家分享的就是自己写的歌怎么做伴奏&#xff0c;自己做伴奏的软件有哪些。Studio One是宿主软件界的一个后起之秀&#xff0c;推出的时间不久&#xff0c;但是受到了大量音乐制作人的推崇。…...

算法刷题 week2

目录 week21. 二维数组中的查找题目题解(单调性扫描) O(nm) 2.替换空格题目题解(线性扫描) O(n)(双指针扫描) O(n) 3.从尾到头打印链表题目题解(遍历链表) O(n) week2 1. 二维数组中的查找 题目 题解 (单调性扫描) O(nm) 核心在于发现每个子矩阵右上角的数的性质&#xff1…...

子网的划分

强化计算机网络发现王道没有这一块的内容&#xff0c;导致做题稀里糊涂。于是个人调研补充。 子网划分是将一个大型IP网络划分成更小的子网&#xff0c;以实现更有效的网络管理和资源分配。 原因&#xff1a; 提高网络性能&#xff1a;子网划分可以减少广播域的大小&#xff…...

Docker安装与卸载

Docker安装与卸载 安装 yum install -y yum-utils \device-mapper-persistent-data \lvm2 --skip-broken更新本地镜像源 打开终端或 SSH 连接到 Rocky Linux 的服务器。 进入 /etc/yum.repos.d/ 目录&#xff0c;该目录包含 Rocky Linux 的 yum 配置文件。 cd /etc/yum.repo…...

【Davinci开发】:开发过程问题记录及总结

开发过程问题总结 1、SWC访问系统OS Timer返回值异常a、代码发现,RTE接口为未连接状态b、连接后,仍然有问题,单步调试,发现没有访问权限当新平台基于之前平台的代码而延续开发时(应用代码相同,但是芯片已经更换),记录开发过程中遇所到的问题,单步调试,逐一排查。 1、…...

石家庄网站建设成功案例/软文推广有哪些平台

0. 其他处理 计时&#xff1a; tic net train(net, X, y); toc1. 一个简单的 demo&#xff08;单层感知器&#xff09; P [1, 1, 1, 1, 0, 0, 0, 0; 0, 0, 1, 1, 0, 1, 1, 0; 0, 1, 0, 1, 1, 0, 1, 0];% 每一列表示一个输入样本 T [-1, 1, 1, 1, -1, -1, 1, -1];% 表示输出值…...

上海青浦房地产网站建设/谷歌seo新规则

介绍traits的文章很多&#xff0c;但感觉大部分文章的说明都很晦涩难懂&#xff0c;把一个并不很复杂的C模板的应用描述的过于复杂。忍不住想把自己的理解跟大家分享一下&#xff0c;或许我也只是掌握了一点traits的皮毛而已&#xff0c;但也希望这些皮毛能略微抓住你的眼球&am…...

徐州网站建设xlec/外贸网站建站平台

http://blog.csdn.net/housisong/article/details/6318890...

网站建设服务属于信息技术服务吗/关键词在线播放免费

在数据仓库中的转换和装载过程中&#xff0c;经常会使用MERGE语句&#xff0c;这里简单总结一下。 MERGE 语句是Oracle9i新增的语法&#xff0c;用来合并UPDATE和INSERT语句。通过MERGE语句&#xff0c;根据一张表或子查询的连接条件对另外一张表进行查询&#xff0c;连接条件匹…...

我的世界是怎么做的视频网站/免费的网站推广平台

导读&#xff1a;习惯的力量是惊人的。习惯能载着你走向成功&#xff0c;也能驮着你滑向失败。如何选择&#xff0c;完全取决于你自己。 1.习惯的力量:35岁以前养成好习惯 你想成功吗&#xff1f;那就及早培养有利于成功的好习惯。 习惯的力量是惊人的&#xff0c;35岁以前养成…...

怎么做动态的实时更新的网站/免费平台

1. 基本语法test condition或[ condition ]使用括号方式时&#xff0c;条件与括号之间要加空格。2. 测试文件状态例&#xff1a;测试文件 scores.txe 是否可执行。 [rootlocalhost ~]# [ -x scores.txt ] [rootlocalhost ~]# echo $? 1 条件测试可以使用以下条件表达…...