一. 概述
linux 是一套免费使用和自由传播的操作系统

1. 系统安装
(1) Linux系统分为内核版和发行版
① 内核版:由Linux核心团队开发、维护、免费、开源、负责控制硬件(无法直接使用)
② 发行版:基于Linux内核版进行扩展、由各个Linux厂商开发、维护、有收费版本和免费版本

(2) Linux系统的安装方式
① 物理机安装:直接将操作系统安装到服务器硬件上
② 虚拟机安装:通过虚拟机软件安装
虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能、运行在完全隔离环境中的完整计算机系统(如 VmWare WorkStation、VirtualBox、VMLite WorkStation)
(3) VmWare WorkStation安装
官网:VMware by Broadcom - Cloud Computing for the Enterprise










官网下载巨慢,没下载成功,随缘吧,从别处找了个安装包
通过网盘分享的文件:虚拟机 链接: https://pan.baidu.com/s/1GRieNRDKDeJMmM8OWDRR0g?pwd=ndep 提取码: ndep












(4) 虚拟机网络配置
安装完毕之后,需要配置网络,才可以在Windows系统上连接虚拟机上的Linux系统


(5) 挂在镜像






2. 远程连接
(1) 常用的SSH(Secure Shell,安全外壳协议)远程连接工具:Putty、SecureCRT、Xshell、FinalShell等
(2) FinalShell 下载与安装FinalShell SSH工具,服务器管理,远程桌面加速软件,支持Windows,macOS,Linux,版本4.6.3,更新日期2025.5.21 - FinalShell官网
https://www.hostbuf.com/t/988.html













3. 目录介绍
(1) Linux系统中的目录特点: / 是所有目录的顶点;目录结构像一颗倒挂的树


二. Linux常用命令
Linux 命令格式: command [-options] [parameter]
① command:命令名
② [-optiobs] : 选项,可以用来对命令进行控制,也可以省略(可选)
③ [parameter]:参数,可以是零个、一个或多个(可选)
使用技巧:
① Tab 键自动补全
② 连续两次Tab键,给出操作提示
③ 使用上下箭头快速调出使用过的命令
④ 使用clear命令或Ctrl+l 快捷键实现清屏
1. 目录操作命令
(1) ls 命令
① 作用: 显示指定目录下的内容
② 语法: ls [-al] [dir]
③ 选项:
-a 显示所有文件及目录( . 开头的隐藏目录也会列出)
-l 除文件名外,同时将文件类型(d 表示目录, - 表示文件)、权限、拥有者、文件大小等详细信息列出 (由于我们使用 ls 命令时经常需要加入-l 选项,所以Linux为ls -l 命令提供了一种简写方式 : ll)

(2) cd 命令
① 作用: 用于切换当前工作目录,即进入指定目录
② 语法: cd [dirName]
③ 说明:
. 表示目前所在的目录
.. 表示目前目录位置的上级目录
~ 表示用户的home目录(当前用户目录)

(3) mkdir 命令
① 作用: 创建目录
② 语法: mkdir [-p] dirName
③ 说明:
-p:确保目录名称存在,不存在则创建,通过此选项可以实现多层目录同时创建

(3) rm 命令
① 作用: 删除文件或者目录
② 语法: rm [-rf] name
③ 说明:
-r: 将目录及目录中所有文件(目录)逐一删除(递归删除)
-f: 无需确认,直接删除

2. 文件操作命令
(1) cat 命令
① 作用: 用于显示文件的所有内容 (适用于一些小文件)
② 语法: cat [-n] fileName
③ 说明:
-n:由1开始对所有输出的行数编号

(2) more 命令
① 作用: 以分页的形式显示文件内容 (适用比较大的文件)
② 语法: more fileName
③ 操作说明
回车键 向下滚动一行
空格键 向下滚动一屏
b 返回上一屏
q 或Ctrl+c 退出more

(3) head 命令
① 作用: 查看文件开头的内容
② 语法:head [-n] fileName
③ 说明: -n 输出文件开头的n行内容

(4) tail 命令
① 作用: 查看文件末尾的内容
② 语法: tail [-nf] fileName
③ 说明:
-n 输出文件末尾的 n 行内容
-f 动态读取文件末尾内容,通常用于日志文件的内容输出

3. 拷贝移动命令
(1) cp 命令
① 作用:用于复制文件或目录
② 语法: cp [-r] source dest
③ 选项: -r:如果复制的目录需要使用此选项,此时将复制该目录下所有的子目录和文件

(2) mv 命令
① 作用:为文件或目录重命名 、或将文件或目录移动到其他位置(第二个参数是已存在的目录执行移动)
② 语法: mv source dest

4. 打包压缩命令
(1) tar 命令
① 作用:对文件进行打包、解包、压缩、解压
② 语法:tar [-zcxvf] fileName [files]
③ 说明:
包文件后缀为.tar表示只是完成了打包,并没有压缩
包文件后缀为.tar.gz表示打包的同时还进行了压缩
④ 选项
-z:z代表gzip,通过gzip命令处理文件,可以对文件压缩或者解压
-c:c代表create,即创建新的包文件
-x:x代表extract,实现从包文件中还原文件【与-c互斥】
-v:v代表verbose,显示命令的执行过程
-f:f代表file,用于指定包文件的名称
|--------------------------------------|--------------------------------------------|
| tar -cvf wyyzs.tar wyyzs | 将wyyzs目录下所有文件打包,打包后的文件名为wyyzs.tar |
| tar -zcvf wyyzs.tar.gz wyyzs | 将wyyzs目录下所有文件打包并压缩,打包后的文件名为wyyzs.tar.gz |
| tar -xvf wyyzs.tar | 将wyyzs.tar文件进行解包,并将解包后的文件放在当前目录 |
| tar -zxvf wyyzs.tar.gz | 将wyyzs.tar.gz文件进行解压,并将解压后的文件放在当前目录 |
| tar -zxvf wyyzs.tar.gz -C /use/local | 将 wyyzs.tar.gz文件进行解压,解压后的文件放在/use/local目录中 |

5. 文本编辑命令
(1) vi / vim 命令
① 作用:vi 命令是Linux系统提供的一个文本编辑功能,可以对问价内容进行编辑,类似于Windows中的记事本
② 语法: vi fileName
③ 说明
vim 是从vi 发展来的功能更强大的文本编辑工具,在编辑文件时可以对文本内容进行着色(更常用)
要使用vim命令,需要自己安装,可以通过 yum install vim 命令安装
(2) vim 命令
① 作用:对文件内容进行编辑,vim其实就是一个文本编辑器
② 语法:vim fileName

|-----------|-------------------------|
| 命令模式指令 | 说明 |
| gg | 定位到文本内容的第一行 |
| G | 定位到文本内容的最后一行 |
| dd | 删除光标所在行的数据 |
| ndd | 删除当前光标所在行及之后n行的数据 |
| u | 撤销操作 |
| i 或 a 或 o | 进入插入模式(三个指令进入后光标所处位置不同) |
|-----------|--------|
| 底行模式命令 | 说明 |
| :wq | 保存并退出 |
| :q! | 不保存退出 |
| :set nu | 显示行号 |
| :set nonu | 取消显示行号 |
| :n | 定位到第n行 |







6. 查找命令
(1) find 命令
① 作用:在指定目录下查找文件
② 语法:find dirName -option fileName ( -option 最常用为-name 根据文件名查找)
③ 例如
find . -name "*.txt" 在当前目录及其子目录下查找.txt结尾的文件
find . -name "*yylj.txt" 在当前目录及其子目录下查找名称为yylj.txt文件
find /wyyzs -name ".txt" 在/wyyzs目录及其子目录下查找.txt结尾的文件

(2) grep 命令
① 作用:从指定文件中查找指定的文本内容
② 语法: grep [-inAB] word fileName
③ 选项
-i: 检索的关键字忽略(ignore) 大小写
-n: 显示关键字所在的行号
-A:输出关键字所在行及之后(After)的几行记录
-B:输出关键字所在行及之前(Before)的几行记录
④ 例如
grep hello HelloWord.java 查找HelloWord.java文件中 hello字符串的位置
grep hello *.java 查找当前目录中所有.java结尾的文件中包含hello字符串的位置

三. Linux软件安装
-
二进制发布包安装:软件已经针对具体平台编译打包发布,修改配置即可
-
rpm安装:软件已经安装redhat的包管理规范进行打包,使用rpm命令进行安装,不能自行解决库依赖问题
-
yum安装:一种在线安装方式,本质上还是rpm安装,自动下载安装包并安装,安装过程中自动解决库依赖问题
-
源码编译安装:软件以源码工程的形式发布,需要自己编辑打包
1. 安装JDK
(1) 下载Linux版本的jdk

(2) 使用FinalShell自带的上传工具将jdk的二进制发布包上传的Linux



(3) 解压安装包 (tar -zxvf jdk-21_linux-x64_bin.tar.gz -C /usr/local)


(4) 配置环境变量,使用vim命令修改/etc/profile文件,在文件末尾加入以下配置
① export JAVA_HOME=/usr/local/jdk-21.0.9
② export PATH=JAVA_HOME/bin:PATH



(5) 重新加载profile文件,使更改的配置立即生效,命令为 source /etc/profile

(6) 检查安装是否成功,命令为 java -version

2. 安装MySQL
(1) 下载Linux 版本的安装包
MySQL :: Download MySQL Community Server


(2) 卸载Linux系统中自带的mysql/mariadb安装包,否则MySQL将按照失败
① 查找:rpm -qa | grep mariadb
② 卸载:rpm -e -nodeps mariadb-libs-5.5.60-1.el7_5.x86_64(查找出来的安装包)

(3) 上传下载的MySQL安装包
(4) 解压安装包
tar -zxvf jdk-21_linux-x64_bin.tar.gz -C 路径
(5) 配置环境变量(编辑/etc/profile,追加内容)
① export MYSQL_HOME=/usr/local/mysql
② export PATH=MYSQL_HOME/bin:PATH


(6) 注册MySQL为系统服务
① cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
② chkconfig --add mysql


(7) 初始化数据库
① 创建用户组 组名为mysql:
groupadd mysql
② 创建一个系统用户 mysql,并归属于用户组mysql:
useradd -r -g mysql -s /bin/false mysql
③ 初始化mysql:
mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data



初始化完毕后,日志中会输出MySQL的root用户的临时密码,一定要记住
(8) 启动服务登录MySQL
① systemctl start mysql
② mysql -uroot -p



(9) 配置MySQL的root用户的密码,授权远程访问
① 修改临时密码:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '1234';
② 授权任何服务器上都可以访问root用户,访问密码为1234:
CREATE USER 'root'@'%' IDENTIFIED BY '1234';
③ 分配权限,可以访问所有数据库中所有表:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
④ 刷新权限
FLUSH PRIVILEGES;







3. Linux防火墙
-
查看防火墙状态(systemctl status firewalld 或 firewall-cmd --state)
-
关闭防火墙(systemctl stop firewalld)
-
开启防火墙(systemctl start firewalld)
-
永久关闭防火墙(systemctl disable firewalld) (默认开机自启)
-
开放指定端口(firewall-cmd --zone=public --add-port=8080/tcp --permanent)
6.关闭指定端口(firewall-cmd --zone=public --remove-port=8080/tcp --permanent)
-
立即生效(firewall-cmd --reload)
-
查看开放的端口(firewall-cmd --zone=public --list-ports)
注意:
1、systemctl是管理Linux中服务的命令,可以对服务进行启动、停止、重启、查看状态等操作
2、firewall-cmd是Linux中专门用于控制防火墙的命令
3、为了保证系统安全,生产服务器的防火墙不建议关闭





4. 安装Ngjnx
(1) 下载nginx安装包
nginx: download
https://nginx.org/en/download.html
(2) 安装nginx运行时需要的依赖:
yum install -y pcre pcre-devel zlib zlib-devel openssl openssl-devel

( 3) 上传nginx的资源包


(4) 解压资源包


(5) 进入解压后的目录,执行命令:
./configure --prefix=/usr/local/nginx




(6) 执行编译nginx的指令: make


(7) 执行安装nginx的指令,安装到上述指定的 /usr/local/nginx 目录: make install



(8) 进入nginx安装目录/usr/local/nginx, 启动nginx服务: sbin/nginx




四. Linux项目部署
1. 前端项目部署
(1) 将前端打包好的静态资源,上传到ngins的html目录中
打包步骤:请看博主的 Vue-打包部署 文章





(2) 配置nginx的配置文件,在 conf/nginx.conf 中配置反向代理服务器及路径重写规则

html
#user nobody;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
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;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
(3) 在nginx的安装目录中,执行 sbin 目录下的nginx命令启动nginx服务:
sbin/nginx (nginx未启动时执行) 或 sbin/nginx -s reload (nginx已启动时执行)



2. 后端项目部署
(1) 执行maven的父工程中的package生命周期,对项目进行打包【打包之前,先连接上服务器数据库,先测试通过】




(2) 在linux服务器的/usr/local目录下,创建一个目录,将jar包上传到新建的目录下


(3) 运行jar包: java -jar xxxxxx.jar


(4) 上述执行运行jar包后,会占用前台端口,窗口关闭服务也就停了,可以使用nohup指令,后天运行服务,执行指令:
nohup java -jar xxxxxxx.jar &> tilas.log & (后台(&)运行java服务将运行日志重定向(&>)到tilas.log 文件中)

(5) 查看进程: ps -ef | grep xxxx


Linux中的特殊符号:
| : 管道符。将前面命令的输出,作为后面命令的输入。如 ps -ef | grep java
> 与 >> : 重定向符号,将前面的文本内容,输出到后面的文件中(>:覆盖重定向, >> 追加重定向)。 如 echo 'hahahahah' > 1.log