【学习总结|DAY037】Linux 项目部署

引言

在当今的软件开发领域,Linux 以其安全、稳定、免费且开源的特性,成为项目部署的首选操作系统。无论是 Java 项目,还是各类开发、测试、生产环境中的软件安装,Linux 都占据着重要地位。本文将结合我今天所学内容,详细介绍 Linux 相关知识,包括系统概述、常用命令、软件安装及项目部署,同时附上代码案例,帮助大家更好地理解和实践。

Linux 概述

主流操作系统分类及特点

操作系统主要分为桌面、服务器和移动设备操作系统。在桌面操作系统中,Windows 用户数量最多,Mac OS 操作体验好,是办公人士的首选,而 Linux 用户数量相对较少。服务器操作系统方面,Unix 安全稳定但付费,Linux 同样安全稳定且免费,市场占有率高,Windows Server 则付费且占有率低。移动设备操作系统中,Android 基于 Linux 开源,广泛应用于智能手机、平板和智能电视;iOS 由苹果公司开发,不开源,仅用于苹果产品;HarmonyOS 是华为开发的开源系统,目前主要用于华为产品。

Linux 系统版本

Linux 系统分为内核版和发行版。内核版由 Linux 核心团队开发维护,免费开源,负责控制硬件。发行版基于内核版扩展,由不同厂商开发维护,有收费和免费版本。常见的发行版有 Ubuntu(以桌面应用为主)、RedHat(应用广泛但收费)、CentOS(RedHat 的社区版,免费)、openSUSE(对个人完全免费,图形界面华丽)、Fedora(功能完备,更新快速且免费)以及红旗 Linux(由北京中科红旗软件技术有限公司开发)。

系统安装

Linux 系统安装方式有物理机安装和虚拟机安装。物理机安装直接将系统安装到服务器硬件上;虚拟机安装则通过虚拟机软件模拟完整计算机系统来安装。常用虚拟机软件有 VMWare、VirtualBox 和 VMLite WorkStation。以 VMWare 安装 CentOS7 为例:

  1. 双击运行 VMWare 安装程序,按提示完成安装。
  2. 安装完成后配置网络,可在虚拟网络编辑器中选择合适的网络模式,如 NAT 模式。
  3. 解压 CentOS7 镜像压缩包,双击.vmx 文件挂载,启动服务器,使用 root/1234 登录。
  4. 通过ip addr命令查看当前 Linux 的 IP 地址。

远程连接

常用 SSH 远程连接工具包括 Putty、SecureCRT、Xshell 和 finalShell。以 finalShell 为例,安装时直接双击运行安装程序,连接 Linux 时,打开 finalShell,在连接管理器中新建 SSH 连接,填写主机 IP、端口(默认为 22)、用户名(如 root)和密码即可连接。

目录介绍

Linux 目录结构与 Windows 不同,/是所有目录的顶点,整个目录结构像倒挂的树。常见目录及其作用如下:

  • /bin:存放二进制可执行文件。
  • /boot:存放系统引导时使用的文件。
  • /dev:存放设备文件。
  • /etc:存放系统配置文件。
  • /home:存放系统用户的文件。
  • /lib:存放程序运行所需的共享库和内核模块。
  • /opt:额外安装的可选应用程序包放置位置。
  • /root:超级用户目录。
  • /sbin:存放二进制可执行文件,只有 root 用户能访问。
  • /tmp:存放临时文件。
  • /usr:存放系统应用程序。
  • /var:存放运行时需要改变数据的文件,如日志文件。

Linux 常用命令

命令格式及使用技巧

Linux 命令格式为command [-options] [parameter],其中command是命令名,[-options]是选项(可选),用于控制命令,[parameter]是参数(可选),可以有零个、一个或多个。使用时可通过 Tab 键自动补全,连续两次 Tab 键获取操作提示,使用上下箭头调出历史命令,用clear命令或 Ctrl + l 快捷键清屏。

目录操作命令

命令作用语法示例
ls显示指定目录下的内容ls [-al] [dir]-a显示所有文件及目录,-l详细列出文件信息ls -l查看当前目录文件详细信息;llls -l的简写
cd切换当前工作目录cd [dirName]~表示用户 home 目录,.表示当前目录,..表示上级目录cd ..切换到上级目录;cd ~切换到用户 home 目录;cd /usr/local切换到指定目录
mkdir创建目录mkdir [-p] dirName-p确保目录存在,不存在则创建mkdir itcast在当前目录创建 itcast 目录;mkdir -p itcast/test创建多层目录
rm删除文件或目录rm [-rf] name-r递归删除目录及内容,-f无需确认直接删除rm -r itcast/删除 itcast 目录及内容,需确认;rm -rf itcast/直接删除;rm -f hello.txt删除文件

文件操作命令

命令作用语法示例
cat显示文件所有内容cat [-n] fileName-n对输出行数编号cat /etc/profile查看文件内容
more分页显示文件内容more fileNamemore /etc/profile分页查看文件
head查看文件开头内容head [-n] fileName-n指定显示行数head 1.log显示文件开头 10 行;head -20 1.log显示开头 20 行
tail查看文件末尾内容tail [-nf] fileName-n指定显示行数,-f动态读取末尾内容tail 1.log显示末尾 10 行;tail -20 1.log显示末尾 20 行;tail -f 1.log实时查看日志文件末尾内容

拷贝移动命令

命令作用语法示例
cp复制文件或目录cp [-r] source dest,复制目录需用-rcp hello.txt itcast/复制文件到目录;cp -r itcast/ ./itheima/复制目录及内容
mv为文件或目录改名、移动位置mv source destmv hello.txt hi.txt改名;mv hi.txt itheima/移动文件;mv itcast/ itheima/根据情况改名或移动目录

打包压缩命令

tar命令用于对文件打包、解包、压缩、解压,语法为tar [-zcxvf] fileName [files]。选项中,-z通过 gzip 处理文件,-c创建新包文件,-x还原文件,-v显示执行过程,-f指定包文件名。

  • 打包:tar -cvf hello.tar ./*将当前目录文件打包为 hello.tar;tar -zcvf hello.tar.gz ./*打包并压缩。
  • 解包:tar -xvf hello.tar解包;tar -zxvf hello.tar.gz解压;tar -zxvf hello.tar.gz -C /usr/local解压到指定目录。

文本编辑命令

vi/vim是 Linux 文本编辑工具,vim功能更强大且支持文本着色。安装vim可使用yum install vim命令。vim有命令模式、插入模式和底行模式:

  • 命令模式:可进行文本定位、删除等操作,如gg定位到第一行,G定位到最后一行,dd删除当前行,ndd删除当前行及之后 n 行,u撤销操作。按iao进入插入模式。
  • 插入模式:用于编辑文本内容。
  • 底行模式:可进行保存、退出、显示行号等操作,如:wq保存并退出,:q!不保存退出,:set nu显示行号,:set nonu取消行号显示,:n定位到第 n 行。

查找命令

命令作用语法示例
find在指定目录下查找文件find dirName -option fileNamefind . –name "*.log"在当前目录及子目录查找.log 结尾文件;find /itcast -name "*.log"在指定目录查找
grep从指定文件中查找指定文本内容grep [-inAB] word fileName-i忽略大小写,-n显示行号,-A输出关键字所在行及之后几行,-B输出之前几行grep Hello HelloWorld.java查找文件中 Hello 字符串位置;grep hello *.java查找当前目录.java 文件中包含 hello 字符串的位置

Linux 软件安装

安装方式介绍

  • 二进制发布包安装:软件已针对平台编译打包,解压并修改配置即可使用。
  • rpm 安装:软件按 redhat 包管理规范打包,用rpm命令安装,但不能自动解决库依赖问题。
  • yum 安装:在线软件安装方式,本质是rpm安装,可自动下载安装包并解决库依赖问题。
  • 源码编译安装:软件以源码工程发布,需自行编译打包。

安装 JDK

  1. 使用 FinalShell 上传jdk-17.0.10_linux-x64_bin.tar.gz到 Linux。
  2. 解压:tar -zxvf jdk-17.0.10_linux-x64_bin.tar.gz -C /usr/local
  3. 配置环境变量:用vim修改/etc/profile,在末尾添加:
export JAVA_HOME=/usr/local/jdk-17.0.10
export PATH=$JAVA_HOME/bin:$PATH
  1. 重新加载配置:source /etc/profile
  2. 检查安装:java -version

安装 MySQL

  1. 卸载自带安装包:rpm –qa | grep mariadb查找,rpm –e –nodeps mariadb-libs-5.5.60-1.el7_5.x86_64卸载。
  2. 上传并解压安装包,移动并重命名:tar -xvf mysql-8.0.30-linux-glibc2.12-x86_64.tar.xzmv mysql-8.0.30-linux-glibc2.12-x86_64 /usr/local/mysql
  3. 配置环境变量:编辑/etc/profile,添加:
export MYSQL_HOME=/usr/local/mysql
export PATH=$MYSQL_HOME/bin:$PATH

  1. 注册为系统服务:cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqlchkconfig --add mysql
  2. 初始化数据库:
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

记录 root 用户临时密码。
6. 启动服务并登录,配置密码和远程访问:

systemctl start mysql
mysql -uroot -pxxxxx
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '1234’;
CREATE USER 'root'@'%' IDENTIFIED BY '1234’;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%’;
FLUSH PRIVILEGES;

安装 Nginx

  1. 安装依赖:yum install -y pcre pcre-devel zlib zlib-devel openssl openssl-devel
  2. 上传并解压源码包:tar -zxvf nginx-1.20.2.tar.gz
  3. 进入解压目录配置:cd nginx-1.20.2./configure --prefix=/usr/local/nginx
  4. 编译安装:makemake install
  5. 启动服务:进入/usr/local/nginx,执行sbin/nginx

项目部署

前端项目部署

  1. 将前端打包好的静态资源上传到 Nginx 的html目录。
  2. 配置 Nginx 配置文件conf/nginx.conf,在http中添加:
server {listen       80;server_name  localhost;client_max_body_size 10m;location / {root   html;index  index.html index.htm;try_files $uri $uri/ /index.html;}location ^~ /api/ {rewrite ^/api/(.*)$ /$1 break;proxy_pass http://localhost:8080;}
}
  1. 在 Nginx 安装目录执行sbin/nginx启动服务。Nginx 常用操作:
  • 启动:sbin/nginx
  • 停止:sbin/nginx -s quit
  • 重新加载:sbin/nginx -s reload

服务端项目部署

  1. 执行 Maven 父工程的package生命周期打包项目(确保连接服务器数据库并测试通过)。
  2. 在 Linux 服务器/usr/local目录创建app目录,上传 jar 包。
  3. 运行 jar 包:java -jar xxxxxx.jar,若要后台运行,使用nohup java -jar xxxxxx.jar &> tlias.log &
  4. 查看进程:ps -ef | grep xxxx
  5. 杀死进程:kill -9 xxxx

总结

本文全面介绍了 Linux 项目部署相关知识,从系统基础到常用命令,再到软件安装和项目部署实战,涵盖了 Linux 使用过程中的关键环节。希望通过这些内容,能帮助大家在 Linux 环境下更高效地进行项目开发和部署。在实际操作中,不断积累经验,深入理解 Linux 系统的强大功能,为软件开发和运维工作提供有力支持。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++高并发服务器WebServer】-12:TCP详解及实现

本文目录 一、TCP通信流程二、套接字函数2.1 socket()2.2 bind()2.3 listen()2.4 accept()2.5 connect() 三、demo实现3.1 server端代码3.2 client端代码 四、TCP三次握手五、TCP滑动窗口六、TCP四次挥手七、多进程并发服务器 一、TCP通信流程 先来讲讲服务器端,是…

【Maven】项目管理工具-Maven

目录 1. Maven简介 1.1 项目管理 1.2 项目构建 1.3 项目构建工具 1.4 Maven的四大特征 1.4.1 依赖管理系统 1.4.2 多模块构建 1.4.3 一致的项目结构 1.4.4 一致的构建模型和插件机制 1.5 Maven模型 ​编辑 2.maven的安装配置 2.1 Maven的安装配置 2.1.1检测jdk的版…

dijkstra算法类型题解

dijkstra算法(有权图,无权图): 带权路径长度——当图是带权图时,一条路径上所有边的权值之和,称为该路径的带权路径长度 初始化三个数组,final标记各顶点是否已找到最短路径,dist最…

RabbitMQ 消息顺序性保证

方式一:Consumer设置exclusive 注意条件 作用于basic.consume不支持quorum queue 当同时有A、B两个消费者调用basic.consume方法消费,并将exclusive设置为true时,第二个消费者会抛出异常: com.rabbitmq.client.AlreadyClosedEx…

基于开源AI智能名片2+1链动模式S2B2C商城小程序的个人IP活动运营策略与影响力提升研究

摘要:本文围绕个人IP运营者借助活动运营提升影响力这一主题,深入探讨如何将开源AI智能名片21链动模式S2B2C商城小程序融入借势、造势、提升参与感及用户激励等活动运营环节。通过分析该创新模式与活动运营各要素的结合点,为个人IP运营者提供切…

计算机图形学论文 | 面向制造的设计: 五轴铣削的几何制造可行性评估

🍕🍕🍕宝子们好久不见,新年快乐~~~,今天我们来更新一篇关于五轴CNC制造中的模型制造可达性分析的论文。老规矩: 红色是名词,蓝色是结论,绿色是文章工作,黄色是一些其他重…

deepseek搭建本地知识库

ollama是一个大模型的运行框架,在上面可以运行不同的大模型 部署deepseek 下载ollama:https://ollama.com/ 下载模型:https://ollama.com/library/deepseek-r1:1.5b ollama run deepseek-r1:1.5b运行起来之后,本地命令行就可以…

青少年编程与数学 02-009 Django 5 Web 编程 01课题、概要

青少年编程与数学 02-009 Django 5 Web 编程 01课题、概要 一、Django 5Django 5 的主要特性包括: 二、MVT模式三、官方网站四、内置功能数据库 ORM(对象关系映射)用户认证和授权表单处理模板引擎URL 路由缓存框架国际化和本地化安全性功能管…

deepseek本地部署-linux

1、官网推荐安装方法(使用脚本,我绕不过github,未采用) 登录ollama下载网站https://ollama.com/download/linux,linux下有下载脚本。 正常来说,在OS系统下直接执行脚本即可。 2、手动安装方法 2.1获取ollama-linux-arm64.tgz wget https://ollama.com/download/ollam…

多光谱技术在华为手机上的应用发展历史

2018 年,华为 P20 系列首次搭载 5 通道色温传感器,可帮助手机在不同光照条件下保持画面色彩一致性。 2020 年,华为 P40 系列搭载 8 通道多光谱色温传感器(实际为 11 通道,当时只用 8 个通道检测可见光)&am…

增加工作台菜单页面,AI问答应用支持上下文设置,数据库表索引优化,zyplayer-doc 2.4.8 发布啦!

zyplayer-doc是一款适合企业和个人使用的WIKI知识库管理工具,支持在线编辑富文本、Markdown、表格、Office文档、API接口、思维导图、Drawio以及任意的文本文件,专为私有化部署而设计,最大程度上保证企业或个人的数据安全,支持以内…

4.python+flask+SQLAlchemy+达梦数据库

前提 1.liunx Centos7上通过docker部署了达梦数据库。从达梦官网下载的docker镜像。(可以参考前面的博文) 2.windows上通过下载x86,win64位的达梦数据库,只安装客户端,不安装服务端。从达梦官网下载达梦数据库windows版。(可以参考前面的博文) 这样就可以用windows的达…

基础入门-网站协议身份鉴权OAuth2安全Token令牌JWT值Authirization标头

知识点: 1、网站协议-http/https安全差异(抓包) 2、身份鉴权-HTTP头&OAuth2&JWT&Token 一、演示案例-网站协议-http&https-安全测试差异性 1、加密方式 HTTP:使用明文传输,数据在传输过程中可以被…

【零基础学Mysql】常用函数讲解,提升数据操作效率的利器

以耳倾听世间繁华,以语表达心中所想 大家好,我是whisperrrr. 前言: 大家好,我是你们的朋友whisrrr。在日常工作中,MySQL作为一款广泛使用的开源关系型数据库,其强大的功能为我们提供了便捷的数据存储和管理手段。而在…

C++ 使用CURL开源库实现Http/Https的get/post请求进行字串和文件传输

CURL开源库介绍 CURL 是一个功能强大的开源库,用于在各种平台上进行网络数据传输。它支持众多的网络协议,像 HTTP、HTTPS、FTP、SMTP 等,能让开发者方便地在程序里实现与远程服务器的通信。 CURL 可以在 Windows、Linux、macOS 等多种操作系…

win编译openssl

一、perl执行脚本 1、安装perl脚本 perl安装 2、配置perl脚本 perl Configure VC-WIN32 no-asm no-shared --prefixE:\openssl-x.x.x\install二、编译openssl 1、使用vs工具编译nmake 如果使用命令行nmake编译会提示“无法打开包括文件: “limits.h”“ 等错误信息 所以…

idea启动报错# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffccf76e433

# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc0x00007ffccf76e433, pid17288, tid6696 # # JRE version: (11.0.248) (build ) # Java VM: OpenJDK 64-Bit Server VM (11.0.248-LTS, mixed mode, sharing, tiered, compressed oops, g1 gc, windows-amd64) 不知道为什么…

穷举vs暴搜vs深搜vs回溯vs剪枝系列一>不同路径 III

目录 整体思路:代码设计:代码呈现: 整体思路: 代码设计: 代码呈现: class Solution {int ret,step;int m,n;boolean[][] vis;public int uniquePathsIII(int[][] grid) {m grid.length;n grid[0].length…

Idea 2024.3 使用CodeGPT插件整合Deepseek

哈喽,大家好,我是浮云,最近国产大模型Deepseek异常火爆,作为程序员我也试着玩了一下,首先作为简单的使用,大家进入官网,点击开始对话即可进行简单的聊天使用,点击获取手机app即可安装…

Houdini subuv制作输出阵列图

在游戏开发中经常需要用到sheet阵列图,并用其制作翻页动画。通过Houdini强大的节点组合可以配合输出subuv阵列图供游戏引擎使用。 本文出处:https://zhuanlan.zhihu.com/p/391796978 博主参考学习并写该文。 1.在obj分类下创建font节点以进行测试&#…