目录简介:
lrwxrwxrwx. 1 root root 7 Jun 16 2021 bin -> usr/bin //标准linux工具
dr-xr-xr-x. 5 root root 4096 Sep 7 2022 boot //核心文件
drwxr-xr-x 20 root root 3040 Nov 20 10:01 dev //Device 驱动文件
drwxr-xr-x. 83 root root 4096 Nov 20 09:48 etc //系统配置文件
drwxr-xr-x. 2 root root 4096 Apr 11 2018 home //用户目录,每个用户都有自己的用户目录
lrwxrwxrwx. 1 root root 7 Jun 16 2021 lib -> usr/lib //32位库文件
lrwxrwxrwx. 1 root root 9 Jun 16 2021 lib64 -> usr/lib64 //64位库文件
drwx------. 2 root root 16384 Jun 16 2021 lost+found //崩溃目录(无归属、已损坏)
drwxr-xr-x. 2 root root 4096 Apr 11 2018 media //媒体设备(VCD、DVD)
drwxr-xr-x. 2 root root 4096 Apr 11 2018 mnt //挂载其他设备(U盘、移动硬盘)
drwxr-xr-x. 2 root root 4096 Apr 11 2018 opt //安装第三方软件的目录(并非系统运行必须)
dr-xr-xr-x 106 root root 0 Nov 20 09:48 proc //虚拟目录(用于系统内存的映射,可以获取硬件的运行状态)
dr-xr-x---. 5 root root 4096 Sep 7 2022 root //超级用户的主目录
drwxr-xr-x 25 root root 820 Nov 20 09:49 run //临时文件目录(程序运行时的临时文件)
lrwxrwxrwx. 1 root root 8 Jun 16 2021 sbin -> usr/sbin //Super User bin (系统管理员使用的系统管理程序)
drwxr-xr-x. 2 root root 4096 Apr 11 2018 srv //服务相关数据的目录
dr-xr-xr-x 13 root root 0 Nov 20 2023 sys //文件系统(在内核当中对象被创建时 会在sys目录下创建相应的目录)
drwxrwxrwt. 8 root root 4096 Nov 20 09:49 tmp //临时文件目录(和run区别 tmp:用户产生的临时数据 run:系统产生的临时数据)
drwxr-xr-x. 13 root root 4096 Jun 16 2021 usr //默认软件安装目录
drwxr-xr-x. 21 root root 4096 Sep 7 2022 var //用来记录一些经常发生改变的数据
tomcat安装(需要依赖JDK环境):
下载tomcat:Apache Tomcat® - Apache Tomcat 9 Software Downloadshttps://tomcat.apache.org/download-90.cgi
在/usr/local 下新建 tomcat 文件夹 、将压缩文件放进去 并解压
cd /usr/local //进入/usr/local
mkdir tomcat//新建tomcat文件夹
//将压缩包放入tomcat文件夹下后
tar -zxvf apache-tomcat-9.0.83.tar.gz //解压压缩文件
配置默认工程和修改端口号:
进入/bin下启动tomcat:
sh startup.sh | ./startup.sh// 启动项目
sh shutdown.sh | ./shutdown.sh// 停止项目
工具下载:
家庭/学校免费 - NetSarang Websitehttps://www.xshell.com/zh/free-for-home-school/
jdk安装:
下载jdk压缩文件:
在/usr/local 下新建 java 文件夹 、将压缩文件放进去 并解压
cd /usr/local //进入/usr/local
mkdir java //新建java文件夹
//将压缩包放入java文件夹下后
tar -zxvf jdk-11.0.20_linux-x64_bin.tar.gz //解压压缩文件
配置环境变量:
vim /etc/profile //进入配置文件
//在最后添加以下配置
export JAVA_HOME=/usr/local/java/jdk-11.0.20 //jdk环境
export PATH=$JAVA_HOME/bin:$MYSQL_HOME/bin:$MYSQL_HOME/support-files:$PATH
//配置好后
java -version //查看java版本
常见命令:
ll //查看所有文件夹
less 文件名 //查看文件内容
cd .. //返回上一级
cd / //返回根目录
cd 文件名 //跳转目录
mkdir 文件名 //新建文件夹
cp 具体文件 复制到的具体目录 // 复制文件
rm (-f / -r) 具体文件 //删除文件 加 -f 不提示是否删除 -r 递归删除整个文件夹及其内容
tar -zxvf 压缩文件名 // 解压文件
tar -czvf 压缩包名.tar.gz 文件名/ // 压缩文件 c:创建一个压缩文件 z:使用gzip进行压缩,压缩出来的后缀就是.gz v:显示进度 f:需要压缩的文件名
vi / vim 文件名 // 编辑文件 (进入后 输入i 开始编辑 退出流程:按esc键 —> 输入:wq)
i // 编辑
w // 保存
q // 退出
source /etc/profile // 刷新环境变量
cat /etc/redhat-release // 查看当前Linux版本
touch 文件名.后缀 // 创建文件
sh startup.sh // sh:shell脚本 启动shell脚本、
yum install curl // 通过包管理器yum 下载安装curl
curl http://www.baidu.com // 发送请求
mv 原文件名 (现文件名 / 路径) // 修改文件名 / 移动文件
groupadd 组名 // 新建用户组
useradd -r -g mysql(组名) mysql(用户名) // 添加一个用户mysql 到mysql 用户组下
chown -R mysql:mysql mysql-5.7.43 //把mysql-5.7.43文件夹的权限交给mysq组下的mysql用户
chmod -R 754 文件夹名 // 修改权限
clear // 清屏
systemctl (start 、stop、restart、status) 服务名 // 启动、停止、重启、查看服务状态
source sql文件地址 // 执行sql 文件
sudo XXX // sudo(superuser do) 后面的命令执行的全部内容使用超级用户(root)来执行
ifconfig // 获取本机ip地址
find 地址 -name “文件名” // 查找文件
& // 在命令行中&符号用于在后台运行进程 及时你关闭终端或命令窗口 该进程也会继续执行
ps aux | grep redis-server // 查询redis服务
ps:表示查看当前运行的进程信息
aux: a 表示所有用户进程 u 用户信息为主的显示 x 显示所有进程
|:管道符号 用于将前一个命令的输出作为下一个命令的输入
grep:他是一个文本搜索命令
redis-server:搜索的内容
kill + id // 杀死进程
权限:
drwxr-xr-x 9 root root 4096 11月 21 15:14 apache-tomcat-9.0.83
drwxr-xr-x //权限
9 //子目录数量
root root // 分别表示 目录的 所有者 和 所属的组
4096 //如果是目录 表示 目录元数据所占用的空间 而不是 目录内容的大小
//如果是文件 则表示文件的大小 单位 bit
11月 21 15:14 // 创建时间
mysql-5.7.43 // 文件名称
drwxr-xr-x 或者 -rw-r--r--
第一个符号 // -:文件 d:目录
rw- // 文件所有者权限
r-- // 文件所在组的权限
r-- // 其他用户权限
r:可读(4) 、 w:可写 (2) 、x:可执行(1)
MySql安装:
*准备工作,把mysql传到服务器。检查是否有旧版本,然后将其卸载
检测是否已经安装了mysql
rpm -qa | grep mysql
如果已经安装了,将其卸载,如:
rpm -e --nodeps mysql-libs-5.1.71-1.el6.x86_64
mysql -V / --version // 查看mysql 的客户端工具是否安装
下载压缩包地址:MySQL :: Download MySQL Community Server (Archived Versions)https://downloads.mysql.com/archives/community/ 在usr/local下,拉取压缩包:
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.43-linux-glibc2.12-x86_64.tar.gz
解压mysql压缩文件、修改文件名及删除压缩包
# 解压 xz 后缀
xz -d 压缩文件
# 解压 tar后缀
tar -xvf mysql-5.7.43-linux-glibc2.12-x86_64.tar.gz #zip方式 -zxvf
mv mysql-5.7.43-linux-glibc2.12-x86_64 mysql
rm -f mysql-5.7.43-linux-glibc2.12-x86_64.tar.gz
创建mysql用户组和用户并修改权限
groupadd mysql #创建用户组
useradd -r -g mysql mysql #创建用户
cd /usr/local/mysql #进入mysql文件
chown mysql:mysql -R ./ #将mysql目录所有权给创建的mysql用户
初始化mysql
./bin/mysqld_safe --user=mysql &
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/mysql-5.7.43 --datadir=/usr/local/mysql/mysql-5.7.43/data
修改当前目录拥有者为root用户:
chown -R root:root ./
修改当前data目录拥有者为mysql用户:
chown -R mysql:mysql data
添加到系统进程:
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
配置环境变量:
vim /etc/profile //编辑配置文件
//在最后添加一下配置
export MYSQL_HOME=/usr/local/mysql/mysql-5.7.43
export PATH=$JAVA_HOME/bin:$MYSQL_HOME/bin:$MYSQL_HOME/support-files:$PATH
其他安装方式:
开启远程连接:
use mysql; // 先使用mysql数据库
update user set host = '%' where user = 'root'; //修改可以使root远程连接
select host, user from user;
flush privileges; //刷新
修改数据库密码:
set password for 'root'@'localhost'=password('xxxxx'); //修改密码
flush privileges; //刷新使密码生效
quit //退出mysql 然后重新连接数据库测试密码是否修改成功
数据库密码忘记:
编辑 etc/my.cnf 文件 在最后添加一下代码
skip-grant-tables //重启mysql服务就可无密码登录
Nginx安装:
nginx: downloadhttp://nginx.org/en/download.html linux 系统下四种nginx安装方法_linux_水步天-华为云开发者联盟linux 系统下四种nginx安装方法1、背景2 linux 的四种安装方式3 安装步骤3.1 yum 安装1、背景Nginx是一款轻量级的Web服务器、反向代理服务器,由于它的内存占用少,启动极快,高并发能力强,在互联网项目中广泛应用。本文介绍三种基于linux环境下的安装nginx的方法,安装版本为现阶段官网推出的最新稳定版本。环境说明软件项目版本操作系统Centos7.9nginx1.20 水步天 华为云开发者联盟https://huaweicloud.csdn.net/635611edd3efff3090b59b74.html?spm=1001.2101.3001.6650.16&utm_medium=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromBaidu~activity-16-123878716-blog-129692297.235%5Ev38%5Epc_relevant_sort_base1&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromBaidu~activity-16-123878716-blog-129692297.235%5Ev38%5Epc_relevant_sort_base1&utm_relevant_index=21#31_yum_ningx_27
解决问题https://www.cnblogs.com/Bookcict/p/17251038.htmlhttps://www.cnblogs.com/Bookcict/p/17251038.html
redis安装:
下载安装包并解压:
wget https://download.redis.io/releases/redis-7.0.14.tar.gz?_gl=1*i3f6af*_ga*MTAzMjMzOTg0Mi4xNzAxMDQ3NDY3*_ga_8BKGRQKRPV*MTcwMTA0NzQ2Ni4xLjEuMTcwMTA0NzQ3OS40Ny4wLjA.*_gcl_au*MTUwNzg0ODUxMS4xNzAxMDQ3NDY3 //安装
tar -zxvf redis-7.0.14.tar.gz?_gl=1*i3f6af*_ga*MTAzMjMzOTg0Mi4xNzAxMDQ3NDY3*_ga_8BKGRQKRPV*MTcwMTA0NzQ2Ni4xLjEuMTcwMTA0NzQ3OS40Ny4wLjA.*_gcl_au*MTUwNzg0ODUxMS4xNzAxMDQ3NDY3 //解压
编译 redis:
sudo make install//编译、安装和权限管理一气呵成
修改配置文件redis.conf 配置白名单:
设置连接密码:
启动redis:
redis-server redis.conf & //带上配置文件启动redis服务
redis-cli -a + 密码 //连接redis
*通过跳板机连接:
redis-cli -h ip地址 -p 端口号 -a + 密码 //连接其他服务器
重启redis服务:
ps aux | grep redis-server // 先查询redis服务进程
kill + id// 杀死redis进程 然后再启动redis
nacos 安装:
nacos官网:
Nacos支持三种部署模式Nacos支持三种部署模式https://nacos.io/zh-cn/docs/deployment.html
官方下载地址:
在 /usr/local 下创建nacos文件夹,将压缩包传到改文件夹下并解压:
cd /usr/local //先进入该文件下
mkdir nacos //创建nacos文件夹
cd nacos //进入nacos
tar -zxvf nacos-server-2.2.0.tar.gz //解压
创建nacos_config 数据库,运行conf文件下面的mysql-schema.sql文件:
配置conf下面的aapplication.properties文件 修改数据源mysql:
单机模式启动:
sh startup.sh -m standalone
集群模式:
集群部署说明集群部署说明https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html
集群Nacos搭建 - 简书三节点Nacos 2.x安装手册 一、准备工作 Nacos 依赖Java[https://docs.oracle.com/cd/E19182-01/820-7851/inst...https://www.jianshu.com/p/d15c121a6194
nacos访问地址 //第一次进入必须修改密码:
http://IP地址:8848/nacos/index.html
MQ(Message Queue):
消息队列,是在消息的传输过程中保存信息的容器,是用于系统之间的异步通信。
异步通信:
相当于王五充当二人的秘书,张三和李四只需要给王五说彼此想传递的信息,之后就可以做自己想做的事情,当需要获取对方说话的内容时从王五(消息队列)那里获取即可。
同步通信:
张三和李四交流逐句交流,除此之外不做任何事情。
名称解析:
消息:计算机之间传递数据的单位。
队列:是数据结构中的一个概念,在队列中数据先进先出,后进后出。(如:排队系统等)
订阅:是指为消费者服务的,消费者提前订阅,当消息队列中有消息产出时,会自动获取消息进行消费。 (如:订报纸等)
MQ的优点:
在高频业务中,某个环节(服务)出现异常或故障会导致整个系统崩溃。(如:库存系统、支付系统、物流系统等)在引入MQ之后,服务与服务之间耦合度会大大降低,增加系统的容错性。
MQ的缺点:
引入的中间件(MQ等)越多,系统的性能越低,系统的复杂度大大提高。
使用场景:
秒杀活动、抢红包、抢票
五种工作模式:
队列:
1.简单工作模式(Simple)
2.工作队列模式(Work Queue)
订阅:
1.发布订阅模式(Publish/Subscribe)
2.路由模式(Routing)
3.通配符模式(Topic)
手动确认模式:
basicAck:成功处理
basicNack:消费者处理(处理失败是会有两种处理方式)
1、需要将这条信息重新放回到队列中
2、直接将信息丢弃
basicReject:和basicNack相似,区别在于他只能拒绝一个而 basicNack 可以拒绝多个
死信队列(Dead Message):
在MQ中死信队列相当于电脑中的垃圾回收站,有了死信队列就有死信交换机
延迟队列:
延迟队列是指消息进入队列后不会立即被消费,当到达指定时间后才会被消费,如:用户下单30分钟后订单仍未支付则自动取消。
RabbitMQ安装:
RabbitMQ是用Erlang编写的,所以需要先安装Erlang的编译环境
*Erlang和RabbitMQ的版本是有一些版本匹配关系的,如果不匹配会导致RabbitMQ无法启动 1、查看版本信息https://www.rabbitmq.com/which-erlang.html 2、下载erlang地址https://erlang.org/download/3、下载abbitMQ地址https://github.com/rabbitmq/rabbitmq-server/releases/
4、安装erlang和RabbitMQhttps://help.aliyun.com/zh/ecs/use-cases/deploy-rabbitmq
Linux安装RabbitMQ详细教程(最详细的图文教程)_不一样的老墨的博客-CSDN博客文章浏览阅读7.7k次,点赞13次,收藏30次。RabbitMq安装教程_linux安装rabbitmqhttps://blog.csdn.net/laterstage/article/details/131522924
扩展:
yum(yellow dog updater modified): Linux软件包管理器,会自动下载软件包
rm -rf data/* // 到mysql文件下 删除数据 强制初始化数据库 一般用于忘记初始密码
vim 中移动一行代码 按 esc 退出编辑模式—> 按下 dd 剪切当前行 —> 移动到要粘贴的行 按下 p 粘贴当前行
wget(World Wide Web 与 get 结合) 是一个命令行工具 用于从网络上自动下载文件 它支持 http、https、ftp 协议
例如:wget http://nginx.org/download/nginx-1.22.1.tar.gz
rpm -qa|grep mari
rpm -qa // rpm包管理器 q:查询模式 a:已安装的包
| // 管道符号 用于将前一个命令的输出作为下一个命令的输入
grep // 一个强大的文本搜索工具
mari // 搜索的文本
systemctl status mysqld
systemctl // 是linux系统中用于管理系统服务器的命令行工具
statrt // 启动服务
stop // 停止服务
restart // 重启服务
status // 查看服务状态
make //是一个安装工具,用于编译和安装应用程序 编译后得程序会放在系统当中
例如:sudo make install
sh和cmd文件的区别:
.cmd文件(也是.bat文件)是windows系统下的批处理脚本文件,文件类包含了一系列的命令
.sh文件时linux和unix的脚本文件,这些脚本文件是一组终端命令行集合
cmd常见命令:
cleanmgr // 用windows自带工具清楚
del /f /s /q %TEMP%\*.* // 使用命令强制删除缓存文件
leq // 小于等于
geq // 大于等于
equ // 等于
neq //不等于
lss // 小于
gtr // 大于
编写一个简单的cmd可执行脚本文件:
新建一个以cmd为后缀的文件
@echo off
color A
chcp 65001
set /p name=请输入你的姓名:
:loop
set /p age=请输入你的年龄:
if %age% leq 20 (
echo 你输入的年龄不能小于20
goto loop
) else (
echo 你的姓名是:%name%
echo 你的年龄是:%age%
)
set /A num =1
cd /
mkdir aaa
:loop2
set /A num += 1
echo [+] 正在寻找蛋仔派对...
echo [+] 正在入侵蛋仔派对...
echo [+] 正在进行权限获取,第%num%次获取...
echo 打钱123@qq.com > C:/aaa/%num%.txt
goto loop2
pause
编写一个简单的sh可执行脚本文件:
#!/bin/bash
echo 请输入创建文件数量:
read number
mkdir /aaa
for ((i = 1;1<=$number;i++))
do
touch /aaa/$i.txt
done
换行符转义符:
windows和linux的换行符不一致,windows
Docker安装:
启动docker:
systemctl start docker
测试:
docker version
docker run hello-world
卸载:
systemctl stop docker
yum remove docker-ce docker-ce-cli containerd.io
rm -rf /var/lib/docker
rm -rf /var/lib/containerd
常见错误:
1、mysql服务未启动:
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
解决方案:重启mysql服务
systemctl start mysqld