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

  • 默认使用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

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

tar -xf mysql-5.7.17.tar.gz

第五步:yum安装其他依赖组件
yum -y install gcc gcc-c++ bzip2 bzip2-devel bzip2-libs python-devel ncurses ncurses-devel openssl openssl-devel
第六步:创建路径
mkdir -p /usr/local/mysql
mkdir -p /data/mydata
第七步:创建mysql用户
useradd -M -s /sbin/nologin mysql
(3)使用cmake工具对mysql5.7.17进行环境收集检验与配置相关模块

解压
mysql
源码包后,进入解压后的路径

cd mysql-5.7.17

使用cmake工具执行下面命令,进行环境收集检验与配置

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mydata -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DWITH_SSL=system -DWITH_ZLIB=system -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DDOWNLOAD_BOOST=1 -DWITH_BOOST=…/boost_1_59_0 -DENABLE_DOWNLOADS=1

各参数参数说明
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql指定mysql数据库安装目录
-DMYSQL_DATADIR=/data/mydata指定数据库文件路径
-DSYSCONFDIR=/etc指定配置文件路径
-DWITH_INNOBASE_STORAGE_ENGINE=1安装INNOBASE存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1安装ARCHIVE存储引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1安装BLACKHOLE存储引擎
-DWITH_READLINE=1使用redline功能
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock连接文件位置
-DWITH_SSL=system表示使用系统上自带的SSL库
-DWITH_ZLIB=system表示使用系统上自带的ZLIB库
-DDEFAULT_CHARSET=utf8指定默认使用的字符集编码
-DDEFAULT_COLLATION=utf8_general_ci指定默认使用的字符集校对规则
-DDOWNLOAD_BOOST=1若无boost库则可自行下载
-DWITH_BOOST=…/boost_1_59_0指定boost库的路径用于读取
-DENABLE_DOWNLOADS=1支持下载可选文件
(4)编译并安装
make -j 4 && make install
(5)初始化mysql

初始化后,会生成一个临时密码,这里需要记住临时密码【1RlVUip10g>j】

/usr/local/mysql/bin/mysqld \--initialize \--user=mysql \--basedir=/usr/local/mysql \--datadir=/data/mydata \--socket=/tmp/mysql.sock
(6)对mysql的相关路径进行更改权限
chown -R mysql:mysql /usr/local/mysql /data/mydata
(7)修改配置文件
//进入配置文件进行修改
vi /etc/my.cnf

//文件内容修改如下
[mysqld]
datadir=/data/mydata
socket=/tmp/mysql.sock
symbolic-links=0
[mysqld_safe]
log-error=/usr/local/mysql/log/mysql.errlog
pid-file=/data/mydata/$hostname.pid
(8)启停mysql

第一次启动时会报如下错误,这是因为没有创建【mysql.errlog】文件导致,创建后重新启动即可

//创建 mysql.errlog 文件
touch /usr/local/mysql/log/mysql.errlog

//创建后要进入log目录下修改该文件的权限
chown mysql:mysql *

chown -R mysql:mysql /usr/local/mysql/log/mysql.errlog

启动与关闭 mysql 服务的命令如下:

//启动
/usr/local/mysql/support-files/mysql.server start

//关闭
/usr/local/mysql/support-files/mysql.server stop
(9)登录mysql

第一次登录的密码是之前生成的随机密码,填入随机密码,即可登录成功

/usr/local/mysql/bin/mysql -uroot -p
(10)修改mysql密码

修改完密码需要刷新权限

//修改密码
set password for 'root'@'localhost'=password('YYL123');

//刷新权限
flush privileges;

刷新权限时,如果出现下面报错,则是因为表不存在,这里创建一个对应表即可

创建表的步骤:

//mysql中操作

use mysql;
drop table if exists mysql.servers;

//建表
CREATE TABLE `servers` (
`Server_name` char(64) NOT NULL,
`Host` char(64) NOT NULL,`Db` char(64) NOT NULL,
`Username` char(64) NOT NULL,
`Password` char(64) NOT NULL,
`Port` int(4) DEFAULT NULL,
`Socket` char(64) DEFAULT NULL,
`Wrapper` char(64) NOT NULL,
`Owner` char(64) NOT NULL,
PRIMARY KEY (`Server_name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='MySQL Foreign Servers table';
(11)添加MySQL服务并设置mysql开机启动
//复制mysql.server到/etc/rc.d/init.d路径下并命名为mysql
cp -a /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysql

//添加一个mysql服务
chkconfig --add mysql

//查看mysql服务的状态
chkconfig --list mysql

chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级别等级0

等级0表示关机
等级1单用户模式
等级2无网络连接的多用户命令行模式
等级3有网络连接的多用户命令行模式
等级4不可用
等级5带图形界面的多用户模式
等级6重新启动

使用mysql服务的方式操作启停mysql服务

//启动mysql服务器
service mysql start
//关闭mysql服务器
service mysql stop
//重启mysql服务器
service mysql restart
(12)使用 mysql -uroot -p 登录服务器

设置mysql环境变量,软链接到/usr/sbin/目录下,使得mysql在任何目录都可直接使用 mysql -uroot -p 登录服务器

ln -s /usr/local/mysql/bin/* /usr/sbin/

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

(1)PHP介绍

PHP是一种脚本语言,常用于做动态网站

(2)源码编译安装
第一步:安装依赖组件
yum -y install gcc gcc-c++ bzip2 bzip2-devel bzip2-libs python-devel ncurses ncursesdevel openssl openssl-devel

yum install -y libxml2-devel
第二步:解压php安装包

官网下载php安装包,并上传至虚拟机中进行解压

解压命令:tar -xf php-5.5.35.tar.gz

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

mkdir -p /usr/local/php

./configure --prefix=/usr/local/php/ --enable-fpm --with-config-file=/usr/local/php/etc
第四步:编译安装
make -j 4 && make install
(3)修改php服务器配置文件
cp -a php.ini-production /usr/local/php/etc/php.ini
cp -a /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
(4)启停php服务器
//启动php服务器
/usr/local/php/sbin/php-fpm 

//php的默认监听端口是:9000

//关闭php服务器
cd /usr/local/php/sbin && pkill php-fpm 
(5)整合nginx测试php

修改nginx配置文件,文件路径在/usr/local/nginx/conf/nginx.conf,修改后对 nginx进行重启即可

vi /usr/local/nginx/conf/nginx.conf

//配置文件内在location下增加下面内容并保存退出
location ~ \.php$ {
    root /usr/local/nginx/html;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

//重启nginx服务器
/usr/local/nginx/sbin/nginx -s reload

其中,配置文件中修改的内容含义详解:

FastCGI是一个在HTTP服务器和动态脚本语言间通信的接口
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME d o c u m e n t _ r o o t document\_root document_rootfastcgi_script_name;
include fastcgi_params;
(6)在nginx的网站发布路径下创建index.php文件

在nginx的/usr/local/nginx/html路径下新增一个index.php文件用于测试,文件内容如下:

vi /usr/local/nginx/html/index.php
<?php
phpinfo();
?>

(7)测试是否安装成功

如下图所示,即安装成功

六、Linux下Shell脚本编程介绍

1、shell****编程语言的介绍

(1)shell简介

Shell
是一种脚本语言,又是一种命令语言。可以通俗一点来讲,
Shell
脚本就是一系列命令的集合,可以在 Unix/linux上面直接使用,并且直接调用大量系统内部的功能来解释执行程序把一些重复性工作交给
shell
做,来实现自动化运维。

Shell
虽然没有
C/C++

Java

Python
等强大,但也支持了基本的编程元素,例如:
if

for

while

case
等循环,还有变量、数组、字符串、注释、加减乘除逻辑运算等。

(2)常见的脚本语言

shell 、perl 、php 、python

(3)shell优点
  • 易用 :
    直接在
    linux
    系统上使用,不需要编译
  • 高效 :
    程序开发的效率非常高,依赖于功能强大的命令可以迅速地完成开发任务
  • 简单:
    语法和结构比较简单,易于掌握
(4)shell应用场景
  • 监控
    linux
    系统的健康度
  • 数据的处理 :
    日志的切割、分析、统计等
  • 与数据库交互 :
    对数据库进行增,删,改,查等操作
  • 监控进程,自动化启停服务
  • 完成一些重复性的工作

2、shell****编写第一个脚本

(1)编写脚本

新建一个【first.sh】文件,在文件中编写脚本内容

vi first.sh

//脚本内容
# !/bin/bash
# 作者:YYL
# 编写时间:2024-03-23
# 功能:this is my first shell !
echo "this is my first shell !"
(2)执行脚本

方法1:直接使用 sh 命令执行

sh first.sh

方法2:先赋予文件可执行权限,在使用 ./ 执行

chmod 755 first.sh
./first.sh

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

(1)crond服务

以守护进程方式在无需人工干预的情况下来处理着一系列作业和指令的服务

(2)crond服务的启停命令
//启动
systemctl start crond.service

//查看状态
systemctl status crond.service

//停止
systemctl stop crond.service

//重新启动
systemctl restart crond.service
(3)crontab定时器的使用
语法选项含义内容格式
crontab 【选项】crontab -l列出crontab有哪些任务
crontab -e编辑crontab任务* * * * * 级别 命令
crontab -r删除crontab里的所有任务

crontab里的内容格式如下:

* * * * * 级别 命令

解析:五个星星分别代表【分、时、日、月、周】—从左到右

(4)crontab示例
crontab示例实现命令
每分钟执行
* * * * * 或者 */1 * * * *
每小时执行
0 * * * *
每天执行
0 0 * * *
每周执行
0 0 * * 0
每月执行
0 0 1 * *
每年执行
0 0 1 1 *
每天早上
6
点执行
0 6 * * *
每两个小时执行
0 */2 * * *
每小时的
10
分,
40
分执行
10,40 * * * *
每天的下午
4
点、
5
点、
6
点的
5 min
15 min
25 min
35 min
45 min
55 min
时执行命令
5,15,25,35,45,55 16,17,18 * * *

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

(1)需求
  • nginx的日志文件路径
  • 每天0点对nginx 的access与error日志进行切割
  • 以前一天的日期为命名
(2)脚本

新建shell脚本,命名为【nginx_cut.sh】,编写该脚本文件

#!/bin/bash
#Auto cut nginx log script.
#create by YYL
#create date:2024-03-24

#nginx日志路径
logs_path=/usr/local/nginx/logs
YesterDay=$(date -d 'yesterday' +%Y-%m-%d)

#移动日志并以日期改名
mv ${logs_path}/access.log ${logs_path}/access_${YesterDay}.log
mv ${logs_path}/error.log ${logs_path}/error_${YesterDay}.log

#向nginx主进程发送信号,重新生成日志文件
kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)

七、企业实战

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

(1)使用NAT模式

固定IP地址,一般使用NAT模式

点击虚拟网络编辑器,选择NAT模式,并关闭【使用本地DHCP服务…】,关闭后需要修改网卡信息

**(2)**修改ip地址为静态

进入网卡路径,修改相关网卡信息,以下是我的网卡相关信息

vi /etc/sysconfig/network-scripts/ifcfg-eno16777728
BOOTPROTO="static"
IPADDR=192.168.213.100
GATEWAY=192.168.213.2
NETMASK=255.255.255.0
ONBOOT="yes"


//修改以上信息,以下是我网卡信息

HWADDR="00:0c:29:dc:47:58"
TYPE="Ethernet"
BOOTPROTO="static"
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPADDR=192.168.213.100
GATEWAY=192.168.213.2
NETMASK=255.255.255.0
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
NAME="eno16777728"
UUID="3199add9-379c-43a9-bab1-ae4e05c0f2cc"
ONBOOT="yes
网卡修改信息说明
BOOTPROTO=“static”固定IP网址
IPADDR=192.168.213.100IP地址,可以根据子网ip进行设置
GATEWAY=192.168.213.2网关IP,即NAT模式中的网关IP
NETMASK=255.255.255.0子网掩码
(3)重启网卡
systemctl restart network.service
(4)ping不通域名

如果设置为固定IP地址后,ping不通,那么加上以下域名服务器解析地址即可

vi /etc/resolv.conf 

//配置内容
nameserver 114.114.114.114
nameserver 8.8.8.8
nameserver 1.1.1.1
(5)alias命令实现别名
//临时设置别名(重新登录后失效)
alias vinet='vi /etc/sysconfig/network-scripts/ifcfg-eno16777728'

//查看别名
alias

//取消临时别名
alias vinet

//永久设置别名
vi /root/.bashrc
//新增一条配置文件内容
alias vinet='vi /etc/sysconfig/network-scripts/ifcfg-eno16777728'

//加载使立即生效
source /root/.bashrc

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

虚拟机中都默认主机名为localhost

(1)查看主机名命令
hostname
(2)修改主机名的命令
hostnamectl set-hostname YYLCS
(3)修改后重启使之生效
reboot
(4)修改/etc/hosts文件

进入【hosts】文件,修改文件信息

vi /etc/hosts

192.168.213.100 YYLCS
(5)测试能否ping通
ping YYLCS

在YYLCS2机器上pingYYLCS机器,如下图所示,则说明修改成功

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

(1)执行命令创建密钥
ssh-keygen -t rsa

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

从YYLCS拷贝文件到YYLCS2并重命名为【authorized_keys】

scp /root/.ssh/id_rsa.pub root@YYLCS2:/root/.ssh/authorized_keys
(3)测试能不能免密登录YYLCS2
ssh YYLCS2

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

(1)NFS介绍

NFS

Network File System
)即网络文件系统,它允许网络中服务器之间通过
TCP/IP
网络共享资源,
NFS
的一个最大优点就是可以节省本地存储空间

(2)NFS体系组成

一台
NFS
服务器和若干台客户机,即一台NFS服务器共享给若干台客户机去访问

(3)环境准备

A

192.168.213.100     
作服务端

B

192.168.213.101     
作客户端

(4)在A服务端机器安装nfs-utils和rpcbind包
  • nfs-utils包提供了NFS服务器程序和相应的管理工具
  • rpc则是能够获得nfs服务器端的端口号等信息
yum install -y nfs-utils rpcbind
(5)检查是否启动了rpcbind服务并监听着 111端口

成功安装rpcbind服务后,系统会自动启动服务,若没有自动启动,自己启动下即可

//启动rpcbind服务
sudo systemctl start rpcbind

netstat -tunlp | grep 111
(6)配置NFS服务的配置文件

首先创建一个共享目录供客户端去访问【/data/NFSdata】

mkdir -p /data/NFSdata

接着修改配置文件,配置文件路径在【/etc/exports】,配置信息如下:

vi /etc/exports

//修改配置信息内容
/data/NFSdata 192.168.213.101/24(rw,sync)
配置信息说明
/data/NFSdata表示你要共享的目录
192.168.213.101/24表示所允许访问的客户端IP
(rw,sync)rw:表示读写权限,sync:表示数据同步写入内存硬盘
(7)启动nfs服务
systemctl start nfs
(8)设置开机启动
systemctl enable rpcbind.service
systemctl enable nfs-server.service
(9)在B客户端机器安装nfs-utils和rpcbind包
yum install -y nfs-utils rpcbind
(10)设置rpcbind服务开机启动
systemctl enable rpcbind.service
(12)挂载

在B客户端机器创建一个目录供服务端机器挂载

mkdir /NFS
mount -t nfs 192.168.213.100:/data/NFSdata /NFS
showmount -e 192.168.213.100

若要在客户端也能有操作的权限,则需要在服务端中对NFSdata目录赋予对应权限

chmod -R 777 NFSdata

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

**(1)**FTP文件服务器概述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值