Linux入门基础完整版【详解】

4、JDK8安装实战

(1)下载jdk官网

(2)全局环境变量的配置文件

(3)加载环境变量

(4)验证是否安装成功

5、部署tomcat网站服务器

(1)Tomcat定义

(2)Tomcat下载

(3)Tomat解压

(4)Tomat重要目录介绍

(5)启动Tomat

(6)查看是否监听tomcat

(7)测试能否访问测试页面

6、部署apache网站服务器

(1)Apache介绍

(2)源码编译安装Apache

第一步:下载组件 apr 并解压

第二步:下载组件 apr-util 并解压

第三步:下载 apache 并解压

第四步:安装 gcc 环境

第五步:安装 zlib-devel 库

第六步:安装 xml 解析器

第七步:下载并安装 pcre 正则表达式库

第八步:把组件apr与组件apr-util拷贝进apache安装包

第九步:进入apache安装包使用./configure进行环境收集检验与配置

第十步:编译并安装apache

第十一步:设置服务器名称

第十二步:测试并启停apache服务器

7、部署nginx网站服务器

(1)nginx简介

(2)nginx优点

(3)nginx缺点

(4)编译安装nginx

第一步:安装gcc编译环境

第二步:安装zlib-devel库

第三步:安装OpenSSL密码库

第四步:安装pcre正则表达式库

第五步:下载编译安装Nginx

第六步:启停Nginx服务

8、安装mysql5.7.17数据库服务器

(1)mysql简介

(2)准备工作

第一步:关闭防火墙

第二步:关闭selinux

第三步:安装 cmake 工具

第四步:下载boost库/mysql安装包

第五步:yum安装其他依赖组件

第六步:创建路径

第七步:创建mysql用户

(3)使用cmake工具对mysql5.7.17进行环境收集检验与配置相关模块

(4)编译并安装

(5)初始化mysql

(6)对mysql的相关路径进行更改权限

(7)修改配置文件

(8)启停mysql

(9)登录mysql

(10)修改mysql密码

(11)添加MySQL服务并设置mysql开机启动

(12)使用 mysql -uroot -p 登录服务器

9、部署php服务与nginx的整合

(1)PHP介绍

(2)源码编译安装

第一步:安装依赖组件

第二步:解压php安装包

第三步:使用./configure进行环境收集检验与配置

第四步:编译安装

(3)修改php服务器配置文件

(4)启停php服务器

(5)整合nginx测试php

(6)在nginx的网站发布路径下创建index.php文件

(7)测试是否安装成功

六、Linux下Shell脚本编程介绍

1、shell编程语言的介绍

(1)shell简介

(2)常见的脚本语言

(3)shell优点

(4)shell应用场景

2、shell编写第一个脚本

(1)编写脚本

(2)执行脚本

3、shell脚本与crontab定时器的运用

(1)crond服务

(2)crond服务的启停命令

(3)crontab定时器的使用

(4)crontab示例

4、利用shell脚本企业实战nginx日志切割

(1)需求

(2)脚本

七、企业实战

1、企业实战静态ip地址配置

(1)使用NAT模式

(2)修改ip地址为静态

(3)重启网卡

(4)ping不通域名

(5)alias命令实现别名

2、CentOS7实战修改linux系统主机名

(1)查看主机名命令

(2)修改主机名的命令

(3)修改后重启使之生效

(4)修改/etc/hosts文件

(5)测试能否ping通

3、CentOS7实战ssh免密远程登录其它机器

(1)执行命令创建密钥

(2)拷贝密钥至YYLCS2服务器

(3)测试能不能免密登录YYLCS2

4、CentOS7实战搭建nfs文件共享服务器

(1)NFS介绍

(2)NFS体系组成

(3)环境准备

(4)在A服务端机器安装nfs-utils和rpcbind包

(5)检查是否启动了rpcbind服务并监听着 111端口

(6)配置NFS服务的配置文件

(7)启动nfs服务

(8)设置开机启动

(9)在B客户端机器安装nfs-utils和rpcbind包

(10)设置rpcbind服务开机启动

(12)挂载

5、CentOS7 实战部署ftp文件传输服务器(一)

(1)FTP文件服务器概述

(2)FTP数据连接模式

(3)FTP服务器软件的种类

(4)FTP用户类型

(5)搭建匿名访问 vsftpd 服务

(6)配置本地用户访问 vsftpd 服务

6、CentOS7 实战部署ftp文件传输服务器(二)

(1)配置虚拟用户的 vsftpd 服务

第一步:指定 pam 文件

第二步:编辑 pam 文件,指定认证的db 文件

​​​​​​​第三步:生成 db 文件

​​​​​​​第四步:修改配置文件

第五步:对虚拟用户权限与路径进行配置

(2)配置系统用户的 FTP与配置虚拟用户的 FTP 共存


一、Linux服务器介绍

Linux
是一个免费使用和自由传播的类
Unix
操作系统,是一个基于
POSIX

UNIX
的多用户、多任务、支持多线程和多 CPU
性能稳定的网络操作系统。

linux
的内核最初是由一个芬兰的大学生因为个人兴趣爱好而编写的,这个大学生的名字叫林纳斯
·
托瓦兹(
Linus Torvalds)

目前市面上较知名的发行版有:
Ubuntu

RedHat

CentOS

Debian

Fedora

SuSE、

OpenSUSE

ArchLinux、
SolusOS
等,其中这个
是一个企业级的发行版,特别适合对稳定性,可靠性和功能要求较高的用户。

二、搭建Linux服务器

1、windows环境下vmware虚拟机的安装

下载安装包,双击点击安装,遇到下图选择其中框起来的即可

安装完成后如果要输入许可证密钥,在网上找一个可以用的密钥填进去就行了~

VM虚拟机主界面显示如下图所示:

2、linux CentOS7****系统的安装

必备:下载好centos7系统镜像文件

(1)新建虚拟机

点击创建新的虚拟机,选择稍后安装操作系统,操作系统选择Linux,版本选择Centos 7 64位

下一步给虚拟机起名,以及选择安装路径,一个虚拟机大概会占用3-4G的内存(我这里选择装在D盘)

这里是要给当前新建的服务器安排多少的内存空间,一般选择40G就差不多了(看个人情况)

这里点击自定义硬件,需要处理两点

  • 移除无用设备:移除掉一些无必要的设备,
  • 虚拟内存修改:内存这里需要根据外部物理主机,也就是我们自己电脑的性能条件进行设置,我电脑当前有16GB的内存,因此后续为了系统效率更高,可以将虚拟机内存设置大一点,我这里分配了4GB
  • 处理器:数量以及内核都分配2个,安装操作系统效率会更高

(2)编辑虚拟器设置

若新建虚拟机时没配置好,我们也可以点击【编辑虚拟器设置】继续编辑虚拟器

(3)添加操作系统

点击编辑虚拟器设置,在硬件处点击CD/DVD,选择之前下载的ISO映像文件,最后点击确定

(4)开启虚拟机

点击【开启此虚拟机】按钮,这里我们选择第一个,进行安装centos 7

这里弹出一个界面选择语言,我们选择英语

接下来有几个配置:

  • 【DATE&TIME】,其中地区选择亚洲,城市这里我选择了重庆
  • 键盘【KEYBOARD】直接选择默认
  • 磁盘分区我们一般选择自动即可
  • 设置中的网络选择看个人,后续可以再打开或者关闭

配置设置完后,点击右下角的【Begin installation】进行安装

安装时会出现设置密码和普通用户的情况,根据个人情况设置即可(我这里设置了密码123)

安装完成之后,点击右下角Reboot重启虚拟机登录我们的虚拟服务器

用户名即为root

密码为之前设置的密码,我这里是123

从下图可以看到,我们已经登录成功啦

3、vmware****虚拟机的三种网络模式的设置介绍

vmware虚拟机有对应三种网络模式,分别是:Bridged桥接模式、Host-Only仅主机模式、NAT模式,下面简单介绍下三种网络模式的特点

(1)Bridged桥接模式
  • 默认使用
    VMnet0
    ,不提供
    DHCP
    服务(
    DHCP
    服务是指由服务器控制的一段
    IP
    地址范围,当客户机登录服务器时会自动获取服务器分配的IP
    地址与子网掩码)
  • 虚拟机与外部主机需要在同一个网段上,与局域网的其它机器没有区别
  • 可以与局域网内其它主机通信,可以与外部网络通信
  • 容易与局域网其他主机引起ip
    地址冲突
(2)Host-Only仅主机模式
  • 默认使用VMnet1,提供DHCP服务
  • 虚拟机可以和物理主机互相访问,但虚拟机无法访问外部网络
(3)NAT模式
  • 默认使用VMnet8,提供DHCP服务
  • 虚拟机可以和物理主机互相访问,可访问外部网络
  • 局域网内其它机器访问不了

4、Linux Centos7的网络设置

(1)全局网络配置

点击编辑->虚拟网络编辑器,可以看到三种模式,桥接模式可以选择具体网卡(自动、无线网卡、有线网卡),我这里选择自动

(2)单台虚拟机配置

选择要配置的单台虚拟机,右键点击设置进入虚拟机设置界面,再点击网络适配器选择网络连接

# Bridged桥接模式

在虚拟机设置中网络连接若选择桥接模式,直接勾选即可,如下图:

更改了网络设置,若想要让它生效,有两个方法:

  • 法1:重启主机
  • 法2:重启网卡

重启主机花费时间较多,因此重启网卡即可,桥接模式中的主机和外部物理主机基本处于同一个局域网,网络之间可以互相通信

# Host-Only仅主机模式

在虚拟机设置中网络连接勾选仅主机模式,点击确定,且重启网卡使网络生效

【ping ip地址】可查看到该虚拟机可以和物理主机互相访问,但虚拟机无法访问外部网络

# NAT模式

在虚拟机设置中网络连接勾选仅主机模式,点击确定,且重启网卡使网络生效

【ping ip地址】可查看到该虚拟机可以和物理主机互相访问,可访问外部网络

操作命令

操作命令
重启主机reboot
重启网卡systemctl restart network.service
查看ip地址ip addr
检测网络是否畅通ping ip地址
结束ping命令摁住 ctrl + c 键盘即可退出ping命令
清屏摁住 ctrl + l
(3)三种模式对比
网络模式访问条件IP冲突
Bridged桥接模式可以访问外网容易与局域网的其他机器ip地址冲突
Host-Only仅主机模式一般不能访问外网不会与局域网的其他机器ip地址冲突
NAT模式可以访问外网不会与局域网的其他机器ip地址冲突

注意:为了提供不同的测试环境,有的需要虚拟机与局域网内的其他机器环境隔离,有的不需要,因此出现了这么多模式

5、Linux远程连接工具的使用

(1)检查网络畅通

使用前要确保虚拟机与物理主机网络畅通,我们分别在虚拟机以及物理主机进行ping

(2)打开SecureCRT 64

我这里使用的是SecureCRT 64,双击打开应用程序

获取到目标虚拟机的ip地址,填入这里的主机名称,用户名我这里只有一个root,其他暂时为默认值,点击连接

如图:已经连接成功了

(3)设置字体

选项->会话选项->外观,设置背景颜色,字体大小以及字符编码为UTF-8,设置好后保存

(4)设置复制粘贴操作

选项->全局选项->终端,选中这里的鼠标设置即可

(5)上传文件功能

传输->Zmodem上传列表,点击文件进行上传服务器

第一次上传时会弹出rz命令没找到的提示,则需要安装下rz命令(确认服务器可以联外网)

安装上传下载功能lrzsz服务:yum -y install lrzsz 

安装完成后再次点击开始上传按钮,如下图可以看到文件上传成功,使用 ll 命令可以看到文件具体上传地方

(6)下载文件功能

在窗口输入命令直接下载文件,命令如下:

sz 文件名

备注:文件的上传下载路径可以设置,选项->会话选项->终端->X/Y/Zmodem

6、虚拟机的快速克隆与快照恢复

(1)虚拟机克隆

右键虚拟机->管理->克隆,需要注意的是,开启或挂起的虚拟机无法被克隆

如上图,这样就克隆好了一台新的虚拟机,克隆机与原来的虚拟机网络设置、密码等都一致

注意事项:

克隆后的虚拟机重启网卡会失败,如下图:

查询机器网卡:cat /etc/sysconfig/network-scripts/ifcfg-eno16777728(摁住键盘的tab键可以对命令进行补全 )

原因是因为克隆过来的虚拟机把原虚拟机的MAC地址也一起复制过来了,正常情况下虚拟机MAC地址都是唯一的,因此需要修改MAC地址

查看一个虚拟机的MAC地址(两种方法):

  • ip addr
  • 设置->虚拟机设置->网络适配器->高级->MAC地址

拿到克隆机原本的MAC地址后,修改网卡信息-MAC地址

使用
vi
工具进行编辑网卡信息:
vi /etc/sysconfig/network-scripts/ifcfg-eno16777728

(摁住键盘的【i】
进入编辑模式,按住键盘左上角【esc】键退出编辑模式,再输入【:wq
】进行保存)

(2)快照恢复

快照相当于备份,我们进行操作的时候,有时候会导致一些不可逆的错误发生,比如删除了某些文件造成数据丢失,这时候就可以通过快照恢复

创建快照的方法:

虚拟机右键->快照->拍摄快照,填写快照名称以及描述,点击确定后,就新建好了一个快照

如果要恢复快照的话,必须关闭虚拟机进行恢复(一般除非做出了不可逆的操作,否则不太会进行快照恢复)

恢复快照步骤:

虚拟机右键->快照->快照管理器,选择快照节点,右键选择转到快照

注意:我们恢复快照相当于做逆反操作,恢复之前某个时刻的状态,但恢复后就无法再次回到当前状态了(恢复快照前要仔细考虑)

三、Linux常用操作

1、工作中常用的基础命令

命令功能说明举例
cd切换目录cd /usr/local/    (切换至当前目录) cd …                 (返回上一级目录) cd -                  (回退到上一次目录)
ls列出目录内容ls -lrt     缩写为 ll          -----时间升序显示 ls -alrt             —显示隐藏文件 ls -lrt /home/   —显示home目录下的内容
pwd查询所在目录pwd
cat查看小文件内容cat 123.txt       ----查看目标文件内容 cat -n 123.txt   —查看文件内容且给每行排序
more查看大文件内容more System.map-3.10.0-123.el7.x86_64 (可以嗯【Q】键退出查看)
head查看文件的前面N行head System.map-3.10.0-123.el7.x86_64          (默认查看文件前10行) head -20 System.map-3.10.0-123.el7.x86_64    (查看文件前20行-自定义)
tail查看文件的后面N行tail System.map-3.10.0-123.el7.x86_64         (默认查看文件后10行) tail -20 System.map-3.10.0-123.el7.x86_64   (查看文件后20行-自定义) tail -f access.log       (动态查看日志文件) tail -20 access.log    (动态查看文件后20行)
touch创建一个空文件touch 123.txt
mkdir创建目录mkdir -p /tmp/YYL/YYL/class      (以绝对值方式创建套层目录)
rmdir删除目录rmdir /tmp/YYL/YYL/class             (删除目录)
cp拷贝文件cp 123.txt class/                   (拷贝文件到class目录) cp 123.txt class/456.txt         (拷贝文件到class目录并改名为456,但文件某些属性没复制过来) cp -a 123.txt class/789.txt     (拷贝文件到class目录并改名为789,文件属性也一起复制过来)
mv移动或更名现有的文件或目录mv 123.txt 345.php              (将文件更名) mv 456.txt /home/                (将文件移动至home文件夹下) mv 789.txt /home/987.php   (将文件移动至home文件夹下且更名为987)
rm删除文件或目录rm 987.php    (删除文件,会弹出是否删除的提示,且目录不能删除) rm -rf 456.txt    (直接删除文件,且什么都可以删除)
diff对比文件差异diff 123.txt 456.txt
ssh远程安全登录方式ssh 192.168.213.129 (根据ip地址切换主机)
exit退出命令exit  (切换主机后再退回来,原主机所在目录不做改变)
id查看用户id root
uname查询主机信息uname -a    (详细主机信息)
ping查看网络是否畅通ping 192.168.213.129
echo标准输出命令echo “this is echo 命令”
man查看帮助文档man ls     (ls命令的具体使用) ls --help     (同man命令类似,只不过是全部打印出来)
help查看内部命令帮助help if      (if命令的具体使用)
clear清屏clear 等同于 ctrl + l
who当前在本地系统上的所有用户的信息who whoami   (查看当前是哪个用户)
uptime查询系统信息其中显示信息:load average:0.00,0.01,0.05     (1分钟的负载,5分钟的负载,15分钟的负载)
w查询系统信息w   (who与uptime的结合查询)
free查看系统内存free -h       (会同时显示出单位) free -m      (以m为单位显示)
wc统计行wc -l 123.txt     (文件中有多少行)
grep查找文件里符合条件的字符串grep ‘119.4.253.206’ 123.txt             (找到文件里有多少该字符串,都展示出来) grep ‘119.4.253.206’ 123.txt
find查询文件find / -name 123.txt               (查询文件的所有路径-可能会查出来目录,但不建议,因为很耗性能) find / -type f -name 123.txt     (查找路径,限定文件)
uniq对排序好的内容进行统计uniq -c 123.txt
sort对内容进行排序uniq -c 123.txt
df文件系统的磁盘使用情况统计df -h
netstat查看网络端口的使用情况netstat -tunlp
hostname查看主机名hostname
ps显示所有进程信息(ps与grep组合使用,查找特定进程)ps -ef                               (显示所有进程信息) ps -ef
kill杀进程kill -l               (查看kill的使用信号) kill -9 top        (杀掉top命令进程 )  摁住【ctrl+c】相当于传递了kill中2的信号
top监控Linux系统状况,比如cpu、内存的使用摁住键盘【Q】退出
du统计大小du -sh          (统计当前目录下所有文件大小) du -sm *     (以m为单位统计文件大小)
firewall-cmd查看防火墙的状态firewall-cmd --state centos 7 关闭防火墙:systemctl stop firewalld.service
echo判断上一条命令是否正确echo ‘1234’     (打印1234在命令行上面) echo $?          (判断上一条命令执行是否正确,正确显示0,非0就是未执行正确)
cal查看日历cal 2008         (查询2008年的月份日期)

2、Linux下输入输出错误重定向

(1)输入输出错误重定向理解
  • 输入重定向:把要输入的信息写入到指定的文件中去
  • 输出重定向:把要输出的信息写入到一个文件中去,而不是将要输出的文件信息输出到控制台(显示屏)
  • 错误重定向:把错误的信息写入到一个文件中去

Linux中一切皆文件,文件描述符如下:

posix名称文件描述符用途
/dev/stdin0标准输入
/dev/stdout1标准输出
/dev/stderr2标准错误输出
(2)输入输出错误重定向实操
# 输入重定向
  • 符号:【<】
  • 示例:
wc -l < 123.txt
# 输出重定向
  • 符号:【>       #代表覆盖写入】【>>        代表追加写入】
  • 示例:
cat >> 123.txt             //向123.txt文件中输入追加内容,不会覆盖已有内容
cat > 123.txt              //向123.txt文件中输入内容,会覆盖已有内容
ls -lrt > 123.txt          //将ls -lrt显示的信息输入到123.txt文件中,会覆盖已有内容
echo '12345' > 123.txt     //使用echo命令输入信息到123.txt文件中,会覆盖已有内容
# 错误重定向

示例:

llll 2> 123.txt        //llll报错信息输出到123文件中
llll 2> /dev/null      //错误信息不需要了解,就可以输出到无底洞里边
(3)其他符号
符号功能说明示例
&等同于ls -lrt /boot /test 1>/root/123.txt 2>/root/123.txt   (查看boot目录以及text目录下的内容,这里判断boot目录下有内容,则写入了123文件,但test目录不存在,错误重定向并没有写入文件) ls -lrt /boot /test 1>/root/123.txt 2>&1            (错误的输出信息等同于正确的信息输入,即输入至123文件)
&>不区分正确还是错误ls -lrt /boot /test &>123.txt    (不区分正确错误信息,全部输入到123文件)
管道符
;可以执行多条命令cat /etc/passwd
&&前面的命令执行成功的话后面的才可以执行成功;前面的命令执行失败后面的就不可以执行llll && echo 123

3、Linux下的目录分类与作用

(1)CentOS7****下常见的目录作用

# 目录描述

下面列举一些根目录下常用的目录,便于我们更快了解虚拟机架构

目录描述
/根目录,一般根目录下只存放目录,不要存放文件,也不要修改/删除目录下的内容
/mnt用于测试的目录
/rootroot用户的家目录
/home普通用户的家目录
/tmp临时目录(比如文件上传之类的)
/var存放经常修改的数据,比如程序运行的日志文件
/boot存放启动Linux时使用的内核文件,包括连接文件以及镜像文件(原则上该目录不允许操作)
/etc系统默认存放配置文件的地方
/bin所有用户都能执行的程序
/sbin只有root才能执行的程序
/usr用户自己的软件都可以放到这儿来
/dev存放硬件设备的地方(/dev/cdrom)
/media挂载光盘的地方
# 挂载光盘命令
命令功能说明
mount /dev/cdrom /media挂载光盘
umount /dev/cdrom卸载光盘
df -h查看挂载光盘
(2)路径理解
  • 绝对路径:即完整的路径
  • 相对路径:相对于当前位置的路径(./代表的是当前目录; …/代表的是上一级目录)

4、虚拟机中Centos7与外部物理机的时间同步

(1)前提

一般情况下,新安装的虚拟机同外部物理机的时间不一致,这是因为我们未安装VMware Tools工具,因此需要安装该工具

(2)获取VMware Tools软件包

在VM中右键虚拟机->安装VMware Tools,VM软件会自动帮我们下载VMware Tools工具到光盘中,再把光盘挂载在Linux系统中(由于VM软件的限制,安装结果没有弹框提示,我们可以试图挂载,以此来观察工具是否下载完成)

(3)安装VMware Tools

安装步骤:

1、安装VMware Tools 使工具软件包下载到光盘

2、挂载光盘到Linux系统

3、复制安装包到root目录【cp VMwareTools-10.3.23-16594550.tar.gz /root/】

4、卸载光盘【umount /dev/cdrom】

5、解压安装包【tar -xf VMwareTools-10.3.23-16594550.tar.gz】

6、进入解压缩包【cd vmware-tools-distrib】

7、安装Perl【yum -y install perl-Data-Dumper】

8、点击安装VMware Tools【./vmware-install.pl】

安装时一路摁住键盘的回车键即可(都选用默认路径),安装完成后验证是否安装成功,有两种验证方法:

命令功能说明
echo $?验证是否安装成功,返回0就是成功(echo命令本身就可以判断上一条命令是否正确)
date “+%Y-%m_%d %H:%M:%S”验证虚拟机时间是否与外部物理机的时间同步(若不同步,则重启主机即可)
(4)date命令使用

可以使用date命令去查看当前时间

命令功能说明
date查看当前时间(不美观)
date “+%Y-%m_%d %H:%M:%S”显示年-月-日 时:分:秒  (如 2024-03_05 05:22:14)
date -s “2020-10-1 22:00:00”更改时间为 2020-10-1 22:00:00
date -d yesterday “+%Y-%m-%d %H:%M:%S”查看当前时间的前一天的时间
date “+%w”查看今天是周几

注意:卸载的光盘的时候会出现如下报错

[root@localhost media]# umount /dev/cdrom
umount: /media: target is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))
[root@localhost media]# 

解决方法:

首先确认目前是联网状态,接下来需要安装 fuser 工具,用来查看光盘使用情况 ,接着杀掉光盘使用进程即可

安装fuser工具:yum install -y psmisc
查看光盘使用情况:fuser -mv /media
取消挂载盘符:fuser -kv /media

5、Linux编辑神器vi****的使用

(1)vi的基本概念

vi的三种模式:命令模式、插入模式、底行模式

使用vi命令则进入命令模式,不可编辑,摁住键盘的 i 或者 o 或者 a,进入插入模式,编辑我们想要的内容;内容编辑完成后,再摁住键盘的左上角esc键盘,切入命令模式;在命令模式输入【:】进入底行模式,在底行模式还可以做其他的一些操作

  • 进入插入模式:摁住键盘的 i 或者 o 或者 a
  • 进入命令模式:摁住键盘的左上角esc键盘
  • 进入底行模式:前提是得在命令模式输入【:】进入
(2)命令行模式操作
命令功能说明
Esc进入命令行模式
$          /     【shift + 4】移动到这一行的行尾
gg移动到文档第一行行首
G移动到文档最后一行行首
x删除内容,删除一个字符【光标所在字符】
dd删除光标所在的那一整行
u复原原来的操作
v点击【v】后进入复制,按上下左右键选中范围,再按【y】就能复制
p粘贴
(3)底行模式操作
命令功能说明
nn为数字,光标移动到第n行
/寻找内容,光标移到目标行行首
%s/word1/word2/g从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2【word1字符串实现全文档替换】
n1,n2s/word1/word2/gn1 与 n2 为数字,在第 n1 与 n2行之间寻找 word1这个字符串,并将该字符串取代为 word2
set nu显示每一行的行号
set nonu取消行号
q!强制离开不保存
wq离开并保存
wq!强制离开并保存
!相当于暂时离开,可以在【!】后直接输入命令进行别的操作

6、Linux****的用户管理与组管理

(1)Linux理解

Linux是一个多用户、多任务的操作系统

(2)Linux用户的分类
分类权限UID
超级用户root拥有至高无上的权限UID:0
普通用户权限有一定的限制,可以登录系统,一般可以执行 /usr/local/bin 或者 /bin 或者 /usr/bin 或者自己家目录的命令UID:500-60000(centos 6)UID:1000-60000(centos7)
系统用户(伪用户)一般不会登录系统,一般情况是用来维持某个服务程序UID:1-499(centos 6) UID:1-1000(centos 7)
(3)用户的相关配置文件
  • 账号信息:/etc/password
  • 密码信息:/etc/shadow

test    :x                   :1000      :1000             :                :/home/test                :/bin/bash

用户   密码占位符    
UID        GID         
用户描述       用户家目录        登录后使用的
shell
解释

/sbin/nologin        #
是不可登录的

/bin/bash             #
可以登录

(4)用户相关命令
命令命令属性大功能各属性功能说明
useradd-u添加用户命令指定用户UID
-d指定用户主目录
-g指定用户所属组
-r指定用户是系统用户
-s用户登录shell解释器
-M不创建主目录
userdel-r删除用户命令连同家目录一块删除
groupadd添加用户组命令
groupdel删除用户组命令
usermod-u修改用户的信息命令指定用户UID
-d指定用户主目录
-g指定用户所属组
passwd YYL设置用户密码命令passwd
echo “123456”passwd --stdin YYL
(5)创建用户示例

创建一个用户YYL,指定UID为1010,指定家目录为/home/YYL,指定所属组为root组,指定登录shell为/bin/bash

useradd -u 1010 -d /home/YYL -g root -s /bin/bash YYL

注意:登录用户时出现以下信息如何解决

如:

bash-4.2$

bash-4.2$

这是因为家目录下缺少一些东西,在/etc/ske1/路径下将相关信息复制进系统用户家目录即可

解决:复制相关信息到家目录

cp -r /etc/skel/.bash* /home/YYL/

7、Linux****必备核心知识之文件属性与权限操作

(1)文件属性
ls -lrti查看文件的属性
#文件显示解读
135140482 -rw-------. 1 root root    1902 Oct  1  2020 yum.log
第一列
第二列-文件的类型与权限
r #表示读权限
4 #表示读权限
rw-------
第三列
第四列
第五列
第六列
第七列
第八列
# 链接
分类命令例如举例
软链接ln -sln -s /home/YYL/yum.log /usr/locali 节点跟源文件不一样,源文件一旦删除,软链接将找不到源文件
硬链接lnln /home/YYL/yum.log /usr/local/YYL/i 节点与源文件一模一样,源文件删除,硬链接还可以继续使用,常用于防止重要文件被误删
(2)文件权限更改
命令参数举例
chmod无参chmod u+x,g+w+o+w boot.log
chmod u-x,g-w+o-w boot.log
chmod 777 boot.log
-R    #递归的意思chmod -R 777 /home/YYL/*
(3)文件所有者/所属组修改
命令参数举例解释
chown-Rchown -R root:YYL YYL递归更改文件目录YYL的所属者为root用户 跟 所属组为YYL组

8、Linux 的文件归档与解压缩详细介绍

(1)文件归档

文件归档也称之为打包,指的是一个文件或者多个文件或者目录的一个集合,这个集合存储在一个文件中;归档的文件是没有进行压缩的,所以占用的空间是所有文件或者目录的总和(工作中经常与压缩结合在一起使用)

(2)文件压缩

节约磁盘空间,加快文件的传输速率

(3)压缩与解压缩命令

压缩与解压缩有两种命令:gzip 、xz,区别如下:

  • gzip:不能压缩目录,只能压缩文件,压缩速度最快,但是1压缩比例较低,扩展名【.gz】
  • zx:可以压缩目录和文件,压缩速度比较慢,但是压缩比例最高,扩展名【.xz】
命令目的操作命令
gzip不保留源文件压缩gzip 111.txt
保留源文件压缩gzip -c 123.txt > 123.txt.gz
不保留源文件解压gunzip 111.txt.gz
gzip -d 123.txt.gz
保留源文件解压gunzip -c 123.txt.gz > 234.txt
xz不保留源文件压缩xz 111.txt
保留源文件压缩xz -c 123.txt > 123.txt.xz
不保留源文件解压unxz 111.txt.xz
xz -d  123.txt.xz
保留源文件解压xz -d -k 123.txt.xz
(3)归档/解档/压缩/解压命令
参数目的示例命令解析
-c归档时创建新文件,必选归档vmware-tools-distrib文件并命名为vmware.tartar -cf vmware.tar vmware-tools-distrib
-f归档时指定文件格式,必选
-v归档时显示详细过程归档vmware-tools-distrib文件并命名为vmware.tar,归档时显示详细过程tar -cvf vmware.tar vmware-tools-distrib
-z以gzip的方式归档并压缩归档并压缩vmware-tools-distrib文件并命名为vm-tools.tar.gz,归档时显示详细过程tar -zcvf vm-tools.tar.gz vmware-tools-distrib
-J以xz的方式归档并压缩归档并压缩vmware-tools-distrib文件并命名为vm-tools.tar.xz,归档时显示详细过程tar -Jcvf vm-tools.tar.xz vmware-tools-distrib
归档并压缩vmware-tools-distrib文件并命名为vm-tools.tar.xz,文件放于/home/YYL目录下,归档时显示详细过程tar -Jcvf /home/YYL/vm-tools.tar.xz vmware-tools-distrib
-x接档解压操作解档解压文件vm-tools.tar.xztar -xf  vm-tools.tar.xz
-C指定解压路径指定vm-tools.tar.xz文件的解压路径为:/home/YYLtar -xf vm-tools.tar.xz -C /home/YYL

四、Linux核心命令

1、Linux搜索-find命令高级用法

(1)基本用法
命令参数参数解析示例示例解析
find 路径 选项-type根据文件类型搜索find /var/log -type f -name “*.log”查找后缀为“.log”的文件
find /var/log -type d查找该绝对路径下的目录
-name根据文件名搜索find /var/log -type f -name “*.log”查找后缀为“.log”的文件
-perm根据文件权限find /var/log -perm 600 -type f -name “*.log”查找绝对路径下权限为600的后缀为“.log“的文件
-user根据文件所属主find /var/log -user root查找绝对路径下所属主为 root 的文件【不仅限于文件】
(2)高级用法
# 命令使用解析
命令各参数各参数解析示例
find /var/log -type f -name “*.log” -exec wc -l {} ;;可以执行多条命令find /var/log -type f -name “*.log” -exec cp -a {} /home/YYL/YYL2 ;
\转义符,使得该条命令结束
{}把find命令匹配到的每一次结果传递给{}
-exec执行
# 命令相关参数
参数参数解析mtime参数mtime参数解析示例
-mtime根据文件的变更时间来查找-n表示更改时间举例现在n天以内find /var/log -mtime -2 -name “*.log” -exec ls -lrt {} ;
+n表示更改时间举例现在n天以前find /var/log -mtime +2 -name “*.log” -exec ls -lrt {} ;

2、CentOS7防火墙以及selinux介绍

(1)防火墙
# 防火墙理解

主要用于用户信息安全防护,主要有软件防火墙和硬件防火墙,firewall防火墙是权健防火墙

  • 在Centos7之前默认采用的防火墙是iptables
  • 在Centos7则采用的防火墙是firewall
# 设置防火墙相关命令
操作命令
查看firewalld服务状态systemctl status firewalld
开启firewalld服务systemctl start firewalld.service
关闭firewalld服务systemctl stop firewalld.service
重启firewalld服务systemctl restart firewalld.service
查看firewall防火墙状态firewall-cmd --state
查看防火墙开放端口firewall-cmd --list-port
查看指定80端口是否开放firewall-cmd --query-port=80/tcp
开放80端口firewall-cmd --permanent --add-port=80/tcp(–permanent代表永久生效,没有此参数重启后就失效了)
加载生效开放的端口firewall-cmd --reload
关闭80端口firewall-cmd --remove-port=80/tcp

注意:

  • 安装telnet命令:yum -y install xinetd telnet telnet-server(确认联网状态)
  • 安装netstat与ifconfig命令:yum -y install net-tools(确认联网状态)
(2)SELinux介绍

SELinux有三种工作模式,配置文件路径在:/etc/selinux/config

  • enforcing:强制模式,违反selinux规则的行为将被组织并记录到日志中去
  • permissive:宽容模式,违反selinux规则的行为将会记录到日志中去
  • disabled:关闭模式

3、linux服务器之间telnet与scp命令用法

(1)telnet命令

telnet命令主要用于测试到某台机器的某个端口是否畅通,telnet命令依赖于xinetd服务与telnet-server服务

  • 用法:telnet IP地址 端口
  • 场景使用:测试某个端口是否畅通
(2)scp命令

作用:用于服务器之间的文件或者文件目录拷贝

用法1:从本机拷贝文件到别的机器

scp 本机文件的存放路径 root@服务器IP:服务器目标路径

示例:

从192.168.213.132(本机)这台机器的 /root/VMwareTools-10.3.23-16594550.tar.gz 文件拷贝至192.168.213.129 的 /root/下

scp /root/VMwareTools-10.3.23-16594550.tar.gz root@192.168.213.129:/root/

用法2:从别的机器拷贝文件到本地目录

scp root@服务器IP:服务器目标路径 本机文件的存放路径

示例:

从192.168.213.129这台机器的/root/VMwareTools-10.3.23-16594550.tar.gz文件拷贝至 192.168.213.132(本机)的/root/下

scp root@192.168.213.129:/root/VMwareTools-10.3.23-16594550.tar.gz /root/

参数说明:

  • -r:起到递归的作用,主要用来拷贝目录

示例:scp -r /root/vmware-tools-distrib root@192.168.213.129:/root/

4、Linux进程管理命令之 ps -ef 与 ps aux 详解

列名含义
UID用户ID
PID进程ID
PPID父进程号
CCPU的占用率
STIME进程的启动时间
TTYTTY终端
TIME进程执行起到现在总的CPU占用时间
CMD启动这个进程的命令

列名含义
USER哪个用户启动了这个命令
PID进程的ID
%CPUCPU的占用率
%MEM内存的使用率
VSZ如果一个程序完全驻留在内存中一共需要使用多少内存空间
RSS进程当前占用了多少内存
TTYTTY终端
STAT表示当前进程的状态(S #处于休眠的状态;D #不可中断的状态;Z #僵尸进程;X #死掉的进程 )
START启动这个命令的时间点
TIME进程执行起到现在总的CPU占用时间
COMMAND启动这个进程的命令

目的:一般执行 ps -ef 或者 ps aux命令是查看我们的进程是否启动成功,或者找出进程号,对进程进行kill强制关闭

5、处理海量数据之cut命令

(1)cut应用场景

通常对数据进行列的提取

(2)语法
cut [选项]...[file]
(3)示例
选项-d #指定分割符(不加 -d 选项,默认为制表符,而非空格)
-f #指定截取区域
-c #以字符为单位进行分割
以【:】为分隔符,截取出/etc/passwd的第一列和第三列cut -d ‘:’ -f 1,3 /etc/passwd
以【:】为分隔符,截取出/etc/passwd的第一列到第三列cut -d ‘:’ -f 1-3 /etc/passwd
以【:】为分隔符,截取出/etc/passwd的第二列到最后一列cut -d ‘:’ -f 2-  /etc/passwd
截取/etc/passwd文件从第二个字符到第九个字符cut -c 2-9 /etc/passwd
截取linux上面所有可登录的普通用户cat /etc/passwd

6、处理海量数据之awk命令

(1)awk简介

一个非常强大的数据处理命令,支持条件判断、数组、循环等功能,与grep、sed被称为linux三剑客

(2)awk应用场景

通常对数据进行列的提取

(3)awk语法
  • awk ‘条件1 {执行动作} 条件2 {执行动作} …’ 文件名
  • awk [选项] ‘条件1 {执行动作} 条件2 {执行动作} …’ 文件名
(4)awk特殊要点以及举例说明
特殊字段含义举例查询结果
NR行号df -hawk ‘NR==4 {print $1}’
$1代表第一列df -hawk ‘NR==1 {print $1}’
$2代表第二列df -hawk ‘(NR>=2 && NR <=5) {print $1}’
$NF代表最后一列df -hawk ‘{print $NF}’
-F指定分割符awk -F":" ‘{print $1}’ /etc/passwd查询/etc/passwd文件下以【:】为分割符的第一列数据
BEGIN在读取所有行内容前就开始执行,一般用来初始化操作cat /etc/passwdawk ‘BEGIN {FS=“:”} {print $1}’
df -hgrep -v ‘Filesystem’awk ‘BEGIN {printf “Filesystem \n \n”} {printf $1} {printf “\t Use%:”} {print $5}’查询文件磁盘使用情况中的Filesystem和Use%列
END结束的时候执行df -hgrep -v ‘Filesystem’

7、处理海量数据之sed命令

(1)sed应用场景

主要对数据进行处理(选取、新增、替换、删除、搜索)

(2)sed语法
  • sed [选项] [动作] 文件名
(3)sed常见选项与参数
选项含义举例结果
-n把匹配到的行输出打印到屏幕df -hsed -n ‘2p’
p以行为单位进行打印,通常与【-n】一起使用
d删除df -hsed ‘2d’
a在行的下面插入新的内容df -hsed ‘2a 1234567890’
i在行的上面插入新的内容df -hsed ‘2i 1234567890’
c替换df -hsed ‘2c 1234567890’
s/要被取代的内容/新的字符串/g指定字符串进行替换df -hsed ‘s/centos-root/centos7/g’
-i对源文件进行修改(慎用,用之前需要备份源文件)sed -i ‘s/centos7/centos8/g’ df.txt将df.txt文件中的【centos7】强制修改成【centos8】
p在文件中搜索内容sed -n ‘/tmpfs/p’ df.txt打印df.txt文件中的【tmpfs】字段—非精确查找
-e表示可以执行多条动作sed -e ‘s/centos8/centos7/g’ -e ‘s/tmpfs/TMP/g’ df.txt > 888.txt替换df.txt文件中的【centos8】以及【tmpfs】更为【centos7】和【TMP】,然后重定向至888.txt文件

五、Linux服务器常用企业服务安装

1、rpm方式介绍

(1)rpm安装

安装别人编译好的软件包,rpm即Redhat Package Manager,是Redhat的软件包管理方式

(2)rpm安装优点
  • 软件已经编译打包,所以传输和安装方便,让用户免除编译
  • 在安装之前,会先检查系统的磁盘、操作系统版本等,避免错误安装
(3)rpm安装缺点
  • 软件包安装的环境必须与打包时的环境一致或相当
  • 必须安装软件的依赖包
(4)rpm包命名规则

which-2.20-7.el7.x86_64.rpm

分段含义
which代表的是软件名称
2.20代表的是软件版本号
7代表的是发布版本号,指的是这个rpm软件包是第几次编译生成的
el7代表的是企业版的7操作系统
x86代表的是CPU架构
64代表的是系统的位数
(5)安装rpm软件包
参数-i安装软件包
-v输出更多的详情信息
-h输出哈希标记(#)
–nodeps不验证软件的依赖(非常不推荐,即使安装成功了,也用不了)
举例rpm -ivh zsh-5.0.2-7.el7.x86_64.rpm
rpm -ivh mariadb-server-5.5.35-3.el7.x86_64.rpm --nodeps  (不推荐)
(6)rpm包下载地址

http://rpmfind.net/

http://rpm.phone.net/

http://www.rpmseek.com/index.html

(7)rpm查询功能
命令参数参数说明举例
rpm -q-a查询所有已安装的软件包rpm -qa zsh
-f查询文件所属软件包rpm -qf /usr/bin/zsh
-p查询软件包rpm -qp zsh-5.0.2-7.el7.x86_64.rpm
-i显示软件包信息rpm -qi zsh
-l显示软件包中的文件列表rpm -ql zsh
-d显示被标注为文档的文件列表rpm -qd zsh
-c显示被标注为配置文件的文件列表rpm -qc zsh
(8)rpm包升级
参数参数说明示例
-U升级rpm软件服务rpm -Uvh zsh-5.0.2-7.el7.x86_64.rpm(软件包必须是要升级的)
(9)rpm包卸载
参数参数说明示例
-e卸载软件包rpm -e zsh

2、yum方式介绍

(1)yum安装介绍

基于 C/S架构,yum安装称之为傻瓜式安装

(2)yum安装优缺点
  • 优点:方便快捷,不用考虑依赖,自动下载软件包
  • 缺点:人为无法干预,无法设定想要的参数
(3)配置本地yum源

配置文件的路径在:/etc/yum.repos.d/

[Centos7-yum]yum源名称,唯一,用来区分不同的yum源
name=Centos7-source对yum源的描述信息
baseurl=file:///mntyum源的路径(repodata目录所在的目录)
enabled=1表示启用yum源
gpgcheck=0为1表示使用公钥检验rpm的正确性

(4)yum安装方式的使用
yum repolist查看yum源列表
yum clean all清空之前yum缓存
yum makecache创建yum缓存,为后续安装更加快速
yum -y install安装软件(yum -y install zsh)
yum info zsh查看zsh软件包信息(不管安没安装都会有信息)
yum info installed zsh查看已经安装好的软件信息
yum remove -y zsh卸载软件
yum search gcc搜索gcc软件
yum update升级软件

3、源码编译安装方式介绍

(1)源码编译安装优缺点
  • 优点:编译安装过程,可以设定参数,指定安装目录,按照需求进行安装,指定安装的版本,灵活性比较大
  • 缺点:需要对依赖包一个一个的进行安装,不敢随便升级,一升级可能会由于依赖包的不能使用导致一系列连锁反应
(2)安装步骤

第一步:解压源码包

tar -xf 源码包

第二步:配置

进入解压后的目录,用 ./configure 命令来配置相关信息(比如指定安装目录 — prefix=/usr/local/nginx)和生成makefile文件

第三步:编译

make -j4

第四步:安装

make install

4、JDK8安装实战

(1)下载jdk官网

官网地址:Java Downloads | Oracle

下载好后,将该压缩包上传至虚拟机中,具体上传步骤可参考【第二章第五节】

(2)全局环境变量的配置文件

修改文件【profile】的内容,在【profile】的最后添加下面的配置文件(其中路径需要修改为jdk1.8所在路径,其他不变)

命令:文件路径:vi /etc/profile
export JAVA_HOME=/usr/local/jdk1.8 #这个路径要改,其余不需要改
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
(3)加载环境变量
命令:source /etc/profile
(4)验证是否安装成功
命令:java -version

5、部署tomcat网站服务器

(1)Tomcat定义

Tomcat是一个开源免费的Web应用服务器,性能稳定,是目前比较流行的Web应用服务器

(2)Tomcat下载

方法1:官网下载

官网地址:Apache Tomcat® - Apache Tomcat 8 Software Downloads

方法2:在虚拟机中应用wget命令下载

yum install -y wget   //安装wget命令
wget https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.99/bin/apache-tomcat-8.5.99.tar.gz
(3)Tomat解压

解压后将文件移动至 /usr/local/tomcat8目录下(统一存放)

解压:tar -xf apache-tomcat-8.5.99.tar.gz

移动:mv apache-tomcat-8.5.99 /usr/local/tomcat8

检查java环境:java -version

(4)Tomat重要目录介绍

目录含义
bin存放可执行命令,比如开启和关闭
conf配置文件 context.xml:Tomcat公用的环境配置,tomcat服务器会定时去扫描这个文件 web.xml:web应用程序描述文件,都是关于web应用程序的配置文件 server.xml:可以设置tomcat的端口号,添加虚拟机这些的,是对服务器的设置 tomcat-users.xml:用户配置文件
webapps发布web应用
lib库文件
(5)启动Tomat
//在bin路径下执行
sh startup.sh
(6)查看是否监听tomcat

ps -ef | grep tomcat
netstat -tunlp | grep 3328
(7)测试能否访问测试页面
关闭防火墙:systemctl stop firewalld.service
测试能否访问:IP地址:8080

6、部署apache网站服务器

(1)Apache介绍

Apache是软件基金会的一个开源免费的网页服务器,也是目前世界上使用最广泛的一种 web server,apache最出名的是它跨平台、高效和稳定,可以运行在几乎所有广泛使用的计算机平台上,其特点是简单、速度快、性能稳定,并可做代理服务器来使用,且可通过简单的 API 扩充,将 Perl/Python 等解释器编译到服务器中

(2)源码编译安装Apache
第一步:下载组件 apr 并解压

组件apr官网:Download - The Apache Portable Runtime Project

下载成功后,上传至虚拟机,并进行解压

解压命令:tar -xf apr-1.7.0.tar.gz

第二步:下载组件 apr-util 并解压

组件apr官网:Download - The Apache Portable Runtime Project

下载成功后,上传至虚拟机,并进行解压

解压命令:tar -xf apr-util-1.6.1.tar.gz

第三步:下载 apache 并解压

apache官网:Download - The Apache HTTP Server Project

下载成功后,上传至虚拟机,并进行解压

解压命令:tar -xf httpd-2.4.39.tar.gz

第四步:安装 gcc 环境
安装命令:yum install -y gcc*
第五步:安装 zlib-devel 库
安装命令:yum install -y zlib-devel
第六步:安装 xml 解析器
安装命令:yum install -y expat-devel
第七步:下载并安装 pcre 正则表达式库

官网下载地址:https://ftp.pcre.org/pub/pcre/

下载成功后,上传至虚拟机,并进行解压

解压命令:tar -xf pcre-8.43.tar.gz

进入【pcre-8.43】目录下进行安装,安装时需要指定安装路径,这里我创建了一个路径为 /usr/local/pcre,然后安装在该路径下

//1.进入pcre-8.43目录下
cd pcre-8.43
//2.新建一个安装路径
mkdir -p /usr/local/pcre
//3.指定安装路径为刚创建的路径
./configure --prefix=/usr/local/pcre
//4.安装pcre
make && make install
第八步:把组件apr与组件apr-util拷贝进apache安装包
cp -rf apr-1.7.0 /root/test/httpd-2.4.39/srclib/apr
cp -rf apr-util-1.6.1 /root/test/httpd-2.4.39/srclib/apr-util
第九步:进入apache安装包使用./configure进行环境收集检验与配置

进入apache安装包,新建目录/usr/local/apache,然后执行./configure命令校验

cd /root/test/httpd-2.4.39
mkdir -p /usr/local/apache
./configure \--prefix=/usr/local/apache \--sysconfdir=/usr/local/apache/etc \--with-apr=/root/test/apr-1.7.0 \--with-apr-util=/root/test/apr-util-1.6.1 \--with-included-apr \--with-pcre=/usr/local/pcre \--enable-deflate \--enable-expires \--enable-headers \--enable-so \--enable-modules=most \--with-mpm=worker \--enable-rewrite
选项说明
–prefix指定安装目录
–sysconfdir指定配置文件的路径
–with-apr指定依赖文件的路径
–with-apr-util指定依赖文件的路径
–with-included-apr增加编译效率
–with-pcre指定pcre正则表达式库的安装路径
–enable-deflate开启压缩文件提高速度节约带宽
–enable-expires开启让浏览器缓存,减轻服务器压力,提高访问速度
–enable-headers使得支持http头
–enable-so使得支持动态模块
–enable-modules=most使得支持大多数模块
–with-mpm=worker使得Apache工作在worker模式下
–enable-rewrite使得支持地址重写
第十步:编译并安装apache
操作命令:make -j 4 && make install
第十一步:设置服务器名称
//操作命令
vi /usr/local/apache/etc/httpd.conf

输入:ServerName进行搜索

添加:
ServerName www.xdclass.com
第十二步:测试并启停apache服务器
//设置软链接
ln -s /usr/local/apache/bin/* /usr/sbin/
//设置环境变量
echo "export PATH=/usr/local/apache/bin:$PATH" >> /etc/profile
//加载环境变量
source /etc/profile
//测试配置文件语法有没有错误
httpd -t
//启动apache服务
httpd -k start
//关闭apache服务
httpd -k stop

在防火墙关闭的条件下,打开浏览器,输入IP地址,成功打开apache测试页面,如下图,即部署完成

192.168.213.132:80

7、部署nginx网站服务器

(1)nginx简介

Nginx是一款高性能的 HTTP 和反向代理服务器

(2)nginx优点
  • 高并发量:根据官方给出的数据,能够支持高达 50000 个并发连接数的响应
  • 内存消耗少:处理静态文件,同样起 web 服务,比 apache 占用更少的内存及资源,它是轻量级的
  • 简单稳定:配置简单,基本在一个 conf 文件中配置,性能比较稳定,可以 7*24小时长时间不间断运行
  • 模块化程度高:Nginx 是高度模块化的设计,编写模块相对简单
  • 负载均衡:Nginx 可以做高并发的负载均衡,且 Nginx 是开源免费的,如果使用F5等硬件来做负载均衡,硬件成本比较高
  • 可移植性高:Nginx 代码完全用C语言编写
(3)nginx缺点
  • 动态处理差:Nginx 处理静态文件好,耗费内存少,但是处理动态页面比较差
  • rewrite弱:虽然 Nginx 支持 rewrite 功能,但是相比于 Apache 来说,Apache 比 Nginx 的 rewrite 强大
(4)编译安装nginx
第一步:安装gcc编译环境
yum install -y gcc-c++
第二步:安装zlib-devel库
yum install -y zlib-devel
第三步:安装OpenSSL密码库
yum install -y openssl openssl-devel
第四步:安装pcre正则表达式库

官网下载地址:https://ftp.pcre.org/pub/pcre/

下载成功后,上传至虚拟机,并进行解压

解压命令:tar -xf pcre-8.43.tar.gz

进入【pcre-8.43】目录下进行安装,安装时需要指定安装路径,这里我创建了一个路径为 /usr/local/pcre,然后安装在该路径下

//1.进入pcre-8.43目录下
cd pcre-8.43
//2.新建一个安装路径
mkdir -p /usr/local/pcre
//3.指定安装路径为刚创建的路径
./configure --prefix=/usr/local/pcre
//4.安装pcre
make && make install
第五步:下载编译安装Nginx

Nginx 官网:nginx: download

下载成功后,上传至虚拟机,并进行解压

解压命令:tar -xf nginx-1.16.0.tar.gz

进入【nginx-1.16.0】目录下进行安装,安装时需要指定安装路径,这里我创建了一个路径为 /usr/local/pcre,然后安装在该路径下,接着使用./configure进行环境收集检验与配置,编译无误后进行安装

//1.进入nginx-1.16.0目录下
cd nginx-1.16.0
//2.新建一个安装路径
mkdir -p /usr/local/nginx
//3.指定安装路径为刚创建的路径
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-pcre
//4.安装pcre
make && make install
第六步:启停Nginx服务
//启动nginx服务
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

//测试相关配置文件是否正常
/usr/local/nginx/sbin/nginx -t

//关闭nginx服务
/usr/local/nginx/sbin/nginx -s stop

打开浏览器测试能否访问到测试页面,如图所示,即启动成功【ip addr 获取当前虚拟机IP地址,访问端口默认80】

8、安装mysql5.7.17数据库服务器

(1)mysql简介
(2)准备工作
第一步:关闭防火墙
//关闭防火墙命令
systemctl stop firewalld.service

//查看防火墙是否关闭
firewall-cmd --state

第二步:关闭selinux

进入config文件,将【SELINUX】的值改为【disabled】,如下图所示

vi /etc/selinux/config

第三步:安装 cmake 工具
安装命令:yum -y install cmake
第四步:下载boost库/mysql安装包

我这里下载的boost库是boost1.59.0,直接使用wget下载会快一点,下载成功后,直接进行解压

boost库历史版本下载地址:Boost Version History

wget https://nchc.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz

解压命令:tar -xf boost_1_59_0.tar.gz

MySQL这里下载的是mysql-5.7.17版本,直接在官网下载即可

MySQL官网地址:MySQL :: MySQL Downloads

为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!

这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。

本份面试集锦涵盖了

  • 174 道运维工程师面试题
  • 128道k8s面试题
  • 108道shell脚本面试题
  • 200道Linux面试题
  • 51道docker面试题
  • 35道Jenkis面试题
  • 78道MongoDB面试题
  • 17道ansible面试题
  • 60道dubbo面试题
  • 53道kafka面试
  • 18道mysql面试题
  • 40道nginx面试题
  • 77道redis面试题
  • 28道zookeeper

总计 1000+ 道面试题, 内容 又全含金量又高

  • 174道运维工程师面试题

1、什么是运维?

2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?

3、现在给你三百台服务器,你怎么对他们进行管理?

4、简述raid0 raid1raid5二种工作模式的工作原理及特点

5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?

6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?

7、Tomcat和Resin有什么区别,工作中你怎么选择?

8、什么是中间件?什么是jdk?

9、讲述一下Tomcat8005、8009、8080三个端口的含义?

10、什么叫CDN?

11、什么叫网站灰度发布?

12、简述DNS进行域名解析的过程?

13、RabbitMQ是什么东西?

14、讲一下Keepalived的工作原理?

15、讲述一下LVS三种模式的工作过程?

16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

17、如何重置mysql root密码?

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
re,然后安装在该路径下,接着使用./configure进行环境收集检验与配置,编译无误后进行安装

//1.进入nginx-1.16.0目录下
cd nginx-1.16.0
//2.新建一个安装路径
mkdir -p /usr/local/nginx
//3.指定安装路径为刚创建的路径
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-pcre
//4.安装pcre
make && make install
第六步:启停Nginx服务
//启动nginx服务
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

//测试相关配置文件是否正常
/usr/local/nginx/sbin/nginx -t

//关闭nginx服务
/usr/local/nginx/sbin/nginx -s stop

打开浏览器测试能否访问到测试页面,如图所示,即启动成功【ip addr 获取当前虚拟机IP地址,访问端口默认80】

8、安装mysql5.7.17数据库服务器

(1)mysql简介
(2)准备工作
第一步:关闭防火墙
//关闭防火墙命令
systemctl stop firewalld.service

//查看防火墙是否关闭
firewall-cmd --state

第二步:关闭selinux

进入config文件,将【SELINUX】的值改为【disabled】,如下图所示

vi /etc/selinux/config

第三步:安装 cmake 工具
安装命令:yum -y install cmake
第四步:下载boost库/mysql安装包

我这里下载的boost库是boost1.59.0,直接使用wget下载会快一点,下载成功后,直接进行解压

boost库历史版本下载地址:Boost Version History

wget https://nchc.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz

解压命令:tar -xf boost_1_59_0.tar.gz

MySQL这里下载的是mysql-5.7.17版本,直接在官网下载即可

MySQL官网地址:MySQL :: MySQL Downloads

为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!

这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。

[外链图片转存中…(img-Zi5Tw18o-1714280876536)]

本份面试集锦涵盖了

  • 174 道运维工程师面试题
  • 128道k8s面试题
  • 108道shell脚本面试题
  • 200道Linux面试题
  • 51道docker面试题
  • 35道Jenkis面试题
  • 78道MongoDB面试题
  • 17道ansible面试题
  • 60道dubbo面试题
  • 53道kafka面试
  • 18道mysql面试题
  • 40道nginx面试题
  • 77道redis面试题
  • 28道zookeeper

总计 1000+ 道面试题, 内容 又全含金量又高

  • 174道运维工程师面试题

1、什么是运维?

2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?

3、现在给你三百台服务器,你怎么对他们进行管理?

4、简述raid0 raid1raid5二种工作模式的工作原理及特点

5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?

6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?

7、Tomcat和Resin有什么区别,工作中你怎么选择?

8、什么是中间件?什么是jdk?

9、讲述一下Tomcat8005、8009、8080三个端口的含义?

10、什么叫CDN?

11、什么叫网站灰度发布?

12、简述DNS进行域名解析的过程?

13、RabbitMQ是什么东西?

14、讲一下Keepalived的工作原理?

15、讲述一下LVS三种模式的工作过程?

16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

17、如何重置mysql root密码?

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 8
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java入门基础知识是学习和理解Java编程语言的基础概念和语法规则。下面是一些常见的基础知识点: 1. Java环境安装:首先需要安装Java开发工具包(JDK),它包含了Java编译器和运行时环境。 2. Java语言特点:Java是一种面向对象的编程语言,具有简单、可移植、面向对象、安全、高性能等特点。 3. Java程序结构:一个Java程序由一个或多个类组成,每个类包含方法和属性。Java程序从main()方法开始执行。 4. 数据类型:Java提供了基本数据类型(如整数、浮点数、字符、布尔等)和引用数据类型(如类、数组、接口等)。 5. 变量和常量:变量是用于存储数据的内存位置,常量是固定不变的值。在Java中,使用关键字来声明变量和常量。 6. 运算符:Java提供了各种运算符,例如算术运算符、赋值运算符、比较运算符、逻辑运算符等。 7. 控制流程:Java提供了条件语句(如if-else、switch-case)、循环语句(如for、while、do-while)和跳转语句(如break、continue)来控制程序的执行流程。 8. 数组:数组是一种存储相同类型数据的集合,可以通过索引访问数组中的元素。 9. 方法:方法是一段可重用的代码块,用于执行特定的任务。Java中可以定义自己的方法,也可以使用已经存在的方法。 10. 异常处理:Java提供了异常处理机制来处理程序运行过程中发生的异常情况,可以使用try-catch语句块来捕获和处理异常。 以上是Java入门基础知识的一些主要内容,希望对你有所帮助。如果有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值