Linux第三讲

news2024/12/28 22:19:45

目录

三、 磁盘和文件管理和使用检测和维护

3.1 磁盘目录

3.2 安装软件

3.2.1 rpm命令

3.2.2 克隆虚拟机

3.2.3 yum或压缩包方式安装jdk

3.2.4 使用虚拟机运行SpringBoot项目

3.2.5 安装mysql80(57)

3.2.6 运行web项目

3.2.7 安装tomcat


三、 磁盘和文件管理和使用检测和维护

3.1 磁盘目录

展示根目录:ls /

/bin (binaries) :该目录中存储的都是一些二进制文件,文件都是可以被运行的。

/dev (devices):该目录中主要存放的是外接设备,例如盘、其他的光盘等。在其中的外接设备是不能直接被使用的,需要挂载(类似windows下的分配盘符)

/etc (etcetera):该目录主要存储一些配置文件。

/home :表示“家”,表示除了root用户以外其他用户的家目录,类似于windows下的User/用户目录。

/proc:process,表示进程,该目录中存储的是Linux运行时候的进程。

/root:该目录是root用户自己的家目录。

/sbin:全称super binary,该目录也是存储一些可以被执行的二进制文件,但是必须得有super权限的用户才能执行。

/tmp:表示“临时”的,当系统运行时候产生的临时文件会在这个目录存着。

/usr:存放的是用户自己安装的软件。类似于windows下的program files。

/var:存放的程序/系统的日志文件的目录。

/mnt:当外接设备需要挂载的时候,就需要挂载到mnt目录下。

/ 根目录root 超级用户目录

/lost+found 存放一些系统出错的检查结果

注:特殊权限:粘着位t

粘着位定义:当权限为777的目录被授予粘着位,用户只能在此目录下删除自己是所有者的文件

磁盘管理相关命令

1、查看磁盘分区信息
语法:fdisk -l 
​
2、显示文件系统磁盘空间的使用情况
语法:#df -h 
选项含义:
    -h表示以可读性较高的形式展示大小
​
3、显示指定的文件(目录)已使用的磁盘空间的总量
语法:#du -sh 目录路径
选项含义:
         -s:summaries,只显示汇总的大小
         -h:表示以高可读性的形式进行显示(human-readable)
案例:统计“/root”目录的实际大小
    du -sh /root
    
4、显示当前内存和交换空间的使用情况 
作用:查看内存使用情况
语法:#free -m
选项含义:
    -m表示以mb为单位查看 

3.2 安装软件

3.2.1 rpm命令

rpm的作用类似于windows上的电脑管家中“软件管理”、安全卫士里面“软件管家”等产品,主要作用是对linux服务器上的软件包进行对应管理操作,管理分为:查询、卸载、安装

①查询某个软件的安装情况
#rpm -qa|grep 关键词
选项:
     -q:查询,query
     -a:全部,all
​
②卸载某个软件
#rpm -e 软件的名称
​
当存在依赖关系的时候又不想去解决这个问题的时候可以:
#rpm -e 软件包名 --nodeps
​
③安装软件:
#rpm -ivh 软件包完整名称
选项:
     -i:install,安装
     -v:显示进度条
     -h:表示以“ # ”形式显示进度条
     -U:update升级

3.2.2 克隆虚拟机

虚拟机进行克隆之前需要先关机

 

 

 

 

 

克隆虚拟机之后可以优先更改一下克隆机的ip地址

更改IP地址之后重启网络:service network restart

3.2.3 yum或压缩包方式安装jdk

安装最小版本的Centos需要自己安装jdk,如果安装的是标准版的Centos,它会自带jdk

1、使用yum安装jdk

① 先检查jdk是否已经安装

(java -version)

② 查看yum中关于java的文件

yum list|grep java

③ 安装 java-1.8.0-openjdk-devel.x86_64

在查询出来的文件中找到 java-1.8.0-openjdk-devel.x86_64
​
执行安装指令 yum -y install java-1.8.0-openjdk-devel.x86_64

文件的默认安装位置是:/usr/lib/jvm

④ 配置环境变量

所有的环境变量都在/etc/profile文件中

使用vim 进入文件  
    vim /etc/profile
定义环境变量
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b08-1.el7_9.x86_64
export JRE_HOME=$JAVA_HOME
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin/$JAVA_HOME:$PATH

⑤ 使配置文件生效

source /etc/profile

2、使用压缩包进行的安装jdk

① 先检查jdk是否已经安装

rpm -qa|grep java
​
javapackages-tools-3.4.1-11.el7.noarch
tzdata-java-2022g-1.el7.noarch
python-javapackages-3.4.1-11.el7.noarch
java-1.8.0-openjdk-headless-1.8.0.362.b08-1.el7_9.x86_64
java-1.8.0-openjdk-devel-1.8.0.362.b08-1.el7_9.x86_64
java-1.8.0-openjdk-1.8.0.362.b08-1.el7_9.x86_64

② 卸载已经安装的jdk

删除后面三个文件
rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.362.b08-1.el7_9.x86_64 java-1.8.0-openjdk-devel-1.8.0.362.b08-1.el7_9.x86_64 java-1.8.0-openjdk-1.8.0.362.b08-1.el7_9.x86_64

③ 利用ftxp将jdk的压缩包传到 /usr/lwlpro2目录中,在usr中可以自己定义目录

④ 解压这个tar包

解压指令:tar -zxvf jdk-8u144-linux-x64.tar.gz

⑤配置环境变量

使用vim /etc/profile 命令进入配置文件中

export JAVA_HOME=/usr/lwlpro2/jdk1.8.0_144
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin/$JAVA_HOME:$PATH

⑥ 重新配置一下文件

source  /etc/profile

3.2.4 使用虚拟机运行SpringBoot项目

因为SpringBoot项目自带tomcat,所以在外面运行时只需要jdk即可

通过本机访问项目 要求本机和linux能够相互通信的 所以需要linux关闭防火墙

① 配置打包信息并更改路由信息

    在pom文件中配置打包信息
    <!--  如果不写packaging,那么打包时默认打成jar包,可以不写  -->
    <packaging>jar</packaging>
在application.properties文件中修改数据库url中的localhost为本机ip地址
本机IP地址可以在dos中获取
    win+r打开dos
    输入ipconfig 查看IPv4地址 
​
    因为这里使用的是本机的mysql,所以这里需要连击本机的数据库
然后更改:
spring.datasource.url=jdbc:mysql://192.168.0.136:3306/vuetest?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8

② 打包项目

使用maven工具的声明周期中的package功能对项目进行打包
打包前可以先把target缓存删掉

③ 打包测试

测试打包好的文件是否能正常使用
首先将打包好的文件放到一个文件夹中
然后cmd进入dos 
执行 java -jar 包名.jar 
利用浏览器访问项目中的路径,可以正常获取结果就代表正常
访问时正常使用localhost即可
(  http://198.168.0.136:3306/路径
或者是http://localhost:3306/路径  )

访问时产生异常:null, message from server: "Host 'LAPTOP-LLLFPADD' is not allowed to connect to this MySQL server"

这个异常是数据库只允许localhost或127.0.0.1访问,不允许远程访问,使用本机IP(IPv4地址)都不行。

解决方案:修改访问权限即可

1、打开cmd 登录 mysql
    mysql -uroot -p
 
2、use mysql;
 
4、select host,user from user;
    可以看到 host 为 localhost,表示mysql只允许本机访问。将这个值改为 % 即可。
 
5、update user set host ='%' where user ='root';
 
6、执行刷新权限:flush privileges; 即可

④将jar包放到虚拟机中

一般 /usr 中是存放项目有关的东西的

可以建立一个lwlpro目录,将jar包存到/usr/lwlpro中(传输时,使用Xftp进行上传)

⑤在虚拟机运行项目

运行命令: java -jar 包名.jar
​
在浏览器或者postman对路由进行访问,访问时路由地址使用的是虚拟机的ip地址(198.168.111.127)
http://198.168.111.127:3306/路径

​
看到正常查询结果即可

⑥问题:当使用命令 java -jar 包名.jar 运行SpringBoot项目时,如果关闭远程连接客户端,或者在远程客户端进行别的操作,那么在本地访问时,就会无法连接,所以执行时可以使用nohup命令

一直运行jar文件并指定端口号为多少 当然也可以不指定端口号
nohup java -jar MulTableQuery.jar --server.port=8888 &
​
这条命令在哪里执行,就会在哪里生成一个 nohup.out 文件夹
可以查看一下这个文件的内容
tail -1000 nohup.out
会发现该项目已经在运行中

推荐使用nohup指令运行项目

3.2.5 安装mysql80(57)

如果是使用的桌面版(不是最小版)安装的centos,虽然系统不自带mysql,但是会带一个简化版的mysql,名为 mariadb,如果有mariadb就无法安装mysql
所以这里留下查询是否安装mariadb和卸载的方法
​
1、查询是否安装mariadb
rpm -qa | grep mariadb
​
2、卸载mariadb
rpm -e --nodeps 查询的mariadb名字

linux使用最小安装的时候缺少一些东西,所以需要我们手动的导入

安装mysql80或者是mysql57,只有在第二、三步安装mysql时不同

1、导入:

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

2、配置安装源

配置mysql80安装源
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
​
配置mysql57安装源:
rpm -ivh http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
​
配置过程:
Retrieving https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
warning: /var/tmp/rpm-tmp.KhBs1K: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:mysql80-community-release-el7-3  ################################# [100%]

3、安装mysql

安装mysql80:
yum --enablerepo=mysql80-community install mysql-community-server
​
安装mysql57:
yum --enablerepo=mysql57-community  install mysql-community-server
​
​
Install  3 Packages (+4 Dependent packages)
Upgrade             ( 1 Dependent package)
​
Total download size: 90 M
Is this ok [y/d/N]: 在此输入y,确认下载插件
​
Replaced:
  mariadb-libs.x86_64 1:5.5.60-1.el7_5                                                                                                                                             
Complete!
安装成功

4、启动mysql

centos6查看mysqld服务状态:
service mysqld status
​
centos7查看mysqld服务状态
systemctl status mysqld
​
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: inactive (dead)
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
​
​
系统文件存放地址:/usr/lib/systemd/system
centos6的语法在centos7中是可以使用的,而centos7中的语法在6中有的不可以使用
centos6语法:
service mysqld start 
​
centos7语法:
systemctl start mysqld
​
​
启动成功查询状态
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2023-02-09 14:30:55 CST; 11s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 7691 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 7758 (mysqld)
   Status: "Server is operational"
   CGroup: /system.slice/mysqld.service
           └─7758 /usr/sbin/mysqld
​
Feb 09 14:30:50 localhost.localdomain systemd[1]: Starting MySQL Server...
Feb 09 14:30:55 localhost.localdomain systemd[1]: Started MySQL Server.

5、查看安装mysql时生成的临时密码

grep password /var/log/mysqld.log
或者是
grep A temporary password /var/log/mysqld.log
​
[root@localhost ~]# grep password /var/log/mysqld.log
2023-02-09T06:30:52.337535Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: /rDso-=s2EVe

6、登录mysql

①输入:mysql -uroot -p

②在Enter password:后面输入临时密码

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
​
mysql> 出现这种图标代表登陆成功
退出时输入 exit; 即可退出mysql

③修改密码

mysql> alter user 'root'@'localhost' identified with mysql_native_password by 'Abc123...';
Query OK, 0 rows affected (0.00 sec)

因为最初mysql是有着一套自己的密码验证规则的,登陆成功之后需要先修改一次密码,才可以修改密码验证规则

最初规则:密码至少有8位数,包含大小写,数字和特殊符号

7、修改密码规则

修改完密码以后查看并设置密码规则
show variables like 'validate_password%';
​
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password.check_user_name    | ON     |
| validate_password.dictionary_file    |        |
| validate_password.length             | 8      |
| validate_password.mixed_case_count   | 1      |
| validate_password.number_count       | 1      |
| validate_password.policy             | MEDIUM |
| validate_password.special_char_count | 1      |
+--------------------------------------+--------+
​
策略说明
 validate_password.length 是密码的最小长度,默认是8,我们把它改成4
 mysql80输入:set global validate_password.length=4;
 mysql57输入:set global validate_password_length=4;
 
 validate_password.policy 验证密码的复杂程度,我们把它改成0
 mysql80输入:set global validate_password.policy=0;
 mysql57输入:set global validate_password_policy=0;
 
 validate_password.check_user_name 用户名检查,用户名和密码不能相同,我们也把它关掉
 mysql80输入:set global validate_password.check_user_name=off;
 mysql57输入:set global validate_password_check_user_name=off;

8、再次修改密码

alter user 'root'@'localhost' identified with mysql_native_password by '密码';
Query OK, 0 rows affected (0.00 sec) //修改成功

9、配置远程访问

1、切换数据库
mysql> use mysql;
2、查看管理用户权限
mysql> select host, user, authentication_string, plugin from user;
​
mysql> select host,user from user;
+-----------+------------------+
| host      | user             |
+-----------+------------------+
| localhost | mysql.infoschema |
| localhost | mysql.session    |
| localhost | mysql.sys        |
| localhost | root             |
+-----------+------------------+
​
3、修改一下user为root的host为%   可以进行远程连接
mysql> update user set host = '%' where user ='root';
​
4、刷新权限
mysql> flush privileges;
可以再次查看是否修改成功
​
----------------------------输入 exit; 即可退出mysql---------------------

10、使用本机navicat连接远端linux中的mysql

新建连接

 

 

 

 

11、数据库测试

本次数据传输的数据库是上面的SpringBoot项目用到的数据库,可以利用上面的springboot项目再次进行测试

1、测试时可以删除application.properties文件中url中的本地ip地址和数据库表
​
2、测试时修改用户名和密码对应到linux系统中的mysql数据库的用户名和密码
​
3、执行jar包时,如果没有别的错误,但是依然报500,可以尝试切换端口号

然后再次打包测试

3.2.6 运行web项目

使用war包将对应的项目直接存到tomcat的webapp下面即可tomcat运行时会自动解压项目

3.2.7 安装tomcat

1.上传压缩包
2.解压
3.设置配置文件  /etc/profile
#set tomcat 环境
4。启动tomcat
cd apache-tomcat-8.5.37/bin
./startup.sh
运行tomcat
http://192.168.109.34:8080/
出现logo即为成功

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

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

相关文章

情人节前夕,竞品在小红书平台如何布局营销策略?

情人节作为全球性消费型节日之一&#xff0c;其营销价值不言而喻。以女性用户群体为主导的小红书平台&#xff0c;更是成为该营销节点众多品牌争夺流量的阵地。 那么&#xff0c;情人节前夕竞品在小红书平台布局什么样的营销策略&#xff1f;创作何种内容&#xff0c;如何推广&…

手把手教你用Python做可视化数据,还能调节动画丝滑度

数据可视化动画还在用Excel做&#xff1f; 现在一个简单的Python包就能分分钟搞定&#xff01; 而且生成的动画也足够丝滑&#xff0c;效果是酱紫的&#xff1a; 这是一位专攻Python语言的程序员开发的安装包&#xff0c;名叫Pynimate。 目前可以直接通过PyPI安装使用。 使用…

线程池小结

什么是线程池 线程池其实就是一种多线程处理形式&#xff0c;处理过程中可以将任务添加到队列中&#xff0c;然后在创建线程后自动启动这些任务。这里的线程就是我们前面学过的线程,这里的任务就是我们前面学过的实现了Runnable或Callable接口的实例对象; 为什么使用线程池 …

1001. x+y 1002. x+y+z etiger.vip 解析与答案

目录 1001题 题目描述 输入输出格式 输入格式 输出格式 输入输出样例 输入样例#1: 输出样例#1: 头文件和数组等初始定义 第一个函数——converts 第二个函数——add 第三个函数——print 主函数部分 完整代码 1002题 题目描述 输入输出格式 输入格式 输出格…

Vue3快速入门【一】

Vue3快速入门一、Vue脚手架1.1、Vite简介1.2、创建项目二、更换Vue模板支持工具三、项目相关命令解析四、生命周期钩子函数五、ref方法的几种使用方式5.1、ref方法(操作基本类型数据)5.2、ref方法(操作复杂类型数据)5.3、ref方法获取标签六、reacttive方法和toRefs方法七、setu…

开发人员 ONLYOFFICE 文档 v7.3:API 与文档生成器更新

随着版本 7.3 新功能的发布&#xff0c;我们也对编辑器、插件以及文档生成器的 API 进行了更新。在下方了解更多详情。 增强的 WOPI 支持 从现在开始&#xff0c;您可在 WOPI 集成中使用二进制格式&#xff0c;如 doc、ppt 以及 xls。我们现已实现了相应方案&#xff0c;其中包…

ClickHouse 合并树表引擎 MergeTree 索引与数据存储方式

目录 1. 一级索引 1.1 稀疏索引 1.2 索引粒度 1.3 索引数据的生成规则 1.4 索引的查询过程 2. 二级索引 2.1 granularity 与 index_granularity 2.2 跳数索引的生成规则

阿里6面,成功唬住面试官拿了27K,软件测试面试也没有传说中那么难吧....

阿里的面试挺独特&#xff0c;每轮面试都没有 HR 约时间&#xff0c;一般是晚上 8 点左右面试官来一个电话&#xff0c;问是否能面试&#xff0c;能的话开始面&#xff0c;不能就约一个其它时间。 全程 6 面&#xff0c;前五面技术面&#xff0c;电话面试&#xff0c;最后一面…

KEITHLEY吉时利2410数字源表

产品概览 Keithley 2410 高压源表专为需要紧密耦合源和测量的测试应用而设计。Keithly 2410 提供精密电压和电流源以及测量功能。它既是高度稳定的直流电源&#xff0c;又是真正的仪器级 5-1/2 数字万用表。电源特性包括低噪声、精度和回读。万用表功能包括高重复性和低噪声。…

《真象还原》读书笔记——第三章 完善MBR(3.5 硬盘)

3.5 硬盘介绍 3.5.2 硬盘工作原理 柱面-磁头-扇区 磁道的编号从0 开始&#xff0c;相同编号的此道组成的管状区域就是柱面。 盘面和磁头一一对应&#xff0c;所以用磁头号表示盘面&#xff0c;磁头编号从上到下从0开始。 扇区编号与盘面和磁道不同&#xff0c;各磁道内的扇区都…

选择万德L2接口需要遵循什么原则?

万德L2接口是一种可以让程序拥有查询股票相关数据的应用查询编程接口&#xff0c;通过这个数据接口&#xff0c;可以直接调用相应的数据&#xff0c;而不用进行额外的编程工作&#xff0c;甚至不需要理解其中的工作机制&#xff0c;是十分方便快捷的一种数据接口。 但是市场上…

操作系统基础---多线程

文章目录操作系统基础---多线程1.为何引入线程程序并发的时空开销线程的设计思路线程的状态和线程控制块TCB2.线程与进程的比较3.线程的实现⭐1.内核支持线程KST2.用户级线程3.组合方式操作系统基础—多线程 1.为何引入线程 利用传统的进程概念和设计方法已经难以设计出适合于…

方向导数与梯度下降

文章目录方向角与方向余弦方向角方向余弦方向导数定义性质梯度下降梯度下降法&#xff08;Gradient descent&#xff09;是一个一阶最优化算法&#xff0c;通常也称为最速下降法。 要使用梯度下降法找到一个函数的局部极小值&#xff0c;必须向函数上当前点对应梯度&#xff08…

学习数据库第一天

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录前言一、数据库的开启和关闭二、数据库的登录 添加数据库以及表1.登录数据库2.查看数据库三 数据表前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#x…

spring cloud脚手架快速开发 微服务架构 JAVA敏捷开发框架源码

核心技术采用Spring Cloud Alibaba、SpringBoot、Mybatis、Seata、Sentinel、RabbitMQ、FastDFS/MinIO、SkyWalking等主要框架和中间件。 私信了解更多&#xff01; 功能模块&#xff1a; 1、租户管理&#xff1a;运营人员管理所有的租户创建 2、工作台&#xff1a;普通用户…

支持分布式部署的主流方式 - Session 持久化到 Redis

1.为什么要将 Session 存储在 Redis 中如果我们不将 Session 存储在 MySQL 或者 Redis 中, 那么做出来的项目就只能支持单机部署, 不支持分布式部署. 因为之前我们只是将 Session 存储在当前电脑的内存里面. 当张三去登录的时候, 将 Session 信息存储在 A 服务器, 这个时候负载…

码上【call,apply,bind】的手写

一、call &#xff08;1&#xff09;官方用法 call() 方法使用一个指定的 this 值和单独给出的一个或多个参数来调用一个函数。 语法&#xff1a;function.call(要绑定的this值&#xff0c;参数&#xff0c;参数&#xff0c;…)。不一定这些参数都需要&#xff0c;这些参数都…

寿险业务系统异常处理方案

我们的系统使用的java语言开发&#xff0c;基于Spring框架搭建的业务中台&#xff0c;在讨论业务系统异常处理策略之前&#xff0c;先把java的异常机制进行简单说明。 一、Java的异常机制 1.Java异常分类 【Error】是系统错误或者编译错误&#xff0c;常见的虚拟机运行错误、…

2023,考个软考中级证书稳妥深圳入户,5月考试8月办入户

最新消息&#xff01;最新消息&#xff01;最新消息&#xff01; 2023年2月8日&#xff0c;深圳市发展和改革委员会深圳市公安局深圳市人力资源和社会保障局关于印发《深圳市积分入户办法》的最新通知↓ 来源《深圳市发展和改革委员会》 该积分入户将于2023年2月15日正式实施&…

C++与Lua交互实例 -- 矩阵的加减乘除(版本一)

C与Lua交互实例 – 矩阵的加减乘除&#xff08;版本一&#xff09; 关于lua中封装的类模板以及相关知识可参考以下链接&#xff1a; https://ufgnix0802.blog.csdn.net/article/details/128854786 https://ufgnix0802.blog.csdn.net/article/details/128827673 https://ufgnix0…