博客系统笔记总结 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个不同的元素划分成一些不相交的集合。开始时,每个元素自成一个单元素集合,然后根据一定规律将归于同一组元素的…...
零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?
一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...

【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:
根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...

ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...

【C++特殊工具与技术】优化内存分配(一):C++中的内存分配
目录 一、C 内存的基本概念 1.1 内存的物理与逻辑结构 1.2 C 程序的内存区域划分 二、栈内存分配 2.1 栈内存的特点 2.2 栈内存分配示例 三、堆内存分配 3.1 new和delete操作符 4.2 内存泄漏与悬空指针问题 4.3 new和delete的重载 四、智能指针…...

Windows安装Miniconda
一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...
离线语音识别方案分析
随着人工智能技术的不断发展,语音识别技术也得到了广泛的应用,从智能家居到车载系统,语音识别正在改变我们与设备的交互方式。尤其是离线语音识别,由于其在没有网络连接的情况下仍然能提供稳定、准确的语音处理能力,广…...

若依登录用户名和密码加密
/*** 获取公钥:前端用来密码加密* return*/GetMapping("/getPublicKey")public RSAUtil.RSAKeyPair getPublicKey() {return RSAUtil.rsaKeyPair();}新建RSAUti.Java package com.ruoyi.common.utils;import org.apache.commons.codec.binary.Base64; im…...