欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 手游 > 【Spring】Linux的基本使用和程序部署

【Spring】Linux的基本使用和程序部署

2025/2/25 9:28:38 来源:https://blog.csdn.net/2302_79806056/article/details/144646431  浏览:    关键词:【Spring】Linux的基本使用和程序部署

    🔥个人主页: 中草药

🔥专栏:【Java】登神长阶 史诗般的Java成神之路


一、Linux

简介

        Linux 是一种开源的类 Unix 操作系统,广泛应用于服务器、移动设备、嵌入式系统等众多领域。它以稳定性、安全性和灵活性著称,拥有庞大的开源社区支持,这使得 Linux 不断发展并适应各种不同的需求。

Linux是一个树形目录结构 

(一)文件与目录操作

ls(list)命令:用于列出目录中的文件和子目录

        -a 列出目录下的所有文件,包括以.开头的隐含文件

        -d 将目录像文件一样展示

        -k 以k字节的形式表示文件的大小。ls -alk 指定文件

        -l 列出文件的详细信息

        -r 对目录反向排序

        -t 以时间排序

        -R 列出所有子目录下的文件

pwd(print working directory)命令:显示用户当前目录

cd(change directory)命令:用于切换当前工作目录。

        cd.. 则可以返回上一级目录。

        cd -  访问最近访问的目录

mkdir(make directory)命令:用于创建新的目录。如mkdir new_folder会在当前目录下创建名为 “new_folder” 的新目录。

rmdir(remove directory)命令:用于删除空目录。如果目录非空,则需要先删除目录中的文件才能使用该命令删除目录。

rm(remove)命令:用于删除文件或目录。使用rm -r可以递归删除目录及其内容,要特别小心使用,因为删除的文件通常难以恢复。例如,rm -r old_folder会删除 “old_folder” 目录及其内部所有文件和子目录。

cp(copy)命令:用于复制文件或目录。

        -f 强行复制文件,无论目的文件或目录是否已经存在

        -i 覆盖文件之前先询问用户

        -r cp -r dir1 dir2会递归复制 “dir1” 目录及其内容到 “dir2” 目录

mv(move)命令:既可以用于移动文件或目录,也可以用于重命名文件或目录。例如,mv file1 new_file1会将 “file1” 重命名为 “new_file1”;mv file1 /home/user/dir1会将 “file1” 移动到 “/home/user/dir1” 目录下。

tail(tail)命令:用于显示指定文件末尾的内容,不指定文件时,作为输入信息进行处理,常用于查看日志文件。

sz(Send Zmodem)命令:上传文件,于将文件从服务器端(本地 Linux 系统)发送到客户端

rz(Receive Zmodem)命令:下载文件,将文件从客户端上传到服务器端

(二)文件查看与编辑

cat(concatenate)命令:用于查看文件内容并将其输出到终端。例如,cat file.txt会在屏幕上显示 “file.txt” 的内容。

less 命令:也是用于查看文件内容,但它提供了更多的交互功能,如可以上下滚动查看文件、搜索特定内容等。例如,less file.txt进入查看模式,按 “q” 键退出。

vi/vim 编辑器

        普通模式(刚打开文件时默认模式,也叫命令模式)

        插入模式(按 “i” 进入插入模式可进行文本输入)

        末行模式(按 " : " 进入末行模式可进行保存、退出等操作)

        退出:先回到普通模式,退出分以下情况

                1、文件未修改时,输入 :q 执行退出

                2、文件修改时,输入 :wq 同时执行保存退出

                3、文件修改,但不保存,使用 :wq! 进行强制退出

grep 用于查找文件中是否包含指定字符串,并且显示对应的行

        -n 显示的行数

        -w 全字匹配

        -r 递归查找

        --color 高亮查找某些文件

        --exclude 指定

ps 用于查看当前系统上运行的进程

        a 显示一个终端的所有进程

        u 以用户为主的格式来显示程序状况

(三)系统信息查看

uname(Unix name)命令:用于获取系统的基本信息。uname -a可以显示系统的内核名称、主机名、内核版本等详细信息。

top 命令:实时动态地查看系统中各个进程的资源占用情况,包括 CPU、内存、进程 ID、用户等信息。按 “q” 键退出 top 查看界面。

df(disk free)命令:用于查看磁盘空间使用情况。df -h会以人类可读的格式(如 KB、MB、GB 等)显示磁盘的总容量、已使用容量、可用容量等信息。

(四)用户与权限管理

useradd 命令:用于添加新用户。例如,useradd new_user会创建一个名为 “new_user” 的新用户。

passwd 命令:用于设置用户密码。如passwd new_user会提示输入并设置 “new_user” 的密码。

chmod(change mode)命令:用于改变文件或目录的权限。权限分为读(r - 4)、写(w - 2)、执行(x - 1)三种,通过不同的组合可以设置所有者、所属组和其他用户的权限。例如,chmod 755 file.txt会给文件所有者设置读、写、执行权限(7 = 4 + 2 + 1),给所属组和其他用户设置读、执行权限(5 = 4 + 1)。

chown(change owner)命令:用于改变文件或目录的所有者。例如,chown user:group file.txt会将 “file.txt” 的所有者改为 “user”,所属组改为 “group”。

二、搭建 java 部署环境

APT

        APT(Advanced Package Tool)是 Debian 及其衍生发行版(如 Ubuntu)中用于软件包管理的工具集。它提供了一种方便、高效的方式来安装、升级、删除和管理软件包,以及处理软件包之间的依赖关系。

APT 常用命令

apt list 列出所有的软件包

apt list | grep "java"  输出所有包的列表,内容比较多,可以使用grep命令过滤输出

sudo apt-get update 更新软件包数据库

sudo su 切换root用户

sudo apt install package_name 安装软件包

sudo apt remove package_name 移除软件包

JDK

ubuntu@VM-24-3-ubuntu:-$ sudo apt-get update #更新软件包
Hit:1 http://mirrors.tencentyun.com/ubuntu jammy InRelease3 Hit:2 http://mirrors.tencentyun.com/ubuntu jammy-updates InRelease4 Hit:3 http://mirrors.tencentyun.com/ubuntu jammy-security InRelease5 Reading package lists... Done
Reading package lists... Done#查找jdk包
apt list |grep "jdk"#安装jdk
sudo apt install openjdk-17-jdkroot@hcss-ecs-0bb1:~# apt list |grep "jdk" #查找jdk
//...
openjdk-17-demo/focal-updates,focal-security 17.0.12+7-1ubuntu2~20.04 amd64
openjdk-17-demo/focal-updates,focal-security 17.0.12+7-1ubuntu2~20.04 i386
openjdk-17-doc/focal-updates,focal-updates,focal-security,focal-security 
17.0.12+7-1ubuntu2~20.04 all
openjdk-17-jdk-headless/focal-updates,focal-security 17.0.12+7-1ubuntu2~20.04 
amd64
openjdk-17-jdk-headless/focal-updates,focal-security 17.0.12+7-1ubuntu2~20.04 
i386
openjdk-17-jdk/focal-updates,focal-security 17.0.12+7-1ubuntu2~20.04 amd64
openjdk-17-jdk/focal-updates,focal-security 17.0.12+7-1ubuntu2~20.04 i386
openjdk-17-jre-headless/focal-updates,focal-security 17.0.12+7-1ubuntu2~20.04 
amd64
openjdk-17-jre-headless/focal-updates,focal-security 17.0.12+7-1ubuntu2~20.04 
i386
openjdk-17-jre-zero/focal-updates,focal-security 17.0.12+7-1ubuntu2~20.04 amd64
//...
root@hcss-ecs-0bb1:~# sudo apt install openjdk-17-jdk #输⼊安装命令
Reading package lists... Done
Building dependency tree 
Reading state information... Done
The following additional packages will be installed:ca-certificates-java openjdk-17-jdk-headless openjdk-17-jre openjdk-17-jreheadless
Suggested packages:openjdk-17-demo openjdk-17-source visualvm fonts-ipafont-gothic fontsipafont-mincho fonts-wqy-microhei | fonts-wqy-zenhei fonts-indic
The following NEW packages will be installed:ca-certificates-java openjdk-17-jdk openjdk-17-jdk-headless openjdk-17-jre 
openjdk-17-jre-headless
0 upgraded, 5 newly installed, 0 to remove and 183 not upgraded.
Need to get 117 MB of archives.
After this operation, 273 MB of additional disk space will be used
Do you want to continue? [Y/n] Y #输⼊Y继续下⼀步
Get:1 http://repo.huaweicloud.com/ubuntu focal-updates/universe amd64 openjdk-
17-jre-headless amd64 17.0.12+7-1ubuntu2~20.04 [43.7 MB]
Get:2 http://repo.huaweicloud.com/ubuntu focal-updates/main amd64 cacertificates-java all 20190405ubuntu1.1 [12.4 kB] //...
done.
done.
Processing triggers for desktop-file-utils (0.24-1ubuntu3) ...
Processing triggers for mime-support (3.64ubuntu1) ...
Processing triggers for hicolor-icon-theme (0.17-2) ...
Processing triggers for gnome-menus (3.36.0-1ubuntu1) ...
root@hcss-ecs-0bb1:~#

检验 java -version 验证是否安装成功

root@hcss-ecs-0bb1:~# java -version #查看jdk版本
openjdk version "17.0.12" 2024-07-16
OpenJDK Runtime Environment (build 17.0.12+7-Ubuntu-1ubuntu220.04)
OpenJDK 64-Bit Server VM (build 17.0.12+7-Ubuntu-1ubuntu220.04, mixed mode, 
sharing)
root@hcss-ecs-0bb1:~#

同理 通过相同的方式去安装mysql

部署 Web 项目到 Linux

工作中涉及到的“环境”

开发环境:开发人员写代码用的机器

测试环境:测试人员测试程序使用的机器

生产环境(线上环境):最终项目发布时所使用的机器,对稳定性要求很高

        “部署” 通常是指将软件系统、应用程序、服务或相关的技术组件从开发环境或测试环境迁移并安装到生产环境(实际运行环境)的过程。这个过程涉及到多个方面,包括软件的安装、配置、初始化,以及确保其能够在目标环境中正常、稳定地运行。

构建项目并打包

在本地使用maven进行打包

上传 jar包 到服务器并运行

1、上传jar包

直接拖动打好的jar包到xshell窗⼝即可完成文件的上传

2、运行程序

nohup java -jar blog-spring-0.0.1-SNAPSHOT.jar &

nohub:后台运行程序,用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行

语法格式:

nohup Command [ Arg … ] [ & ]

Command:要执行的命令

Arg:一些参数,可以指定输出文件

&:让命令在后台,终端退出后命令仍旧执行

比如:

nohup java -jar blog-0.0.1-SNAPSHOT.jar >/logs &

Linux 可以通过 > 把需要输出的内容写到指定的文件中,这样的操作称为重定向

3、开放端口号

如果外网需要访问该服务, 需要先服务器防火墙开放对应的端口号

本着服务器安全的原则,云服务器上的端口非必要不开启

比如常见的端口号:数据库3306,Redis6379,尽可能避免开放,而是采用其他方式连接,比如配置隧道的方式

以腾讯云服务器举例:
1、进入防火墙的管理界面
2、添加规则

3、验证程序 

端口号写需要开放的端口号,多个端口号以逗号分割
此时即可通过公网 ip 去访问访问程序

路是脚踏出来的,历史是人写出来的。人的每一步行动都在书写自己的历史。--吉鸿昌

🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀

以上,就是本期的全部内容啦,若有错误疏忽希望各位大佬及时指出💐

  制作不易,希望能对各位提供微小的帮助,可否留下你免费的赞呢🌸

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词