vim 文本编辑器

image-20210113093238629

插入

image-20210113091539327

插入命令

a在光标后附加文本
A在本行行末附加文本
i在光标前插入文本
I在本行开始插入文本
o在光标下插入新行
O光标上插入新行

定位命令

命令作用
h方向左键左移一个字符
命令作用
j方向下键下移一行
k方向上键上移一行
l方向右键有移一个字符
$移至行尾
0移至行首
H移至屏幕上端
M移至屏幕中央
L移至屏幕下端
:setnu设置行号
:setnonu取消行号
gg到第一行
G到最后一行
nG到第n行
:n到第n行
x删除光标所在处字符
nx删除光标所在处后n个字符
dd删除光标所在行,ndd删除n行
dG删除光标所在行到末尾的内容
D删除从光标所在处到行尾

复制和剪切命令

命令作用
yy,Y复制当前行
nyy,nY复制当前行以下n行
dd剪切当前行
ndd剪切当前行以下n行
p,P粘贴在当前光标所在行下或行上

替换和取消命令

命令作用
r取代光标所在处字符
R从光标所在处开始替换字符,按ESC结束
u取消上一步操作

搜索和替换

命令作用
/string向前搜索指定字符串搜索时忽略大小写:setic
n搜索指定字符串的下一个出现的位置
:%s/old/new/g全文替换指定字符串

保存和退出命令

命令作用
w:保存修改
:wnewfilename另存为指定文件
:wq保存修改并退出
ZZ保存修改并退出快捷键
:q!不保存修改退出
:wq!保存修改并退出

LINUX软件包管理(3种安装方式)

PRM

image-20210113094222378

源码的方式安装

yum

image-20210113094300922

image-20210113094403497

直接yum安装

脚本安装

Anaconda

image-20210113094557060

image-20210113111623627

Linux wget 命令用法详解

Linux wget是一个下载文件的工具,它用在命令行下。对于Linux用户是必不可少的工具,尤其对于网络管理员,经常要下载一些软件或从远程服务器恢复备份到本地服务器。如果我们使用虚拟主机,处理这样的事务我们只能先从远程服务器下载到我们电脑磁盘,然后再用ftp工具上传到服务器。这样既浪费时间又浪费精力,那不没办法的事。而到了Linux VPS,它则可以直接下载到服务器而不用经过上传这一步。wget工具体积小但功能完善,它支持断点下载功能,同时支持FTP和HTTP下载方式,支持代理服务器和设置起来方便简单。下面我们以实例的形式说明怎么使用wget。

命令格式:
wget [参数列表] [目标软件、网页的网址] // 用法: wget [选项]... [URL]...


Linux wget 命令用法详解:
https://www.jianshu.com/p/59bb131bc2ab

LAMP$LNMP配置

image-20210113111835736

httpd和apache是一个东西!俩名字

apache

Apache HTTP Server(简称Apache)是 Apache 软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性[1]被广泛使用,是最流行的 Web 服务器端软件之一。

httpd是一个开源软件,用作web服务器来使用。目前最流行的web服务器软件叫做httpd, 在早期的http server就叫做apache,到了http server 2.0以后就改名为httpd了。 所以有时候听到apache服务器和httpd服务器指得是一个意思。

```
yum install -y httpd #安装命令
```

```
systemctl start httpd.service #开启服务
```

```
systemctl stop httpd.service #关闭服务
```

```
systemctl enable httpd.service #开机启动
```

```
systemctl start firewalld.service #开启防火墙
```

```
systemctl stop firewalld.service #关闭防火墙
```

```
systemctl restart firewalld.service #重启防火墙
```

httpd默认目录 /var/www/html

//打开浏览器并输ip

http://ip

一台服务器,一个ip地址,能建几个网站?80端口不会冲突吗?

https://pcxiaobai.com/pctechnology/technology/20200815/921.html

看了看:

不同端口,不同网站!

如果有域名!让域名对应不同的网站文件夹!这样也不会冲突!

安装宝塔

官方网址:
https://www.bt.cn/bbs/thread-19376-1-1.html
教程:
https://www.cnblogs.com/heian99/p/11972252.html

外网面板地址: http://219.155.38.223:8888/12b8ddde
内网面板地址: http://192.168.242.143:8888/12b8ddde
username: shdylctn
password: 8a0fa780
If you cannot access the panel,
release the following panel port [8888] in the security group

nginx

###安装nginx###

一. gcc 安装

安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装:

yum install gcc-c++

二. PCRE pcre-devel 安装

PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。命令:

yum install -y pcre pcre-devel

三. zlib 安装

zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。

yum install -y zlib zlib-devel

四. OpenSSL 安装

OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。

nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库。

yum install -y openssl openssl-devel

下载并解压

wget http://nginx.org/download/nginx-1.19.5.tar.gz

tar -zxvf nginx-1.19.5.tar.gz

编译

cd nginx-nginx-1.19.5

./configure

make

make install

nginx路径

whereis nginx

/usr/local/nginx

cd /usr/local/nginx/sbin/

./nginx 启动

./nginx -s stop 停止

./nginx -s quit 退出

./nginx -s reload 重启

默认路径 /usr/local/nginx/html

MariaDB 数据库

安装命令

yum -y install mariadb mariadb-server

安装完成MariaDB,首先启动MariaDB

systemctl start|stop|restart mariadb

设置开机启动

systemctl enable mariadb

MariaDB的相关简单配置

mysql_secure_installation

设置密码

Entercurrentpasswordforroot(enterfornone):<直接回车

Setrootpassword?[Y/n]<–是否设置root用户密码,输入y并回车或直接回车

Newpassword:<–设置root用户的密码

Re-enternewpassword:<–再输入一次你设置的密码

其他设置
Removeanonymoususers?[Y/n]<–是否删除匿名用户,回车

Disallowrootloginremotely?[Y/n]<–是否禁止root远程登录,回车,

Removetestdatabaseandaccesstoit?[Y/n]<–是否删除test数据库,回车

Reloadprivilegetablesnow?[Y/n]<–是否重新加载权限表,回车

登录

mysql -u root -p

设置远程连接
grant all privileges on . to’root’@’%’ identified by ‘root’ with grant option;
flush privileges;

grant all privileges on . to ‘root’@’%’ identified by ‘root’ with grant option;

flush privileges;

php

yum install php php-devel #安装

systemctl start httpd.service #生效

安装php的扩展

yum install php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc

ngnix反向代理&负载均衡

image-20210113152841299

image-20210113153215282

轮询就是平均分配!

加权就是 哪个服务器好,分的就多!

cookie

session

ip hash就是记录你登录1那个服务器

nginx.config

代理转发

image-20210113154636491

image-20210113154246178

包过滤规则(防火墙)

列出所有端口

netstat -ntlp

# 开启防火墙
systemctl start firewalld.service

# 防火墙开机启动
systemctl enable firewalld.service

# 关闭防火墙
systemctl stop firewalld.service

# 查看防火墙状态
firewall-cmd –state

service

status

# 查看现有的规则
iptables -nL

# 重载防火墙配置
firewall-cmd –reload

# 添加某个端口
firewall-cmd –permanent –zone=public –add-port=81/tcp

# 删除某个端口
firewall-cmd –permanent –zone=public –remove-port=81/tcp

# 添加多个端口
firewall-cmd –permanent –zone=public –add-port=8080-8083/tcp

# 删除多个端口
firewall-cmd –permanent –zone=public –remove-port=8080-8083/tcp

# 针对某个 IP开放端口
firewall-cmd –permanent –add-rich-rule=”rule family=”ipv4” source address=”192.168.0.1” port protocol=”tcp” port=”22” accept”
firewall-cmd - -permanent –add-rich-rule=”rule family=”ipv4” source address=”192.168.0.1” accept”

# 删除某个 IP开放端口
firewall-cmd –permanent –remove-rich-rule=”rule family=”ipv4” source address=”192.168.0.1” port protocol=”tcp” port=”22” accept”

firewall-cmd –permanent –remove-rich-rule=”rule family=”ipv4” source address=”192.168.0.1” accept”

# 查看已配置端口转发规则
firewall-cmd –permanent –list-forward-ports

# 将8080端口的访问流量转发至80
firewall-cmd –permanent –add-forward-port=port=8080:proto=tcp:toport=80
# 删除80端口的访问流量转发至8080
firewall-cmd –permanent –remove-forward-port=port=8080:proto=tcp:toport=80

#永久配置
–permanent
# 添加操作后执行重载
firewall-cmd –reload

日志管理

image-20210113173608874

image-20210113173957516

image-20210113174447155

#### 日志管理

日志文件

```
日志文件对于诊断和解决系统中的问题很有帮助,因为在 Linux 操作系统中运行的程序通常会把系统消息和错误消息写入相应的日志文件,这样系统一旦出现问题就会“有据可查”。
此外,当主机遭受攻击时,日志文件还可以帮助寻找攻击者留下的痕迹。
```

日志功能

```
用于记录系统或程序运行过程中发生的各种事件
通过阅读日志有助于诊断解决系统故障
```

日志分类

```
内核及系统日志
由系统服务syslog统一管理格式大致相同
用户日志
用于记录用户登录及退出系统的相关信息
程序日志
各种应用程序独立管理的日志文件,记录格式不一
```

日志 保存位置

```
默认位于 /var/log
```

日志配置文件

```
/etc/rsyslog.conf
```

主要日志文件介绍

```
/var/log/messages #内核及公共消息模块,记录系统或服务程序运行的状态信息 和 错误信息
/var/log/cron # 计划任务日志
/var/log/dmesg # 系统引导日志
/var/log/maillog # 邮件系统日志
用户日志
/var/log/wtmp
/var/log/btmp
/var/log/lastlog
/var/log/secure

```

rsyslogd:系统日志程序

```
ps -aux|grep rsyslogd #查看相关进程
```

```
tail -f /var/log/messages #动态查看日志文件,尾部显示
```

日志消息级别

作用:设置不同级别的日志等级,日志文件记录相应 日志信息,级别越大记录日志越详细

```
日志消息的级别

0 EMERG (紧急):会导致主机系统不可用的情况
1 ALERT (警告):必须马上采取措施解决的问题
2 CRIT (严重):比较严重的情况
3 ERR(错误):运行出现错误
4 WARNING (提醒):可能会影响系统功能的事件
5 NOTICE(注意):不会影响系统但值得注意
6 INFO 一般值思
7 DEBUG(调试)程序或系统调试信息等
```

日志一般格式

时间标签 主机名 子系统 消息字段
```

用户日志

```
/var/log/wtmp #用户登录,注销,系统开关机事件
/var/log/btmp #当前登录用户详细信息
/var/log/lastlog #最近登录用户事件
/var/log/secure #用户验证相关安全事件
分析命令
users, who, w, last, lastb
```

users

能登录的用户

who,w

在线登录用户

last ,lastb

登录成功和登录失败用户

程序日志

apache&nginx日志分析

日志管理策略

1 ,备份和归档

2,延长日志保存期限

3,控制日志访问权限

日志中可能会包含各类敏感信息,如账户、口令等

4,集中管理日志

将服务器的田志文件发到统一的日志文件服务器便于日志信息的统一收集、整理和分析

杜绝日志信息的意外丢失、恶意篡改或删除