博客系统笔记总结 2( Linux 相关)
Linux 基本使用和程序部署

基本命令
文件操作
显示当前目录下的文件
ls:显示当前目录下的文件
ll:以列表的形式展示,包括隐藏文件
进入目录 && 显示当前路径
cd:进入目录(后面跟相对路径或者绝对路径)
./ 表示当前目录 …/ 表示上级目录
pwd : 显示当前路径

创建文件夹 && 创建文件
mkdir : 创建文件夹(后面跟文件名)
mkdir -p : 创建多级目录

touch : 创建文件(后面跟文件名)
上传 && 下载
rz : 上传文件
sz : 下载(后面跟文件名)

上传文件 也可以将 要上传的文件 直接拖到终端里。
查看文件内容
cat : 查看文件(后面跟文件名)直接打开全文。退出后文件内容仍显示在屏幕上。
more : 查看文件(后面跟文件名)显示一页。退出后文件内容仍显示在屏幕上。 按空格进入下一页,按 b 进入上一页。按 ctrl + c 结束。
结束的一些套路:
ctrl + c 结束。
两次 ctrl + c 。
exit
文件相关:
:q!
:q
less : 查看文件 (后面跟文件名)显示一页。退出后文件内容不留在屏幕上。 page up / page down 翻页。
/ : 进入文件后,按 / 进行搜索(/ 后面跟你要搜索的内容)
:q : 退出文件
head : 查看文件,查看开头 n 行,head 后面跟数字 可以手动指定 查看行数。
tail : 查看文件,查看最后 n 行,head 后面跟数字 可以手动指定 查看行数。
删除文件
rm : 删除文件
rm -r : 删除多级目录,目录里面的文件也会删掉。

编辑文件内容
vi : 进入文件
i : 进入编辑模式
ESC : 退出编辑模式
:w : 保存
:q : 退出
:wq : 保存并退出
:q! : 强制退出
:wq! : 强制保存并退出
复制文件
cp [文件名] [目的地] : 复制文件。

移动文件
mv [文件名] [目的地] : 移动文件。这条命令也可以达到重命名的效果。下图表示把 cat.jpg 重命名为 cat2.jpg。

查找文件
grep [要找的文件] [在哪个文件中找] : 查找文件

grep 不仅仅能查文件,它最主要的功能是查找。想查什么用它就对了。
进程相关
查看当前系统上运行的进程
ps [参数] : 查看当前系统上运行的进程
ps aux : 查看所有进程。(显示内容更多)
ps aux : grep “进程名”
ps aux : grep “进程 id”
ps -ef : 查看所有进程。(显示一部分内容)
管道简单介绍
| : 表示把 “|” 前面命令的输出,作为"|"后面命令的输入。
例:输入 ps -ef | grep “redis” 这条命令前半部分的含义是 查看当前系统上运行的所有进程。后半部分的含义是 查找 带 “redis” 的文件。 组合起来就是 查找当前系统上运行的进程名字带 “redis” 的进程。输出:
查看系统网络状态
netstat [参数] : 查看系统网络状态

搭建 Java 部署环境
apt 介绍
apt 是啥呢?它就跟手机上的应用商店一样,你可以在上面下载各种软件。
在 linux 中主要有两种下载软件包的方法,一个是去官网下载,另一个就是用 apt 下载。
需要注意的是:在使用大多数 apt 命令时,必须要以 sudo 权限的用户身份运行。
sudo apt list : 列出 apt 中所有的包。可以使用 grep 命令过滤输出。
sudo apt-get update : 更新软件包数据库。一般在安装软件之前,都需要先更新一下 apt 数据库。
sudo apt install 包名称 : 添加软件包
sudo apt remove 包名称 : 删除软件包,不会删除配置文件。
sudo apt purge 包名称 : 删除软件包,会删除配置文件,一般推荐使用这个删。

JDK 安装
-
sudo apt-get update : 更新软件包数据库。一般在安装软件之前,都需要先更新一下 apt 数据库。
-
查找 JDK 包
apt list | grep “jdk”
-
安装 JDK
sudo apt install openjdk-17-jdk
-
查看是否安装完成
java -version

MySQL 安装
-
查找安装包
apt list | grep “mysql-server”
-
安装 MySQL
sudo apt install mysql-server
-
查看 MySQL 状态
sudo systemctl status mysql
MySQL 安全相关设置
你按照好 MySQL 之后,默认的 MySQL 设置是不安全的,为了保证数据安全,我们需要做如下设置。
运行: sudo mysql_secure_installation
运行后会弹出如下文字:

这是在让你选择密码的安全级别,数字 0、1、2 分别表示低中高,我们选 2。
这是在问你是否要删除默认用户,根据自己需求选择。

这是在问你,这台机器上的 MySQL 是否只在当前机器上运行。

选 Y,表示别的机器无法远程连接你的 MySQL数据库。
MySQL 默认会生成一个 test 数据库,这是在问你要不要删除。

这是在问是否让你的设置生效。

设置密码
-
连接 MySQL 服务器
sudo mysql
-
使用 alter user 命令修改密码
alter user ‘root’@‘localhost’ identified with mysql_native_password by ‘密码’;
设置完成密码后,后续再进入 MySQL 的命令:
mysql -u用户名 -p密码
MySQL 卸载
-
停止 MySQL
sudo systemctl stop mysql
-
卸载 MySQL
sudo apt-get remove --purge mysql-server mysql-client mysql-common
-
删除 MySQL 配置文件和数据
sudo rm -rf /etc/mysql /var/lib/mysql
-
清理残留文件和目录
sudo apt-get autoremove
sudo apt-get autoclean
-
检查是否有残留
dpkg --list | grep -i mysql-*
-
移除相关包
apt-get purge mysql*
-
验证卸载结果
mysql --version
部署 Web 项目到 Linux
什么是部署?
把程序安装到生产环境上,这个过程就称为部署。
- 开发环境(dev):开发人员使用的环境。
- 测试环境(test):测试人员使用的环境。
- 生产环境(prod):真实用户使用的环境。
环境配置
数据准备
把之前的数据库建表的脚本,放在服务器上运行,建立同样的表结构。
配置文件修改
程序部署到服务器,通常需要修改配置文件。比如:关闭日志打印,修改密码等等。
当然可以在你的开发环境上修改好,之后在送到服务器上。但是这样很不方便,需要改来改去。
为了方便部署,我们可以为不同的平台 创建各自的配置文件。

dev 表示开发环境。 prod 表示生产环境
这么多配置文件,到底哪个文件会生效呢?
答: 只有 application.yml 生效,其余配置文件都不会生效。
如何让其他配置文件生效呢?
我们在 application.yml 中输入如下代码:

此时 application-prod.yml 就会生效啦。
需要注意的是 application-名称.yml 是固定格式,必须这样写!!!
但是这样还是很麻烦,还需要手写 prod。
我们可以进一步的把它设置成变量。
打开 pom 文件,按照如下设置:

application.yml 中这样设置:

刷新 Maven。
设置好了,那该怎么选择用哪个呢?

打包
先检查你的 pom 文件中是否有以下配置。

没有的话在 里面加上。
<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><excludes><exclude><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></exclude></excludes></configuration></plugin></plugins></build>
如果没有该插件,那么你打的包中不会有第三方依赖的东西。也就是这些:
都做好以后,点击右侧的 Maven,点击 package。
打好的文件在:


如果显示:

去下载对应的包即可:
apt install lrzsz
完成!
启动 .jar 包
java -jar 包名
但是这样启动后,一旦你把命令框关掉,你的程序也就关掉了。
让你的程序在后台启动
nohup java -jar 程序包名 &
查看滚动日志
tail -f 日志名称
常见问题
-
无法访问
输入以下命令来查看端口号是否启动。
netstat -nltp|grep 端口号
输入以下命令来查看所有 java 程序
ps -ef|grep java -
确认端口号是否开放
-
确认程序是否可以正常访问
curl http://127.0.0.1:8080/blog_login.html
-
确认防火墙是否打开(默认是关闭的状态)
sudo ufw status如果防火墙打开了,还需要再打开防火墙的端口号。如果不知道防火墙怎么弄,上网查资料,或者找云服务器的客服。
-
服务器未启动
- 查看端口号是否正确
- 查看日志
杀掉进程
-
查找进程 id
在日志上直接找

用命令查找:
netstat -nltp|grep 8080或者
ps -ef|grep java -
杀掉进程
kill 进程id
本文到这里就结束啦~

相关文章:
博客系统笔记总结 2( Linux 相关)
Linux 基本使用和程序部署 基本命令 文件操作 显示当前目录下的文件 ls:显示当前目录下的文件 ll:以列表的形式展示,包括隐藏文件 进入目录 && 显示当前路径 cd:进入目录(后面跟相对路径或者绝对路径&…...
计算机毕业设计SpringBoot+Vue.js电影评论网站系统(源码+文档+PPT+讲解)
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
精美登录注册UI,登录页面设计模板
精美登录注册UI,登录页面设计模板 引言 在网页设计中,按钮是用户交互的重要元素之一。一个炫酷的按钮特效不仅能提升用户体验,还能为网页增添独特的视觉吸引力。今天,我们将通过CSS和JavaScript来实现一个“精美登录注册UI,登录页面设计模板”。该素材呈现了数据符号排版…...
《Linux系统编程篇》共享内存(Linux 进程间通信(IPC))——基础篇
文章目录 引言什么是共享内存System V 共享内存 API 引入1. shmget2. shmat3. shmdt4. shmctl5. 结构体 shmid_ds 开始实操注意 结束 今天的你有没有前进一小步呢 ——家驹(StrangeHead) 引言 那么共享内存,我们如何去使用他呢,先来听笔者啰嗦一段话吧…...
【EB-03】 AUTOSAR builder与EB RTE集成
AUTOSAR builder与EB RTE集成 1. Import Arxml files to Tresos2. Run MultiTask Script3. Add Components3.1 Run EcuExtractCreator Script4. Mapping Component to Partitions5. Event Mapping/Runnables Mapping to Tasks6. Port Connect7. Run SvcAs_Trigger Script8. Ver…...
HTML——前端基础1
目录 前端概述 前端能做的事情编辑 两步完成一个网页程序 前端工具的选择与安装 HTML HTML5介绍 HTML5的DOCTYPE声明 HTML基本骨架 文字标签 标题之标签 标签之段落、换行、水平线 标签之图片 标签之超文本链接 标签之文本 列表标签之有序列表 列表标签之无序…...
AI回答:Linux C/C++编程学习路线
Linux C/C编程学习路线需要结合Linux系统特性和C/C语言的特点,以下是一个系统化的学习路径,适合从初学者到进阶者: 第一阶段:Linux基础 Linux操作系统基础 学习Linux基本命令:ls、cd、mkdir、rm、grep、find等。 理解…...
螺旋数字矩阵
螺旋数字矩阵 真题目录: 点击去查看 E 卷 100分题型 题目描述 疫情期间,小明隔离在家,百无聊赖,在纸上写数字玩。他发明了一种写法: 给出数字个数n和行数m(0 < n ≤ 999,0 < m ≤ 999),从左上角的1开始,按照顺时针螺旋向内写方式,依次写出2,3…n,最终形成一…...
Jupyter Notebook切换虚拟环境(Kernel管理)
我们在使用Jupyter Notebook的时候,打开文件发现只有一个Python3(ipykernel),我们自己在conda中创建的虚拟环境为什么没有显示出来,今天我就来和大家一起讨论一下! 在 Jupyter Notebook 中,kernel 是执行代码的核心。管…...
linux下软件安装、查找、卸载
目录 常见安装方式有三种: 1.源码安装。 2.rpm安装方式。 3.yum/apt工具级别安装。 对于前两种安装方式,因为软件可能有依赖关系(安装的软件依赖于某些库,而这些库又依赖于某些库,这些都需要手动安装)…...
vuetify项目添加代理跨域请求
vuetify项目添加代理转发后端接口实现跨域请求 配置一(推荐)配置二 在项目根目录下找到vite.config.mts文件并在里面的server下配置代理, 具体实现代码如下: 配置一(推荐) server: {port: 3000,// 配置代理…...
H5 火柴人科目三和GitHub获取仓库点星星的用户列表发生了艺术的碰撞
先看效果,代码写的比较乱,有待优化 效果 https://linyisonger.github.io/H5.Examples/?name./089.%E7%9C%8B%E6%98%9F%E6%98%9F%E7%9A%84%E8%88%9E%E8%80%85.html 思路 看起来很简单,实则也不是很难,就是需要思路要打开。 一…...
【Azure 架构师学习笔记】- Azure Databricks (12) -- Medallion Architecture简介
本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Databricks】系列。 接上文 【Azure 架构师学习笔记】- Azure Databricks (11) – UC搭建 前言 使用ADB 或者数据湖,基本上绕不开一个架构“Medallion”, 它使得数据管理更为简单有效。ADB 通过…...
基础知识|原型在什么时候用和类的区别
在 JavaScript 中,原型和类是两个密切相关但有所不同的概念。理解这两者之间的差异有助于更好地掌握面向对象编程(OOP)在 JavaScript 中的实现。 1. 原型(Prototype) 原型是 JavaScript 中实现继承和共享行为的核心机…...
【FFmpeg】拉流
概述 项目实践中涉及到使用ffmpeg进行推流和拉流操作,本文主要对一些基本操作做一个学习总结,后续再学习其源码架构;总结方法遵循实现功能配合函数具体实现 基本使用 拉流 avformat_network_init();//日志输出等级set_ffmpeg_log_level();…...
LangChain构建行业知识库实践:从架构设计到生产部署全指南
文章目录 引言:行业知识库的进化挑战一、系统架构设计1.1 核心组件拓扑1.2 模块化设计原则二、关键技术实现2.1 文档预处理流水线2.2 混合检索增强三、领域适配优化3.1 医学知识图谱融合3.2 检索结果重排序算法四、生产环境部署4.1 性能优化方案4.2 安全防护体系五、评估与调优…...
解决jupyter notebook不是内部或外部命令问题
我们打开cmd有的时候,输入jupyter notebook,发现会提示jupyter 不是内部或外部命令,也不是可运行的程序或批处理文件。遇到这个问题我们应该怎么解决呢? 没错就是添加环境变量! Step01:在电脑中找到jupyter notebook的…...
MySQL----case的用法
在 MySQL 中,CASE 表达式是一个用于条件判断的功能,可以根据不同的条件返回不同的结果。CASE 表达式通常用于 SELECT 查询语句中,可以在 SQL 中灵活地进行条件判断和数据转换。CASE 有两种基本的语法形式: 简单 CASE 表达式&…...
Unity XR-XR Interaction Toolkit开发使用方法(十)组件介绍(XR Interaction Group)
目录 一、插件介绍 二、主要组件 XR Interaction Manager XR Controller XR Interactor XR Direct Interactor XR Ray Interactor XR Socket Interactor XR Gaze Interactor 三、XR Interaction Group 1、组件介绍 2、核心功能与特点 优先级与冲突管理 动态交互切…...
深入理解 并查集LRUCaChe
并查集&LRUCaChe 个人主页:顾漂亮 文章专栏:Java数据结构 1.并查集的原理 在一些应用问题中,需要将n个不同的元素划分成一些不相交的集合。开始时,每个元素自成一个单元素集合,然后根据一定规律将归于同一组元素的…...
SkyWalking 10.2.0 SWCK 配置过程
SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...
UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...
【Go】3、Go语言进阶与依赖管理
前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes࿰…...
AspectJ 在 Android 中的完整使用指南
一、环境配置(Gradle 7.0 适配) 1. 项目级 build.gradle // 注意:沪江插件已停更,推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...
企业如何增强终端安全?
在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习) 一、Aspose.PDF 简介二、说明(⚠️仅供学习与研究使用)三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...
十九、【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建
【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建 前言准备工作第一部分:回顾 Django 内置的 `User` 模型第二部分:设计并创建 `Role` 和 `UserProfile` 模型第三部分:创建 Serializers第四部分:创建 ViewSets第五部分:注册 API 路由第六部分:后端初步测…...
WEB3全栈开发——面试专业技能点P7前端与链上集成
一、Next.js技术栈 ✅ 概念介绍 Next.js 是一个基于 React 的 服务端渲染(SSR)与静态网站生成(SSG) 框架,由 Vercel 开发。它简化了构建生产级 React 应用的过程,并内置了很多特性: ✅ 文件系…...

