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

【Linux】生物信息学常用基本命令

wget+网址用于直接从网上下载某个文件到服务器,当然也可以直接从网上先把东西下到本地然后用filezilla这个软件来传输到服务器上。

当遇到不会的命令时候,可以使用man “不会的命令”来查看这个命令的详细信息。比如我想要看看ls这个命令的详细用法,可以写man ls,结果如下,按q退出

ls用于查看当前目录下有什么

其中ls是命令,-l也好,-h也好,都是命令的修饰,如果只写一个ls就只显示当前目录下的文件名,加上-l表示以列表的形式查看当前文件的详细信息,再加上-h表示简洁的显示出文件的大小,可以看到这里的文件是945M。

在Linux系统中,ls命令用于列出目录的内容。ls -alF命令是ls命令的一个变体,其中包含了几个选项:

  • -a:表示显示所有文件,包括以点(.)开头的隐藏文件。
  • -l:表示以长列表格式显示文件信息,包括文件权限、所有者、大小、最后修改时间等。
  • F:这个选项会在文件名后添加一个字符以指示文件类型。例如,/ 表示目录,* 表示可执行文件。

综合来看,ls -alF命令会以长列表格式显示当前目录下的所有文件(包括隐藏文件),并为每个文件名添加一个指示文件类型的字符。这个命令还被Linux系统起了一个别名,叫做ll,我们可以使用alias命令来查看系统都给哪些命令起了别名,如图

如何找到一个文件的地址?实际上文件的地址=文件所在的文件夹地址+本文件的文件名,而使用pwd我们可以得到当前文件所在的路径,比如我现在有一个文件叫linux.tar.gz,我运行pwd将得到这个文件所在的文件夹,

则显然该文件的绝对路径就是/trainee/May4104/linux.tar.gz

有了文件的路径,就可以配合ls命令来显示一个指定文件的信息了。

实际上我们可以写ls -lh,与上面的ls -l -h是等效的。

rm用于删除文件,但不能删除文件夹,删除文件夹使用的命令是rm -r +要删除的文件名,那么如何来看要删除的是文件还是文件夹呢?答案是使用ls -l以列表形式展示当前目录的所有内容(实际上直接ll就行),第一列以'-'开头的就是文件,以d开头的就是文件夹。

有时候我们使用rm -r来删除文件夹的时候,系统会一直问说是否要删除这个文件,我们要回答yes或者no,如果要删的文件夹里面有100个文件,我们就要打100次yes或者no,此时可以使用rm -r -f 来强制删除。

小键盘的上下键用于翻阅上下命令,这个技巧非常有用,可以避免我们重复的输入代码。

先选中某个命令,然后ctrl+shift+c/v表示复制或者粘贴

ctrl+c表示终止当前正在执行的命令

清空屏幕可以使用命令clear或者直接ctrl+l

cd /工作路径 用于切换工作目录,如果不指定具体工作路径只是有一个/,就是切换工作路径到根目录,也就是最大的目录,如果连/都没有,那就是切换到家目录。在Linux中有很多特殊路径有特殊的符号来表示,比如/表示跟目录,~表示家目录,一个点表示当前目录,两个点表示上一级目录。当然如果是上上级目录就是两组上级目录,也就是../..

建文件夹的命令是mkdir

拷贝的命令是cp,比如我想要把linux.tar.gz这个文件拷贝到文件夹workspace中去,就可以写cp ,ll workspace就可以看见workspace下就变成了这样子。

cp命令还有一种用法,比如cp linux.tar.gz 123 其中123其实是不存在的一个文件夹,但是仍然能拷贝,此时这个命令的意思就是把 linux.tar.gz拷贝一份并命名为123

移动文件的命令是mv,比如要把linux.tar.gz移动到morkspace中去就写mv linux.tar.gz morkspace 注意是先写要移动的文件,再写把这个文件移动到哪里去。

mv也有另一种用法,比如cp linux.tar.gz 123 其中123其实是不存在的一个文件夹,那么其实这句命令的意思就是对 linux.tar.gz这个文件进行重命名

总结一下:cp就是windows系统中的复制+粘贴,而mv就是剪切+粘贴。

解压文件使用的命令是tar -zxvf 文件名,运行结果如图

查看某个文件夹中有哪些文件有两种方法,第一种是使用cd跳转到那个文件去,然后使用ls,ll等等命令来查看,第二种是使用ll 加文件夹名 直接查看,第一种方式就好像是我想要看看月球上有什么,我直接跑到月球上去看看,第二种方法是我在地球上拿一个望远镜来看看,是远程查看。

在Linux中查看文件内容仅限于文本文件,因为linux没有图形界面。什么是文本文件呢?是不是后缀是txt的?其实不一定,我们需要明确一点,Linux系统下的文件名中后缀不重要,不像windows系统中的文件名后缀那样重要。查看文件使用的命令是cat 加文件名,可以使用tab键来自动补齐。

cat 加文件名这种方法来查看文件仅限于查看小文件,如果一个文件的字节数很多,使用cat查看就会导致不停滚屏,不方便阅读,此时应该使用less命令来查看大文件,用法为less 加文件名,这时候会在一个新的窗口中打开。有时候会出现显示的“很乱”的情况,比如这样,这是我用less命令查看一个大文件的结果,这样露娜的原因是因为字体太大了,屏幕放不下,所以这一行的内容就跑到下一行去显示了,就显得很乱,要解决这个问题,只需要使用less -S即可

使用less -S atha.gff查看atha.gff这个文件的内容结果如图

可以看到这个gff的文件里面有很多信息,比如第一列是位于哪个染色体上,第二列不重要,第三列是对应的基因,或者mRNA,蛋白质等等,第四列第五列是从哪个碱基开始,到哪个碱基结束。

如果我们想要查看这张表中某一个基因的信息,在打开这张表的基础上,按一下/,然后输入基因的名字(不一定是基因名,也可以是序列等别的信息)比如AT2G22890.1,结果就是这样

确实是只有AT2G22890.1这个基因的信息了

如果我们想要看到行号,可以用命令less -S -N,结果如图

如果我们想看文件的前几行或者后几行,用到的命令分别是head和tail,默认是看前10行或者后10行,如果想要指定看多少行,可以写head -n 12 加文件名,表示要查看当前文件的前12行。

新建文件使用的命令是vi 加文件名,比如我输入vi lubenwei.txt就有了这样的一个界面

但是此时我们并不能对文件内容进行编辑,只是创建了一个文件,我们使用vi命令表示使用vim的编辑器来创建文件

当创建好了文件之后我们如果想要编辑文件内容应该先按一下i来进入编辑模式,可以发现此时的左下角已经变成了这样

我们就可以输入内容了。

要想退回到一般模式只需要按一下esc即可。一般模式的标志就是左下角什么也没有。

还可以输入相应的按键来进入命令行模式,比如先输入冒号,在输入wq就是保存并退出,可以发现此时已经有了我们刚才创建的文件,如果是不保存并退出就按了冒号之后用q!。有时候不加感叹号也表示不保存并退出,取决于服务器,所以我们使用vi命令创建文件之后如果想要退出,要么就按了冒号之后再按wq,要么就按了冒号之后再按q!

刚才我们已经创建了lubenwei.txt这个文件,那么此时离我们再次运行命令vi lubenwei.txt这个命令就会打开我们刚才创建并编辑过的文件。如图,这是我刚才输入的内容

一般模式下可以复制和粘贴,首先使用鼠标点击到某一行去,再输入yy就可以复制这一整行,然后再按i进入编辑模式,按p就可粘贴了。yy这个方式就是一次复制一行,但是如果我们想要一次复制好几行,比如三行,就按3y,如果要选择性的复制某些内容,就要按v先进入可视化模式,如图

然后按小键盘的上下键来选中要赋值的内容,之后按一个y就可以复制了,粘贴还是p

删除的命令逻辑和选中复制的命令类似,如果要删除光标所在的当前行,使用命令dd即可,如果要删除从光标开始的三行,就写3d,如果要选择性的删除某些内容,就先按v,然后小键盘上下左右键选中内容,然后按d即可。

搜索vi创建的某些内容先按/,然后输入要搜索的内容,如果要撤销上一步的操作,按u即可。

文本操作:

重定向命令是>,比如head -500 atha.gff > tmp表示把atha.gf这个文件的前500行拿出来放到临时文件tmp中去,atha.gf的内容长这样子,之后我们可以查看tmp的内容

运行less -S tmp结果如图

利用重定向">",我们可以完成下面的任务:

提取 atha.gff 的 400 到 500 ⾏,打印输出到 subset.gff

首先head -500 atha.gff > tmp提取出前500行放到tmp里面,然后再tail -100 tmp > subset.gff 取出tmp的后100行放到subset.gff 里面,看起来很合理,但是对吗?其实这样做就少了一行,因为我们这样操作最后subset.gff 里面的内容是第401行到500行的内容,但是题目要求是取出400到500行一共101行的内容,所以我们要写成tail -101 tmp > subset.gff,其实还有另一种更简洁的写法就是head -500 | tail -101 >subset.gff,其中用竖杠来代表临时前面的命令的结果(等价于上一种写法的tmp),后续的tail -101 tmp中的tmp也不用写了,会自动用|的内容也就是head -500 的结果来替换。结果如图,subset.gff也被成功创建了出来。

注:1.在linux中,|被称为管道。

2.重定向 > 的效果为覆盖,如果已经有名为tmp的文件,就会覆盖掉原本文件中的内容。如果要追加内容,请使用>>。

这种方法不仅简洁,而且不会生成中间文件tmp,缺点是可读性不好。

查看 atha.fasta ⽂件中有多少条序列

首先来看一下atha.fasta内容是什么。

其中每一段是一个基因与他的序列,我们想要看看这个文件中有多少条序列其实只需要看看有多少个这样的“片段”就行了,每一个片段都有一个特征就是他们都由>开头,所以我们只需要统计有多少个>就行了。

首先使用命令grep ">" atha.fasta>tmp生成一个临时文件tmp,这个文件中包含所有含有">"的行,如图

我们只需要统计这个文件有多少行就可以知道atha.fasta这个文件中有多少个基因了,统计某个文件的行数用的命令是wc,表示word count,输入wc tmp

结果显示有27416个基因。

练习:查看下表中有多少转录本的信息

其实就是把含有mRNA的行都提取出来放到一个文件里面然后统计行数就行了。用的命令就是grep "mRNA" atha.gff | wc。结果如图

再来看看有多少个基因:运行grep "gene" atha.gff | wc

发现基因的数量要比转录本的数量少。一个基因是可以转录出多个mRNA的,生物学上称为可变剪切。如果发现基因的数量和mRNA数量相等,那说明这个基因我们还没有研究明白,不知道他能转录多少种mRNA,所以我们称之为注释到了基因水平,如果像刚才那样我们发现基因的数量少于转录本的数量,说明我们已经研究明白了基因与mRNA的关系,称之为注释到了转录本水平。

实际上使用grep来跳出含有gene这个单词的行从而判断有多少个基因的方法不严谨,因为我们希望的只是第3列有gene这个单词,但是使用grep筛选的话即使别的列种有gene这个单词也会被算进去,正确的方法是使用命令awk来指定某一列筛选,比如我运行命令awk '$3=="gene"' atha.gff |less -S,语法为先写上awk,然后是单引号,单引号内是筛选的条件,其中$3表示第三列,之后跟上要筛选的文件。结果如图

此时再用wc命令来统计awk '$3=="gene"' atha.gff |wc,结果如图

变成了两万多个基因。这种方法才是严谨的方法,说明刚才我们直接使用grep进行筛选的时候多算了很多行进去。

awk命令还可以把某一列内容打印出来,使用命令:

awk '{print$3}' 加文件名

接下来再看一个文件,名为BLO_S1_vs_KID_S1.DESeq2.DE_results

里面包含了差异分析的结果,比如logFC和P值等等,其中logF在第七列,P值在第11列,我想要挑选出同时满足logFC大于1和p值小于0.05的行,使用Linux中的awk命令也可以做到,写作:

wak '$7>1&&$11

如果我想要删除BLO_S1_vs_KID_S1.DESeq2.DE_results的第一行,因为第一行是表头,不能参与运算,我可以直接vi BLO_S1_vs_KID_S1.DESeq2.DE_results打开这个文件,然后光标弄到第一行按dd就能删掉了。或者使用命令sed '1d' BLO_S1_vs_KID_S1.DESeq2.DE_results 也可以。两种方法等效。其中sed后面的单引号里面放1d表示删除第一行。

如果要筛选出绝对值大于1的行呢?在R语言中我们可以使用abs这个函数来求绝对值,但是在Linux中没有这个函数,但是却有sqrt表示开平方的操作,我们又知道x*x然后再开平方就是绝对值x,所以筛选出绝对值大于1的行就写作awk 'sqrt($7*$7)>1' 文件名

压缩和解压

压缩文件的常用命令为gzip,运行gzip 加文件名 这句命令之后会在当前工作目录下生成一个gz文件。

打包文件用的命令是tar

比如我想要把当前工作目录下圈起来的这几个文件打包成一个文件

就运行这句命令:tar -c -f TAIR10.tar TAIR10_chr*.fas

其中tar是用于打包的命令,-c表示创建一个新文件,-f后面跟的是创建的文件的文件名,最后是要把哪些文件打包,当然可以把这几个文件名全复制下来写在这里,但是比较麻烦,我们发现这几个文件的文件名唯一不同的地方就是1 2 3 4这里的数字,我们使用*替代这个位置,*在这里是通配符的作用,表示只要含有TAIR10_chr什么什么.fas的文件名都要打包起来。运行之后再次查看当前工作目录结果如图

打包的文件已经被创建了出来。通常我们会把打包与压缩的操作同时进行,只要再tar命令中再加一个参数就-z就行了,压缩的过程会比较慢的,我们可以再加一个参数-v,这样每压缩完一个文件就会把这个文件显示在屏幕上,如图

当然命令中的-可以省略,写成tar -czvf -文件名

解压缩还可以使用命令tar -cxcf -文件名

下载到服务器的软件要运行的话需要指定路径+软件名,比如我要运行fastp这个软件,就写成./fastp表示运行当前目录下的fastp软件,有时候会遇到这样的情况

这是因为我们没有运行这个软件的权限,需要先使用命令chmod来设置权限,写a+x表示所有人都有这个权限,写u+x就是只有自己有权限,然后跟上软件的名字

这样我们再次运行这个软件就可以了,出现了这个软件的帮助文档

添加环境变量

环境变量是Linux系统中自带的一个变量,名为$PATH,可以使用下面的命令来查看环境变量的内容

发现是好几个路径,注意这几个路径以冒号分割,分别是不同的路径,前面我们说了运行下载的软件需要指定路径,但是再运行一个名为htop的软件时,没有指定路径却能够正常运行,这是因为再运行指令'htop'的时候,系统自动把我们输入的htop这个命令替换成这样

发现没有,接着又替换成$PATH的第二个路径

发现还是没有,再替换成第三个路径

一直遍历$PATH中的内容直到成功运行htop

也就是说如果环境变量中有我们安装的软件所在目录的路径,我们就可以直接输入软件名来运行这个软件,在环境变量中添加内容用的命令是export PATH='路径':$PATH ,注意等号的前后不要加空格,前面的PATH没有$,后面的PATH有$。如图

这样环境变量就填加了这个路径,这个路径就是我们刚才安装fastp这个软件的路径,所以现在我们可以直接使用fastp这个命令来运行该软件。使用export命令在环境变量$PATH中添加内容的时候将添加在最前面。千万不要忘记加后面的:$PATH,否则意思就成了环境变量中只有本次添加的第一个路径了,这会导致很多命令比如ls都用不了了。

使用这种方式在$PATH变量中添加内容只对当前会话生效,如果我们退出之后再次登陆就会发现$PATH中还是那些内容,想要让我们添加的内容永久生效,需要把这个命令添加到.bashrc这个文件中,这个文件在家目录下,找到之后运行命令vi .bashrc,在文件最下面输入

export PATH=/trainee/May4104/software:$PATH之后按冒号再按wq保存并退出,这样即使结束本次会话,下次登录该服务器也能直接使用软件名(比如我们刚才的fastp)来运行软件了。如果用这种方式来修改环境变量的时候忘记了后面的:$PATH,后果就比较严重了,我们可能会想,只要再次vi .bashrc把刚才那句命令删掉不就行了?但是实际操作的时候我们发现vi这个命令不能用了,此时我们只能记住vi这个命令的绝对路径,从而使用绝对路径来使用vi这个命令,vim的绝对路径是user/bin,使用user/bin vim就能运行vim了。

使用which '软件名' 将返回软件装在了哪里,这可以辅助我们添加环境变量的内容。

.bashrc这个文件是一个系统的配置文件,启动系统的时候自动加载,前面我们提到过一个起别名的命令alias,比如我写

alias le=less- a,那么le这个命令就相当于less-a了,但是这样改也是只在本次会话中生效,当我们退出之后再次连接服务器就没用了,如果想要让别名永久生效,只需要像刚才修改环境变量那样把起别名的命令行写到.bashrc这个文件中保存退出即可。

相关文章:

【Linux】生物信息学常用基本命令

wget网址用于直接从网上下载某个文件到服务器,当然也可以直接从网上先把东西下到本地然后用filezilla这个软件来传输到服务器上。 当遇到不会的命令时候,可以使用man “不会的命令”来查看这个命令的详细信息。比如我想要看看ls这个命令的详细用法&…...

React Native V0.74 — 稳定版已发布

嗨,React Native开发者们, React Native 世界中令人兴奋的消息是,V0.74刚刚在几天前发布,有超过 1600 次提交。亮点如下: Yoga 3.0New Architecture: Bridgeless by DefaultNew Architecture: Batched onLayout UpdatesYarn 3 for New Projects让我们深入了解每一个新亮点…...

Python面试宝典第4题:环形链表

题目 给你一个链表的头节点 head ,判断链表中是否有环。如果存在环 ,则返回 true 。 否则,返回 false 。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环&#xf…...

Kubernetes (K8s) 底层原理

Kubernetes (K8s) 的底层原理涉及多个关键组件和概念,确保容器化应用程序的自动化部署、扩展和管理。以下是 Kubernetes 的底层原理及其关键组件的详细描述。 核心组件 Etcd 功能:分布式键值存储,用于存储集群的所有数据,包括配置…...

解析Kotlin中的委托(包括类委托,属性委托)【笔记摘要】

1.委托模式 委托模式&#xff1a;操作对象不会去处理某段逻辑&#xff0c;而是会把工作委托给另外一个辅助对象去处理。 例如我们要设计一个自定义类的来实现Set&#xff0c;可以将该实现委托给另一个对象&#xff1a; class MySet<T> (val helperSet: HashSet<T>…...

vue3+ts+uniapp+vite+pinia项目配置

开发环境&#xff1a; node >18&#xff0c;npm >8.10.2&#xff0c;vue < 3.2.31 安装项目 npx degit dcloudio/uni-preset-vue#vite-ts vue3-uniapp 1、引入样式规范 npm add -D eslint eslint-config-airbnb-base eslint-config-prettier eslint-import-resolv…...

大数据开发语言 Scala(四):面向对象编程

目录 1. 概述 2. 面向对象编程的基本概念 2.1 类和对象 2.2 继承和多态 2.3 封装和访问控制 3. 面向对象编程在大数据开发中的应用 3.1 Spark中的面向对象编程 3.2 面向对象编程在数据清洗和预处理中 3.3 面向对象编程在机器学习中的应用 4. 面向对象编程的高级特性 …...

C++ //练习 14.31 我们的StrBlobPtr类没有定义拷贝构造函数、赋值运算符及析构函数,为什么?

C Primer&#xff08;第5版&#xff09; 练习 14.31 练习 14.31 我们的StrBlobPtr类没有定义拷贝构造函数、赋值运算符及析构函数&#xff0c;为什么&#xff1f; 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#xff09; 工具&#xff1a;vim 解释&#xff1a; 因为…...

通配符和正则表达式之间的关系

通配符和正则表达式&#xff08;正则&#xff09;都是用于匹配字符串的工具&#xff0c;但它们的复杂性和用途有所不同。下面是它们之间的主要关系和区别&#xff1a; 通配符 通配符主要用于简单的模式匹配&#xff0c;常见于文件系统操作中&#xff0c;例如在命令行中查找文…...

GY-30光照传感器软件I2C方式驱动代码,基于STM32Cube

GY-30光照传感器的具体资料可以去淘宝搜索然后问卖家要&#xff0c;网上也有&#xff0c;所以这里我就不多嘴了。 VCC连接3到5伏电压&#xff0c;根据文件开头的描述在STM32CubeMX中配置好外设。 STM32Cube开发方式就是4个字“简单直接”&#xff0c;直接上代码。 gy30.h #…...

双相元编程:一种新语言设计方法

本文讨论了编程语言的一种趋势&#xff0c;即允许相同的语法表达 在两个不同阶段或环境&#xff08;上下文&#xff09;中执行的计算同时保持跨阶段&#xff08;上下文&#xff09;的一致行为。这些阶段通常在时间上&#xff08;运行时间&#xff09;或空间上&#xff08;运行…...

基于SpringBoot校园外卖配送系统设计和实现(源码+LW+调试文档+讲解等)

&#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者&#xff0c;博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f31f;文末获取源码数据库&#x1f31f; 感兴趣的可以先收藏起来&#xff0c;…...

茗鹤APS高级计划排程系统,在集团多工厂协同生产下的应用

随着业务规模的扩大和市场的全球化&#xff0c;越来越多的企业选择“总部多工厂基地”的模式&#xff0c;此种模式大幅提升企业的产能与产量&#xff0c;有效分散风险。然后&#xff0c;与之而来的是对企业的管理提出更高的管理要求。多个生产基地不仅面临集团下发的周期性计划…...

分享六款免费u盘数据恢复工具,U盘恢复工具集合【工具篇】

U盘里面的数据丢失了怎么找回&#xff1f;随着数字化时代的深入发展&#xff0c;U盘已成为我们日常生活中不可或缺的数据存储工具。然而&#xff0c;由于各种原因&#xff0c;如误删除、格式化、病毒攻击等&#xff0c;U盘中的数据可能会丢失&#xff0c;给用户带来极大的困扰。…...

Linux 的启动流程

第一步、加载内核 操作系统接管硬件以后&#xff0c;首先读入 /boot 目录下的内核文件。 以我的电脑为例&#xff0c;/boot 目录下面大概是这样一些文件&#xff1a; $ ls /bootconfig-3.2.0-3-amd64config-3.2.0-4-amd64grubinitrd.img-3.2.0-3-amd64initrd.img-3.2.0-4-amd6…...

思维导图插件--jsMind的使用

vue引入jsmind&#xff08;右键菜单&#xff09;_jsmind.menu.js-CSDN博客 第一版 vue-JsMind思维导图实现&#xff08;包含鼠标右键自定义菜单&#xff09;_jsmind 右键菜单-CSDN博客 // 新增节点addNode() {console.log(this.get_selected_nodeid());this.get_selected_…...

mac上使用finder时候,显示隐藏的文件或者文件夹

默认在finder中是不显示隐藏的文件和文件夹的&#xff0c;但是想创建.gitignore文件&#xff0c;并向里面写入内容&#xff0c;即便是打开xcode也是不显示这几个隐藏文件的&#xff0c;那有什么办法呢&#xff1f; 使用快捷键&#xff1a; 使用finder打开包含隐藏文件的文件夹…...

泰雷茲具有首个通过FIPS 140-3 三级认证的HSMs

泰雷兹LunaHsm是业界首款通过FIPS140-33级认证的解决方案&#xff0c;安策引进泰雷兹HSM产品可以帮助您满足您的数据安全合规性需求&#xff0c;阻力企业提高竞争力。 安策提供泰雷茲ThalesLunaHSMs成为首个通过FIPS140-3三级认证的硬件安全模块图 我们很高兴地宣布&#xff0c…...

美术馆预约小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;展品信息管理&#xff0c;管理员管理&#xff0c;用户管理&#xff0c;美术馆管理&#xff0c;基础数据管理&#xff0c;论坛管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;美术馆&#xff…...

序列化Serializable

一、传输对象的方式 将对象从内存传输到磁盘进行保存&#xff0c;或者进行网络传输&#xff0c;有两种方式&#xff1a; 实现Serializable接口&#xff0c;直接传输对象转成json字符串后&#xff0c;进行字符串传输 二、直接传输对象 implements Serializable Data Equal…...

编写静态库

一、静态库 1.制作完成整体目录结构 2.首先创建mymath.c和mymath.h 3.编写Makefile 4.创建测试的main函数 test文件夹 先把lib移到test文件夹里面 4.编译链接 gcc main.c -I ./lib/include/ -L ./lib/mymathlib/ -l mymath 5.形成可执行程序a.out 要是不想执行第四步那么麻烦…...

hive的表操作

常用的hive命令 切换数据库use test;查询表的建表信息show create table 数据库名称.表名;查看表的类型信息desc formatted 数据库名称.表名; 删除内部表 drop table 数据库名称.表名; 先启动hdfs &#xff0c;mysql &#xff0c; hiveservice2&#xff0c;beeline CREATE [EX…...

基于多视点编码光场的全景三维重建方法

欢迎关注GZH《光场视觉》 摘要&#xff1a;在基于光场的一系列应用中&#xff0c;目标的三维重建是基础且关键的任务。普通光场只能重建单一视角而无法重建全景&#xff0c;并且在纹理特征匮乏的区域也无法生成准确的三维信息。针对以上问题&#xff0c;提出一种基于多视点编码…...

Spring Boot中的分布式文件系统

Spring Boot中的分布式文件系统 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天&#xff0c;我们将探讨如何在Spring Boot中实现分布式文件系统的搭建和应用…...

three.js地理坐标系有哪些,和屏幕坐标系的转换。

坐标系很好理解&#xff0c;就是点线面体的位置&#xff0c;一个点是一个坐标&#xff0c;一条线段2个坐标&#xff0c;一个矩形四个坐标&#xff0c;一个立方体8个坐标&#xff0c;three.js面对的是三维空间&#xff0c;屏幕则是二维的&#xff0c;这就面临着转换问题&#xf…...

聊聊C++20的三向比较运算符 `<=>`

C20标准引入了许多新特性&#xff0c;其中之一是三向比较运算符 <>&#xff0c;也被称为太空船运算符。这个新运算符为C程序员提供了一种全新的比较对象的方式&#xff0c;它能有效简化比较逻辑&#xff0c;避免编写多个比较运算符重载的情况。 为什么需要三向比较运算符…...

CVE-2024-0603 漏洞复现

CVE-2024-0603 源码&#xff1a;https://gitee.com/dazensun/zhicms 开题&#xff1a; CVE-2024-0603描述&#xff1a;ZhiCms up to 4.0版本的文件app/plug/controller/giftcontroller.php中存在一处未知漏洞。攻击者可以通过篡改参数mylike触发反序列化&#xff0c;从而远程…...

西部智慧健身小程序+华为运动健康服务

1、 应用介绍 西部智慧健身小程序为用户提供一站式全流程科学健身综合服务。用户通过登录微信小程序&#xff0c;可享用健康筛查、运动风险评估、体质检测评估、运动处方推送、个人运动数据监控与评估等公益服务。 2、 体验介绍西部智慧健身小程序华为运动健康服务核心体验如…...

Spring Boot中如何处理异步任务

Spring Boot中如何处理异步任务 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将探讨在Spring Boot应用中如何处理异步任务&#xff0c;以提升系统的性…...

数字化精益生产系统--RD研发管理系统

R&D研发管理系统是一种用于管理和监督科学研究和技术开发的软件系统&#xff0c;其设计和应用旨在提高企业研发活动的效率、质量和速度。以下是对R&D研发管理系统的功能设计&#xff1a;...

鱼眼相机 去畸变

目录 枕形畸变和去枕形畸变 去枕形畸变失败 枕形畸变和去枕形畸变 import cv2 import numpy as np import matplotlib.pyplot as plt# 创建一个带网格的原始图像 def create_grid(image_size512, grid_size20):image np.zeros((image_size, image_size, 3), dtypenp.uint8)…...

DC/AC电源模块:为智能家居设备提供恒定的电力供应

BOSHIDA DC/AC电源模块&#xff1a;为智能家居设备提供恒定的电力供应 DC/AC电源模块是一种常见的电源转换器&#xff0c;它将直流电源&#xff08;DC&#xff09;转换为交流电源&#xff08;AC&#xff09;&#xff0c;为智能家居设备提供恒定的电力供应。在智能家居系统中&a…...

小红书运营教程02

小红书大致会分享10篇左右。微博、抖音、以及视频剪辑等自媒体运营相关技能以及运营教程相关会陆续的进行分享。 上次分享涉及到的对比,母婴系列,或者可以说是服装类型,不需要自己过多的投入,对比知识类博主来说,自己将知识讲述出来,然后要以此账号进行变现就比较麻烦,…...

k8s自动清理节点服务

要在 Kubernetes 中实现当某个节点的 CPU 或内存使用超过 90% 时清理该节点上的服务&#xff0c;你可以使用以下几种方法&#xff1a; 自定义脚本和 cron job&#xff1a;编写一个脚本监控节点的资源使用情况&#xff0c;并在超过阈值时触发清理操作。使用 DaemonSet 运行监控…...

JS如何把年月日转为时间戳

在JavaScript中&#xff0c;将年月日&#xff08;通常表示为一个字符串或者分别的年、月、日数字&#xff09;转换为时间戳&#xff08;即Unix时间戳&#xff0c;是自1970年1月1日&#xff08;UTC/GMT的午夜&#xff09;开始所经过的秒数&#xff0c;不考虑闰秒&#xff09;可以…...

【YOLOv5进阶】——引入注意力机制-以SE为例

声明&#xff1a;笔记是做项目时根据B站博主视频学习时自己编写&#xff0c;请勿随意转载&#xff01; 一、站在巨人的肩膀上 SE模块即Squeeze-and-Excitation 模块&#xff0c;这是一种常用于卷积神经网络中的注意力机制&#xff01;&#xff01; 借鉴代码的代码链接如下&a…...

【C++题解】1456. 淘淘捡西瓜

问题&#xff1a;1456. 淘淘捡西瓜 类型&#xff1a;贪心 题目描述&#xff1a; 地上有一排西瓜&#xff0c;每个西瓜都有自己的重量。淘淘有一个包&#xff0c;包的容量是固定的&#xff0c;淘淘希望尽可能在包里装更多的西瓜&#xff08;当然要装整个的&#xff0c;不能切开…...

用Python读取Word文件并提取标题

前言 在日常工作中&#xff0c;我们经常需要处理Word文档&#xff0c;特别是从中提取关键信息&#xff0c;如标题、段落等。今天&#xff0c;我们将利用Python来实现这一功能&#xff0c;并为大家提供一段完整的代码示例。 准备工作 首先&#xff0c;你需要安装python-docx库…...

Windows编程上

Windows编程[上] 一、Windows API1.控制台大小设置1.1 GetStdHandle1.2 SetConsoleWindowInfo1.3 SetConsoleScreenBufferSize1.4 SetConsoleTitle1.5 封装为Innks 2.控制台字体设置以及光标调整2.1 GetConsoleCursorInfo2.2 SetConsoleCursorPosition2.3 GetCurrentConsoleFon…...

BiTCN-Attention一键实现回归预测+8张图+特征可视化图!注意力全家桶再更新!

声明&#xff1a;文章是从本人公众号中复制而来&#xff0c;因此&#xff0c;想最新最快了解各类智能优化算法及其改进的朋友&#xff0c;可关注我的公众号&#xff1a;强盛机器学习&#xff0c;不定期会有很多免费代码分享~ 目录 原理简介 数据介绍 结果展示 全家桶代码目…...

zoom缩放问题(关于ElementPlus、Echarts、Vue3draggable等组件偏移问题)

做了一个项目下来&#xff0c;由于整体界面偏大&#xff0c;采取了缩放90%&#xff0c;导致很多组件出现偏移问题&#xff0c;以下我会把我遇到的各种组件偏移问题依次进行描述解答&#xff1a; ElementPlus选择器下拉偏移 <template><el-select :teleported"f…...

【后端面试题】【中间件】【NoSQL】MongoDB的配置服务器、复制机制、写入语义和面试准备

MongoDB的配置服务器 引入了分片机制之后&#xff0c;MongoDB启用了配置服务器(config server) 来存储元数据&#xff0c;这些元数据包括分片信息、权限控制信息&#xff0c;用来控制分布式锁。其中分片信息还会被负责执行查询mongos使用。 MongoDB的配置服务器有一个很大的优…...

视频监控汇聚平台LntonCVS视频监控业务平台具体有哪些功能?

LntonCVS视频监控平台是一款基于H5技术开发的专业安防视频监控产品&#xff0c;旨在为安防视频监控行业提供全面的解决方案。以下是平台的主要功能和特点&#xff1a; 1. 统一接入管理&#xff1a; - 支持国内外各种品牌、协议和设备类型的监控产品统一接入管理。 - 提供标准的…...

我不小心把生产的数据改错了!同事帮我用MySQL的BinLog挽回了罚款

之前在生产做修改数据的时候不小心改错了一行数据&#xff0c;本来以为会被通报批评&#xff0c;但是同事利用binlog日志查看到了之前的旧数据&#xff0c;并且帮我回滚了&#xff0c;学到了&#xff0c;所以写了一篇binlog的文章分享给大家。 MySQL的Binary Log&#xff08;简…...

Windows系统安装NVM,实现Node.js多版本管理

目录 一、前言 二、NVM简介 三、准备工作 1、卸载Node 2、创建文件夹 四、下载NVM 五、安装NVM 六、使用NVM 1、NVM常用操作命令 2、查看NVM版本信息 3、查看Node.js版本列表&#xff1b; 4、下载指定版本Node.js 5、使用指定版本Node.js 6、查看已安装Node.js列…...

k8s部署单节点redis

一、configmap # cat redis-configmap.yaml apiVersion: v1 kind: ConfigMap metadata:name: redis-single-confignamespace: redis data:redis.conf: |daemonize nobind 0.0.0.0port 6379tcp-backlog 511timeout 0tcp-keepalive 300pidfile /data/redis-server.pidlogfile /d…...

云微客矩阵系统:如何利用智能策略引领营销新时代?

近些年&#xff0c;短视频行业的风头一时无二&#xff0c;大量的商家和企业进驻短视频赛道&#xff0c;都或多或少的实现了实体门店的流量增长。虽然说现在短视频的门槛在逐步降低&#xff0c;但是迄今为止依旧有很多人在短视频剪辑面前望而却步。 最近在短视频营销领域&#x…...

嵌入式Linux系统编程 — 6.3 kill、raise、alarm、pause函数向进程发送信号

目录 1 kill函数 1.1 kill函数介绍 1.2 示例程序 2 raise函数 2.1 raise函数介绍 2.2 示例程序 3 alarm函数 3.1 alarm函数介绍 3.2 示例程序 4 pause函数 4.1 pause函数介绍 4.2 示例程序 与 kill 命令相类似&#xff0c; Linux 系统提供了 kill()系统调用&#…...

Swoole实践:如何使用协程构建高性能爬虫

随着互联网的普及&#xff0c;web爬虫已经成为了一个非常重要的工具&#xff0c;它可以帮助我们快速地抓取所需要的数据&#xff0c;从而降低数据获取成本。在爬虫的实现中&#xff0c;性能一直是一个重要的考虑因素。swoole是一款基于php的协程框架&#xff0c;它可以帮助我们…...

基于人脸68特征点识别的美颜算法(一) 大眼算法 C++

1、加载一张原图&#xff0c;并识别人脸的68个特征点 cv::Mat img cv::imread("5.jpg");// 人脸68特征点的识别函数vector<Point2f> points_vec dectectFace68(img);// 大眼效果函数Mat dst0 on_BigEye(800, img, points_vec);2、函数 vector<Point2f&g…...

3D Web轻量化平台HOOPS Web Platform的功能与应用分析

随着3D技术在多个行业的广泛应用&#xff0c;对于3D模型轻量化的需求日益增长。HOOPS Web Platform作为一个先进的3D模型轻量化平台&#xff0c;为开发人员提供了一整套工具来构建和部署基于Web的工程应用程序。本文将分析HOOPS Web Platform的核心功能和它在不同领域的应用情况…...

Spring Boot + liteflow 居然这么好用!实战

在我们的日常开发中&#xff0c;经常会遇到一些需要串行或并行处理的复杂业务流程。 那我们该如何利用Spring Boot结合liteflow规则引擎来简化我们的业务流程 先看一个实战案例&#xff01;&#xff01; 在电商场景下&#xff0c;当订单完成后&#xff0c;我们需要同时进行积…...

第四十五章 在 SOAP 消息中使用数据集 - 以 XML 形式查看数据集和架构

文章目录 第四十五章 在 SOAP 消息中使用数据集 - 以 XML 形式查看数据集和架构以 XML 形式查看数据集和架构对 WSDL 的影响 第四十五章 在 SOAP 消息中使用数据集 - 以 XML 形式查看数据集和架构 以 XML 形式查看数据集和架构 扩展 %XML.DataSet 的数据集在具有可用于生成 X…...

python代码报错:ModuleNotFoundError: No module named ‘docx‘

报错内容 D:\Anaconda\anaconda\envs\megaparse\python.exe F:\pythonproject\MegaParse-main\test.py Traceback (most recent call last):File "F:\pythonproject\MegaParse-main\test.py", line 1, in <module>from megaparse.Converter import MegaParse…...

java 利用 gdal 按照 geojson 裁剪 tif

简要说明 在java&#xff0c;利用gdal&#xff0c;按照geojson&#xff08;字符串转文件&#xff09;裁剪遥感tif文件。 maven依赖 <!--需要安装完gdal后&#xff0c;本地install gdal包才能使用 --><!--gdal安装可参考 https://blog.csdn.net/qq_41613913/article…...

秒懂设计模式--学习笔记(4)【创建篇-工厂方法模式】

目录 3、工厂方法模式3.1 介绍3.2 工厂的多元化与专业化3.3 游戏角色建模(建模)3.4 简单工厂不简单(实例化、初始化)3.5 制定工业制造标准3.6劳动分工 3、工厂方法模式 3.1 介绍 程序设计中的工厂类往往是对对象构造、实例化、初始化过程的封装&#xff0c;而工厂方法&#x…...

商务部:1-5月全国报废汽车回收同比增长19.4%

,6月20日,商务部副部长盛秋平主持召开消费品以旧换新部际专题会议,总结阶段性进展情况,研究部署下一步工作。会议指出,《推动消费品以旧换新行动方案》印发以来,各部门按照任务分工细化政策举措,认真组织实施,各项工作进展顺利、开局良好,取得阶段性成效。汽车方面,1…...

香港优才计划找中介是否是智商税,靠谱中介又该如何找?

关于香港优才计划的申请&#xff0c;找中介帮助还是自己DIY&#xff0c;网络上充斥的声音太多&#xff0c;对不了解的人来说&#xff0c;难以抉择的同时还怕上当受骗。 这其中很容易误导人的关键在于——信息差&#xff01; 今天这篇文章的目的就是想让大家看清一些中介和DIY…...

7. 核心功能(Core Features)

7. 核心功能&#xff08;Core Features&#xff09; 本章节深入介绍 Spring Boot 的详细信息。在这里&#xff0c;你可以了解想要使用的和自定义的主要功能。如果您还没有阅读 “Getting Started” 和 “Developing with Spring Boot” 这两节内容&#xff0c;不放先去阅读这两…...

ES数据导出成csv文件

推荐使用es2csv 工具。 命令行实用程序&#xff0c;用Python编写&#xff0c;用于用Lucene查询语法或查询DSL语法查询Elasticsearch&#xff0c;并将结果作为文档导出到CSV文件中。该工具可以在多个索引中查询批量文档&#xff0c;并且只获取选定的字段&#xff0c;这减少了查…...

day20二叉树part06| 654.最大二叉树 617.合并二叉树 700.二叉搜索树中的搜索 98.验证二叉搜索树

**654.最大二叉树 ** 构造树一般采用的是前序遍历&#xff0c;因为先构造中间节点&#xff0c;然后递归构造左子树和右子树。 这题在找最大值和最大值下标的时候用了两个库函数 class Solution { public:TreeNode* constructMaximumBinaryTree(vector<int>& nums)…...

java8以上版本

java9及其以上版本 一、JDK17 LTS 常用新特性1、switch语句的增强2、字符串拼接3、判断类型instanceof自动类型转换4、密封类 关键字 sealed permits5、record类6、优化空指针异常7、ZGC垃圾收集器 一、JDK17 LTS 常用新特性 1、switch语句的增强 在 Java 17中&#xff0c;sw…...