一、概述
Linux 是一套免费使用和自由传播的操作系统。
1. 系统安装
(1) Linux 系统分类
- 内核版:由 Linux 核心团队开发、维护,负责控制硬件(无法直接使用)。
- 发行版:基于 Linux 内核版进行扩展,由各个厂商开发、维护,有收费版本和免费版本。
(2) 安装方式
- :直接将操作系统安装到服务器硬件上。
介绍 Linux 操作系统基础,涵盖系统安装(物理机/虚拟机)、远程连接工具使用及目录结构。详细讲解常用命令,包括目录操作、文件查看、压缩解压、文本编辑(vim)及查找命令。演示了 JDK、MySQL、Nginx 的安装配置与环境变量设置,以及防火墙管理。最后提供了前后端项目的 Linux 部署流程,包括静态资源上传、反向代理配置及 JAR 包后台运行方法。
Linux 是一套免费使用和自由传播的操作系统。
安装完毕后,需要配置网络,以便在 Windows 系统上连接虚拟机上的 Linux 系统。
SSH(Secure Shell,安全外壳协议) 远程连接工具包括 Putty、SecureCRT、Xshell、FinalShell 等。
FinalShell SSH 工具支持 Windows, macOS, Linux。
Linux 系统中的根目录 / 是所有目录的顶点;目录结构像一颗倒挂的树。
Linux 命令格式:command [-options] [parameter]
command:命令名[-options]:选项,可选[parameter]:参数,可选使用技巧:
clear 命令或 Ctrl+l 快捷键实现清屏ls [-al] [dir]-a:显示所有文件及目录(. 开头的隐藏目录也会列出)-l:除文件名外,同时将文件类型、权限、拥有者、文件大小等详细信息列出(简写为 ll)cd [dirName].:表示目前所在的目录..:表示目前目录位置的上级目录~:表示用户的 home 目录mkdir [-p] dirName-p:确保目录名称存在,不存在则创建,可实现多层目录同时创建rm [-rf] name-r:将目录及目录中所有文件逐一删除(递归删除)-f:无需确认,直接删除cat [-n] fileName-n:由 1 开始对所有输出的行数编号more fileNamehead [-n] fileName-n 输出文件开头的 n 行内容tail [-nf] fileName-n:输出文件末尾的 n 行内容-f:动态读取文件末尾内容,通常用于日志文件的内容输出cp [-r] source dest-r:如果复制的目录需要使用此选项,此时将复制该目录下所有的子目录和文件mv source desttar [-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 目录中 |
vi fileNameyum install vim 安装。gg:定位到文本内容的第一行G:定位到文本内容的最后一行dd:删除光标所在行的数据ndd:删除当前光标所在行及之后 n 行的数据u:撤销操作i 或 a 或 o:进入插入模式:wq:保存并退出:q!:不保存退出:set nu:显示行号:set nonu:取消显示行号:n:定位到第 n 行find dirName -option fileName(-option 最常用为 -name 根据文件名查找)find . -name "*.txt":在当前目录及其子目录下查找.txt 结尾的文件find /wyyzs -name ".txt":在/wyyzs 目录及其子目录下查找.txt 结尾的文件grep [-inAB] word fileName-i:忽略大小写-n:显示关键字所在的行号-A:输出关键字所在行及之后的几行记录-B:输出关键字所在行及之前的几行记录grep hello HelloWord.java:查找 HelloWord.java 文件中 hello 字符串的位置grep hello *.java:查找当前目录中所有.java 结尾的文件中包含 hello 字符串的位置使用 FinalShell 自带的上传工具将 JDK 的二进制发布包上传到 Linux。
tar -zxvf jdk-21_linux-x64_bin.tar.gz -C /usr/local
使用 vim 命令修改 /etc/profile 文件,在文件末尾加入以下配置:
export JAVA_HOME=/usr/local/jdk-21.0.9
export PATH=$JAVA_HOME/bin:$PATH
source /etc/profile
java -version
rpm -qa | grep mariadbrpm -e -nodeps mariadb-libs-5.5.60-1.el7_5.x86_64tar -zxvf mysql.tar.gz -C /usr/local
编辑 /etc/profile,追加内容:
export MYSQL_HOME=/usr/local/mysql
export PATH=$MYSQL_HOME/bin:$PATH
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
chkconfig --add mysql
groupadd mysqluseradd -r -g mysql -s /bin/false mysqlmysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
初始化完毕后,日志中会输出 MySQL 的 root 用户的临时密码。
systemctl start mysqlmysql -uroot -pALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '1234';
CREATE USER 'root'@'%' IDENTIFIED BY '1234';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
FLUSH PRIVILEGES;
systemctl status firewalld 或 firewall-cmd --statesystemctl stop firewalldsystemctl start firewalldsystemctl disable firewalldfirewall-cmd --zone=public --add-port=8080/tcp --permanentfirewall-cmd --zone=public --remove-port=8080/tcp --permanentfirewall-cmd --reloadfirewall-cmd --zone=public --list-ports注意:
systemctl 是管理 Linux 中服务的命令。firewall-cmd 是 Linux 中专门用于控制防火墙的命令。yum install -y pcre pcre-devel zlib zlib-devel openssl openssl-devel
进入解压后的目录,执行命令:
./configure --prefix=/usr/local/nginx
make
make install
进入 nginx 安装目录 /usr/local/nginx,启动 nginx 服务:
sbin/nginx
将前端打包好的静态资源,上传到 Nginx 的 html 目录中。
在 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;
}
}
在 nginx 的安装目录中,执行 sbin 目录下的 nginx 命令:
sbin/nginxsbin/nginx -s reload执行 Maven 的父工程中的 package 生命周期,对项目进行打包。
在 linux 服务器的 /usr/local 目录下,创建一个目录,将 jar 包上传到新建的目录下。
java -jar xxxxxx.jar
使用 nohup 指令,后台运行服务:
nohup java -jar xxxxxxx.jar > app.log &
ps -ef | grep xxxx
Linux 中的特殊符号:
|:管道符。将前面命令的输出,作为后面命令的输入。> 与 >>:重定向符号。> 覆盖重定向,>> 追加重定向。
微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online
JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online
使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online
Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online