RHEL8.0安装+基础命令练习+discuz(lamp)论坛搭建

news2024/12/23 3:07:32

上课练习环境:

RHEL8.0系统镜像下载:

链接1:https://pan.baidu.com/s/1wX2j-aTO1VRcHQYpCDYnEg 提取码:6buv

链接2:https://ws28.cn/f/32i4oq8p5r1

(下载完2个文件后只需要解压001,推荐压缩软件bandizip)

CENTOS7-8

RHEL7-8

虚拟机vmware-workstation软件下载:

https://my.vmware.com/cn/web/vmware/downloads/info/slug/desktop_end_user_computing/vmware_workstation_pro/15_0

服务器:

CPU:多核心多线程

内存:容量较大

主板:扩展性比较好

硬盘:数量多,容量大

环境安装步骤:

后面的步骤是一直下一步直到完成

然后确定,开启虚拟机

安装完后重启

系统如何登录:

使用管理员root用户登录

关闭自动锁屏

Linux系统一切皆文件

Linux严格区分大小写

Linux文档=文件+目录

Linux中以颜色字体来区分不同的文档属性:

白色:文本文件

绿色:可执行文件(程序、脚本、代码)

蓝色加粗字体:目录

蓝绿色:快捷方式

红色:压缩包、iso镜像文件

shell:Linux系统的指令解释器:有很多种

其中默认使用的shell是BASH

[root@localhost ~]#

[当前登录的用户@主机名 当前所在目录的名称]#或$

~当前用户的家目录

#当前用户是管理员root

$当前用户是普通用户

补充快捷键(Linux一般不使用小键盘):

ctrl  shift   + 增大字体

ctrl  -   缩小字体

一条命令的组成:

命令字 [选项] [参数]

自定义格式查看时间日期:

date +"自定义格式"

%Y

%m

%d

%H

%M

%S

/etc/passwd:用于存放用户信息,一个用户在文件中占一行

wc -l /etc/passwd

Linux操作系统的关机与重启

reboot:重启

poweroff:关机

shutdown常用用法:

shutdown  -h  now  立即关机

shutdown  -h 10:10      10:10分关机

shutdown  -h  +10     10分钟后关机

shutdown  -r    now  立即重启

init   0    关机

init   6    重启

常用用法:

init   3 切换到字符界面

init   5 切换到图形界面

练习的时候,mv命令的使用对象,建议使用前面cp命令的复制品,防止移动了系统重要文件导致系统宕机

练习的时候,rm命令的使用对象,建议使用前面cp命令的复制品,防止移动了系统重要文件导致系统宕机

[root@localhost/]# vim  /root/test.txt

vim编辑器:

               按i键

命------------------------------------------------>编辑模式(插入模式)

模           按:键

式------------------------------------------------>末行模式

进入到vim编辑器默认的模式是命令模式(输入各种快捷键完成一些列的操作)

命令模式无法编辑文本内容:如果想要编辑文本内容,需要先进入编辑模式

编辑模式与末行模式之间无法直接切换,需要先按Esc回到命令模式再切换

末行模式可以保存文档

末行模式:wq保存并退出

末行模式:q!强制不保存并退出

[root@localhost/]# cat  /root/test.txt

第二天:存储管理

文件系统原理

添加一块磁盘用于实验

除了磁盘类型需要选择为SATA,其它一直点下一步直到完成

查看硬盘:

[root@localhost ~]# lsblk

#sdb即为新添加的磁盘

[root@localhost ~]# fdisk /dev/sdb

添加一个主分区:按n,然后连续按4次回车,然后+size{K,M,G,T,P},再回车

命令(输入 m 获取帮助):【n,回车】

分区类型

   p   主分区 (0个主分区,0个扩展分区,4空闲)

   e   扩展分区 (逻辑分区容器)

选择 (默认 p):【直接回车】

将使用默认回应 p。

分区号 (1-4, 默认  1): 【直接回车】

第一个扇区 (2048-41943039, 默认 2048): 【直接回车】

上个扇区,+sectors 或 +size{K,M,G,T,P} (2048-41943039, 默认 41943039): 【+1G,回车】

创建了一个新分区 1,类型为“Linux”,大小为 1 GiB。

【重复①添加主分区步骤三次,分别添加大小为1G、2G、1G的三个主分区】

添加扩展分区:按n,然后按四次回车

命令(输入 m 获取帮助):【n,回车】

分区类型

   p   主分区 (3个主分区,0个扩展分区,1空闲)

   e   扩展分区 (逻辑分区容器)

选择 (默认 e):【直接回车】

将使用默认回应 e。

已选择分区 4

第一个扇区 (8390656-41943039, 默认 8390656): 【直接回车】

上个扇区,+sectors 或 +size{K,M,G,T,P} (8390656-41943039, 默认 41943039): 【直接回车】

创建了一个新分区 4,类型为“Extended”,大小为 16 GiB。

【##扩展分区为了不造成空间的浪费,所以需要把所有剩余空间划分完】

添加逻辑分区:按n,然后按2次回车,然后+size{K,M,G,T,P},再回车

命令(输入 m 获取帮助):【n,回车】

所有主分区都在使用中。

添加逻辑分区 5

第一个扇区 (8392704-41943039, 默认 8392704): 【直接回车】

上个扇区,+sectors 或 +size{K,M,G,T,P} (8392704-41943039, 默认 41943039): 【+1G,回车】

创建了一个新分区 5,类型为“Linux”,大小为 1 GiB。

【##逻辑分区是在扩展分区的基础上划分的,逻辑分区的总大小不能超过扩展分区】

完成分区后,需要确认(p指令可以查看分区列表)所有的分区是没有问题的,如果发现有问题,则q退出(只要没有保存,分区都还未生效),重新分区;如果没问题,则w保存并退出

[root@localhost ~]# lsblk /dev/sdb

NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT

sdb      8:16   0  20G  0 disk

├─sdb1   8:17   0   1G  0 part

├─sdb2   8:18   0   2G  0 part

├─sdb3   8:19   0   1G  0 part

├─sdb4   8:20   0   1K  0 part

└─sdb5   8:21   0   1G  0 part

[root@localhost ~]# mkfs.xfs /dev/sdb1

###格式化的命令:mkfs.文件系统类型     /dev/分区路径

[root@localhost ~]# mount /dev/sdb1 /mnt/  ###这是临时挂载

临时挂载:重启失效

永久挂载:开机自动挂载

[root@localhost ~]# umount /mnt          ###先卸载原有的临时挂载

[root@localhost ~]# vim /etc/fstab        ###在文件中添加以下一行

/dev/sdb1   /part1    xfs                     defaults                               0    0

分区路径    挂载点   文件系统类型   挂载参数(默认写defaults)    0    0

[root@localhost ~]# mkdir /part1  ###创建挂载点

[root@localhost ~]# mount -a   ###检查/etc/fstab文件中是否有格式错误,并挂载未被挂载的设备

[root@localhost ~]# df -Th

/dev/sdb1             xfs      1014M   40M  975M    4% /part1

[root@localhost ~]# touch /part1/1.txt

[root@localhost ~]# blkid /dev/sdb1  ###查看分区的uuid号和文件系统类型(格式化之后才能看到)

交换分区(交换空间)

第一步:添加一个分区(512M):分区的大小决定了交换空间的大小

第二步:格式化成交换空间

[root@localhost ~]# mkswap /dev/sdb6

第三步:临时启用交换分区(重启失效)

[root@localhost ~]# swapon /dev/sdb6

[root@localhost ~]# swapon -s

[root@localhost ~]# swapoff /dev/sdb6    ###停用交换分区

第四步:设置交换空间开机自动启用

[root@localhost ~]# vim /etc/fstab     ###往配置文件中添加以下的一行

/dev/sdb6   swap    swap defaults 0 0

###交换空间在文件系统类型那个字段填写swap即可

[root@localhost ~]# swapon -a    ###类似于mount  -a,是swap专用

[root@localhost ~]# swapon -s

逻辑卷分区:

第一步:标准分区(200M)

第二步:创建卷组

[root@localhost ~]# vgcreate vg1 /dev/sdb7

  Physical volume "/dev/sdb7" successfully created.      

###创建卷组时,会自动创建对应的物理卷

  Volume group "vg1" successfully created

第三步:划分逻辑卷

[root@localhost ~]# lvcreate -L 100M -n lv1 vg1

第四步:逻辑卷格式化挂载使用

[root@localhost ~]# mkfs.ext4 /dev/vg1/lv1

[root@localhost ~]# vim /etc/fstab

/dev/vg1/lv1 /part2 ext4 defaults 0 0

[root@localhost ~]# mkdir /part2

[root@localhost ~]# mount -a

[root@localhost ~]# df -Th

扩大逻辑卷的空间:

情况1:卷组剩余空间足够

[root@localhost ~]# lvextend -L +50M /dev/vg1/lv1

[root@localhost ~]# resize2fs /dev/vg1/lv1

刷新文件系统:

①ext文件系统:resize2fs    /逻辑卷分区路径

②xfs文件系统:xfs     /逻辑卷分区路径

情况2:卷组剩余空间不够

(1)扩大卷组的空间

[root@localhost ~]# vgextend vg1 /dev/sdb2

(2)按照第一种情况操作

卷组划分空间的最小单位PE:默认大小4M

修改已存在卷组的PE大小

[root@localhost ~]# vgchange -s 2M vg1

要求:

PE大小必须为2的n次幂

PE大小必须能被基于这个卷组创建的逻辑卷大小整除

创建卷组时指定PE大小

[root@localhost ~]# vgcreate -s 8M vg2 /dev/sdb3

[root@localhost ~]# vgdisplay vg2

[root@localhost ~]# lvcreate -l 20 -n lv2 vg2

###-l:可以指定逻辑卷大小为多少个PE

高级存储功能:

准备工作:

[root@localhost ~]# mount /dev/sr0 /mnt/

[root@localhost ~]# mount /dev/sr0 /mnt/

[root@localhost ~]# ls /mnt/

[root@localhost ~]# rpm -ivh /mnt/BaseOS/Packages/dnf-utils-4.0.2.2-3.el8.noarch.rpm

[root@localhost ~]# yum-config-manager --add file:///mnt/BaseOS

[root@localhost ~]# yum-config-manager --add file:///mnt/AppStream

[root@localhost ~]# vim /etc/yum.conf

gpgcheck=1改成gpgcheck=0

[root@localhost ~]# yum clean all

[root@localhost ~]# yum repolist

Stratis配置

安装软件包

[root@localhost ~]# yum -y install stratis-cli stratisd

启动服务并设置服务开机自启

[root@localhost ~]# systemctl enable --now stratisd

添加一块硬盘,方法参考上面的笔记

[root@localhost ~]# stratis pool create pool1 /dev/sdc

查看可用池的列表

[root@localhost ~]# stratis pool list

添加一个物理设备(块设备)到已存在的存储池

[root@localhost ~]# stratis pool add-data pool1 /dev/sdd

查看存储池有哪些块设备

[root@localhost ~]# stratis blockdev list

创建动态、灵活的文件系统

[root@localhost ~]# stratis filesystem create pool1 fs1

查看文件系统

[root@localhost ~]# stratis filesystem list

挂载文件系统

[root@localhost ~]# blkid /stratis/pool1/fs1

/stratis/pool1/fs1: UUID="8e01f884-1d75-4f2d-a77f-8564568d7f7a" TYPE="xfs"

###查看UUID及文件系统类型

[root@localhost ~]# vim /etc/fstab

UUID="8e01f884-1d75-4f2d-a77f-8564568d7f7a" /part3 xfs defaults,x-systemd.requires=stratisd.service 0 0

[root@localhost ~]# mkdir /part3

[root@localhost ~]# mount -a

[root@localhost ~]# df -Th

创建测试文件

[root@localhost ~]# vim /part3/file1

hello world

创建快照

[root@localhost ~]# stratis filesystem snapshot pool1 fs1 snap1

[root@localhost ~]# stratis filesystem list

[root@localhost ~]# rm -rf /part3/file1

[root@localhost ~]# mount /stratis/pool1/snap1 /part3/

[root@localhost ~]# cat /part3/file1

hello world

VDO卷的配置:

安装软件包(默认已安装)

[root@localhost ~]# yum -y install vdo kmod-kvdo

添加一块硬盘,创建vdo卷,指定逻辑大小50G

[root@localhost ~]# vdo create -n vdo1 --device /dev/sde --vdoLogicalSize 50G

查看vdo卷的属性与状态

[root@localhost ~]# vdo status -n vdo1

显示vdo卷列表

[root@localhost ~]# vdo list

停止和启动vdo卷

[root@localhost ~]# vdo stop -n vdo1

[root@localhost ~]# vdo start -n vdo1

查看是否启用了压缩和重复数据删除的功能

[root@localhost ~]# vdo status -n vdo1 | grep Dedu

    Deduplication: enabled

[root@localhost ~]# vdo status -n vdo1 | grep Com

    Compression: enabled

格式化vdo卷

[root@localhost ~]# mkfs.xfs -K /dev/mapper/vdo1

-K:加快格式化的速度

检查设备事件(第⑦格式化)处理是否完成

[root@localhost ~]# udevadm settle

挂载使用

[root@localhost ~]# blkid | grep vdo1

/dev/mapper/vdo1: UUID="fb6083b5-29cf-4d8b-8d81-f687b883cfbf" TYPE="xfs"

复制UUID

[root@localhost ~]# vim /etc/fstab

UUID="fb6083b5-29cf-4d8b-8d81-f687b883cfbf" /part4 xfs defaults,x-systemd.requires=vdo.service 0 0

[root@localhost ~]# mkdir /part4

[root@localhost ~]# mount -a

查看卷的初始信息

[root@localhost ~]# vdostats --human-readable

准备一个大文件用于测试

[root@localhost ~]# dd if=/dev/urandom of=/root/testfile1 bs=1M count=300

把文件复制到vdo卷的挂载目录

[root@localhost ~]# cp testfile1 /part4/testfile1.1

[root@localhost ~]# vdostats --human-readable

重复多次操作,观察Used与saving%变化

[root@localhost ~]# cp testfile1 /part4/testfile1.2

[root@localhost ~]# vdostats --human-readable

[root@localhost ~]# cp testfile1 /part4/testfile1.3

[root@localhost ~]# vdostats --human-readable

WEB服务器:

准备工作:设置防火墙放行所有服务

[root@localhost ~]# firewall-cmd --set-default-zone=trusted

[root@localhost ~]# mount /dev/sr0 /mnt/

[root@localhost ~]# yum clean all

[root@localhost ~]# yum repolist

xshell实现图形工具调用:

配置简单的httpd服务:

(1)装包:安装httpd软件包

[root@localhost ~]# yum -y install httpd

(2)起服务:启动服务并设置服务开机自启

[root@localhost ~]# systemctl enable --now httpd

(3)本机访问测试

[root@localhost ~]# firefox http://127.0.0.1

(4)书写一个自己的页面文件

httpd默认网页文件根目录:/var/www/html

默认主页文件名称要求:index.html

[root@localhost ~]# vim /var/www/html/index.html

<marquee> <font color=red> <h1>TEST

滚动              红色字体            字体变大

再次本机测试:

[root@localhost ~]# firefox http://127.0.0.1

httpd的默认配置:

Listen:监听地址:端口号(默认:80)

ServerName:本站点注册的DNS名称(域名或网址)

DocumentRoot:网页文件根目录(默认:/var/www/html)

DirectoryIndex:首页、主页文件名称(默认:index.html)

##########################################################################

物理机准备:

一、修改windows中的hosts文件(需要使用管理员身份进行修改)

(1)在windows-开始菜单-附件-记事本-右击:管理员身份打开

(2)点击打开

(3)

(4)

添加一行:172.25.0.11  www0.example.com server0.example.com webapp0.example.com

(5)保存

二、控制面板\网络和 Internet\网络连接

修改的ip地址

验证:

虚拟机准备:

配置临时IP地址(重启失效)

[root@localhost ~]# ifconfig ens160 172.25.0.11/24

访问测试:使用物理机浏览器访问:http://www0.example.com/

##########################################################################

自定义网页文件根目录:

[root@localhost ~]# vim /etc/httpd/conf/httpd.conf

将这一行配置修改成:DocumentRoot "/var/www/myweb"

[root@localhost ~]# mkdir /var/www/myweb

[root@localhost ~]# systemctl restart httpd

[root@localhost ~]# vim /var/www/myweb/index.html

myweb

虚拟web主机:在一台服务器上提供多个不同的web站点

(只要使用了虚拟web主机,主配置文件中配置的站点就会失效)

构建方式:

基于域名的虚拟主机(主流)

基于端口的虚拟主机

基于IP地址的虚拟主机(淘汰)

[root@localhost ~]# vim /etc/httpd/conf.d/web01.conf

<VirtualHost *:80>

ServerName www0.example.com

DocumentRoot /var/www/myweb

</VirtualHost>

<VirtualHost *:80>

ServerName server0.example.com

DocumentRoot /var/www/qq

</VirtualHost>

[root@localhost ~]# mkdir /var/www/qq

[root@localhost ~]# vim /var/www/qq/index.html

这是qq的网站

[root@localhost ~]# systemctl restart httpd

物理机浏览器访问测试:http://www0.example.com/http://server0.example.com/

动态网站:

[root@localhost ~]# mkdir /var/www/webapp

手写一个php测试页面

[root@localhost ~]# vim /var/www/webapp/test.php

<?php

phpinfo();

?>

[root@localhost ~]# vim /etc/httpd/conf.d/web01.conf

修改配置文件成这个样子

<VirtualHost *:80>

ServerName www0.example.com

DocumentRoot /var/www/myweb

</VirtualHost>

<VirtualHost *:80>

ServerName server0.example.com

DocumentRoot /var/www/qq

</VirtualHost>

<VirtualHost *:80>

ServerName webapp0.example.com

DocumentRoot /var/www/webapp

</VirtualHost>

[root@localhost ~]# systemctl restart httpd

物理机访问测试:

[root@localhost ~]# yum -y install php

[root@localhost ~]# systemctl restart httpd

物理机访问测试:http://webapp0.example.com/test.php

[root@localhost ~]# vim /etc/httpd/conf.d/web01.conf

<VirtualHost *:80>

ServerName webapp0.example.com

DocumentRoot /var/www/webapp

Alias  /  /var/www/webapp/test.php                      ###添加这一行配置

</VirtualHost>

[root@localhost ~]# systemctl restart httpd

物理机再次访问测试:http://webapp0.example.com/

安全web服务:

(1)安装支持https安全网站服务的模块

[root@localhost ~]# yum -y install mod_ssl

[root@localhost ~]# ls /etc/httpd/conf.d/ssl.conf

(2)生成加密私钥

[root@localhost ~]# openssl genrsa -out server.key 2048

(3)生成证书请求文件;按照以下方法填写国家名、省市、公司等信息

[root@localhost ~]# openssl req -new -key server.key -out server.csr

Country Name (2 letter code) [XX]:CN

State or Province Name (full name) []:GuangDong

Locality Name (eg, city) [Default City]:GuangZhou

Organization Name (eg, company) [Default Company Ltd]:XunFang

Organizational Unit Name (eg, section) []:Zhyx

Common Name (eg, your name or your server's hostname) []:localhost

Email Address []:redhat@xunfang.com

A challenge password []:redhat

An optional company name []: 直接回车

(4)生成自签名证书类型为x509,有效期3650天

[root@localhost ~]# openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt

(5)修改配置文件

[root@localhost ~]# vim /etc/httpd/conf.d/ssl.conf

新开终端:

[root@localhost ~]# cp server.crt /etc/pki/tls/certs/server0.crt

[root@localhost ~]# cp server.key /etc/pki/tls/private/server0.key

(6)重启服务

[root@localhost ~]# systemctl restart httpd

(7)访问测试:物理机浏览器访问:https://www0.example.com/

http协议:默认端口号80

https协议:安全http默认端口号是443

MariaDB数据库:

(1)安装软件包

[root@localhost ~]# yum -y install mariadb mariadb-server

[root@localhost ~]# ls /var/lib/mysql/

[root@localhost ~]# systemctl enable --now mariadb

[root@localhost ~]# ls /var/lib/mysql/

(2)数据库初始化配置

[root@localhost ~]# mysql      ###空密码登录数据库

MariaDB [(none)]> SHOW DATABASES;  ###列出所有的数据库

MariaDB [(none)]> CREATE DATABASE linux; ###新建一个数据库linux

MariaDB [(none)]> DROP DATABASE linux;  ###删除一个数据库linux

MariaDB [(none)]> exit

[root@localhost ~]# mysqladmin -u root password 'redhat' ###初始化设置密码

[root@localhost ~]# mysqladmin -u root -p password  ###交互式修改密码更安全

Enter password:【原密码,回车】

New password: 【新密码,回车】

Confirm new password: 【新密码,回车】

[root@localhost ~]# mysql -uroot -p密码    ###非交互式登录数据库

[root@localhost ~]# mysql -uroot -p    ###也可以使用交互式登录更安全

(3)数据库基本操作

MariaDB [(none)]> SHOW DATABASES;

MariaDB [(none)]> USE mysql;     ###切换到某一个数据库

MariaDB [mysql]> SHOW TABLES;    ###列出当前所在库的所有表

MariaDB [mysql]> SELECT * FROM user;   ###查看一张表的所有内容

MariaDB [mysql]> DESC user;     ###描述表,筛选出想要看的字段

MariaDB [mysql]> SELECT Host,User,Password FROM user; ###查询列出想要看的字段

MariaDB [mysql]> SELECT Host,User,Password FROM user WHERE Password='';

###条件查询,筛选出符合条件“密码Password字段为空”的记录

MariaDB [mysql]> DELETE FROM user WHERE Password='';

###删除空密码用户

(4)数据库授权

需求:创建一个数据库mydb,该库允许lisi查询,此用户的密码为redhat

MariaDB [mysql]> CREATE DATABASE mydb;

MariaDB [mysql]> GRANT SELECT ON mydb.* TO lisi@localhost IDENTIFIED BY 'redhat';

MariaDB [mysql]> SELECT Host,User,Password FROM user;

LAMP论坛搭建:

安装软件包:

[root@server0 ~]# yum–y install httpd php php-xml php-mysqlnd mariadb-server

部署论坛:

(1)数据库准备

MariaDB [(none)]> CREATE DATABASE bbsdb;

MariaDB [(none)]> GRANT ALL ON bbsdb.* TO runbbs@localhost IDENTIFIED BY 'pwd123';

MariaDB [(none)]> SELECT Host,User,Password FROM mysql.user;

MariaDB [(none)]> exit

(2)代码准备

[root@server0 ~]# yum  -y install lrzsz

把代码压缩包拉到xshell窗口,松手完成上传

或者

先使用ftp软件将代码从windows共享给linux系统

[root@server0 ~]# wget ftp://172.25.0.44/Discuz_X3.3_SC_UTF8.zip

(3)解压代码

[root@server0 ~]# mkdir dir

[root@server0 ~]# unzip Discuz_X3.3_SC_UTF8.zip -d dir/

[root@server0 ~]# rm -rf /var/www/html/*

[root@server0 ~]# cp -r dir/upload/* /var/www/html/

[root@server0 ~]# chown -R apache:apache /var/www/html/

[root@server0 ~]# setenforce 0

[root@server0 ~]# systemctl restart httpd

(4)修改httpd的配置

[root@localhost ~]# vim /etc/httpd/conf.d/web01.conf

<VirtualHost *:80>

ServerName www0.example.com

DocumentRoot /var/www/myweb改成DocumentRoot /var/www/html

</VirtualHost>

[root@server0 ~]# systemctl restart httpd

(5)安装论坛:

物理机浏览器访问:http://172.25.0.11

根据提示,类似于windows安装软件那样完成论坛安装

安装完成后,点击右下角

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

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

相关文章

树莓派4B串口通信配置方式

目录 1树莓派4B的安装&#xff1a; 1.1安装Serial与使用 1.1.1安装serial 1.1.2打开串口 1.2设置硬件串口为GPIO串口&#xff08;修改串口映射关系&#xff09; 1.2.1修改配置文件 2.1minicom串口 2.1.1安装minicom 这篇博客源于&#xff1a;工创赛。需要让树莓派与STM…

Java集合处理Stream流使用解析

Stream Stream是Java 8引入的一个新的API&#xff0c;用于处理集合数据的流式操作。它提供了一种更简洁、更灵活的方式来处理集合数据&#xff0c;可以实现更高效的数据处理和转换。 使用Stream&#xff0c;可以通过一系列的操作来对集合数据进行筛选、映射、排序、聚合等操作…

SpringBoot终极讲义第一章笔记

01.Spring Boot简介 1.Spring的本质和作用 spring的本质就是一个"容器",它负责创建并管理容器中的对象(组件,也称为Bean),并管理组件之间的依赖关系(何为依赖关系:A组件需要调用B组件方法,称为A依赖于B) 因此学习Spring最常用的两个注解: Component:将被修饰的类…

使用VSCODE 调试ros2具体设置

vscode 调试 ROS2 张得帅&#xff01; 于 2023-09-09 15:39:39 发布 456 收藏 1 文章标签&#xff1a; vscode ros2 版权 1、在下列目录同层级找到.vscode文件夹 . ├── build ├── install ├── log └── src 2、 安装ros插件 3、创建tasks.json文件&#xff0c;添…

真正理解浏览器渲染更新流程

浏览器渲染更新过程 文章目录 浏览器渲染更新过程帧维度解释帧渲染过程一些名词解释Renderer进程GPU进程rendering(渲染) vs painting(绘制)⭐位图纹理Rasterize(光栅化) 1. 浏览器的某一帧开始&#xff1a;vsync2. Input event handlers3. requestAnimationFrame4. 强制重排(可…

Git/GitHub/Idea的搭配使用

目录 1. Git 下载安装1.1. 下载安装1.2. 配置 GitHub 秘钥 2. Idea 配置 Git3. Idea 配置 GitHub3.1. 获取 GitHub Token3.2. Idea 根据 Token 登录 GitHub3.3. Idea 提交代码到远程仓库3.3.1. 配置本地仓库3.3.2. GitHub 创建远程仓库1. 创建单层目录2. 创建多层目录3. 删除目…

【数据结构】二叉树链式结构补充和二叉树的顺序结构及实现

&#x1f407; &#x1f525;博客主页&#xff1a; 云曦 &#x1f4cb;系列专栏&#xff1a;数据结构 &#x1f4a8;吾生也有涯&#xff0c;而知也无涯 &#x1f49b; 感谢大家&#x1f44d;点赞 &#x1f60b;关注&#x1f4dd;评论 文章目录 前言&#x1f4da;一、二叉树链…

机器人过程自动化(RPA)入门 8. 异常处理、调试和日志记录

有时,自动化程序可能无法执行。为了处理此类情况,我们使用异常处理活动。在本章中,我们将从UiPath中可用的各种类型的异常处理方法、您可能遇到的异常以及如何处理它们开始。我们还将学习日志记录。本章涉及的一个重要主题是调试,以检查工作流是否正常工作,并更正任何错误…

Neural Networks for Fingerprint Recognition

Neural Computation ( IF 3.278 ) 摘要&#xff1a; 在采集指纹图像数据库后&#xff0c;设计了一种用于指纹识别的神经网络算法。当给出一对指纹图像时&#xff0c;算法输出两个图像来自同一手指的概率估计值。在一个实验中&#xff0c;神经网络使用几百对图像进行训练&…

Python学习之索引与切片

Python学习之索引与切片 s “0abcdefghijklmnopqrstuvwxyz”&#xff0c;第一个元素‘0’&#xff0c;索引号为0&#xff0c;最后一个元素‘z’&#xff0c;索引号为26 1. s[0]获取索引号为0的元素 2. s[1:3]获取索引号为1的元素&#xff0c;直到但不包括索引号为3的元素。即…

大数据-玩转数据-Flink Sql 窗口

一、说明 时间语义&#xff0c;要配合窗口操作才能发挥作用。最主要的用途&#xff0c;当然就是开窗口然后根据时间段做计算了。Table API和SQL中&#xff0c;主要有两种窗口&#xff1a;分组窗口&#xff08;Group Windows&#xff09;和 含Over字句窗口&#xff08;Over Win…

S32K144 GPIO编程

前面的文章介绍了如何在MDK-Keil下面进行S32K144的开发&#xff0c;下面就使用该工程模板进行GPIO LED的编程试验。 1. 开发环境 S32K144EVB-Q100开发板MDK-Keil Jlink 2. 硬件连接 S32K144EVB-Q100开发板关于LED的原理图如下&#xff1a; 也就是具体连接关系如下&#xf…

【知识点随笔分析 | 第五篇】简单介绍什么是QUIC

前言&#xff1a; 随着互联网的快速发展&#xff0c;传统的基于TCP的协议开始显现出一些局限性。TCP在连接建立和拥塞控制方面存在一定的延迟&#xff0c;这可能导致用户在访问网页、观看视频或玩网络游戏时感受到不必要的等待时间。而QUIC作为一种新兴的传输协议&#xff0c;试…

Java编程技巧:swagger2、knif4j

目录 1、springbootswagger2knif4j2、springbootswagger3knif4j3、springcloudswagger2knif4j 1、springbootswagger2knif4j 2、springbootswagger3knif4j 3、springcloudswagger2knif4j 注意点&#xff1a; Api注解&#xff1a;Controller类上的Api注解需要添加tags属性&a…

P1311 [NOIP2011 提高组] 选择客栈(小小的也很可爱【指小动规】)

[NOIP2011 提高组] 选择客栈 题目描述 丽江河边有 n n n 家很有特色的客栈&#xff0c;客栈按照其位置顺序从 1 1 1 到 n n n 编号。每家客栈都按照某一种色调进行装饰&#xff08;总共 k k k 种&#xff0c;用整数 0 ∼ k − 1 0 \sim k-1 0∼k−1 表示&#xff09;&am…

stm32 - 中断

stm32 - 中断 中断向量表NVIC 嵌套中断向量控制器优先级 中断向量表 自定义的中断服务函数&#xff0c;由编译器随机指定函数地址 stm32的中断&#xff0c;由于硬件的限制&#xff0c;只能跳到固定的地址执行程序 为了能让硬件跳转到一个不固定的中断函数中&#xff0c; 需要在…

基于Qt Creator开发的坦克大战小游戏

目录 介绍开发环境技术介绍安装说明项目目录设计思想项目介绍运行演示知识点记录Gitee源码链接 介绍 &#xff01;&#xff01;&#xff01;资源图片是从网上免费下载&#xff0c;源码都是原创&#xff0c;供个人学习使用&#xff0c;非盈利&#xff01;&#xff01;&#xff…

Acwing 836. 合并集合

Acwing 836. 合并集合 题目描述思路讲解代码展示 题目描述 思路讲解 并查集&#xff1a;代码短&#xff0c;思路精巧&#xff0c;面试常见。 近乎O&#xff08;1&#xff09;的时间复杂度。 代码展示 #include<iostream>using namespace std;const int N 100010; in…

Python海洋专题四之水深地图图像修饰

Python海洋专题四之水深地图图像修饰 海洋与大气科学 上期会修改画布大小、坐标轴字体 没有对数据本身进行修改 本期内容 1&#xff1a;修改colormap&#xff01; 2&#xff1a;倒置colormap 3&#xff1a;加上colorbar、调整其显示位置和字体大小 1&#xff1a;修改colo…

OpenCV实现视频的追踪(meanshift、Camshift)

目录 1&#xff0c;meanshift 1.1 算法流程 1.2 算法实现 1.3 代码实现 1.4 结果展示 1&#xff0c;meanshift 1.1 算法流程 1.2 算法实现 1.3 代码实现 import numpy as np import cv2 as cv# 读取视频 cap cv.VideoCapture(video.mp4)# 检查视频是否成功打开 if n…