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

Linux:Linux系统项目配置

linux高级

软件安装

rpm(redhat package manager)安装

软件已经按照redhat的包管理规范进行打包,使用rpm命令进行安装,但包之间可能有依赖关系,因此不能自行解决库依赖问题,比较麻烦

yum安装

一种在线软件安装方式,本质上还是rpm安装,自动下载安装包并安装,安装过程中自动解决库依赖问题(安装过程需要联网)

源码编译安装

软件以源码工程形式发布,需要自己编译打包,类似.java文件需要编译成.class文件安装方式.

安装JDK

操作步骤:
1、在/usr/local目录下创建自定义soft目录
2、使用FinalShell自带的上传工具将jdk的二进制发布包上传到Linux
3、切换到soft目录下
4、解压安装包,命令为tar -zxvf jdk-8u171-linux-x64.tar.gz
5、配置环境变量,使用vim命令修改/etc/profile文件,在文件末尾加入如下配置 按字母G跳转到文件尾部
注意:/usr/local/soft/jdk1.8.0_171 路径不固定,是你的jdk路径位置,复制下面的路径到配置文件/etc/profile
JAVA_HOME=/usr/local/soft/jdk1.8.0_171
CLASSPATH=.: J A V A H O M E / l i b P A T H = JAVA_HOME/lib PATH= JAVAHOME/libPATH=JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
6、重新加载profile文件,使更改的配置立即生效,命令为source /etc/profile
7、检查安装是否成功,命令为java -version

安装Tomcat

大体同上

查询系统进程
ps -aux/-ef | grep tomcat
//|管道符将前面的结果作为后面的输入
linux防火墙

不开放端口或关闭防火墙无法直接访问tomcat

服务器不建议关闭防火墙

查看防火墙状态	systemctl status firewalld/ firewall-cmd --state
关闭防火墙	systemctl stop firewalld
永久关闭防火墙(禁用开机自启)	systemctl disable firewalld
暂时开启防火墙	systemctl start firewalld
永久开启防火墙(启用开机自启)	systemctl enable firewalld
重启防火墙	systemctl restart firewalld
开放指定端口	firewall-cmd --zone=public --add-port=8080/tcp --permanent
关闭指定端口	firewall-cmd --zone=public --remove-port=8080/tcp --permanent
立即生效(重新加载)	firewall-cmd --reload
查看开放端口	firewall-cmd --zone=public --list-ports
--zone=public	将端口号添加到防火墙中哪个区域 public: 公共区域,默认值。可以让互联网上所有的机器访问这个端口号 internal: 内部区域,让局域网中,内部中机器来访问这个端口号 是public的一个子集
--add-port=端口/tcp	添加指定的端口号,使用TCP协议
--remove-port=端口/tcp	删除指定的端口号,使用TCP协议
--permanent	永久的添加,主机重启了也是起作用的
--list-all	显示所有已经添加的端口号
--reload	重启加载端口的规则,让新的端口号起作用
开放端口

开启系统防火墙->开放端口->重新加载防火墙

关闭tomcat

使用./shutdown.sh脚本或关闭进程

kill -9 进程号
//强制杀死进程

安装Mysql

查询系统安装的软件

rpm -qa
//查询当前系统中安装的软件
rpm -qa | grep mysql
//查询mysql
卸载现有的Mysql数据库
rpm -e --nodeps 软件名
启动mysql
systemctl status mysqld
//查看mysql服务状态
systemctl start mysqld
//启动mysql服务
systemctl stop mysqld
//停止mysql服务
systemctl enable mysqld
//开机自启mysql
查看mysql状态
netstat -tunlp
//查看已经启动的服务
netstat -tunlp | grep mysql
//查看mysql的服务信息
ps -aux | grep mysql
//查看mysql进程-l(listening)
//显示监控中的服务器的Socket
-n(numeric)
//直接使用ip地址,不通过域名服务器
-p(programs)
//显示正在使用Socket的程序识别码和程序名称
-t(tcp)
//显示TCP传输协议的连线状况
-u(udp)
//显示UDP传输协议的连线状况ps命令用于查看Linux中的进程数据
mysql登录

查询临时密码

一般存储在/var/log/mysqld.log中

设置mysql密码
①. 登录mysql(复制日志中的临时密码登录)mysql -uroot -p								②. 修改密码 必须一步一步执行set global validate_password_length=4;			设置密码长度最低位数set global validate_password_policy=LOW;		设置密码安全等级低,便于密码可以修改成rootset password = password('1234');				设置密码为1234③. 开启访问权限DCL-- 给root指定所有的权限,在任何电脑上可以远程登录 注意我的数据库密码是1234,这里要改成你的数据库密码grant all on *.* to 'root'@'%' identified by '1234';-- 从mysql数据库中的授权表重新载入权限flush privileges;
修改mysql默认编码
vim /etc/my.cnf
# 修改 /etc/my.cnf 文件
[mysqld]
init_connect = 'SET NAMES utf8'
character-set-server = utf8
collation-server =utf8_general_ci

Yum安装软件

参数:

-y
//在安装过程中所有提示回答yes
install
//安装指定的软件
remove
//删除指定的安装包
list
//搜索指定安装包
yum源

先通过

yum install wget
//安装wget命令

下载阿里云yum源

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
//清除yum缓存
yum makecache
//将服务器上的软件包信息存放到本地缓存以提高搜索安装软件的速度

Git操作

yum list git
//列出git安装包
yum install git -y
//在线安装git

Maven安装

配置环境变量
MAVEN_HOME=/usr/local/soft/apache-maven-3.5.4
PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
配置本地仓库地址
配置阿里云私服

项目部署

手动部署项目

在IDEA中开发SpringBoot项目打包成jar包

手动执行package指令打成jar包上传到linux服务器

在linux服务器中使用java -jar命令执行

后台执行程序
使用nohup命令执行(no hang up)
//不挂断地运行指定命令,退出终端不会影响程序运行
nohup java -jar xxx.jar &> hello.log &
&:让命令在后台运行
&> 将日志输出到hello.log文件夹

自动部署项目

Shell脚本

Linux系统中的脚本程序,使用脚本解释器可以自动执行

#!/bin/sh
#记事本打开,修改编码格式为utf8,可解决上传centos后中文乱码问题
echo =================================
echo  自动化部署脚本启动
echo =================================echo 停止原来运行中的工程
APP_NAME=helloworld
# 查询系统中正在运行的helloworld的进程,并停止进程
tpid=`ps -aux|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; thenecho 'Stop Process...'kill -15 $tpid
fi
sleep 2
tpid=`ps -aux|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
# 停止后再次查询,如果还存在,则通过kill -9 强制杀死
if [ ${tpid} ]; thenecho 'Kill Process!'kill -9 $tpid
elseecho 'Stop Success!'
fiecho 准备从Git仓库拉取最新代码
cd /usr/local/app/helloworldecho 开始从Git仓库拉取最新代码
# 拉取最新代码
git pull
echo 代码拉取完成echo 开始打包
# 执行打包,跳过单元测试
output=`cd`
mvn -DskipTests=true clean package
# 切换到当前工程的target目录下
cd targetecho 启动项目
# 后台启动该项目
nohup java -jar helloworld.jar &> helloworld.log &
echo 项目启动完成

使用脚本进行批处理拉取打包启动

linux权限

chmod命令控制用户对文件的权限

权限分为读®,写(w),执行(x)

linux文件权限均以如下格式展示

rwxrwxrwx

分别代表

文件所有者(Owner)

用户组(Group)

其他用户(Other Users)

的rwx读写执行权限

没有对应权限就将对应字母换成-

chmod可以使用八进制数来指定权限

eg:chmod 777 文件名

777对应九位二进制数

111111111即rwxrwxrwx全部权限

设置静态IP

linux系统如果没有配置IP地址默认动态获取,但是如果IP地址发生变动就会使访问项目变得非常繁琐

所以需要在/etc/sysconfig/network-scripts/ifcfg-ens33 配置文件中修改对应配置

将IP地址变为静态

BOOTPROTO=static
IPADDR="192.168.200.128" 

重启网络服务

systemctl restart network
或者service network restart

相关文章:

  • 智能代理四大范式解析
  • esp32-S3 使用自带的大模型,实现本地文字转语言tts
  • 练习题(2024/5/24)
  • 在ubuntu22.04里网站源码连不上mysql数据库
  • ES6 笔记04
  • 开发“校园帮”小程序:从构思到上线的完整指南
  • 基于springboot+vue的招聘信息管理系统
  • 按月爬取天气数据可视化展示
  • 7B2 PRO主题5.4.2免授权直接安装
  • Linux网络编程:HTTP协议
  • 【漏洞复现】英飞达医学影像存档与通信系统 WebJobUpload 任意文件上传漏洞
  • YoloV8改进策略:Neck层改进、注意力改进|HCANet全局与局部的注意力模块CAFM|二次创新|即插即用
  • MySQL中的sql语句
  • bambustudio debian en_GB
  • 独享IP是原生IP吗?二者有何区别?
  • IDEA 插件开发入门教程
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • jquery cookie
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • nginx 配置多 域名 + 多 https
  • python 学习笔记 - Queue Pipes,进程间通讯
  • Vue 动态创建 component
  • 记录:CentOS7.2配置LNMP环境记录
  • 开发基于以太坊智能合约的DApp
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 力扣(LeetCode)357
  • 面试题:给你个id,去拿到name,多叉树遍历
  • 前端攻城师
  • 如何用vue打造一个移动端音乐播放器
  • 在electron中实现跨域请求,无需更改服务器端设置
  • 中文输入法与React文本输入框的问题与解决方案
  • Spring第一个helloWorld
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (苍穹外卖)day03菜品管理
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (原創) 物件導向與老子思想 (OO)
  • (转载)hibernate缓存
  • .NET 5种线程安全集合
  • .Net 6.0 处理跨域的方式
  • .net core 外观者设计模式 实现,多种支付选择
  • .NET I/O 学习笔记:对文件和目录进行解压缩操作
  • .NET Standard 的管理策略
  • .NET 分布式技术比较
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件)
  • .Net+SQL Server企业应用性能优化笔记4——精确查找瓶颈
  • .Net面试题4
  • .Net下C#针对Excel开发控件汇总(ClosedXML,EPPlus,NPOI)
  • /dev/sda2 is mounted; will not make a filesystem here!
  • /run/containerd/containerd.sock connect: connection refused