【Linux】常见指令(下)
【Linux】常见指令(下)
- 通配符 '*'
- man指令
- cp指令
- echo指令
- cat指令(简单介绍)
- cp指令
- mv指令
- alias指令
- which
- ctrl + c
- cat指令
- linux下一切皆文件
- more指令
- less指令
- head指令
- tail指令
- 管道
通配符 ‘*’
- 通配符’ *‘,'是可以匹配匹配任意名字的文件。
例如:
ls *.c 可以找到该目录下的所有.c文件
ls test.*可以找到该目录下的所有test开头的文件。
同时,也可以使用其他指令搭配通配符’*'。
关于rm指令,一般推荐rm -rf XXX 这样的方式进行指令操作,不推荐 rm XXX -rf的原因是这种指令在其他Linux环境中可以不适应。
【注意】关于rm指令在root账号和普通用户的使用可能会不同:
1.如果是root账号在使用rm指令时,一般会去询问,所以对于root账号来说,rm选项中的-i选项是没有意义的。
2.但是对于普通账户来说,直接使用rm指令,一般不会询问,这是系统默认普通用户所建立和删除的文件或者目录不重要,如果想要在删除时被询问,需要在rm后面添加选项 -i。
man指令
Linux的命令有很多参数,我们一般都很难记住,我们可以通过查看联机手册来获取帮助。访问Linux手册页的命令是man
【语法】:man [选项]命令
【常用选项】:
- -k 根据关键字搜索联机帮助
- num 只在第num章节找
- -a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,默认会停留在第一章节;当使用-a选项,当按下q时退出,他会继续往后面搜索,知道所有章节都搜素完毕。
【解释手册】手册被分为八章(重点在前三章):
1.是普通的命令
2.是系统调用,如open,write,之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)
3.是库函数,如printf,fread
4.是特殊文件,也就是/dev下的各种设备文件
5.是指文件的格式,比如passward,就会说明这个文件各个字段的含义
6.是给游戏留的,由各个游戏自己定义
7.是附件还有一些变量,比如向environ这种全局变量在这里就有说明
8.是系统管理用的命令,这些命令只能由root使用,如ifcoming
- Linux操作系统由于是使用C语言写的,所以Linux操作系统的很多接口都是C的。
我们使用man man指令更加详细的了解指令(部分截图)(按q离开):
man ls指令(部分截图):
man pwd指令(部分截图):
man rm指令(部分截图)
在man man指令中的八章中,现阶段需要注意的就是前三章:
- 在使用man指令查询时,上下建进行翻阅,按q离开。
【注意】我们在使用man指令查看printf的时候,可能会进入第一章(普通的命令)或者进入第三章(是库函数),系统会按照顺序默认进入第一章。
这是因为printf在Linux操作系统中不仅是作为C语言的一种库函数,同是Linux中的一种命令,用于打印无换行符的数据。
- 使用man printf默认会进入第一章查看printf这个命令
- 想要特定查看printf的库函数,可以添加选项 man 3 printf
【注意】可以部分操作系统没有添加关于C的库函数,此时可以更新一下man手册:yum install man-pages
cp指令
在了解cp指令之前需要先对echo和cat俩个指令有一定的了解:
echo指令
- echo 指令,可以将后面的字符串原生打印。
现在可以执行echo “hello linux”,将字符串打印在屏幕上。
使用输出重定向,将输出到显示屏上的内容输出到文件上。
echo “hello linux” > test.txt
- 输出重定向:现阶段的理解,就是本来应该显示到显示器的内容,打印到文件中去。
【注意】指令echo与指令printf俩个指令都是输出到一定位置,但是printf是没有换行符的,而echo是有换行符的。
cat指令(简单介绍)
- cat:打印文件内容
我们可以将上面echo输出重定向文件的内容打印出来:
我们可以注意到,这个数据已经被写入到文件中了。
cp指令
【语法】:cp [选项] 源文件或目录 目标文件或目录
【功能】:复制文件或目录
【说明】:cp指令用于复制文件或目录,如同时指定俩个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或者目录复制到此目录中。若同时指定多个文件或者目录,而最后的目的地并非一个已存在的目录,则会出现错误信息。
【常用选项】:
- -f 或 - -force 强行复制文件或目录,不论目的文件或目录是否已经存在。
- -i 或 - -ineractive 覆盖文件之前先询问用户
- -r 递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理。
- -R 或 - -recursive递归处理,将指定目录下的文件及子目录一并处理。
【例子】
将test.txt文件备份一份
./test_backup1.txt 与 test_backup.txt的位置相同,系统会默认将文件拷贝该目录下。
也可以将文件拷贝到上级目录下。
我们发现,在上次目录中可以设置和此目录中相同的文件名,经过我们对Windows系统的了解,同一个目录下,不能出现同名文件,不同目录下,可以出现同名文件,这在Linux操作系统中同样适用。
进行选项操作-p可以进行递归处理。
同样的,-i 与 -f 的选项操作只对普通用户起作用
mv指令
mv命令是move的缩写,可以用来移动文件或者将文件改名(move(rename)files),是Linux系统下常用的命令,经常用来备份文件或者目录。
【语法】:mv [选项] 源文件或目录 目标文件或目录
【功能】:
1.视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命令或将其移至一个新的目录中。
2.当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给帝国的目标文件名。
3.当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各个参数指定的源文件均移至目标目录中。
【常用选项】:
- -f:force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
- -i:若目标文件(destination)已经存在,就会询问是否满意
【详解】:
首先,mv指令是可以进行重命名的。
同时,mv指令也可以进行剪切,下面将tt.txt剪切到上级目录中去。
下面将上级目录中的tt.txt文件截切到当前目录中去。
那么,mv指令到底是重命名还是剪切呢?可以观察下面这个例子:
通过这种方式,我们可以了解到,mv的作用是重命名,剪切,剪切并重命名。
怎么理解这样的操作呢?
mv的所有指令行为都可以理解为剪切并重命名,如果指令后面有文件名和文件名后面的. .,可以看作是将文件剪切到上级目录中去,并将名字设置成默认名字,即mv后面的第一个名字;
如果mv和后面不仅有文件名,还有路径加文件名,可以看作是将文件剪切到该路径目录上,并设置为路径后面的名字;
而所谓的重命名行为。可以看作是将文件剪切到该目录下,并设置成修改的文件名。
仔细观察上面指令:mv d1 …/d1/dd1
这条指令是将该目录下的d1剪切到上一级目录下的d1目录下,并重命名为dd1,同时此条指令也可以写成:mv d1 d1/dd1
【例子】:
我们知道,在Windows中删除之后,可以将垃圾放在回收站中,而我们现阶段所学的rm是直接删除,没有回收站保留删除的数据。而实际上,回收站也是一种目录,只不过在Windows环境下,将回收站这个目录设置成图形化界面进行美化;在Linux中,我们也可以设置一个回收站的目录,并将rm指令设置成mv,这样就可以在Linux环境中设置一个类似回收站的目录。
将rm改造成mv
vim ~/.bashrc #修改这个文件
mkdir -p ~/.trash
alias rm=trash
alias ur=undelfile
undelfile() {
mv -i ~/.trash/$@ ./
}
trash() {
mv $@ ~/.trash/
}
【注意】在现阶段,先不做尝试,因为现在我们所处在root账户,且未学vim等指令。
alias指令
在上述例子中,我们现在除了了解已经学过的mv和rm指令,也需要对alias指令有一定的了解。
- alias指令:重命名,起别名
我们都知道,执行一个指令时,可以有多个选项,而多个选项也可以进行简写,例如:ls -l 可以简写成 ll。
那么,为什么可以这样简写呢?
我们可以使用man指令查询一下是否有ll指令:
可以了解到,man手册中并没有ll指令。
-
我们应该如何看待指令?
当我们写出一个.c文件并生成一个.out的可执行文件,直接在命令行输入可执行程序,可以发现可以被运行,所以指令和可执行程序都是可以被执行的——指令本质上就是可执行程序。 -
我们在执行指令之前,应该先进行什么操作?
我们应该在系统中查找对应的指令,如果随意输入一段指令,则会显示command not found,意思是没有发现该条指令,所以指令一定是在系统中的某一个位置存在的。
当我们在命令行输入ls /usr/bin指令,可以显示出系统所有的指令。
【结论】所以指令是在系统中特定的路径中存在的,这些指令一定是某种可执行程序——C/C++/python/shell(脚本语言)。
我们可以在命令行设置:cp mycmd /usr/bin指令来设置属于自己专属指令,但是不推荐这样做。
【指令的本质】指令的本质就是可执行程序,和我们自己写的代码编译成功的程序没有本质区别,指令的本质就是文件,只不过是可执行文件,就是将这种可执行文件直接安装到系统的某种路径下面。
我们回到刚才的话题,系统中只有ls指令,没有ll指令。
在这里我们可以新学习一个指令which
which
- which指令:可以查看指令的路径。
那么我们可以使用which指令来查看ll指令是怎么来的。
我们通过观察可以发现,指令ll是通过alias指令将ls -l缩写成ll的。
即alias将ls -l进行重命名的;后面–color=auto是配色方案。
这里教大家设置重命名:
假设我需要设置lsl为ls -l -i -a -n选项的指令,可以在命令输入:alias lsl=‘ls -l -i -a -n’;。如果想要取消重命名,可以在命令行输入:alias lsl=’ ';。 如果想撤销该重命名,可以在命令行输入:unalias lsl;
ctrl + c
- ctrl + c是用来终止因为程序或者指令异常,而导致我们无法进入输出。
当我们出现问题时,先无脑ctrl+c。
如果对某条指令不想继续进行此操作,除了可以使用删除键,也可以使用ctrl+c,执行下一条指令。
就例如上述例子,在执行mv指令时,感觉输入不对或者输入错误可以无脑ctrl+c跳过此条指令。
cat指令
【语法】:cat [选项] [文件]
【功能】:查看目标文件的内容
【常用选项】:
- -b 对非空输出行编号
- -n 对输出的所有行编号
- -s 不输出多行空行
linux下一切皆文件
在介绍下一条指令前,需要先有一个这样的概念:
- Linux下一切皆文件——例如:显示器,键盘,普通文件…
显示器:向显示器写入数据->fwrite,而显示器并没有读取数据的功能,所以fread(){ }是空的。
键盘:可以从键盘中进行读取数据->fread,而键盘并没有其他设备向键盘写入数据的功能,所以fread(){ }是空的。
普通文件:普通文件时可以进行读取数据,和写入数据的。
我们以这样的角度再次了解一下echo指令和输出重定向:
通过观察这俩句指令,echo指令本来应该将字符串写道显示屏上面的,但是通过输出重定向 > 写到test.txt文件中去,这种方式叫做重定向。
- echo 与cat的区别:
在echo看来,其后面所跟的都是字符串,不过你写什么。
而cat后面跟的只能是文件名。
- cat 与 ll 指令的区别:
cat 指令可以打印文件内容,而ll指令打印的是文件的属性:
【注意】cat是将文件内容写到显示器文件中;而ll是将文件属性写到显示器文件中。
- 输出重定向:向目标文件进行写入的时候覆盖写入,其主要的方式分成俩种,第一步:清空文件;第二步:写入新内容。
如果只在命令行输入指令:> test.txt指令,可以达到清空文件的效果。
【扩展】:
如果我们在输入文件时,并不是想清空文件,而是在原有文件的内容下,继续输入文件,可以使用追加重定向。
- 追加重定向: >>
同时,使用echo是可以将输入的数据直接进行换行处理的,如果想不换行处理,可以使用printf指令。
cat指令后面如果什么都不跟,那么就会默认从键盘上读取数据(使用ctrl+c结束操作)
- 输入重定向:输入重定向 < ,是本来应该从键盘文件读取,现在不用从键盘读取,从指定的文件读取,这种方式叫做输入重定向。
【注意】cat test.txt 与cat > text.txt虽然在现阶段二者都是读取数据,但是在后续的学习中还是有所差距的。
假设使用重定向时,目标文件原本并没有出现在目录中,即没有新文件,此时可以新建一个文件,然后再向该文件中写入字符串。
那么,如果没有输出字符串,仅仅是使用重定向,就可以被用来创造新文件,但里面的内容是空的。
了解了这些知识,我们也就基本可以了解如何使用cat指令。
cat指令 用来打印文件内容
cat -n可以对打印的数据进行编号
more指令
【语法】:more [选项] [文件]
【功能】:more命令,功能类似cat
【常用选项】:
- -n 对输出的所有行编号
- q 退出more
我们在了解这些指令之前,现需要有一个非常大的文本:可以执行下面这条指令:
cnt=1; while [ $cnt -le 10000 ]; do echo “hello linux $cnt”; let cnt++; done > test.txt
当使用cat指令去查看这个大本文时会发现,cat指令不适合看这类型的大文本。
- 我们为什么需要有一个大文本呢?什么也属于大文本?
在实际的使用过程中,我们所见到的项目和日志都属于大文本。
cat指令会直接到文本的底本,这会导致当我们想要查看中间内容变得复杂。
而more指令会打印一面的数据:
然后后面可以选择性的看第几行
执行选项,可以找到文本前num行
但是,more的使用也是有缺点的,more只能向下翻阅。
less指令
【语法】:less [参数] [文件]
【功能】:less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件。
【常用选项】:
- -i :忽略搜索时的大小写
- -N:显示每行的行数
- /字符串:向下搜索“字符串”的功能
- ?字符串:向上搜索“字符串”的功能
- n:重复前一个搜索(与/或?有关)
- N:反向重复前一个搜索(与/或?有关)
- q:quit
【说明】:
- less 工具也是对文件或其它输出进行分页显示的工具,应该说是Linux正统查看文件内容的工具,功能及其强大。
- less 的用法比起more 更加的有弹性。在more的时候,我们并没有办法向前翻阅,只能往后看。
- 但若使用了less时,就可以使用[pageup][pagedown]等按键的功能来往前往后翻看文件,更加容易用来查看一个文件的内容。
- 除此之外,在less里面可以拥有更多的搜索功能,不止可以向下搜索,也可以向上搜索。
【注意】less的使用较more来讲更加合适,也是可以进行上下翻阅的。
head指令
head与tail就像它的名字一样的浅显易懂,它是来显示开头或结尾某个数量的文字区块,head用来显示档案的开头至标准输出中,而tail就是看档案的结尾。
【语法】:head [参数]…[文件]…
【功能】:head用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。
【常用选项】:
- -n< 行数 > 显示的行数
head的指令可以查看前n行
tail指令
taii命令从指定点开始将文件写到标准输出,使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename 会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容。
【语法】:tail [必要参数] [选择参数] [文件]
【功能】:用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用来查看日志文件。
【常用选项】:
- -f 循环读取
- -n< 行数 >显示行数
tail指令可以查看后n行
合理利用head指令和tail指令可以很好的查看中间某行的内容。
如果要查找第1000行-第1020行,可以用head指令将前1020行保存在一个tmp.txt文件中,然后在tmp.txt文件中使用tail指令查找后21行即可找到第1000行-第1020行。
管道
在上述例子中,我们需要建立一个文件来存储前1020个数据,这样会比较繁琐。
可以执行这条指令:head -1020 test.txt | tail -21
’ | ':这条竖线就是管道,这是一种符号,后面会被“系统”解释称为管道文件(内存级的文件)。
- 管道文件将管道左边的程序输出到管道文件中,让右侧的程序将管道文件中的数据读到程序中,这种被称为管道。
怎么理解管道呢?
自来水管道,天然气管道,下水管道等等,类似于这些有入口,而且有出口的管道。计算机中的管道时资源数据的输入和输出。
相关文章:

【Linux】常见指令(下)
【Linux】常见指令(下) 通配符 *man指令cp指令echo指令cat指令(简单介绍)cp指令 mv指令alias指令which ctrl ccat指令linux下一切皆文件 more指令less指令head指令tail指令管道 通配符 ‘*’ 通配符’ *‘,是可以匹配…...

jvm常用密令、jvm性能优化、jvm性能检测、Java jstat密令使用、Java自带工具、Java jmap使用
1.jps是Java虚拟机的进程状态工具,用于列出正在运行的Java进程 jps命令的使用:cmd打开直接jps 1.1不带参数: jps 默认情况下,列出所有正在运行的 Java 进程的进程 ID 和主类名。 1.2 -l:显示完整的主类名或 JAR 文件…...

实验三:图像的平滑滤波
目录 一、实验目的 二、实验原理 1. 空域平滑滤波 2. 椒盐噪声的处理 三、实验内容 四、源程序和结果 (1) 主程序(matlab) (2) 函数GrayscaleFilter (3) 函数MeanKernel (4) 函数MedFilter 五、结果分析 1. 空域平滑滤波 2. 椒盐噪声的处理…...

VUE前端HTML静默打印(不弹出打印对话框)PDF简单方案
前言 在做打印功能的时候,以前大部分客户端都是用C#做的,静默打印(也就是不弹出打印对话框)比较简单。 但是使用浏览器作为客户端,静默打印(也就是不弹出打印对话框)做起来就比较困难。困难的…...

大数据hive表和iceberg表格式
iceberg: https://iceberg.apache.org/ iceberg表,是一种面向大型分析数据集的开放表格式,旨在提供可扩展、高效、安全的数据存储和查询解决方案。它支持多种存储后端上的数据操作,并提供 ACID 事务、多版本控制和模式演化等特性,…...

flutter 手写 TabBar
前言: 这几天在使用 flutter TabBar 的时候 我们的设计给我提了一个需求: 如下 Tabbar 第一个元素 左对齐,试了下TabBar 的配置,无法实现这个需求,他的 配置是针对所有元素的。而且 这个 TabBar 下面的 滑块在移动的时…...

一个引发openssl崩溃问题案例
1 背景 最近用libevent写了一个https代理功能,在调研的时候,遇到了一个项目用到了本地多个openssl库引发的ssl握手崩溃问题。 2 开发环境 项目库版本号依赖项libeventlibevent-2.1.8-stableopenssl 1.1openssl1.0u / 1.1.1w / 3.3.1...... 3 问题现象…...

如何申请抖音本地生活服务商?3种方式优劣势分析!
随着多家互联网大厂在本地生活板块的布局力度不断加大,以抖音为代表的头部互联网平台的本地生活服务商成为了创业赛道中的大热门,与抖音本地生活服务商怎么申请等相关的帖子,更是多次登顶创业者社群的话题榜单。 就目前的市场情况来看&#x…...

【项目-轻量级Web Server lock类】
信号同步机制封装 Lock类信号量——sem类初始化信号量sem_init()销毁信号量sem_destory()对信号量进行P操作sem_wait()对信号进行V操作sem_post() 互斥锁——locker类初始化互斥量pthread_mutex_init()销毁互斥量pthread_mutex_destroy()给互斥锁加锁pthread_mutex_lock()解锁互…...

数据分析_计划
我做大数据的有6年了,以前都是用sql,或者spark,java,scala,python去做。现在这些平台搭建、维护、大多数都是搭建一次就完了,而且维护大多是大厂直接用云平台去做。ETL也是就做一次就够了,我们公…...

LDAPWordlistHarvester:基于LDAP数据的字典生成工具
关于LDAPWordlistHarvester LDAPWordlistHarvester是一款功能强大的字典列表生成工具,该工具可以根据LDAP中的详细信息生成字典列表文件,广大研究人员随后可以利用生成的字典文件测试目标域账号的非随机密码安全性。 工具特征 1、支持根据LDAP中的详细信…...

dhtmlx-gantt甘特图数据展示
官网文档:甘特图文档 实现效果: 首先需要下载 dhtmlx-gantt组件 npm i dhtmlx-gantt //我项目中使用的是"dhtmlx-gantt": "^8.0.6" 这个版本,不同的版本api或是文档中存在的方法稍有差异 界面引用 <template>&l…...

《云原生安全攻防》-- 容器攻击案例:Docker容器逃逸
当攻击者获得一个容器环境的shell权限时,攻击者往往会尝试进行容器逃逸,利用容器环境中的错误配置或是漏洞问题,从容器成功逃逸到宿主机,从而获取到更高的访问权限。 在本节课程中,我们将详细介绍一些常见的容器逃逸方…...

初学者指南:如何搭建和配置 Nginx 服务器
初学者指南:如何搭建和配置 Nginx 服务器 Nginx 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。本文将详细介绍如何在 Linux 上安装、配置和管理 Nginx 服务器。 一、安装 Nginx Nginx 可以安装在多种操作系统上&#x…...

[AHK] WinHttpRequest.5.1报错 0x80092004 找不到对象或属性
目录 背景描述 用浏览器访问,正常返回 编辑 AHK v2官方示例源代码 AHK v2运行结果报错(0x80092004) 找不到对象或属性 用thqby大佬的WinHttpRequest.ahk库测试报错 0x80092004 找不到对象或属性 附: 用Apifox访问,也正常返回 AHK v1 …...

`speech_recognition` 是一个流行的库
在Python中,speech_recognition 是一个流行的库,用于从各种来源(如麦克风、文件等)进行语音识别。以下是您提到的技术名称和相应的Python代码示例。 技术名称 语音识别(Speech Recognition):这…...

MFC Ribbon菜单 - 中英文实时切换方法
简介 最近在搞一个老外的项目,本来谈的好好的,纯英文界面。项目接近尾声了,又提出了中英文实时切换的新需求,没办法就只能想办法,毕竟客户最大嘛。 实现方法 还好本来的ribbon英文菜单不复杂,就用纯C编码…...

MFC程序创建word,创建表格,写入数据
文章目录 1、MFC程序功能:2、MFC程序实现2.1 创建项目2.2 添加word操作类2.3 添加word资源2.4 编写代码,实现将数据写入到word2.5 运行程序、验证功能3、工程代码下载 1、MFC程序功能: 创建word文档;向文档中写入字符串ÿ…...

FPGA:基于复旦微FMQL10S400 /FMQL20S400 国产化核心板
复旦微电子是国内集成电路设计行业的领军企业之一,早在2000年就在香港创业板上市,成为行业内首家上市公司。公司的RFID芯片、智能卡芯片、EEPROM、智能电表MCU等多种产品在市场上的占有率位居行业前列。 今天介绍的是搭载复旦微 FMQL10S400/FMQL20S400的…...

centos下使用yum安装keepalived工具
1、安装如下rpm包,不安装此包在装keepalived时会报错 mkdir keepalived_rpm cd keepalived_rpm/ wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-community-libs-compat-8.0.36-1.el7.x86_64.rpm 2、使用yum进行keepalived的安装 yum -y install keepal…...

无人机图像目标检测
本仓库是人工智能课程的课程作业仓库,主要是完成无人机图像目标检测的任务,我们对visdrone数据集进行了处理,在yolo和ssd两种框架下进行了训练和测试,并编写demo用于实时的无人机图像目标检测。 requirements依赖: ss…...

JSqlParser 解析 sql
目录 前言一、Maven依赖二、获取sql中的表名三、获取sql中的具体信息 前言 JSqlParser是一个 SQL 语句解析器。它将 SQL 语句转换为可遍历的 Java 类层次结构,可以方便的用代码对 SQL 语句进行解析,修改等操作。 官网 api 文档和 github 地址如下&…...

Vue中使用mind-map实现在线思维导图
概述 在前面的文章Vue中实现在线画流程图实现中介绍了流程图的在线绘制,在本文,给大家分享一下基于mind-map实现在线的思维导图,并实现:1. 导图导出为图片;2. 打开xmind文件。 实现效果 实现 1. mind-map简介 simp…...

ChatGPT 深度解析:技术驱动的智能对话
在当今科技飞速发展的时代,ChatGPT 无疑成为了最耀眼的明星之一。它以其令人惊叹的智能对话能力,引发了全球范围内的广泛关注和热议。 ChatGPT 背后的技术堪称精妙绝伦。它基于深度学习算法,通过对海量数据的学习和分析,从而能够理…...

Armv8-R内存模型详解
目录 1.内存模型的必要性 2.Armv8-R内存模型分类 2.1 Normal memory 2.2 Device Memory 2.2.1 Gathering 2.2.2 Reordering 2.2.3 Early Write Acknowledgement 3.小结 大家好,今天是悲伤的肌肉。 在调研区域控制器芯片时,发现了S32Z、Stellar …...

Python面经
文章目录 Python基本概念1. Python是**解释型**语言还是**编译型**语言2. Python是**面向对象**语言还是面向过程语言3. Python基本数据类型4.append和 extend区别5.del、pop和remove区别6. sort和sorted区别介绍一下Python 中的字符串编码is 和 的区别*arg 和**kwarg作用浅拷…...

海外ASO:iOS与谷歌优化的相同点和区别
海外ASO是针对iOS的App Store和谷歌的Google Play这两个主要海外应用商店进行的优化过程,两个不同的平台需要采取不同的优化策略,以下是对iOS优化和谷歌优化的详细解析: 一、iOS优化(App Store) 1、关键词覆盖 选择关…...

【C++题解】1168. 歌唱比赛评分
问题:1168. 歌唱比赛评分 类型:数组找数 题目描述: 四(1) 班要举行一次歌唱比赛,以选拔更好的苗子参加校的歌唱比赛。评分办法如下:设 N 个评委,打 N 个分数( 0≤每个分…...

鸿蒙开发工程师面试-架构篇
1. 假如让你负责鸿蒙App架构设计,你会关注哪些方面? 分层架构设计: 将应用划分为产品定制层、基础特性层和公共能力层,以降低层间依赖性,提升代码可维护性。通过分层架构设计,进一步明确每层的职责和层间交…...

【Redis】持久化
对于Redis中间件来说,一般是作为内存型数据库或者缓存出现的。但是由于其数据是在内存中,因此当Redis所在的主机宕机之后,数据就会消失,再次重启之后,没有任何数据。这对于生产环境来说,是属于P0级别的灾难…...