Linux部署java项目

前言

Xshell下载地址

在这里插入图片描述
在这里插入图片描述
点击连接

常见命令

ls

在这里插入图片描述
ls:显示当前目录下的文件
ll:可以显示隐藏文件和非隐藏文件与ls -l一样
在这里插入图片描述
在这里插入图片描述
ls -a -l这两个掌握就可以了

ls --help就可以知道这个后面可以跟什么

在这里插入图片描述
ls -al还可以这样

cd

cd:进入文件夹
cd后面可以跟相对路径,也可以是绝对路径
linux根目录是/
在这里插入图片描述
可以cd …/
这个是上一级目录
如果名称很长,可以按tab,这个是自动补全
如果tab选项只有一个,按tab就自动补偿

在这里插入图片描述
cd .这个是变到上一次cd的地方
cd ~是回到自己的目录

mkdir

这个就是创建文件夹
在这里插入图片描述

如果要创建多个目录,要加上-p

在这里插入图片描述
这个就是创建多级目录

设置

在这里插入图片描述
在工具–》选项里面
设置这个
这样的话,我们要复制的话
就只需要选中这个,然后按右键就可以粘贴了

在这里插入图片描述
这个也是粘贴复制的

pwd

查看当前路径

touch

创建文件
在这里插入图片描述

sz与rz

rz
我们先安装这两个命令

在这里插入图片描述
apt-get install lrzsz
这个命令安装

在这里插入图片描述
rz表示上传
sz表示下载

在这里插入图片描述
在这里插入图片描述
这个就表示下载
就可以下载到windows了

注意我们可以直接在Windows拖动来上传
在这里插入图片描述
权限那一列,分别为自己,别人,组的权限

cat

这个就是读文件
直接在终端显示文件的全部内容

more

只显示一页,敲空格就表示翻下一页
翻上一页就是b建
或者直接鼠标翻
ctrl+c结束查看more这个命令

clear

清屏,但是内容还是在上面的

结束公式

ctrl+c
两次ctrl+c
exit
:q
:q!

less

less也是查看一页
ctrl+c,exit都结束不了
要用:q来结束
不知道用什么来翻页
可以用上下键翻动
less浏览不会留在终端
而前面more和cat会在终端显示
在这里插入图片描述
/+字符串就是查找功能,搜索功能
more也是这样来查找

head

head +文件名也是显示文件
默认显示前十行
在这里插入图片描述
-数字就可以查看前n行了

tail

就是查看最后的
默认查看最后十行
tail -100 pom.xml
就是查看最后n行
在命令行显示

vi或者vim

编辑文件
vi进入文件
i编辑模式
这样就可以写入了
先按esc退出编辑模式
:wq就是保存并退出

:q!强制退出,不保存,如果修改了文件,是不能正常退出的

如果两个用户同时去修改这个文件
同时在修改这个文件
第一个用户正常保存退出了
第二个用户就不能正常保存退出了
只能强制保存退出
:wq!
这个的缺点就是会造成代码的覆盖

-f就是循环读取
就是倒着看

rm

文件的删除
在这里插入图片描述

rm 文件名

这个只能删文件,不能删文件夹

rm -r 文件夹
这样就可以了
在这里插入图片描述
删除多级目录就是要-r,一级目录也要-r
这个是删除文件夹以及里面的文件

-f 就是只读(保护)的文件也是直接删除
在这里插入图片描述
这个就是删除全部

sudo rm -rf /
就是用管理员的权限来试一下

cp

copy
这个就是复制的意思
在这里插入图片描述
这个意思就是把文件复制到哪个文件夹的意思

如果是复制目录也就是文件夹的话,就要加上-r

mv

move
在这里插入图片描述

就是把某个文件移动到某个目录

在这里插入图片描述
这个命令就是直接改名了

grep

这个是查找的命令
在这里插入图片描述
查找的东西
后面跟的是哪个文件

在这里插入图片描述
在这里插入图片描述

ps

这个用于查看当前系统上运行的进程
在这里插入图片描述
在这里插入图片描述
ps -ef 表示也是查看所有进程,就是显示的格式不一样而已
ef显示不全,只显示部分

在这里插入图片描述
这些就是进程
在这里插入图片描述
这个就是查看含有一些字符的指定进程

因为grep本身也是一个进程
所以找redis的时候,也会把自己打印出来
而且grep后面的引号也可以不加

netstat

查看系统上的网络状态
在这里插入图片描述
在这里插入图片描述
这个就是显示所有的网络端口那些了

在这里插入图片描述
因为这个是查看网络的端口号,不是查看进程,所以不会显示自己的

管道

在这里插入图片描述

搭建java的部署环境

apt

这个是软件包管理工具,是ubuntu的,不是ctenos的
这个是用来下载东西的,比如jdk
比较方便
但是可能某些软件和某些软件版本没有
当然我们可以用官方的方法去安装

列出

现在开始介绍一些常用命令
apt的命令需要sudo权限,就是root的权限
apt -list
是列出所有的软件包
这个非常多,会卡死的
在这里插入图片描述
直接ctrl+c关闭就可以了

我们可以用grep指定查看

更新

apt-get update
这个是更新软件包数据库,就是相当与更新,我们手动更新

在这里插入图片描述
安装软件时
先更新一下apt数据库
在安装

sudo su可以切换到root用户

安装与移除

sudo apt install package_name

package_name是软件包名
sudo apt remove package_name
这个是移除
remove 是删除二进制文件,会留下配置文件
但是apt purge就可以删除配置文件了
一般用apt remove

我们想要彻底卸载用apt purge

jdk

先更新软件包
在安装
我们先来查找一下
在这里插入图片描述
我们安装jdk17
而且是openjdk
因为这个是免费的
在这里插入图片描述
我们安装这个
apt install openjdk-17-jdk
直接这个就可以安装了
在这里插入图片描述
安装得有点久
java -version
输入这个可以查看自己是否安装成功
在这里插入图片描述
这样就安装成功了

mysql

安装mysql了
还是先要查找
apt list | grep “mysql-server”

我们装这个
apt install mysql-server
然后就可以了

如果已经安装好了mysql需要先卸载
先停止他
systemctl stop mysql
然后卸载
apt-get remove --purge mysql-星

删除mysql配置文件
rm -rf /etc/mysql /var/lib/mysql
清理残存文件和目录
apt-get autoremove
apt-get autoclean
检查是否有残留
dpkg --list | grep -i mysql-*
移除相关包
apt-get purge mysql-星
最后查看版本
mysql --version
如果没有找到这个mysql命令就成功了
反之
在这里插入图片描述
这样就是成功了

部署Web项目到Linux

环境介绍

开发环境:开发人员使用的环境
测试环境:测试人员使用的环境,造一些测试的数据去测试–》f发布到预发布环境
生产环境:真实用户使用的环境
预发布环境:和生产环境一样,就是不对外—》最后变为生产环境
就是外部人员访问不了,无法用www.jd.com访问,但是可以用域名访问
但是这个可以正常使用,正常访问
www.jd.com访问生产环境
灰度发布就是先发布10%这样慢慢的发布

在这里插入图片描述
但是企业中一般是自动化部署
1.打包(从git上拉程序)
2. 上传jar包
3. 3.启动jar包

环境配置

安装jdk和mysql
我们直接sudo mysql就可以操作mysql了
但是不安全

我们先确认一下我们的mysql是不是启动的状态
默认安装之后是启动的状态
在这里插入图片描述
如果出现了running就是在启动中

mysql安全设置

mysql_secure_installation

接下来里面有三个选项
第一个是问你是不是要进行这个安全设置
第二个叫你设置密码强度
但是我们只能选2,最强的强度
第三个就是我们的mysql有一个匿名的用户,要不要删除,直接y删除
第四个是问你当前数据库是不是只允许locallhost链接只能本地连接,y
意思就是我们当前安装的数据库只能在我们这台服务器上连接,不可能用windows去连接 ,如果要连接,就要授权,mysql grant,表示这个用户可以操作哪些表
直接设置y
第五个是mysql上有一个数据库test,所有人都可以访问,要不要删除,y
第六个是问你要不要让你刚刚的修改生效,y
安全设置的目的是,数据库不允许外部连接,因为端口号3306很容易被黑掉
要访问数据库,就只能连接到我们的服务器才可以连接了

直接sudo mysql就可以访问我们的数据库了

在这里插入图片描述
这里就可以写sql语句了
输入exit退出
如果要本地windows来连接,可以用隧道的方式来连接,可以在网上搜

开启隧道(简单了解)

在这里插入图片描述
点这里的隧道

在这里插入图片描述
然后添加
在这里插入图片描述
目标端口号,如果是mysql的话就是3306
在这里插入图片描述

改mysql密码

先sudo mysql
然后就是输入修改mysql密码的sql语句

ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘@yyds.666’;

最后一个就是密码@yyds.666
然后我们退出之后
再次sudo mysql就进不去了
因为有密码了
我们输入mysql -uroot -p
就可以输入密码了

在这里插入图片描述

数据准备

就是直接在mysql上建立我们以前的数据库

在这里插入图片描述
直接把这个复制过去
在这里插入图片描述
直接粘贴复制

在这里插入图片描述
这样就成功了

在这里插入图片描述
在这里插入图片描述

上传jar包

在这里插入图片描述
这里的密码要改一下,就是刚刚Linux上修改的密码
但是我们本地的时候又要改为123456
就很麻烦
而且Linux上我们可以不用打印mybatisPuls的日志
所以开发环境与我们的日志环境的配置不一样
代码改来改去很麻烦
所以我们讲一下多平台的配置

不同平台的配置文件是不一样的
所以我们可以根据不同的平台弄不同的配置文件
在这里插入图片描述
接下来我们prod这个文件就要改一下了
改一下密码还有不要打印日志

在这里插入图片描述
现在的问题就是到底哪个生效的问题
我们配置端口就可以了
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这样的话Linux我们用8082端口就可以了

但我们启动默认是8081,就是第一个
而且默认生效的就是只有application.yml这个文件
其他文件是不生效的
如何进行生效呢
我们去掉所有的端口号
在这里插入图片描述

我们写上这个,就可以指定哪个文件去生效了

dev就是我们本地的环境
在这里插入图片描述
这里的dev就说明生效了
默认这里的日志是default
就是application.yml
但是我们这样还是要改代码
我们代码的禁忌就是不要改代码
因为git那里会改来改去的
我们可以把这个变成一个变量
变成一个可以传递的变量
这里就要用maven了

我们在pom.xml文件中
与dependencies和build并列加一个profiles
在这里插入图片描述
这样我们的yml就可以从maven中读取我们配置的一些属性了

怎么拿值呢
在这里插入图片描述
这样就可以拿值了
密码那里可以不用定义到profile中
因为yml中已经定义了

我们使用的是哪个profile
怎么判断呢
在这里插入图片描述
这个就是右边的maven多了两个dev和prod
你要打包谁的,就勾谁
勾谁就是用的谁的profile
勾上之后还要刷新maven

如果要让dev默认生效,还要设置

在这里插入图片描述
加上这个true之后,就是默认的了

这样就成功了
可以正常启动了
这里补充一下
我们可以给在这里插入图片描述
url添加这个
防止报错

这样就可以正常运行了

发布环境

在这里插入图片描述
我们打包,必须要有这个插件
因为这个打包会打第三方的东西
没有的话就不会打第三方的
在这里插入图片描述
点上prod,记得刷新maven
然后点击package
在这里插入图片描述
但是我们出错了
正常来说
我们点击package,会自动执行clean的,就是会自动执行它前面的指令的
还有一个值得注意的就是我的密码是以@开头的
这个开头的话
整个密码还是用字符串的表示两个单引号引起来吧
不然会出错的
在这里插入图片描述
在这里插入图片描述
但是如果我们在测试里面增加一个对mybatis的测试的话
打包就会出错了

在这里插入图片描述
为什么会这样呢
因为我们现在使用的是prod
但是我们这个测试类使用的数据库是我们本地的数据库
但是prod的密码不是本地的密码123456了
所以访问会出错的
我们连的是本地的数据库
密码是服务器的数据库
所以会出错的
报错的话
打包就会出错了

我们点击package的时候
在这里插入图片描述
会把它上面的命令从上往下执行
我们只需要跳过test就可以了
在这里插入图片描述
跳过测试的时候点这个
在这里插入图片描述
或者我们专业版的这个

在这里插入图片描述
这样的话
test就消失了

就可以正常打包了
我们再看一下
为什么我们的prod配置的是127.0.0.1
而不是云服务器的iq地址呢
因为127.0.0.1表示的是本机
没有问题的
在这里插入图片描述
我们打的包在这里
然后我们去打开就可以了
在这里插入图片描述

就是第一个比较大的

然后我们上传到我们的服务器上

直接拖过去

在这里插入图片描述
在这里插入图片描述
欧克了

在这里插入图片描述
改个名字

启动jar包

java -jar blog.jar

在这里插入图片描述
这样就启动了

我们还不能访问
我们还需要开通一下端口号
默认的情况下
我们的端口号别人是不能访问的
还要开通一下

开通端口号

要去我们的服务器那里开通
在这里插入图片描述

在这里插入图片描述
我们点到我们服务器的详情信息那里
然后点击安全组
然后点击添加规则

http协议就是TCP

在这里插入图片描述
这样就可以了
1代表优先级最高
0.0.0.0/0代表接受所有地址、

然后确定就开通这个端口号了

在这里插入图片描述
在这里插入图片描述
这样不要动
我们的程序就可以访问了

在这里插入图片描述
这样我们就成功了
但是我们的数据库还没改
登录不了的

看日志

在这里插入图片描述
我们不可能一直盯着xshell吧
而且关掉xshell,就无法访问http://139.159.230.105:8080/blog_login.html了

因为我们采用的java -jar的方式来启动的
只要我们的会话关掉了
或者ctrl+c了就无法执行了
所以我们要后台执行才行
如何后台启动呢

nohup

这个命令就是后台执行的,其余的命令该是啥还是啥,最后加个&

nohup java -jar blog.jar &
在这里插入图片描述
敲两次回车就可以了
这样就可以正常访问了
关掉xshell,关掉电脑都是可以访问的

日志2

在这里插入图片描述

注意我们的日志就默认在这个目录生成了

接下来我们就要用tail来看日志了
tail -f spring-blog.log
-f是滚动看
就是一直看一直看的意思
在这里插入图片描述
我们登录一下
登录失败
我们的日志就会实时的在这个文件更新了
如果只是cat 日志的话
是不会实时更新的,实时打印出来的
more也是这样
tail -f就是查看滚动日志了

改数据库

现在改一下数据库
在这里插入图片描述
mysql -uroot -p
use java_blog_spring;
select * from user_info;
密码我们在idea中生成拿过来就可以了

update user_info set password = ‘’;
这样就更新了
在这里插入图片描述
这样就成功了
在这里插入图片描述
这样就成功了

可能遇到的问题

程序无法访问

看一下我们启没启动
就看一下8080端口号开没开就可以了
ps -ef|grep java
在这里插入图片描述
看得出来开了的
接下来看端口
netstat -nltp|grep 8080
在这里插入图片描述
我们就可以通过看java程序和服务的端口号就可以了
53298就是进程id
还不行就看端口号是否开发
最后再看程序是否可以访问

我们如何通过自己的云服务器就是linux来访问呢

curl http://127.0.0.1:8080/blog_list.html
这样就可以在本机访问了

在这里插入图片描述
直接返回了一个html页面
说明这个url是通的

还要可能是防火墙的问题
看防火墙是否打开了
默认是关闭的,防火墙是关闭的
可以去网上搜一下Ubuntu的防火墙的打开
sudo ufw status
这个是查看防火墙状态
在这里插入图片描述
显示这个就是没有打开防火墙
显示active就是打开了防火墙
如果防火墙打开了----》还需要再打开防火墙的端口号
可以去网上搜资料,如何打开防火墙或者找客服
如何开放端口号
sudo ufw allow 22----->开放防火墙的端口号,不一定是22
然后重启
最后还可能是到底是不是tcp协议,一般遇不到这个问题
还要可能是服务没启动
看端口号是否正确
第二看是否有错误日志–》数据库等等
在这里插入图片描述
密码纯数字也要加单引号

杀掉进程

如果我们重新又打包一个
同样去启动这个程序
就会发生端口号已被占用的错误

所以我要杀掉进程
可以去日志里面去看
在这里插入图片描述
就是53298这个就是进程id
或者用上面的查看端口号8080的方式
也可以得到进程id

也可以用ps -ef|grep java
都可以得到

kill 53298就可以杀掉了

所以重新发布的时候就要杀掉进程了

修改项目

主要是改图片

改文字那些东西
还可以加上注册的功能—》就是单独的一个注册界面
还有文章和分类那些东西
还有头像上传的功能
在这里插入图片描述
头像上传就是文件上传的知识了
要有url–》图片内容–》直接上传到服务器,所有的图片都放在服务器的一个文件夹中
上传文件在springmvc那里讲过的

在这里插入图片描述
这个就是上传文件到指定的路径----》以/为根目录
我们这个还是要去网上搜资源来实施

文章和分类也可以拓展
文章和分类不存储,还是实时查询的
添加一个sql就可以了
还可以添加分页的操作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果不认识这个@该怎么办呢
可能是要刷新一下maven就可以了

总结

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙Android4个脚有脚线

效果 min:number122max:number150Row(){Stack(){// 底Text().border({width:2,color:$r(app.color.yellow)}).height(this.max).aspectRatio(1)// 长Text().backgroundColor($r(app.color.white)).height(this.max).width(this.min)// 宽Text().backgroundColor($r(app.color.w…

盛铂科技 SLMF315频率综合器200MHz至15GHz 国产频综模块

在当今科技飞速发展的时代,射频技术在众多领域发挥着关键作用,从通信、雷达系统到科研实验,对频率综合器的性能要求日益严苛。以下是关于盛铂科技的 SLMF315 超低相位噪声频率综合器的介绍: SLMF315超低相位噪声0.2至15GHz频率综合…

wheel_legged_genesis 开源项目复现与问题记录

Reinforcement learning of wheel-legged robots based on Genesis System Requirements Ubuntu 20.04/22.04/24.04 python > 3.10 开始配置环境! 点击releases后进入,下载对应最新版本的代码: 将下载后的代码包解压到你的自定义路径下&…

软考架构师笔记-计算机网络

1.9 计算机网络 OSI/RM 七层模型 物理层 二进制传输(中继器、集线器) (typedef) 数据链路层 传送以帧为单位的信息(网桥、交换机、网卡) 网络层 分组传输和路由选择(三层交换机、路由器)ARP/RARP/IGMP/ICMP/IP 传输层 端到端的连接(TCP/UDP)在前向纠错系统中,当接…

Qt6.8.2创建WebAssmebly项目使用FFmpeg资源

Qt6新出了WebAssmebly功能,可以将C写的软件到浏览器中运行,最近一段时间正在研究这方便内容,普通的控件响应都能实现,今天主要为大家分享如何将FFmpeg中的功能应用到浏览器中。 开发环境:window11,Qt6.8.2…

浅论数据库聚合:合理使用LambdaQueryWrapper和XML

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、数据库聚合替代内存计算(关键优化)二、批量处理优化四、区域特殊处理解耦五、防御性编程增强 前言 技术认知点:使用 XM…

DeepSeek大模型深度解析:架构、技术与应用全景

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。https://www.captainbed.cn/north 文章目录 一、大模型时代与DeepSeek的定位1.1 大模型发展历程回顾大模型发展历程时间轴(20…

极狐GitLab 正式发布安全版本17.9.1、17.8.4、17.7.6

本分分享极狐GitLab 补丁版本 17.9.1、17.8.4、17.7.6 的详细内容。这几个版本包含重要的缺陷和安全修复代码,我们强烈建议所有私有化部署用户应该立即升级到上述的某一个版本。对于极狐GitLab SaaS,技术团队已经进行了升级,无需用户采取任何…

windows server 2019创建教程,新建存储池,新建虚拟磁盘,文件共享

1.网页地址Windows Server 2019 ISO镜像下载 - 我的MSDN 迅雷下载路径ed2k://|file|cn_windows_server_2019_updated_jan_2020_x64_dvd_4bbe2c37.iso|5608552448|39C663ABF26079240030395C7CB3F975|/ 开始创建 注意;虽然我们的镜像是windows server2019,但是虚拟机最高只能选w…

Linux系统之配置HAProxy负载均衡服务器

Linux系统之配置HAProxy负载均衡服务器 前言一、HAProxy介绍1.1 HAProxy简介1.2 主要特点1.3 使用场景二、本次实践介绍2.1 本次实践简介2.2 本次实践环境规划三、部署两台web服务器3.1 运行两个Docker容器3.2 编辑测试文件3.3 访问测试四、安装HAProxy4.1 更新系统软件源4.2 安…

使用Dockerfile打包java项目生成镜像部署到Linux_java项目打docker镜像的dockerfile

比起容器、镜像来说,Dockerfile 非常普通,它就是一个纯文本,里面记录了一系列的构建指令,比如选择基础镜像、拷贝文件、运行脚本等等,每个指令都会生成一个 Layer,而 Docker 顺序执行这个文件里的所有步骤&…

【TCP/IP协议栈】【传输层】端口号、套接字、多路复用/分解、网络字节序

参考资料: 前言: 总结: 【计算机网络】套接字(应用层和传输层之间的接口) 套接字是一个通用的通信接口抽象不仅限于TCP/IP协议族作为应用层和传输层之间的桥梁支持多种通信方式和协议族 套接字定义 在 TCP 或者 UDP…

【五.LangChain技术与应用】【31.LangChain ReAct Agent:反应式智能代理的实现】

一、ReAct Agent是啥?为什么说它比「普通AI」聪明? 想象一下,你让ChatGPT查快递物流,它可能直接编个假单号糊弄你。但换成ReAct Agent,它会先推理(Reasoning)需要调用哪个接口,再行动(Action)查询真实数据——这就是ReAct的核心:让AI学会「动脑子」再动手。 举个真…

软件信息安全性测试流程有哪些?专业软件测评服务机构分享

在数字化时代,软件信息安全性测试的重要性愈发凸显。尤其是对于企业来说,确保软件的安全性不仅是维护用户信任的关键,也是满足合规要求的必要条件。 软件信息安全性测试是指通过一系列系统化的测试手段,评估软件应用在受到攻击时…

SparkAi系统体验

DeepSeek-R1-671B大模型满血版私有化部署高可用教程-SparkAi系统集成图文教程 一、SparkAI是什么二、功能模块介绍系统快速体验 三、系统功能模块3.1 AI全模型支持/插件系统3.2 AI智能体应用3.3 AI专业绘画3.4 AI视频生成3.5 Dall-E2/E3/E4绘画3.6 智能思维导图生成3.7 AI绘画广…

Cursor如何调试.Net Core控制台程序

1.背景 在Cursor下调试.Net Core控制台程序会出现下面的问题: 因为Cursor是VS Code的变种版本,并不被官方的调试机制支持去使用。基于这种情况,就产生了本文。 2.解决方法 使用三星电子的开源调试工具netcoredbg,就能解决这个问…

记一次ScopeSentry搭建

介绍 Scope Sentry是一款具有资产测绘、子域名枚举、信息泄露检测、漏洞扫描、目录扫描、子域名接管、爬虫、页面监控功能的工具,通过构建多个节点,自由选择节点运行扫描任务。当出现新漏洞时可以快速排查关注资产是否存在相关组件。 目前功能 插件系…

Aws batch task 无法拉取ECR 镜像unable to pull secrets or registry auth 问题排查

AWS batch task使用了自定义镜像,在提作业后出现错误 具体错误是ResourceInitializationError: unable to pull secrets or registry auth: The task cannot pull registry auth from Amazon ECR: There is a connection issue between the task and Amazon ECR. C…

GPT 4.5 可能是戳破 AI 泡沫的模型

GPT 4.5 可能是戳破 AI 泡沫的模型 Andrew Zuo 本文点评:在AI技术狂飙突进的同时,也有许多声音包括本文的作者在内都认为AI行业正陷入巨大泡沫,技术突破逐渐停滞,高昂的硬件成本与资本退潮或将引爆寒冬。然而,这些观点…

【Linux内核系列】:进入文件系统的世界

🔥 本文专栏:Linux 🌸作者主页:努力努力再努力wz 那么从本篇文章开始就要进入文件系统的学习了,那么之前的内容主要围绕的是进程的相关概念以及进程控制有关的系统调用接口的介绍,以及最后结合之前所学的知…