Linux 从入门到项目部署完全指南

本文整合了Linux教程的Word文档与PPT核心内容,构建结构化知识体系,涵盖Linux基础、常用命令、软件安装及项目部署全流程,适用于学习笔记和教学文档,兼顾实用性与易懂性。

一、Linux概述

1.1 什么是Linux

Linux是一套免费使用、自由传播的操作系统,与Windows、MacOS并列主流操作系统,广泛应用于服务器领域。作为JavaEE开发工程师,Linux是部署数据库(MySQL)、中间件(Redis、MQ)及项目的核心环境,其基础使用是必备技能。

1.2 主流操作系统分类

领域 代表系统 特点
桌面操作系统 Windows、MacOS、Linux Windows用户最多,MacOS体验佳,Linux用户少
服务器操作系统 Unix、Linux、Windows Server Linux安全稳定且免费,占有率最高
移动设备操作系统 Android、iOS、HarmonyOS Android基于Linux开源,iOS闭源
嵌入式操作系统 Linux(嵌入式版本) 轻量化、适配嵌入式硬件

1.3 Linux系统版本

  • 内核版:由Linus Torvalds团队开发维护,免费开源,负责控制硬件。

  • 发行版:基于内核扩展,厂商维护,分收费/免费版本,常用发行版包括:

    • Ubuntu:桌面应用为主,免费

    • RedHat:企业级,收费

    • CentOS:RedHat社区版,免费(推荐学习使用)

    • Fedora:功能完备,快速更新,免费

    • 红旗Linux:国内厂商开发

1.4 系统安装

1.4.1 安装方式

安装方式 概述 适用场景
物理机安装 直接安装到服务器硬件 企业生产环境
虚拟机安装 通过虚拟机软件模拟硬件环境安装 学习阶段(推荐使用VMware)

1.4.2 虚拟机安装步骤(VMware)

  1. 下载并安装VMware(课程资料提供安装包,已安装则无需重复)。

  2. 配置虚拟网络:打开VMware→编辑→虚拟网络编辑器,选择NAT模式,设置子网IP为192.168.100.0,应用并确定。

  3. 挂载Linux镜像:解压CentOS7镜像到无中文目录,双击.vmx文件用VMware打开。

  4. 启动虚拟机:选择“我已移动该虚拟机”,登录用户名root,密码1234(Linux输入密码不显示)。

1.5 远程连接工具

1.5.1 工具介绍

SSH(Secure Shell)是远程连接Linux的安全协议,常用工具:FinalShell、Putty、Xshell,课程推荐FinalShell(免费且功能全面)。

1.5.2 FinalShell连接步骤

  1. 安装FinalShell(课程资料提供安装包,双击默认安装)。

  2. 新建SSH连接:主机192.168.100.128,端口22,用户名root,密码1234

  3. 双击连接:连接成功后即可通过FinalShell操作Linux。

1.6 Linux目录结构

核心特点

  • 根目录/是所有目录的顶点,目录结构呈倒挂树状。

  • 与Windows的盘符(C盘、D盘)结构不同,Linux无盘符概念。

主要目录功能

目录 功能描述
/bin 存放二进制可执行文件(普通用户可执行)
/sbin 存放系统管理二进制文件(仅root可执行)
/etc 存放系统配置文件
/home 普通用户主目录
/root 超级用户(root)主目录
/usr 存放系统应用程序
/var 存放动态数据(如日志文件)
/tmp 存放临时文件
/boot 存放系统引导相关文件

二、Linux常用命令

2.1 命令基础

  • 格式command [-options] [parameter]

    • command:命令名(如ls、cd)

    • [-options]:命令选项(可选,如-l、-a)

    • [parameter]:命令参数(可选,如目录名、文件名)

  • 使用技巧

    • Tab键自动补全命令/路径

    • 连续两次Tab键显示操作提示

    • 上下箭头快速调用历史命令

    • clearCtrl+l清屏

2.2 目录操作命令

2.2.1 ls(列出目录内容)

  • 作用:显示指定目录下的文件和目录

  • 语法:ls [-al] [dir]

  • 选项:

    • -a:显示所有文件(含隐藏文件,以.开头)

    • -l:显示详细信息(文件类型、权限、大小等),简写为ll

  • 示例:

    • ls -al:查看当前目录所有文件详细信息

    • ls -al /etc:查看/etc目录所有文件详细信息

2.2.2 cd(切换目录)

  • 作用:切换当前工作目录

  • 语法:cd [dirName]

  • 特殊符号:

    • ~:用户主目录(root用户为/root

    • .:当前目录

    • ..:上级目录

  • 示例:

    • cd ..:切换到上级目录

    • cd ~:切换到主目录

    • cd /usr/local:切换到指定目录

2.2.3 mkdir(创建目录)

  • 作用:创建目录

  • 语法:mkdir [-p] dirName

  • 选项:-p:递归创建多层目录(父目录不存在则自动创建)

  • 示例:

    • mkdir itcast:创建单层目录

    • mkdir -p itcast/test:创建多层目录

2.2.4 rm(删除文件/目录)

  • 作用:删除文件或目录

  • 语法:rm [-rf] name

  • 选项:

    • -r:递归删除(用于目录)

    • -f:强制删除(无需确认)

  • 示例:

    • rm -f 1.txt:强制删除文件

    • rm -rf itcast/:强制删除目录及所有内容(谨慎使用!)

2.3 文件操作命令

2.3.1 cat(查看文件内容)

  • 作用:显示文件全部内容

  • 语法:cat [-n] fileName

  • 选项:-n:显示行号

  • 示例:cat -n /etc/profile:查看文件并显示行号

2.3.2 more(分页查看文件)

  • 作用:分页显示大文件内容

  • 语法:more fileName

  • 操作:

    • 回车键:向下滚动一行

    • 空格键:向下滚动一屏

    • b:返回上一屏

    • q/Ctrl+C:退出

  • 示例:more /etc/profile:分页查看文件

2.3.3 head/tail(查看文件首尾)

  • head:查看文件开头

    • 语法:head [-n] fileName(默认前10行,-n指定行数)

    • 示例:head -20 1.log:查看前20行

  • tail:查看文件结尾

    • 语法:tail [-n/-f] fileName

    • 选项:-f:动态监控文件(常用于日志)

    • 示例:tail -f /var/log/messages:动态查看日志

2.4 拷贝移动命令

2.4.1 cp(复制文件/目录)

  • 作用:复制文件或目录

  • 语法:cp [-r] source dest

  • 选项:-r:复制目录(含子目录和文件)

  • 示例:

    • cp 1.txt itcast/:复制文件到目录

    • cp -r itcast/ itheima/:复制目录

2.4.2 mv(移动/重命名)

  • 作用:移动文件/目录或重命名

  • 语法:mv source dest

  • 规则:若dest是已存在目录则移动,否则重命名

  • 示例:

    • mv 1.txt 2.txt:重命名文件

    • mv 2.txt itcast/:移动文件到目录

2.5 打包压缩命令(tar)

  • 作用:打包、解包、压缩、解压

  • 语法:tar [-zcxvf] fileName [files]

  • 选项说明:

    • -z:通过gzip压缩/解压

    • -c:创建包文件

    • -x:解包/解压

    • -v:显示执行过程

    • -f:指定包文件名

  • 示例:

    • 打包:tar -cvf itcast.tar itcast/(仅打包,无压缩)

    • 打包压缩:tar -zcvf itcast.tar.gz itcast/(.tar.gz格式)

    • 解压:tar -zxvf itcast.tar.gz(解压到当前目录)

    • 指定目录解压:tar -zxvf itcast.tar.gz -C /usr/local

2.6 文本编辑命令(vim)

2.6.1 安装vim

  • 语法:yum install vim(CentOS默认未安装,执行后输入y确认)

2.6.2 vim三种模式及操作

模式 进入方式 核心操作
命令模式 打开文件默认进入 移动光标(gg到首行、G到尾行)、删除(dd删行、ndd删n行)、撤销(u
插入模式 命令模式按i/a/o 编辑文件内容,按ESC返回命令模式
底行模式 命令模式按:/ :wq保存退出、:q!强制退出、:set nu显示行号、/关键字查找内容
  • 示例:vim /etc/profile:打开文件→i编辑→ESC:wq保存退出

2.7 查找命令

2.7.1 find(查找文件)

  • 作用:按文件名查找文件/目录

  • 语法:find dirName -option fileName

  • 示例:

    • find . -name "*.java":当前目录及子目录查找.java文件

    • find /usr -name "*.txt":/usr目录及子目录查找.txt文件

2.7.2 grep(查找文件内容)

  • 作用:查找文件中指定关键字

  • 语法:grep [-inAB] word fileName

  • 选项:

    • -i:忽略大小写

    • -n:显示行号

    • -A5:显示关键字行及后5行

    • -B5:显示关键字行及前5行

  • 示例:grep -n "spring" application.yml:查找文件中含spring的行并显示行号

三、Linux软件安装

3.1 安装方式分类

安装方式 特点 适用场景
二进制发布包 已编译打包,解压+配置即可使用 JDK、Tomcat等
rpm安装 红帽标准包,无法自动解决依赖 简单软件安装
yum安装 在线安装,自动解决依赖(需联网) 系统工具、依赖库
源码编译安装 需编译打包,灵活性高 Nginx、自定义软件

3.2 安装JDK(二进制发布包)

  1. 上传安装包:通过FinalShell将jdk-17.0.10_linux-x64_bin.tar.gz上传到/root目录。

  2. 解压到指定目录:tar -zxvf jdk-17.0.10_linux-x64_bin.tar.gz -C /usr/local/

  3. 配置环境变量:

    • 编辑配置文件:vim /etc/profile

    • 末尾添加:

      1
              
    • 生效配置:source /etc/profile

  4. 验证安装:java -version(显示版本号则成功)

3.3 安装MySQL(二进制发布包)

3.3.1 准备工作(卸载冲突软件)

  • 查找冲突软件:rpm -qa | grep mariadb(CentOS默认自带)

  • 卸载冲突软件:rpm -e --nodeps 软件名(如mariadb-libs-5.5.60-1.el7_5.x86_64

3.3.2 安装步骤

  1. 上传并解压:将mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz上传到/root,解压后移动到/usr/local/mysql

    1
        
  2. 配置环境变量:

    • 编辑/etc/profile,末尾添加:

      1
              
    • 生效配置:source /etc/profile

  3. 注册系统服务:

    1
        
  4. 初始化数据库:

    1
        
    • 记录初始化日志中的临时密码(如1bR3oPP-DUut

3.3.3 启动与配置MySQL

  1. 启动服务:systemctl start mysql

  2. 登录MySQL:mysql -uroot -p临时密码

  3. 修改密码+授权远程访问:

    1
        
  4. 防火墙配置(开放3306端口):

    1
        

3.4 安装Nginx(源码编译安装)

  1. 安装依赖:yum install -y pcre pcre-devel zlib zlib-devel openssl openssl-devel

  2. 上传并解压:将nginx-1.20.2.tar.gz上传到/root,解压:tar -zxvf nginx-1.20.2.tar.gz

  3. 编译配置:

    1
        
  4. 编译安装:

    1
        
  5. 启动Nginx:

    1
        
  6. 验证:浏览器访问192.168.100.128,显示“Welcome to nginx!”则成功

四、项目部署

4.1 前端项目部署(Nginx)

  1. 清理默认资源:删除/usr/local/nginx/html目录下的默认文件(50x.html、index.html)。

  2. 上传前端资源:将前端打包后的静态资源(assets、index.html等)上传到/usr/local/nginx/html

  3. 配置Nginx反向代理:

    • 编辑配置文件:vim /usr/local/nginx/conf/nginx.conf

    • 替换server节点配置:

      1
              
  4. 重启Nginx:/usr/local/nginx/sbin/nginx -s reload

  5. 访问测试:浏览器输入192.168.100.128,正常显示前端页面则成功

4.2 后端项目部署(SpringBoot)

4.2.1 环境准备

  1. 修改项目配置:编辑application.yml,配置Linux上的MySQL信息:

    1
        
  2. 打包项目:通过Maven执行package命令(跳过测试),生成jar包(如tlias-web-management-0.0.1-SNAPSHOT.jar)。

4.2.2 部署步骤

  1. 上传jar包:通过FinalShell将jar包上传到Linux的/usr/local/app目录(无目录则创建:mkdir -p /usr/local/app)。

  2. 配置阿里云OSS环境变量(若项目使用OSS):

    1
        
  3. 后台运行项目:

    1
        
    • nohup:后台运行(关闭终端不停止)

    • &> tlias.log:日志输出到tlias.log文件

  4. 查看运行状态:

    • 查看进程:ps -ef | grep tlias

    • 停止服务:kill -9 进程ID

    • 查看日志:tail -f tlias.log

4.2.3 访问测试

  • 前端页面操作接口,或直接访问后端接口(如http://192.168.100.128/api/emp/list),返回正常数据则部署成功。

五、常用工具与命令汇总

5.1 Nginx常用命令

1

5.2 防火墙常用命令

1

5.3 服务管理命令

1

要不要我帮你整理一份Linux命令速查手册(含所有核心命令的语法、选项、示例),方便你随时查阅使用?

(注:文档部分内容可能由 AI 生成)