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

Ubuntu22.04搭建LAMP环境(linux服务器学习笔记)

目录

引言:

一、系统更新

二、安装搭建Apache2

1.你可以通过以下命令安装它:

2.查看Apache2版本

3.查看Apache2运行状态

4.浏览器访问

三、安装搭建MySQL

1.安装MySQL

2.查看MySQL 版本

 3.安全配置MySQL

3.1是否设置密码?(按y|Y表示是,按其他任意键表示否) :

3.2是否删除匿名用户  ?(按y|Y表示是,按其他任意键表示否)

3.3禁止root远程登录?(按y|Y表示是,按其他任意键表示否) :

3.4删除'test'数据库及其访问权限?(按y|Y表示是,按其他任意键表示否) :

3.5现在重新加载权限表?(按y|Y表示是,按其他任意键表示否) :

4.创建新的用户

4.1root用户的身份登录到MySQL

4.2创建新用户 

4.3给新建用户添加权限

5看情况修改配置文件

 情况1:不允许远程访问(默认)

 情况2:允许远程访问(需要配置)

四、安装PHP及其扩展

1.安装PHP及其扩展

 2.启用php-mysqli扩展

        2.1查看PHP的版本

        2.2vim查看编辑PHP的配置文件

 3.安装完成后,重启Apache2服务以使PHP生效:

五、测试LAMP环境

六、总结:



引言

LAMP(Linux, Apache, MySQL, PHP)是一种流行的开源Web服务器软件栈,广泛应用于构建动态网站和Web应用程序。本文将整合本人学习Linux搭建过的单体服务器,详细介绍如何在Ubuntu 22.04上搭建LAMP环境,从系统更新到安装和配置各个组件,再到测试环境是否搭建成功。

一、系统更新

在开始之前,确保你的Ubuntu 22.04系统是最新的。打开终端并输入以下命令来更新系统:

sudo apt update
sudo apt upgrade

如下图,等待更新完毕.....

二、安装搭建Apache2

Apache2是LAMP环境中的Web服务器。

1.你可以通过以下命令安装它:
sudo apt install apache2

 如下图,等待安装完毕.....

2.查看Apache2版本
sudo apache2 -v

  如下图,我这边的版本是Apache/2.4.52 (Ubuntu)

3.查看Apache2运行状态

安装完成后,你可以使用如下命令检查Apache2是否正在运行。

sudo systemctl status apache2

如下图,我这边显示Apache HTTP服务器已经成功启动,并且正在运行。

4.浏览器访问

在浏览器中访问服务器的IP地址,以验证Apache2的默认页面是否可以正常显示。

三、安装搭建MySQL

1.安装MySQL
sudo apt install mysql-server mysql-client

等待安装完毕....

2.查看MySQL 版本
sudo mysql --version

如下图: 

 3.安全配置MySQL

安装完成后,运行以下命令进行安全配置,如设置root密码、删除匿名用户等。

sudo mysql_secure_installation

运行后如下图: 

3.1是否设置密码?(按y|Y表示是,按其他任意键表示否) :

要求设置一个密码。询问你,是否想要设置密码?如果是,输入y或Y;如果不设置,输入其他。

这边选择y,输入后回车,如下:

        要求你选择一个级别来设置密码验证策略。     

  • 低级别(LOW):密码长度至少为8个字符。
  • 中级别(MEDIUM):密码长度至少为8个字符,且必须包含数字、大小写字母以及特殊字符。
  • 高级别(STRONG):密码长度至少为8个字符,包含数字、大小写字母、特殊字符,并且不能是字典文件中的单词(这通常意味着密码需要足够复杂,以避免与常见单词或短语匹配)。

分别对应[0,1,2],输入对应的数字即可:

3.2是否删除匿名用户  ?(按y|Y表示是,按其他任意键表示否)

在大多数情况下,建议移除匿名用户以增强数据库的安全性。如果你确实需要允许某些用户以匿名方式访问数据库(尽管这在大多数情况下是不推荐的),你应该仔细考虑并设置适当的权限和访问控制。

输入y后按enter  成功删除 

3.3禁止root远程登录?(按y|Y表示是,按其他任意键表示否) :

为了增强MySQL服务器的安全性,通常建议仅允许root用户从本地主机(即服务器本身)进行连接,而不允许从远程位置连接。这是因为root用户拥有对数据库的完全访问权限,如果允许远程连接,那么任何能够访问该网络的人都有可能尝试猜测或破解root密码,进而获得对数据库的完全控制权。

输入Y,禁止root远程登录。回车后,如下:

3.4删除'test'数据库及其访问权限?(按y|Y表示是,按其他任意键表示否) :

在生产环境中,出于安全考虑,通常建议删除默认的'test'数据库。这是因为如果保留该数据库,任何能够连接到MySQL服务器的人都可能访问它,这可能会带来安全风险,尤其是如果该数据库包含敏感信息或测试数据时。

输入Y,删除'test'数据库及其访问权限。回车后,如下:

3.5现在重新加载权限表?(按y|Y表示是,按其他任意键表示否) :

在MySQL中,权限表存储了关于用户账户、它们可以访问哪些数据库、表以及可以执行哪些操作的信息。当你对MySQL的用户权限进行更改(例如添加新用户、删除用户、更改用户密码或修改用户权限)后,这些更改不会立即生效,直到你重新加载权限表。

重新加载权限表是一个必要的步骤,以确保MySQL服务器知道最新的权限设置,并能够根据这些设置来允许或拒绝用户的访问请求。

输入Y,选择重新加载权限表。回车后,如下:

All done! 意味着所有的步骤都已经完成,如移除匿名用户、禁止root远程登录、删除'test'数据库以及重新加载权限表等。

4.创建新的用户

由于上述步骤禁止root远程访问,所以要添加一个用户和密码。

4.1root用户的身份登录到MySQL
sudo mysql -u root -p

回车后输入前面设置的root用户的密码,如下图 :

4.2创建新用户 

输入以下命令创建 新用户zzj2144

create user 'zzj2144'@'%' identified by 'zzj123456789';

 成功创建:

查看用户    

select user,host,plugin from mysql.user;

执行这条查询语句后,你将得到一个结果集,其中包含了MySQL服务器上所有用户账户的用户名、允许连接的主机以及使用的身份验证插件。

4.3给新建用户添加权限

由于新建的MySQL用户基本上没有什么权限,我们需要手动添加。

GRANT ALL PRIVILEGES ON mydatabase.* TO 'zzj2144'@'%';

这里的ALL PRIVILEGES表示所有权限,mydatabase.*表示mydatabase数据库中的所有对象,'zzj2144'@'%'表示用户zzj2144可以从任何主机连接。

 成功添加

5看情况修改配置文件

vim查看编辑MySQL服务器配置文件

vim /etc/mysql/mysql.conf.d/mysqld.cnf
 情况1:不允许远程访问(默认)
bind-address            = 127.0.0.1
mysqlx-bind-address     = 127.0.0.1

 情况2:允许远程访问(需要配置)
user            = mysqlpid-file       = /var/run/mysqld/mysqld.pidsocket = /var/run/mysqld/mysqld.sockport           = 3306datadir        = /var/lib/mysql

四、安装PHP及其扩展

 PHP是LAMP环境中的脚本语言,用于处理Web页面上的动态内容。你可以通过以下命令安装PHP及其必要的扩展:

1.安装PHP及其扩展
sudo apt install php libapache2-mod-php php-mysql

等待安装...

 2.启用php-mysqli扩展
        2.1查看PHP的版本
php -v

 这边PHP的版本是8.1

        2.2vim查看编辑PHP的配置文件
sudo vim /etc/php/你的php版本/apache2/php.ini

如:vim /etc/php/8.1/apache2/php.ini

去掉这个注释:

 3.安装完成后,重启Apache2服务以使PHP生效:
sudo systemctl restart apache2

五、测试LAMP环境

为了验证LAMP环境是否搭建成功,你可以创建一个简单的PHP文件来测试。在Apache2的Web根目录(通常是/var/www/html)中创建一个名为info.php的文件,并输入以下PHP代码:

<?php
phpinfo();
?>

 保存文件后,在浏览器中访问http://<服务器IP地址>/info.php,到这里,如果环境配置成功的话你应该会看到PHP的配置信息页面。如下图:

总结:

  1. 防火墙设置:确保你的防火墙允许HTTP和HTTPS流量通过。

  2. 安全更新:定期检查并更新系统、Apache2、数据库和PHP的安全补丁。

  3. 备份:定期备份数据库和Web内容,以防数据丢失。

  4. 日志监控:定期检查Apache2和数据库的日志文件,以监控服务器的运行状态和潜在的安全问题。

 恭喜你到这里,在Ubuntu 22.04上成功搭建一个功能完善的LAMP环境。接下来将在此基础上安装phpMyAdmin。欲知后事,且待下节。

相关文章:

Ubuntu22.04搭建LAMP环境(linux服务器学习笔记)

目录 引言&#xff1a; 一、系统更新 二、安装搭建Apache2 1.你可以通过以下命令安装它&#xff1a; 2.查看Apache2版本 3.查看Apache2运行状态 4.浏览器访问 三、安装搭建MySQL 1.安装MySQL 2.查看MySQL 版本 3.安全配置MySQL 3.1是否设置密码&#xff1f;(按y|Y表…...

C#与PLC通讯时,数据读取和写入浮点数,字节转换问题(ModbusTCP)

在与PLC进行通讯时&#xff0c;会发现一个问题&#xff0c;浮点数1.2接收过来后&#xff0c;居然变成了两个16位的整数。 经过一系列的分析&#xff0c;这是因为在PLC存储浮点数时32位&#xff0c;我们接收过来的数据会变成两个16位的高低字节&#xff0c;而且我们进行下发数据…...

synchronized的特性

1.互斥 对于synchronized修饰的方法及代码块不同线程想同时进行访问就会互斥。 就比如synchronized修饰代码块时&#xff0c;一个线程进入该代码块就会进行“加锁”。 退出代码块时会进行“解锁”。 当其他线程想要访问被加锁的代码块时&#xff0c;就会阻塞等待。 阻塞等待…...

NLP与LLM的工程化实践与学习思考 - 说说知识图谱

NLP与LLM的工程化实践与学习思考[24年半年工作总结] - 说说知识图谱 0 真的就是先说说1 为什么知识图谱什么是知识图谱&#xff1f;基于图的数据结构&#xff1f;基于数据结构的图&#xff1f;知识图谱的技术要点两个技术维度&#xff1a;知识、图七个技术要点&#xff1a;表示…...

php 系统函数 记录

PHP intval() 函数 PHP函数介绍—array_key_exists(): 检查数组中是否存在特定键名 如何使用PHP中的parse_url函数解析URL PHP is_array()函数详解&#xff0c;PHP判断是否为数组 PHP函数介绍&#xff1a;in_array()函数 strpos定义和用法 strpos() 函数查找字符串在另一字符串…...

游戏引擎学习第38天

仓库: https://gitee.com/mrxiao_com/2d_game 回顾上次的内容。 我们之前讨论了将精灵放在屏幕上&#xff0c;但颜色错误的问题。问题最终查明是因为使用了一个调整工具&#xff0c;导致文件的字节顺序发生了变化。重新运行“image magic”工具对一些大图像进行重新处理后&am…...

Android 15 行为变更:所有应用

Android 15 平台包含一些可能会影响您的应用的行为变更。以下行为变更将影响在 Android 15 上运行的所有应用&#xff0c;无论采用哪种 targetSdkVersion 都不例外。您应该测试您的应用&#xff0c;然后根据需要进行修改&#xff0c;以适当地支持这些变更。 此外&#xff0c;请…...

基于pytorch的深度学习基础4——损失函数和优化器

四&#xff0e;损失函数和优化器 4.1 均值初始化 为减轻梯度消失和梯度爆炸&#xff0c;选择合适的权重初值。 十种初始化方法 Initialization Methods 1. Xavie r均匀分布 2. Xavie r正态分布 4. Kaiming正态分布 5. 均匀分布 6. 正态分布 7. 常数分布 8. 正交矩阵初…...

《Clustering Propagation for Universal Medical Image Segmentation》CVPR2024

摘要 这篇论文介绍了S2VNet&#xff0c;这是一个用于医学图像分割的通用框架&#xff0c;它通过切片到体积的传播&#xff08;Slice-to-Volume propagation&#xff09;来统一自动&#xff08;AMIS&#xff09;和交互式&#xff08;IMIS&#xff09;医学图像分割任务。S2VNet利…...

Webpack Source Map 配置详解与优化策略

前言 Source Map 是前端开发和调试中的核心工具之一&#xff0c;它可以显著提高我们在代码调试和错误追踪方面的效率。随着 JavaScript 应用越来越复杂&#xff0c;代码打包和优化成为必然&#xff0c;而这一过程会使得调试变得异常困难。Source Map 的出现&#xff0c;为我们…...

el-tree组件刷新指定id的节点数据

示例 封装一个可以刷新多个指定id的节点数据。 <template><el-tree ref"treeRef"></el-tree> </template><script lang"ts" setup> const treeRef ref()function refreshTreeById(nodeIds: number[]) {nodeIds.forEach((…...

深入 Java 基础 XML:高级特性与最佳实践

在上一篇文章中&#xff0c;我们对 Java 基础 XML 有了一个初步的认识&#xff0c;了解了 XML 的基本结构以及在 Java 中常见的解析方式。今天&#xff0c;我们将进一步深入探讨 Java 与 XML 的结合&#xff0c;包括一些高级特性和最佳实践。 一、XML 命名空间 在复杂的 XML …...

aws(学习笔记第十六课) 使用负载均衡器(ELB)解耦webserver以及输出ELB的日志到S3

aws(学习笔记第十六课) 使用负载均衡器(ELB)以及输出ELB的日志到S3 学习内容&#xff1a; 使用负载均衡器(ELB)解耦web server输出ELB的日志到S3 1. 使用负载均衡器(ELB) 全体架构 使用ELB(Elastic Load Balancer)能够解耦外部internet访问和web server之间的耦合&#xff0c…...

Ubuntu与Centos系统有何区别?

Ubuntu和CentOS都是基于Linux内核的操作系统&#xff0c;但它们在设计理念、使用场景和技术实现上有显著的区别。以下是详细的对比&#xff1a; 1. 基础和发行版本 Ubuntu&#xff1a; 基于Debian&#xff0c;使用.deb包管理系统。包含两个主要版本&#xff1a; LTS&#xff…...

【OpenDRIVE_Python】使用python脚本读取txt指定内容,输出OpenDRIVE数据中对应的信息

示例代码说明&#xff1a; 读取txt指定内容如地物id&#xff0c;输出OpenDRIVE数据中的对应地物id和名称name信息为xml文件 import xml.dom.minidom from xml.dom.minidom import parse from xml.dom import Node import sys import os # 读取OpenDRIVE文件路径 xml_filepath…...

Qt入门8——Qt文件

1. Qt文件概述 文件操作是应用程序必不可少的部分。Qt作为⼀个通用开发库&#xff0c;提供了跨平台的文件操作能力。Qt 提供了很多关于文件的类&#xff0c;通过这些类能够对文件系统进行操作&#xff0c;如文件读写、文件信息获取、文件复制或重命名等。 2. 输入输出设备类 在…...

【每天一道面试题】JWT是什么?Java-jwt是什么?(2024/12/7)

【每天一道面试题】JWT是什么&#xff1f;Java-jwt是什么&#xff1f;&#xff08;2024/12/7) JWT&#xff1a;JSON Web Token 俗称令牌 当我们想实现&#xff1a; 1.用户不用输入用户名和密码就可以登录&#xff08;不用每次都输入用户名和密码&#xff09; 2.用户的信息在传…...

ORB-SLAM3源码学习:ImuTypes.cc:Eigen::Matrix3f RightJacobianSO3计算右雅可比矩阵

前言 计算右雅可比矩阵这个函数涉及到了函数重载&#xff0c;可以接受不同的参数来实现计算右雅可比矩阵。 代码分析 右雅可比矩阵&#xff1a; /** * brief 计算右雅可比* param xyz 李代数* return Jr*/ Eigen::Matrix3f RightJacobianSO3(const float &x, const fl…...

电子公文交换系统设计 ——基于商用密码标准的密码模块的应用

文章目录 《密码系统设计》实验实验项目实验四 密码模块的应用实践要求&#xff08;40 分&#xff09; 《密码系统设计》实验 实验项目 实验序号实验名称实验学时数实验目的实验内容实验类型学生学习预期成果实验四密码模块的应用6基于商用密码标准的密码模块的应用对电子公文…...

java抽象类

目录 一.抽象类 1.什么是抽象类 2.抽象类特点 (1)抽象类不能直接实例化对象 (2)可以包含抽象方法和具体方法 (3)可以有构造方法 (4)抽象类必须被继承&#xff0c;并且继承后子类要重写父类中的抽象方法&#xff0c;否则子类也是抽象类&#xff0c;必须要使用 abstract 修…...

渤海证券基于互联网环境的漏洞主动防护方案探索与实践

来源&#xff1a;中国金融电脑 作者&#xff1a;渤海证券股份有限公司信息技术总部 刘洋 伴随互联网业务的蓬勃发展&#xff0c;证券行业成为黑客进行网络攻击的重要目标之一&#xff0c;网络攻击的形式也变得愈发多样且复杂。网络攻击如同悬于行业之上的达摩克利斯之剑&…...

ClouderaManager 集群搭建

前提&#xff1a;服务器之前做过域名映射、免密登录 ClouderaManager 集群 1. 组件分布规划 服务器服务器h1zk、hdfs(dn)、yarn(nm)、spark、kafka、flumeh2hdfs(nn-standy)、yarn(rm-active)、sparkh3hdfs(nn-active)、yarn(rm-standy)、hive、sparkh4zk、hdfs(dn)、yarn(n…...

Nginx部署PHP服务端跨域以及跨域携带cookie

🤵 作者:coderYYY 🧑 个人简介:前端程序媛,目前主攻web前端,后端辅助,其他技术知识也会偶尔分享🍀欢迎和我一起交流!🚀(评论和私信一般会回!!) 👉 个人专栏推荐:《前端项目教程以及代码》 ✨一、前言 前端技术栈Vue+后端技术栈PHP+Mysql鉴权以及存储信息用…...

流量转发利器之Burpsuite概述(1)

目录 一、Burpsuite Burp Suite Spider 的主要特点&#xff1a; 在 Burp Suite 中使用 Spider&#xff1a; Spider 的用例&#xff1a; 限制&#xff1a; 声明&#xff1a;学习视频来自b站up主 泷羽sec&#xff0c;如涉及侵权马上删除文章 声明&#xff1a;本文主要用作技…...

【优选算法 二分查找】二分查找算法入门详解:二分查找小专题

x 的平方根 题目解析 算法原理 解法一&#xff1a; 暴力解法 如果要求一个数(x)的平方根&#xff0c;可以从 0 往后枚举&#xff0c;直到有一个数(a)&#xff0c;a^2<x&#xff0c;(a1)^2>x&#xff0c;a即为所求&#xff1b; 解法二&#xff1a;二分查找 …...

LeetCode—56. 合并区间(中等)

题目描述&#xff1a; 以数组 intervals 表示若干个区间的集合&#xff0c;其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间&#xff0c;并返回 一个不重叠的区间数组&#xff0c;该数组需恰好覆盖输入中的所有区间 。 示例1&#xff1a; 输入&#x…...

SHELL----正则表达式

一、文本搜索工具——grep grep -参数 条件 文件名 其中参数有以下&#xff1a; -i 忽略大小写 -c 统计匹配的行数 -v 取反&#xff0c;不显示匹配的行 -w 匹配单词 -E 等价于 egrep &#xff0c;即启用扩展正则表达式 -n 显示行号 -rl 将指定目录内的文件打…...

web斗地主游戏实现指北

前后端通信 作为一个即时多人游戏&#xff0c;不论是即时聊天还是更新玩家状态&#xff0c;都需要服务端有主动推送功能&#xff0c;或者客户端轮询。轮询的时间间隔可能导致游玩体验差&#xff0c;因为不即时更新&#xff0c;而且请求数量太多可能会打崩服务器。 建议在cs间…...

ES(elasticsearch)整合Spring boot使用实例

1.1通过docker安装es详细教程参考 docker部署elasticsearch(内涵集群部署的compose文件)-CSDN博客 2.1创建MySQL数据库&#xff0c;通过sql命令进行表的创建与数据的写入&#xff08;sql命令如下&#xff09; /*Navicat Premium Data TransferSource Server : localSo…...

创建简单的 PL/pgSQL 存储过程

文章目录 创建简单的 PL/pgSQL 存储过程CREATE OR REPLACE FUNCTIONadd_two_numbers(a integer, b integer)RETURNS integerAS$$ ... $$函数体LANGUAGE plpgsql 创建带有 IN 和 OUT 参数的存储过程创建修改数据的存储过程创建带有异常处理的复杂存储过程 在 PostgreSQL 中&…...

前端路径“@/“的使用和配置

环境&#xff1a;vitets 需要安装types/node npm install types/node --save-dev在tsconfig.json中添加 如果有tsconfig.app.json和tsconfig.node.json文件&#xff0c;则在app.json中添加 "compilerOptions": {"baseUrl":".","paths&q…...

彻底理解ThreadLocal的应用场景和底层实现

一.概念 定义&#xff1a; ThreadLocal 是 Java 中所提供的线程本地存储机制&#xff0c;可以利用该机制将数据缓存在某个线程内部&#xff0c;该线程可以在任意时刻、任意方法中获取缓存的数据。 其实是可以通过调用 Set() 方法往里面存入值&#xff0c;存入的值是每个线程互…...

机器学习(5)无监督模型之降维PCA算法

主成分分析&#xff08;Principal Component Analysis, PCA&#xff09; 是一种经典的无监督学习算法&#xff0c;主要用于数据降维、特征提取和数据可视化。它通过线性变换将数据从原始空间映射到一个新的空间&#xff0c;使得数据的方差最大化&#xff0c;从而实现降维。PCA …...

React 组件中 State 的定义、使用及正确更新方式

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;React篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来React篇专栏内容React 组件中 State 的定义、使用及正确更新方式 前言 在 React 应用开发中&#xff0c;state …...

18 设计模式之迭代器模式(书籍遍历案例)

一、什么是迭代器模式 迭代器模式&#xff08;Iterator Pattern&#xff09;是一种行为型设计模式&#xff0c;允许客户端通过统一的接口顺序访问一个集合对象中的元素&#xff0c;而无需暴露集合对象的内部实现。这个模式主要用于访问聚合对象&#xff08;如集合、数组等&…...

Springboot3介绍

一、Springboot3简介: https://docs.spring.io/spring-boot/docs/current/reference/html/getting-started.html?spmwolai.workspace.0.0.68b62306Q6jtTw#getting-started.introducing-spring-boot 无论使用XML、注解、Java配置类还是他们的混合用法&#xff0c;配置文件过于…...

【Leetcode Top 100】23. 合并 K 个升序链表

问题背景 给你一个链表数组&#xff0c;每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中&#xff0c;返回合并后的链表。 数据约束 k l i s t s . l e n g t h k lists.length klists.length 0 ≤ k ≤ 1 0 4 0 \le k \le 10^4 0≤k≤104 0 ≤ l i s t s […...

显存和GPU之间的通信;GPUDirect P2P,NVLink,NCCL;聚合通信和点对点通信

目录 显存和GPU之间的分配 显存和GPU之间的通信 原语是什么,简单举例说明 GPUDirect P2P,NVLink,NCCL的全称及解释 聚合通信和点对点通信 聚合通信(Collective Communication) 点对点通信(Point-to-Point Communication) 为什么使用GPUDirect P2P,NVLink,NCCL…...

2412d,d的7月会议

原文 总结 卡斯滕 Carsten说,Decard一直在大量试验WebAssembly.他们一直在把d运行时挖出来,直到它工作.他们在浏览器中运行了一些库函数,并试了不同虚机. 他们在移动方面遇见了很多问题,因为不同芯片按不同方式工作.他们想让他们的整个SDK在WASM上运行,但可能需要一年时间才…...

vue框架

以下是一个简单的基于Vue框架的日历组件示例&#xff1a; <template><div class"calendar"><div class"header"><button click"prevMonth"><</button><h2>{{ currentMonth }}</h2><button cli…...

Django drf基于APIView 快速使用

1. 注册 # settings.pyINSTALLED_APPS [,rest_framework, ]2. 路由 from django.urls import pathurlpatterns [path(task/, views.TaskAPIView.as_view()) ]3. 视图 from rest_framework.views import APIView from rest_framework.response import Responseclass TaskAPIV…...

git commit -m “Add user login feature“

当然&#xff0c;这条命令是 Git 中用来提交更改的基本命令&#xff0c;其中包含了一些注释来解释命令的各个部分。下面是对这条命令的详细解释&#xff1a; git commit -m "-m指的是message&#xff0c;git要求每次提交都需要写一下日志"git commit&#xff1a; 这…...

mac: docker : Command not found解决

描述: 安装docker但是docker命令显示Command not found 分析: mac没有配置对应的环境变量 解决方案: 打开配置文件: vim ~/.zshrc写docker环境变量: export PATH"/Applications/Docker.app/Contents/Resources/bin:$PATH"保存退出: esc,输入wq,按enter 配置文…...

深入解析 HTML Input 元素:构建交互性表单的核心

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…...

Docker--Docker Registry(镜像仓库)

什么是Docker Registry&#xff1f; 镜像仓库&#xff08;Docker Registry&#xff09;是Docker生态系统中用于存储、管理和分发Docker镜像的关键组件。 镜像仓库主要负责存储Docker镜像&#xff0c;这些镜像包含了应用程序及其相关的依赖项和配置&#xff0c;是构建和运行Doc…...

Linux 统信UOS 设置程序“桌面快捷方式”与“开机自启动”

最近在统信uos系统 arm64架构上进行QT程序的开发&#xff0c;基本开发完毕后&#xff0c;开始着手准备程序的开机自启动模块&#xff0c;因为一般来说&#xff0c;程序在客户现场使用都是需要开机自启的。 然后在百度海淘&#xff0c;很少有这类相关的博客介绍&#xff0c;有一…...

React开发高级篇 - React Hooks以及自定义Hooks实现思路

Hooks介绍 Hooks是react16.8以后新增的钩子API&#xff1b; 目的&#xff1a;增加代码的可复用性&#xff0c;逻辑性&#xff0c;弥补无状态组件没有生命周期&#xff0c;没有数据管理状态state的缺陷。 为什么要使用Hooks&#xff1f; 开发友好&#xff0c;可扩展性强&#…...

shell条件测试

一.命令执行结果判定 && 在命令执行后如果没有任何报错时会执行符号后面的动作 || 在命令执行后如果命令有报错会执行符号后的动作 示例&#xff1a; [rootqingdeng shell3]# sh sl.sh /mnt/file is not exist no二.条件判断方法 在 shell 程序中&#xff0c;用户可…...

嵌入式蓝桥杯学习5 定时中断实现按键

Cubemx配置 打开cubemx。 前面的配置与前文一样&#xff0c;这里主要配置基本定时器的定时功能。 1.在Timer中点击TIM6&#xff0c;勾选activated。配置Parameter Settings中的预分频器&#xff08;PSC&#xff09;和计数器&#xff08;auto-reload Register&#xff09; 补…...

Linux下进程地址空间

文章目录 1. 进程地址空间分布2. 为什么要有进程地址空间一、主要功能二、重要特性三、应用场景四、与TLB的交互 3. 进程具有独立性 以x86(32位)为例子 1. 进程地址空间分布 进程地址空间&#xff0c;本质是一个描述进程可视范围的大小。 地址空间本质是一个内核数据结构,类似…...