【学习总结|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 系统的强大功能,为软件开发和运维工作提供有力支持。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值