Linux_Ubuntu 系统入门

        Ubuntu 系统是和 Windows 系统一样的大型桌面操作系统,因此功能非常强大。

        本节的目的是掌握后续嵌入式开发所需的 Ubuntu 基本技能,比如系统的基本设置、常用的 shell 命令、vim 编译器的基本操作等等……

        Ubuntu 的图形化界面操作和 Windows 下基本一致;

这里着重提一下:

1. 界面分辨率设置:通过右上角设置按键设置对应的分辨率

2. 输入法设置:可以通过 win + 空格;或者右上角设置 中文输入法;

1. Ubuntu(Linux) 终端操作

        从这里,我们开始学习 Ubuntu 操作系统的重点 —— 终端操作;

        Ubuntu 界面右击 :打开终端

        上述字符串中:@ 前面的 “quest - qaozus” 是当前的用户名字,@ 后面的 zhangshao - virtual - machine 是机器的名字;最后面的 $ 表示当前用户是普通用户,我们可以在提示符后面输入命令,比如输入命令:ls

        ls 命令用于打印出当前所在目录中所有文件和文件夹

guest-qaozus@zhangshao-virtual-machine:~$ ls
examples.desktop  公共的  模板  视频  图片  文档  下载  音乐  桌面
guest-qaozus@zhangshao-virtual-machine:~$ 

1.1 Shell 操作

首先先来介绍一个什么叫做 Shell ?

        在学习 Linux 的过程中会频繁的看到 Shell 这个词语。简单来说 Shell 就是敲命令

        国内把 Linux 下通过命令行输入命令叫做 “敲命令”,国外人给这个动作起了个洋气的名字:Shell;

        因此以后看到 Shell 这个词语第一反应就是在终端敲命令,将多个 Shell 命令按照一定的格式放到一个文本中,那么这个文本就叫做 Shell 脚本

        严格意义上讲,Shell 是一个应用程序,它负责接收用户输入的命令,然后根据命令做出相应的动作,Shell 负责将应用层或者用户层输入的命令传递给系统内核,由操作系统内核来完成相应的工作,然后将结果反馈给应用层或者用户。

上面我们提到了 Shell 就是 “敲命令”,那么既然是命令,肯定是有格式的,Shell 命令的格式如下:

command  -option  [argument]// command:Shell 命令名称
// option: 选项,同一种命令可能会有不同的选项,不同的选项其实现的功能不同
// argument:Shell 命令是可以带参数的,也可以不带参数运行

同样以 ls 命令为例,下面三种 ls 命令,不同格式其结果也不同;

ls
ls -l
ls /usr// 切记:输入ls之后需要输入一个空格;// ls:用来打印当前目录下的所有文件和文件夹
// ls -l:打印当前目录下所有文件和文件夹,但是此命令会列出所有文件和文件夹的详细信息
// ls /usr:用来打印出目录 /usr 下的所有文件和文件夹

Shell 命令是支持自动补全功能的;因为 Shell 命令非常多,如果不做自动补全的话就需要用户去记忆这些命令的全部字母;

也就是输入命令的前一部分字母,然后按下 TAB 键,如果只有一个命令匹配的话那么会自动补全这个命令剩下的字母。如果有多个命令匹配的话,再按一下 TAB 键就会列出所有匹配的命令;

1.2 常用的 Shell 命令

        嵌入式开发用的最多的就是 Shell 命令,Shell 命令是所有 Linux 系统发行版所通用的

1. 目录信息查看命令:ls

文件浏览是最基本的操作,Shell 下文件浏览命令为 ls,格式如下:

ls [选项] [路径]

ls:用于显示指定目录下的内容,列出指定目录下包含的所有的文件以及子目录,它的主要参数有:

-a:显示所有文件以及子目录,包括以 ‘.’(点) 开头的隐藏文件

-l:显示文件的详细信息,比如文件的形态、权限、所有者、大小等信息

-t:将文件按照创建时间排序列出

-A:和 -a 一样,但是不列出 “.”(点) (当前目录) 和 “..”(父目录)

-R:递归列出所有文件,包括子目录中的文件

Shell 命令里面的参数是可以组合在一起用的,比如组合 “-al” 就是显示所有文件的详细信息,包括以 “.” 开头的隐藏文件;

2. 目录切换命令 cd

要想在 Shell 中切换到其他的目录,使用的命令是 cd,命令格式如下:

cd [路径]

路径就是我们要进入的目录路径:

cd /       :进入根目录 / 下,Linux 系统的根目录为 /

cd /usr :进入到目录 /usr 下

cd ..      :进入到上一级目录

cd ~      :切换到当前用户主目录

首先 cd 切换路径到目录 /usr 下,然后 ls 查看该目录下的文件;

3. 当前路径显示命令 pwd

pwd 命令用来显示当前工作目录的绝对路径,不需要任何的参数;

4. 系统信息查看命令 uname

要查看当前系统信息,可以使用命令 uname,命令格式如下:

uname [选项]

可选的选项参数如下:

-r:列出当前系统的具体内核版本号

-s:列出系统内核名称

-o:列出系统信息

5. 清屏命令 clear

clear 命令用于清除终端上的所有内容,只留下一行提示符;

6. 切换用户执行身份命令 sudo

 Ubuntu(Linux)是一个允许多用户的操作系统,其中权限最大的是超级用户 root,有时候我们执行一些操作的时候需要用 root 用户身份才能执行,比如安装软件。通过 sudo 命令可以暂时将身份切换到 root 用户。当使用 sudo 命令的时候是需要输入密码的,这里要注意输入密码是没有任何提示的!

sudo  [选项]  [命令]

-h:显示帮助信息

-l:列出当前用户可执行与不可执行的命令

-p:改变询问密码的提示符

        假设我们现在要创建一个新的用户 Test,创建新用户的命令为:adduser,创建新用户的权限只有 root 用户才有,我们在装系统的时候创建的那个用户是没有这个权限的。所有创建新用户的话需要使用 sudo 命令以 root 用户执行 adduser 这个命令;

我们一开始直接使用 adduser test 来添加用户的时候提示我们只有 root 才能将用户或组添加到系统。

所以我们要在前面加上 sudo 命令,表示以 root 用户执行 adduser 操作;

7. 添加用户命令 adduser

在上一个命令中已经使用过了 adduser,此命令需要 root 身份去运行。

adduser [参数] [用户名]

常用的参数如下:

-system:添加一个系统用户

-home DIR:DIR表示用户的主目录路径

-uid ID:ID表示用户的uid

-ingroup GRP:表示用户所属的组名

8. 删除用户命令 deluser

既然有创建用户的命令,那么一定也有删除用户的命令,删除用户的命令 deluser:

deluser [参数] [用户名]

-system:当用户是一个系统用户的时候才能删除

-remove-home:删除用户的主目录

-remove-all-file:删除与用户相关的所有文件

-backup:备份用户信息

同样的,命令 deluser 也要使用 sudo 来以 root 用户运行;

9. 切换用户命令 su

在学习 sudo 命令的时候说道,sudo 是以 root 命令身份执行一个命令,并没有更改当前的用户身份(可以简单的理解是:就是当前的 Shell 语句变成了 root 身份,下一条语句又会变回普通用户的身份);但是命令 su 可以直接将当前的用户身份切换到 root 身份(这个意思就是说:不只是当前的 Shell 语句,下一条语句不加 sudo 也是在 root 身份下运行的),表示可以尽情的实现任何操作了!因为已经获取到了系统的最高权限!!!

su [选项] [用户名]

-c -command:执行指定的命令,执行完毕后恢复原用户身份

-login:改变用户身份,同时改变工作目录和 PATH 环境变量

-m:改变用户身份的时候不改变环境变量

-h:显示帮助信息

此时表示切换到了 root 身份!

注意:由于 root 用户的权限太大,稍微不注意就可以删除掉系统文件,导致系统崩溃,因此强烈建议,不要以 root 用户运行 Ubuntu。当用到 root 身份执行某些命令的时候使用 sudo 命令即可;

10. 显示文件内容命令 cat

查看文件内容是最常见的操作,在 windows 下可以直接使用记事本查看一个文本文件内容,Linux 下也有类似记事本的软件,叫做 gedit,找到一个文本文件,双击打开,默认使用的就是 gedit;

Shell 下命令 cat 也是实现读取文件内容的:

cat [选项] [文件]

-n:由 1 开始对所有输出的行进行编号

-b:和 -n 类似,但是不对空白行编号

-s:当遇到连续两个行以上空白行的话就合并为一个行空白行

11. 显示和配置网络属性命令 ifconfig

ifconfig 是一个跟网络属性配置和显示密切相关的命令,通过此命令可以查看当前网络属性,也可以通过此命令配置网络属性,比如设置网络 IP地址;

ifconfig interface options | address 

interface:网络接口名称,比如 eth0 等

up:开启网络设备

down:关闭网络设备

add:IP 地址,设置网络 IP 地址

netmask add:子网掩码

12. 系统帮助命令 man

Ubuntu 系统中有很多命令,这些命令都有不同的格式,不同的格式对应不同的功能,要完全记住这些命令和格式几乎是不可能的,必须要有一个帮助手册;

Ubuntu 提供了一个命令来帮助用户完成这个功能,就是 man 命令,通过 man 命令可以查看其他命令的语法格式、主要功能、主要参数说明等,man 命令格式如下:

man [命令名]

13. 系统重启命令 reboot

通过 Ubuntu 主界面右上角的齿轮按钮来选择关机或者重启系统,同样我们也可以使用 Shell 命令 reboot 来重启系统,直接输入命令 reboot 然后点击回车键即可

14. 系统关闭命令 poweroff

使用 poweroff 命令可以直接关闭系统,在终端输入命令 poweroff ,然后按下回车键即可关闭 Ubuntu 系统

15. 软件安装命令 install

Ubuntu 系统类似于 Windows 系统,如何在 Ubuntu 下安装软件,因为 Ubuntu 安装软件不像 Windows 下那样,直接点击 .exe 文件就可以安装了。

Ubuntu 下很多软件是需要自行下载源码的,下载源码以后自行编译,编译完成以后使用命令 install 来安装

    install [选项]...  [-T] 源文件   目标文件
或:install [选项]...        源文件   目录
或:install [选项]...   -t   目录    源文件...
或:install [选项]...   -d   目录...

install 命令是将文件(通常是编译后的文件)复制到目的位置

1.3 APT 下载工具

对于长时间使用 Windows 的我们,下载安装软件非常容易,Windows 下有很多的下载软件, Ubuntu 同样有不少的下载软件。

本节我们学习用的最多的下载工具:APT 下载工具,APT 下载工具可以实现软件自动下载、配置、安装二进制或者源码的功能。

APT 下载工具和我们前面讲解的 install 命令结合在一起构成了 Ubuntu 下最常用的下载和安装软件方法

APT 采用 C/S 模式,也就是客户端/服务器模式,我们的 PC 机作为客户端,当需要下载软件的时候就向服务器请求,因此我们需要知道服务器的地址,也叫做安装源或者更新源

APT 工具常用的命令如下:

1. 更新本地数据库

        如果想要查看本地哪些软件可以更新的话可以使用如下命令:

sudo apt - get updata

这个命令会访问源地址,并且获取软件列表并保存在本电脑上;

2. 检查依赖关系

        有时候本地某些软件可能会存在依赖关系,所谓依赖关系就是 A 软件依赖于 B 软件。通过如下命令可以查看依赖关系,如果存在依赖关系的话 APT 会提出解决方案:

sudo apt - get check

3. 软件安装

        安装软件,使用如下命令:

sudo apt - get install package - name

可以看出上述命令是由 apt - getinstall 组合在一起的,package - name 就是要安装的软件名字,apt - get 负责下载软件,install 负责安装软件。

比如我们要安装软件 Ubuntu 下的串口工具 “minicom”,我们就可以使用如下命令:

sudo apt - get install minicom

执行上述命令以后就会自动下载和安装 minicom 软件;

4. 软件更新

        有时候我们需要更新软件,更新软件的话使用命令:

sudo apt - get upgrade package - name

其中 package - name 为要升级的软件名字,比如我们升级刚刚安装的 minicom 这个软件

5. 卸载软件

        如果要卸载某个软件的话使用如下命令:

sudo apt - get remove package - name

其中 package - name 是要卸载的软件;

1.4 Ubuntu 下文本编辑

        进行文本编辑最常用的就是:Gedit。Gedit 是一个窗口式的编译器;本节我们学习:VI/VIM编译器

        VIM 编译器是 VI 编译器的升级版本,VI/VIM 编译器都是一种基于指令式的编译器,不需要鼠标,也没有菜单,仅仅使用键盘来完成所有的编辑工作;

安装 VIM
sudo apt-get install vim// 如果出现没有权限访问 root 的话,只需要将客人模式转换成个人用户,输入密码即可;

安装完成以后就可以使用 VIM 编译器了,VIM 编译器有 3 种工作模式:输入模式、指令模式和底行模式,通过切换不同的模式可以完成不同的功能;

在终端输入 test.txt 就会创建一个 vim 的文档

此时创建的文档是根本无法输入的。因为默认的 VIM 默认是以只读模式打开的文档,因此我们要切换到输入模式,切换到输入模式的命令如下:

  • i                        在当前光标所在字符的前面吗,转为输入模式
  • I                        在当前光标所在行的行首转换为输入模式
  • a                       在当前光标所在字符的后面,转为输入模式
  • A                       在光标所在行的行尾,转换为输入模式
  • o                       在当前光标所在行的下方,新建一行,并转为输入模式
  • O                       在当前光标所在行的上方,新建一行,并转为输入模式
  • s                        删除光标所在字符
  • r                        替换光标处字符

        最常用的就是 a ,当我们在键盘上按下 a 的时候,终端会提示 插入 的字样,表示我们进入到了输入模式;

此时也表示我们可以正常的输入文本了;

注意:Ctrl + s 可以在 Windows 系统下保存文档,但是在 Ubuntu 下是不可以保存的;

Ubuntu 下保存文档需要:从现在的输入模式切换到指令模式,方式是按下键盘的 ESC 键,按下 ESC 键以后终端左下角的插入字样就会消失,此时就不可以输入文本了,如果此时还需要输入文本,那么就需要重新输入 a 进入输入模式;

        指令模式:顾名思义就是输入指令的模式,这些指令是控制文本的指令;

1. 移动光标指令

h(或左方向键)        光标左移一个字符

I(或右方向键)         光标右移一个字符

j(或下方向键)         光标下移一行

k(或上方向键)        光标上移一行

nG                              光标移动到第 n 行首

n+                               光标下移 n 行

n-                                光标上移 n 行

2. 屏幕翻滚指令

Ctrl + f                        屏幕向下翻一页,相当于下一页

Ctrl + b                       屏幕向上翻一页,相当于上一页

3. 复制、删除和粘贴指令

cc                                删除整行,并且修改整行内容

dd                                删除整行,不提供修改功能

ndd                              删除当前行向下 n 行

x                                  删除光标所在的字符

X                                 删除光标前面的一个字符

nyy                              复制当前行及下面 n 行

p                                  粘贴最近复制的内容

通过上面的内容,可以看到,还是没有保存文本的命令;

因为保存文本的命令在底行模式中,我们要先进入指令模式,进入底行模式的方式是先进入指令模式下,然后在指令模式下输入 :,进入底行模式

进入底行模式以后终端的左下角就会出现符号:(冒号),我们可以在冒号的后面输入命令,常用的命令如下:

  • x                        保存当前文档并退出
  • q                        退出
  • w                        保存文档
  • q!                     退出 VI/VIM,不保存文档

当我们保存文档以后,可以使用 cat 来查看刚刚新建的 test.txt 文档的内容

除了可以在指令模式下输入:冒号进入底行模式之外,还可以在指令模式下输入 “/” 进入底行模式

在底行模式下,我们可以文本搜索指定的内容,比如说搜索 test.txt 文件中的 “嵌入式” 三个字,按下回车键就可以找到与字符串 “嵌入式” 匹配的部分;

1.5 Linux 文件系统

1.5.1 Linux 文件系统简介

        操作系统的基本功能之一就是文件管理,而文件的管理是由文件系统来完成的。Linux 支持多种文件系统,本节我们来学习 Linux 下的文件系统、文件系统类型、文件系统结构和文件系统相关的 Shell 命令

        操作系统就是处理各种数据的,这些数据在硬盘上就是二进制,人类是不能直接看懂这些二进制数据的,要先有一个翻译器,将这些二进制的数据还原为人类能看懂的文件形式,这个工作就是由文件系统来完成的,文件系统的目的就是实现数据的查询和存储,由于使用场合、使用环境的不同,Linux 有多种文件系统,不同的文件系统支持不同的体系。文件系统是管理数据的,而可以存储数据的物理设备有硬盘、U盘、SD卡等。不同的存储设备其物理结构不同,不同的物理结构就需要不同的文件系统去管理,比如管理 NAND FLASH 的话使用 YAFFS 文件系统,管理硬盘、SD卡的话就是 ext 文件系统等等;

        将一个磁盘分为 C 盘、D盘等等,称作磁盘的分割,Linux 下也支持磁盘分割,Linux 下常用的磁盘分割工具为:fdisk;在 Windows 下我们创建一个新的盘符以后都要做格式化处理,格式化其实就是给这个盘符创建文件系统的过程;同样的,在 Linux 下我们使用 fdisk 创建好分区以后也是要先在创建好的分区上面创建文件系统,也就是格式化

        Windows 下有磁盘分区的概念,可以分为 C、D 盘,但是 Linux 下没有这个概念,因此在 Linux 下找不到像 C、D、E盘这样的东西;在Linux下创建好一个分区并且格式化以后我们要将其 “挂载” 到一个目录下才能访问这个分区。Windows 的文件系统挂载过程是其内部完成的,用户是看不到的,Linux 下我们使用 mount 命令来挂载磁盘。挂载磁盘的时候是需要确定挂载点的,也就是你的这个磁盘要挂载到哪个目录下。

1.5.2 Linux 文件系统类型

        Windows 下有 FAT、NTFS 和 exFAT 这样的文件系统,在 Linux 下又有哪些文件系统呢?

        Linux 下的文件系统主要是:ext2、ext3 和 ext4 等文件系统。Linux 还支持其他的 UNIX 文件系统,比如 XFS、JFS、UFS等,也支持 Windows 的 FAT 文件系统和网络文件系统 NFS 等。

ext2 文件系统:

        ext2 是 Linux 早期的文件系统,但是随着技术的发展 ext2 文件系统已经不推荐使用了,ext2 是一个非日志文件系统,大多数的 Linux 发行版都不支持 ext2 文件系统了。

ext3 文件系统:

        ext3 是在 ext2 的基础上发展起来的文件系统,完全兼容 ext2 文件系统,ext3 是一个日志文 件系统,ext3 支持大文件,ext3 文件系统的特点有如下:

        高可靠性:使用 ext3 文件系统的话,即使系统非正常关机、发生死机等情况,恢复 ext3 文件系统也只需要数十秒。

        数据完整性:ext3 提高了文件系统的完整性,避免意外死机或者关机对文件系统的伤害。

        文件系统速度:ext3 的日志功能对磁盘驱动器读写头进行了优化,文件系统速度相对与 ext2 来说没有降低。

        数据转换:从 ext2 转换到 ext3 非常容易,只需要两条指令就可以完成转换。用户不需要花 时间去备份、恢复、格式化分区等,用 ext3 文件系统提供的工具 tune2fs 即可轻松的将 ext2 文 件系统转换为 ext3 日志文件系统。ext3 文件系统不需要经过任何修改,可以直接挂载成 ext2 文 件系统。

ext4 文件系统:

        ext4 文件系统是在 ext3 上发展起来的,ext4 相比于 ext3 提供了更佳的性能和可靠性,并且功能更丰富,ext4 向下兼容 ext3 和 ext2,因此可以将 ext2 和 ext3 挂载为 ext4。

        如果想知道我们安装的 Ubuntu 使用的哪个版本的文件系统呢?可以在终端中输入命令查询:

df  -T  -h

        框起来的就是我们安装的 Ubuntu 这个磁盘,在 Linux 下一切皆为文件,“/dev/sdal” 就是我们的磁盘分区,可以看出这个磁盘分区类型是 ext4,它的挂载点是 “/”,也就是根目录;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/220242.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据分析基础之《matplotlib(3)—散点图》

一、常见图形种类及意义 1、matplotlib能够绘制折线图、散点图、柱状图、直方图、饼图。我们需要知道不同的统计图的意义,以此来决定选择哪种统计图来呈现我们的数据 2、折线图plot 说明:以折线的上升或下降来表示统计数量的增减变化的统计图 特点&…

智能优化算法应用:基于白鲸算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于白鲸算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于白鲸算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.白鲸算法4.实验参数设定5.算法结果6.参考文献7.MATLAB…

实践干货 | CodeWave如何支持多人协作开发应用

在传统软件开发领域里,要完成具备一定复杂程度的软件,通常都会由一个研发团队协作开发。软件复杂度越大,研发团队的规模也就越大。 为了让研发团队能够高效的进行协同开发,业务引入了优秀的代码版本管理工具,比如传统软…

C语言union联合体(共用体)

一、定义 联合体(共用体)是一种特殊的自定义的数据类型,它包含一系列的成员变量,这些成员变量共用一块内存空间。 语法: union 标识符 { data_type 标识符1; data_type 标识符2; . . . dat…

【数组Array】力扣-5 最长回文子串

目录 题目描述 题解labuladong 题目描述 给你一个字符串 s,找到 s 中最长的回文子串。 如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。 示例 1: 输入:s "babad" 输出:"bab"…

在javaweb项目中resource目录和webapp目录的区别

resource存放的是一些配置文件,这些文件一般都是与java代码相关的配置文件,比如这里的jdbc配置文件,在java中可以使用这个目录下的文件,不用写全路径 webapp存放的是web的资源文件,如jsp,html,css,js文件,在网页请求会…

【NSX-T】5. 搭建NSX-T环境 —— NSX架构基础配置

目录 5. 准备 NSX 基础架构5.1 准备工作5.2 创建传输域(1)创建 Overlay 传输域(2)创建 VLAN 传输域 5.3 创建 IP 池5.4 准备 ESXi 主机 参考资料 5. 准备 NSX 基础架构 5.1 准备工作 vCenter 中已存在 DVS。 为 NSX-T 创建两个 …

计算机毕业设计 基于Web的城市旅游网站的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

ARM I2C通信

1.概念 I2C总线是PHLIPS公司在八十年代初推出的一种串行的半双工同步总线,主要用于连接整体电路2.IIC总线硬件连接 1.IIC总线支持多主机多从机,但是在实际开发过程中,大多数采用单主机多从机模式 2.挂接到IIC总线上,每个从机设备都…

现代雷达车载应用——第2章 汽车雷达系统原理 2.4节 雷达波形和信号处理

经典著作,值得一读,英文原版下载链接【免费】ModernRadarforAutomotiveApplications资源-CSDN文库。 2.4 雷达波形和信号处理 对于连续波雷达来说,波形决定了其基本信号处理流程以及一些关键功能。本节将以FMCW波形为例,讨论信号…

EasyRecovery2024苹果电脑mac破解版安装包下载

EasyRecovery是一款操作安全、价格便宜、用户自主操作的非破坏性的只读应用程序,它不会往源驱上写任何东西,也不会对源驱做任何改变。它支持从各种各样的存储介质恢复删除或者丢失的文件,其支持的媒体介质包括:硬盘驱动器、光驱、…

VS Code串口监视插件Serial Monitor

文章目录 初步使用参数设置VS Code插件 初步使用 Serial Monitor,即串行监视器,提供串口和TCP协议的通信监控功能。在插件栏搜索安装之后,按下Ctrl打开终端,终端界面会多出一个串行监视器选项卡,进入之后,…

golang反射(reflect)虽爽,但很贵

标准库 reflect 为 Go 语言提供了运行时动态获取对象的类型和值以及动态创建对象的能力。反射可以帮助抽象和简化代码,提高开发效率。 但是使用反射势必会多出大量的操作指令,导致性能下降 案例 字段赋值方式对比 type Student struct {Name string…

如何使用 Redis 快速实现分布式锁?

本文我们来讨论如何使用 Redis 快速实现分布式锁。 分布式锁有很多种解决方案,前面简单介绍过,Redis 可以通过 set key 方式来实现分布式锁,但实际情况要更加复杂,比如如何确保临界资源的串行执行,如何及时释放&#…

用Flask搭建简单的web模型部署服务

目录结构如下: 分类模型web部署 classification.py import os import cv2 import numpy as np import onnxruntime from flask import Flask, render_template, request, jsonifyapp Flask(__name__)onnx_session onnxruntime.InferenceSession("mobilen…

Tomcat部署Activiti官方 流程设计器【数据库更换为Mysql !!!】

一、官网下载activiti6 解压后结构如下: database: 存放数据库对象相关脚本,包含不同的数据库脚本 libs: 包含activiti开发过程中需要用到的jar包和源码,不建议通过jar包直接引用,建议通过maven进行管理 wars&am…

大模型应用_FastGPT

1 功能 整体功能,想解决什么问题 官方说明:FastGPT 是一个基于 LLM 大语言模型的知识库问答系统,提供开箱即用的数据处理、模型调用等能力。同时可以通过 Flow 可视化进行工作流编排,从而实现复杂的问答场景!个人体会…

ubuntu将本机的wifi网络通过网线分享给另一台机器(用于没有有线网络,重装系统后无wifi驱动或者另一台设备没有wifi网卡)

1.将两台机器通过网线连接 2.在pci ethernet中设置选择另一台机器的mac address,ipv4中选择share to other computer,另一台机器上设置为动态ip,连接上之后另一台机器即可上网。

大数据机器学习深度解读DBSCAN聚类算法:技术与实战全解析

大数据机器学习深度解读DBSCAN聚类算法:技术与实战全解析 一、简介 在机器学习的众多子领域中,聚类算法一直占据着不可忽视的地位。它们无需预先标注的数据,就能将数据集分组,组内元素相似度高,组间差异大。这种无监…

Github 2023-12-14开源项目日报 Top10

根据Github Trendings的统计,今日(2023-12-14统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量非开发语言项目5TypeScript项目2JavaScript项目1Jupyter Notebook项目1PHP项目1 基于项目的学习 创建周期&a…