一、概述
Linux 是一套免费使用和自由传播的操作系统。
1. 系统安装
(1) Linux 系统分类
- 内核版:由 Linux 核心团队开发、维护,负责控制硬件(无法直接使用)。
- 发行版:基于 Linux 内核版进行扩展,由各个厂商开发、维护,有收费版本和免费版本。
(2) 安装方式
- 物理机安装:直接将操作系统安装到服务器硬件上。
- 虚拟机安装:通过虚拟机软件安装(如 VMware Workstation、VirtualBox)。
(3) VMware Workstation 安装
(4) 虚拟机网络配置
安装完毕后,需要配置网络,以便在 Windows 系统上连接虚拟机上的 Linux 系统。
(5) 挂载镜像
2. 远程连接
(1) 常用工具
SSH(Secure Shell,安全外壳协议) 远程连接工具包括 Putty、SecureCRT、Xshell、FinalShell 等。
(2) FinalShell 下载与安装
FinalShell SSH 工具支持 Windows, macOS, Linux。
3. 目录介绍
(1) 目录特点
Linux 系统中的根目录 / 是所有目录的顶点;目录结构像一颗倒挂的树。
二、Linux 常用命令
Linux 命令格式:command [-options] [parameter]
command:命令名[-options]:选项,可选[parameter]:参数,可选
使用技巧:
- Tab 键自动补全
- 连续两次 Tab 键,给出操作提示
- 使用上下箭头快速调出使用过的命令
- 使用
clear命令或 Ctrl+l 快捷键实现清屏
1. 目录操作命令
(1) ls 命令
- 作用:显示指定目录下的内容
- 语法:
ls [-al] [dir] - 选项:
-a:显示所有文件及目录(.开头的隐藏目录也会列出)-l:除文件名外,同时将文件类型、权限、拥有者、文件大小等详细信息列出(简写为ll)
(2) cd 命令
- 作用:用于切换当前工作目录
- 语法:
cd [dirName] - 说明:
.:表示目前所在的目录..:表示目前目录位置的上级目录~:表示用户的 home 目录
(3) mkdir 命令
- 作用:创建目录
- 语法:
mkdir [-p] dirName - 说明:
-p:确保目录名称存在,不存在则创建,可实现多层目录同时创建
(4) rm 命令
- 作用:删除文件或者目录
- 语法:
rm [-rf] name - 说明:
-r:将目录及目录中所有文件逐一删除(递归删除)-f:无需确认,直接删除
2. 文件操作命令
(1) cat 命令
- 作用:用于显示文件的所有内容(适用于小文件)
- 语法:
cat [-n] fileName - 说明:
-n:由 1 开始对所有输出的行数编号
(2) more 命令
- 作用:以分页的形式显示文件内容(适用比较大的文件)
- 语法:
more fileName - 操作说明:
- 回车键:向下滚动一行
- 空格键:向下滚动一屏
- b:返回上一屏
- q 或 Ctrl+c:退出
(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:gzip 处理文件,可以压缩或解压-c:create,创建新的包文件-x:extract,还原文件(与-c互斥)-v:verbose,显示命令执行过程-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 /usr/local | 将 wyyzs.tar.gz 文件进行解压,解压后的文件放在 /usr/local 目录中 |
5. 文本编辑命令
(1) vi / vim 命令
- 作用:vi 是 Linux 系统提供的文本编辑功能,类似于 Windows 中的记事本。vim 是从 vi 发展来的功能更强大的文本编辑工具。
- 语法:
vi fileName - 说明:要使用 vim 命令,可以通过
yum install vim安装。
(2) vim 命令操作
- 命令模式指令:
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 /wyyzs -name ".txt":在/wyyzs 目录及其子目录下查找.txt 结尾的文件
(2) grep 命令
- 作用:从指定文件中查找指定的文本内容
- 语法:
grep [-inAB] word fileName - 选项:
-i:忽略大小写-n:显示关键字所在的行号-A:输出关键字所在行及之后的几行记录-B:输出关键字所在行及之前的几行记录
- 示例:
grep hello HelloWord.java:查找 HelloWord.java 文件中 hello 字符串的位置grep hello *.java:查找当前目录中所有.java 结尾的文件中包含 hello 字符串的位置
三、Linux 软件安装
- 二进制发布包安装:软件已经针对具体平台编译打包发布,修改配置即可
- rpm 安装:使用 rpm 命令进行安装,不能自行解决库依赖问题
- yum 安装:在线安装方式,自动下载安装包并安装,自动解决库依赖问题
- 源码编译安装:软件以源码工程的形式发布,需要自己编辑打包
1. 安装 JDK
(1) 下载 Linux 版本的 JDK
官网:https://www.oracle.com/cn/java/technologies/downloads/
(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 版本的安装包
官网:https://dev.mysql.com/downloads/mysql/
(2) 卸载 Linux 系统中自带的 mysql/mariadb 安装包
- 查找:
rpm -qa | grep mariadb - 卸载:
rpm -e -nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
(3) 上传下载的 MySQL 安装包
(4) 解压安装包
tar -zxvf mysql.tar.gz -C /usr/local
(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) 初始化数据库
- 创建用户组:
groupadd 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';
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 - 关闭指定端口:
firewall-cmd --zone=public --remove-port=8080/tcp --permanent - 立即生效:
firewall-cmd --reload - 查看开放的端口:
firewall-cmd --zone=public --list-ports
注意:
systemctl是管理 Linux 中服务的命令。firewall-cmd是 Linux 中专门用于控制防火墙的命令。- 为了保证系统安全,生产服务器的防火墙不建议关闭。
4. 安装 Nginx
(1) 下载 nginx 安装包
官网:https://nginx.org/en/download.html
(2) 安装依赖
yum install -y pcre pcre-devel zlib zlib-devel openssl openssl-devel
(3) 上传 nginx 的资源包
(4) 解压资源包
(5) 配置
进入解压后的目录,执行命令:
./configure --prefix=/usr/local/nginx
(6) 编译
make
(7) 安装
make install
(8) 启动
进入 nginx 安装目录 /usr/local/nginx,启动 nginx 服务:
sbin/nginx
四、Linux 项目部署
1. 前端项目部署
(1) 上传静态资源
将前端打包好的静态资源,上传到 Nginx 的 html 目录中。
(2) 配置 Nginx 配置文件
在 conf/nginx.conf 中配置反向代理服务器及路径重写规则:
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 服务
在 nginx 的安装目录中,执行 sbin 目录下的 nginx 命令:
- 未启动时:
sbin/nginx - 已启动时:
sbin/nginx -s reload
2. 后端项目部署
(1) 打包项目
执行 Maven 的父工程中的 package 生命周期,对项目进行打包。
(2) 上传 JAR 包
在 linux 服务器的 /usr/local 目录下,创建一个目录,将 jar 包上传到新建的目录下。
(3) 运行 JAR 包
java -jar xxxxxx.jar
(4) 后台运行服务
使用 nohup 指令,后台运行服务:
nohup java -jar xxxxxxx.jar > app.log &
(5) 查看进程
ps -ef | grep xxxx
Linux 中的特殊符号:
|:管道符。将前面命令的输出,作为后面命令的输入。>与>>:重定向符号。>覆盖重定向,>>追加重定向。

