Linux操作系统(Centos7)零基础入门,超详细!

文章目录

      • 1.Linux入门
        • 1.1.Linux CentOS7的网络设置
        • 1.2.虚拟机的快速克隆
        • 1.3.虚拟机的快照
      • 2.Linux常用操作
        • 2.1.Linux常用基础命令(一)
        • 2.2.Linux常用基础命令(二)
        • 2.3.Linux的输入输出错误重定向
        • 2.4.Linux下的目录分类与作用
        • 2.5.虚拟机与外部物理机时间同步
        • 2.6.Linux编辑器vi的使用
        • 2.7.Linux的用户管理与组管理
        • 2.8.Linux文件属性与权限操作
        • 2.9.Linux的文件归档与解压缩
      • 3.Linux核心实用命令
        • 3.1.Linux中find命令的用法
        • 3.2.防火墙以及selinux介绍
        • 3.3.telnet与scp的用法
        • 3.4.进程管理命令
        • 3.5.处理海量数据之cut命令
        • 3.6.处理海量数据之awk命令
        • 3.7.处理海量数据之sed命令
      • 4.Linux服务器常用的企业服务安装
        • 4.1.Linux安装软件服务rpm方式
        • 4.2.Linux安装服务软件yum方式
        • 4.3.Linux安装服务软件源码方式
        • 4.4.Centos7服务器JDK8安装
        • 4.5.Centos7部署tomcat网站服务
        • 4.6.Centos7部署apache网站服务
        • 4.7.Centos7部署nginx网站服务
        • 4.8.Centos7安装mysql5.7数据库服务
        • 4.9.Centos7模板机安装
      • 5.Linux企业实战
        • 5.1.Centos7静态ip地址配置
        • 5.2.Centos7修改系统主机名
        • 5.3.Centos7实现ssh免密登录
        • 5.4.虚拟机root忘记密码重新设置密码

1.Linux入门

1.1.Linux CentOS7的网络设置

  • 入门命令
重启主机的命令:reboot

重启网卡的命令:systemctl restart network.service

查看ip地址的命令:ip addr

ping网络是否畅通:ping ip地址
  • 桥接模式(Bridged)
可以访问外网
容易与局域网的其他集器ip地址冲突
  • Host-Only仅主机模式
一般情况下不可以访问外网
不会与局域网的其他机器ip地址冲突
  • NAT模式
可以访问外网
不会与局域网的其他机器ip地址冲突

1.2.虚拟机的快速克隆

Linux操作系统(Centos7)零基础入门,超详细!_第1张图片

克隆之后,systemctl restart network.service 命令会报错,原因试MAC地址不正确,会复制原来的MAC地址。

网卡路径:/etc/sysconfig/network-scripts/ifcfg-eno16777728,修改MAC地址后保存

1.3.虚拟机的快照

Linux操作系统(Centos7)零基础入门,超详细!_第2张图片

2.Linux常用操作

2.1.Linux常用基础命令(一)

(1)cd命令

  • 功能说明:切换目录

  • 举例:cd /usr/local/ ; cd … ; cd - ; cd(回到家目录)

(2)ls命令

  • 功能说明:列出目录内容

  • 举例:ls -ltr ; ls -ltr /home ; ll

(3)pwd命令

  • 功能说明:查询所在目录

  • 举例:pwd

(4)cat命令

  • 功能说明:查看小文件内容

  • 举例:cat -n 123.txt

(5)more命令

  • 功能说明:查看大文件内容

  • 举例:more System.map-3.10.0-123.e17.x86_64

(6)head命令

  • 功能说明:查看文件的前N行,默认查看前10行

  • 举例:head -20 System.txt

(7)tail命令

  • 功能说明:查看文件的后面N行,默认查看后10行

  • 举例:tail - f access.log ; tail -20 access.log

(8)touch命令

  • 功能说明:创建一个空文件

  • 举例:touch 123.txt

(9)mkdir命令

  • 功能说明:创建目录

  • 举例:mkdir -p /tmp/xd (注意不加-p,不能多级创建) ;mkdir /tmp/xd/test{1…10} ; mkdir /tmp/xd/test{1…10}.txt

(10)rmdir命令

  • 功能说明:删除目录

  • 举例:rmdir /tmp/xd

(11)cp命令

  • 功能说明:拷贝文件

  • 举例:cp 123.txt class/(复制123.txt到class目录) ; cp -a 123.txt class/ 789.txt(复制123.txt重命名位789.txt到class目录下,-a完全复制)

(12)mv命令

  • 功能说明:移动或更名现有的文件和目录

  • 举例:mv 123.txt 345.php ; mv 789.txt /home/789.php

(13)rm命令

  • 功能说明:删除文件或目录

  • 举例:rm 987.txt ; rm -rf 456.txt

(14)diff命令

  • 功能说明:对比文件差异

  • 举例:diff 123.txt 456.txt

(15)exit命令

  • 功能说明:退出命令

(16)ssh命令

  • 功能说明:远程安全登录方式

  • 举例:ssh ip

(17)id命令

  • 功能说明:查看用户

  • 举例:id root

(18)uname命令

  • 功能说明:查询主机信息

  • 举例:uname -a

(19)ping命令

  • 功能说明:查看网络是否畅通

  • 举例:ping ip

(20)echo命令

  • 功能说明:标准输出命令

  • 举例:echo “this is echo 命令”

(21)man命令

  • 功能说明:查看帮助文档

  • 举例:man ls

(22)help命令

  • 功能说明:查看内部命令帮助

  • 举例:help if

2.2.Linux常用基础命令(二)

(1)clear命令

  • 功能说明:清屏

  • 举例:clear ; ctrl+L

(2)who命令

  • 功能说明:当前在本地系统上的所有用户信息

  • 举例:whoami ; who

(3)uptime命令

  • 功能说明:显示当前时间,系统运行了多长时间,多少用户登陆过,负载信息

  • 举例:load average: 0.00,0.01,0.05 (1分钟的负载,5分钟的负载,15分钟的负载)

(4)w命令

  • 功能说明:查询系统信息

  • 举例:w

(5)free命令

  • 功能说明:查看系统内存

  • 举例:free -h ; free -m

(6)wc命令

  • 功能说明:统计文件的行数

  • 举例:wc -l 123.txt

(7)grep 命令

  • 功能说明:查找文件里符合条件的字符串

  • 举例:grep ‘11111111111’ 123.txt | wc -l

    • -n:输出记录对应的行号 grep -n ‘1111111’ 123.txt
    • -w:精确匹配 grep -w ‘111111’ 123.txt
    • -i:忽略大小写 grep -i ‘1111111’ 123.txt
    • -v:反向选择 grep -v ‘1111111’ 123.txt

(8)find命令

  • 功能说明:查询文件

  • 举例:

    • find / -name 123.txt (查询名称为123.txt的文件或者文件夹)
    • find / -type f -name 123.txt (查询名称为123.txt的文件)
  • 注意:find 最好不要从根目录开始查,非常消耗性能,生产不要用

(9)uniq命令

  • 功能说明:对排序好的内容进行统计

  • 举例:uniq -c 123.txt |sort -n

(10)sort命令

  • 功能说明:对内容进行排序

  • 举例:uniq -c 123.txt | sort -n

(11)df命令

  • 功能说明:文件系统的磁盘使用情况统计

  • 举例:df -h

(12)hostname命令

  • 功能说明:查看主机名

  • 举例:hostname

(13)netstat命令

  • 功能说明:查看网络端口的使用情况

  • 举例:netstat -tunlp |grep nginx

    • -t:显示tcp端口
    • -u:显示UDP端口
    • -n:指明拒绝显示别名
    • -l:指明监听的内容
    • -p:指明显示建立相关连接的程序名
  • centos中默认没有netstat命令,须安装:yum install net-tools

(14)ps命令

  • 功能说明:显示所有进程信息。ps与grep常用组合,查找特定的进程

  • 举例:

    • ps aux | grep nginx
    • ps -ef | grep nginx

(15)kill命令

  • 功能说明:杀进程

  • 举例:kill -9 进程号

(16)top命令

  • 功能说明:监控Linux系统状况,比如cpu、内存的使用

  • 举例:top ;按住q退出

(17)du命令

  • 功能说明:统计大小

  • 举例:du -sh ; du -sm *

(18)firewall-cmd命令

  • 功能说明:查看防火墙的状态

  • 举例:firewall-cmd --state

  • centos7关闭防火墙的命令:systemctl stop firewall.service

(19)echo命令

  • 功能说明:判断上一个命令是否正确

  • 举例:echo $?

(20)cal命令

  • 功能说明:查看日历

  • 举例:cal 2008

2.3.Linux的输入输出错误重定向

(1)什么是输入重定向?

输入重定向就是把要输入的信息写入到指定的文件去

(2)什么是输出重定向?

输出重定向就是把要输出的信息写道一个文件中去,而不是将要输出的信息打印到控制台

(3)什么是错误重定向?

错误重定向就是把错误的信息写入到一个文件中去

(4)Linux中一切皆文件

文件描述符 posix名称 用途
/dev/stdin 0 标准输入
/dev/stdout 1 标准输出
/dev/stderr 2 标准错误输出

(5)输入重定向:<

举例:wc -l < 123.txt

(6)输出重定向:> 代表覆盖写入;>> 代表追加写入

举例:cat >>123.txt(追加输入) ;cat >123.txt(覆盖输入);ls -lrt >123.txt(ls-lrt查询结果覆盖到123.txt中); echo ‘123123’ >123.txt(直接写入)

(7)错误重定向:2>

举例:llll 2> 123.txt(将错误信息写到123.txt中);llll 2>/dev/null 将一些无用的错误报错写到这里

(8)符号:

&:代表等同于的意思:ls -lrt /boot /test 1>/root/123.txt 2>&1

&>:代表部分正确还是错误的意思:ls -lrt /boot /test &>123.txt

|:管道符:用于将前面的执行结果作为后面执行的条件

;:代表可以执行多条命令,cat etc/password; grep root

&&:前面的命令执行成功的话,后面才可以执行,前面执行失败的话,后面不执行 :llll && grep root

||:前面的命令执行成功,后面的不执行,面前的执行失败,后面的才执行:grep root || ls -lrt

2.4.Linux下的目录分类与作用

Linux操作系统(Centos7)零基础入门,超详细!_第3张图片

/:根目录,一般根目录下之村放目录,不要存放文件,也不要修改,或者删除目录下的文件
/mnt:测试目录
/root:root用户的家目录
/home:普通用户的家目录
/tmp:临时文件(比如文件上传时)
/var:存放经常修改的数据,比如程序运行的日志文件
/boot:存放启动linux时使用的内核文件,包括链接文件以及镜像文件
/etc:系统默认放置配置文件的地方
/bin:所有用户都能执行的程序
/sbin:只有root才能执行的程序
/usr:用户自己的软件都可以放到这里
/dev:存放硬件设备的地方(dev/cdrom)
/media:挂载光盘使用
挂载光盘:mount /dev/cdrom /media
卸载光盘:umount /dev/cdrom

2.5.虚拟机与外部物理机时间同步

(1)卸载光盘的时候出现:

在这里插入图片描述

解决办法:

首先确认联网状态

  • yum install -y psmisc
  • fuser -mv /media
  • fuser -kv /media

(2)date命令

  • date “+%Y-%m-%d %H:%M:%S” 时间格式刷
  • date -s “2020-10-1 22:00:00” 指定当前时间
  • date -d yesterday “+%Y-%m-%d %H:%M:%S” 查看昨天日期
  • date “+%w” 显示星期几

(3)安装VMwareTools

  • 打开虚拟机,安装VMwareTools使工具软件包下载到光盘
  • 挂载光盘到linux系统:mount /dev/cdrom /mnt
  • cp VMwareTools-10.2.0-7259539.tar.gz /root/
  • umount /dev/cdrom
  • root目录解压:tar -xf VMwareTools-10.2.0-7259539.tar.gz
  • cd vmware-tools-distrib
  • yum -y install perl-Data-Dumper
  • ./vmware-install.pl
  • 安装过程全部yes或者默认

2.6.Linux编辑器vi的使用

(1)vi的基本概念(三种模式)

插入模式:按住键盘的i(当前位置前面插入)或者o(当前位置的下一行)或者a(当前位置的后面插入)
命令模式:按住esc
底行模式:前提是在命令模式,按住:进入

(2)在命令行模式的基本操作

$	#移动到这一行的行尾
gg	#移动到当前文本的行首
G	#移动到文档最后一行的行首
x	#删除内容,删除一个字符
dd	#删除游标所在的那一整行,多行删除3dd
u	#复原原来的操作
v	#选中范围按y即复制
p	#当前光标所在行,向下粘贴
P   #当前光标所在行,向上粘贴
yy  #复制当前光标所在行,多行复制3yy

(3)在底行模式中的操作

n	#n为数字,光标移动到第n行
/字符串	#寻找内容,从上往下查找,按n查找下一个
%s/word1/word2/g    #从第一行到最后一行寻找word1字符串,并将该字符串取代为word2
n1,n2s/word1/word2/g	#n1与n2为数字。在第n1与n2行之间寻找2word1的单词替换成word2
set nu	#显示行号
set nonu	#取消行号
q!	#强制离开不保存
wq!	#强制离开并保存
!ls	#暂时离开
?   #模糊查找,从下往上开始查找,按n查找下一个
s   #作替换,s/t/A 当前行的第一个t字符替换成A,s/t/A/g当前行的所有t字符替换成A,%s/t/A全文t替换成A
r   #读文件,将读到的文件内容插入在当前文件的末尾

(4)编辑模式操作

A	#直接在光标行末尾插入
a	#在光标后插入
i	#在光标前插入
I	#在光标所在的行首插入
o	#在下一行插入
O	#在上一行插入

2.7.Linux的用户管理与组管理

(1)Linux用户的分类

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

超级用户root:拥有至高无上的权限UID:0
普通用户:权限有一定的限制,可以登录系统。一版可以执行/usr/local/bin或者/usr/bin或者自己的家目录。
		UID:500-10000(centos6)	UID:1000-10000(centos7)
系统用户(伪用户):一般不会登录系统,一版情况下是用来维持某个程序的服务。
		UID:1-499(centos6)	UID:1-999(centos7)

(2)关于用户的相关配置文件

  • 账号信息:/etc/passwd

    Linux操作系统(Centos7)零基础入门,超详细!_第4张图片

  • 密码信息:/etc/shadow

    Linux操作系统(Centos7)零基础入门,超详细!_第5张图片

(3)账号信息解析

lixiang:x:1230:0::/home/lixiang:/bin/bash
lixiang :x :1230 :0 : :/home/lixiang :/bin/bash
用户 密码占位符 UID GID 描述 用户家目录 登陆后使用shell解释
/sbin/nologin	#不可登录的
/bin/bash		#可以登录

(4)密码信息解析

lixiang:xxxx:18794:0:99999:7:::
lixiang :xxxx :18794 :0 :99999 :7 :空 :空
用户账号名 密码的密文 账号上次修改距离1970-01-01过去多长时间 距离上次修改密码多少天不能修改密码,0表示随时可以修改 密码过期天数 强制密码修改提醒时间,表示密码过期前7天开始警告 当密码过期后多少天该账号被禁用 用户过期日期,若设置则显示过期日期为距1970-01-01有多少天

(5)添加用户命令:useradd

  • -u #指定用户UID
  • -d #指定用户主目录
  • -g #指定用户所属组
  • -r #指定用户是系统用户
  • -s #用户登录shell解释器
  • -M #不创建主目录

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

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

(6)删除用户命令:userdel

userdel -r lixiang
-r #连同家目录一起删除

(7)添加用户组命令:groupadd

(8)修改用户的信息命令:usermod

  • -u #指定用户的UID

  • -d #指定用户的主目录

  • -g #指定用户所属组

  • -s #修改用户的登录Shell,默认是bin/bash

  • -e #修改用户的失效日期,格式为”YYYY-MM-DD“

usermod -u 1300 -g 0 -d /usr/local/lixiang lixiang

(9)设置用户密码命令:passwd

passwd lixiang

echo '123456' | passwd --stdin lixiang

(10)用户登录出现如下信息

如下: 
bash-4.2$
bash-4.2$
解决:复制/etc/skel 中bash相关的文件到家目录当中
cp -r /etc/skel/.bash* /home/lixiang/

(11)获取主机ip

hostname -I
ifconfig | grep -Eo "([0-9]{1,3}\.){3}[0-9]{1,3}" | head -1

2.8.Linux文件属性与权限操作

(1)文件的属性:ls -lrti

135088935 -rw-------. 1 root root 1778 Oct 1 2020 yum.log
135088935
第一列:i节点,i节点可以理解为文件的id,一个i节点号可以对应多个文件,但是一个文件只能对应一个i节点号。
-rw-------.
第二列:文件的类型与权限
(1)-   #代表的是文件	
	d 	#代表的是目录	
	l	#代表的是软链接	
	b	#代表是块设备	
	c	#代表的是硬件设备
(2)r:读权限	w:写权限	x:执行权限
	4:读权限	 2:写权限	 1:执行权限
- rw- --- ---:分为三列,第一列为所属者的权限,第二列为所属组的权限,第三列为其他权限
1
第三列:有多少文件名链接到这个节点
root
第四列:文件的所有者
root
第五列:文件的所有组
1778
第六列:容量大小,单位默认为B
Oct 1 2020
第七列:创建或最近修改的时间
yum.log
第八列:文件名

(2)文件链接

原始文件:

Linux操作系统(Centos7)零基础入门,超详细!_第6张图片

软链接:ln -s
举例:ln -s /home/lixiang/yum.log /usr/local/
i节点号根源文件不一样,源文件一旦删除,软链接将找不到源文件。

Linux操作系统(Centos7)零基础入门,超详细!_第7张图片

硬链接:ln
举例:ln /home/lixiang/yum.log /usr/local/lixiang/
i节点与源文件一模一样,源文件删除,硬链接还可以继续使用,常用于防止重要文件被误删。

Linux操作系统(Centos7)零基础入门,超详细!_第8张图片

(3)修改文件的权限命令:chmod

  • -R:递归的意思
  • chmod -R 777 /home/lixiang

举例:

文件权限修改之前:

在这里插入图片描述

执行命令:chmod u+x,g+w,o+w 123.txt

在这里插入图片描述

撤销权限:chmod u-w,g-r,o-w 123.txt

Linux操作系统(Centos7)零基础入门,超详细!_第9张图片

举例:
chmod u+x,g+w,o+w boot.log
chmod u-x,g-w,o-w 123.txt
chmod 777 boot.log

(4)修改文件的所有者跟所属组的命令:chown

更改文件目录lixiang 的所属者为root用户和所属组为lixiang组

chown -R root:lixiang lixiang

Linux操作系统(Centos7)零基础入门,超详细!_第10张图片

2.9.Linux的文件归档与解压缩

(1)文件归档与文件压缩

  • 文件归档:
文件归档也称为打包,指的是一个文件或者多个文件或者目录的一个集合,这个集合存储在一个文件内。归档文件是没有进行压缩的,所以占用的空间是所有文件或者目录的总和。工作中常于压缩结合在一起。
  • 文件压缩:
节约磁盘空间,加快文件的传输速率。

(2)压缩解压缩命令:gzip、xz

  • gzip:不能压缩目录,只能压缩文件,压缩速度最快,但是压缩比例比较低。扩展名:.gz
不保留源文件压缩:gzip 123.txt
保留源文件压缩:gzip -c 123.txt >123.txt.gz
不保留源文件的解压:gunzip 123.txt.gz
保留源文件的解压:gunzip -c 345.txt.gz > 234.txt
不保留源文件解压:gzip -d 345.txt.gz
  • xz:可以压缩目录和文件,压缩的速度比较慢,但是压缩的比例最高。扩展名:.xz
不保留源文件的压缩:xz 123.txt
保留源文件的压缩:xz -c 345.txt > 345.txt.xz
不保留源文件的解压:unxz 345.txt.xz
保留源文件的解压:xz -d -k 123.txt.xz
不保留源文件的解压:xz -d 123.txt.xz

(3)归档与压缩命令:tar

  • 参数:
-c #创建新文件
-f #指定文件格式
-v #显示详细过程
  • 压缩:
tar -cvf vmware.tar vmware-tools-distrib
-z 以gzip方式归档压缩:tar -zcvf vmware.tar.gz vmware-tools-distrib
-J 以xz方式进行归档压缩:tar -Jcvf vmware.tar.xz vmware-tools-distrib
					 tar -Jcvf /home/lixiang/vmware.tar.xz vmware-tools-distrib
  • 解压缩:
-x 解档解压缩操作:tar -xvf vmware-tools.tar.xz
-C 解压指定路径:tar -xvf vmware-tools.tar.xz -C /home/lixiang

3.Linux核心实用命令

3.1.Linux中find命令的用法

(1)find的基本用法:find 路径 选项

  • 各个参数:
-type #根据文件类型查找,f为文件,d为目录
-name #根据文件名查找
-perm #根据文件权限查找,比如-rw-------,r为4,w为2,所以为6,后面全是0 ,为600,三位一加
-user #根据文件所属主 
  • 举例:
find /var/log/ -type f -name "*.log"
查找/var/log目录下有.log结尾的文件

Linux操作系统(Centos7)零基础入门,超详细!_第11张图片

find /var/log/ -type d
查找/var/log目录下的所有目录

Linux操作系统(Centos7)零基础入门,超详细!_第12张图片

find /var/log/ -perm 600 -type f -name "*.log"
查找/var/log 下文件权限为所有者读写权限,所有组无权限,其他无权限,以.log结尾的文件。

Linux操作系统(Centos7)零基础入门,超详细!_第13张图片

find /var/log/ -user root -type f -name "*.log"
查找/var/log 下所属者为root,以.log结尾的文件

Linux操作系统(Centos7)零基础入门,超详细!_第14张图片

(2)find的高级用法

参数:

;		#可以执行多条命令
\		#转义符,使得这条命令结束
{}		#把find命令的结果传递给{}
-exec	#执行

举例:

find /var/log/ -type f -name "*.log" -exec wc -l {} \;
显示find查询结果的行数

Linux操作系统(Centos7)零基础入门,超详细!_第15张图片

find /var/log -type f -name "*.log" -exec cp -a {} /home/test \;
将find查询到的结果复制到home的test目录下

Linux操作系统(Centos7)零基础入门,超详细!_第16张图片

-mtime #根据文件的变更时间来查找,-n表示更改时间距现在的n天以内,+n表示更改时间距现在的n天以外。
find /var/log -mtime -2 -type f -name "*.log" -exec ls -lrt {} \; 
显示前两天到今天这段时间内的以.log结尾的文件

Linux操作系统(Centos7)零基础入门,超详细!_第17张图片

find /var/log -mtime +2 -type f -name "*.log" -exec ls -lrt {} \; 
显示前两天之前的所有.log结尾的文件

Linux操作系统(Centos7)零基础入门,超详细!_第18张图片

3.2.防火墙以及selinux介绍

(1)firewall防火墙的使用

防火墙主要用于保护信息安全防护,主要有软件防火墙和硬件防火墙,firewalld防火墙是软件防火墙,在centos7之前默认采用的是防火墙是iptables,而在centos7则采用的是firewall
  • 查看firewalld服务状态
systemctl status firewalld

Linux操作系统(Centos7)零基础入门,超详细!_第19张图片

Linux操作系统(Centos7)零基础入门,超详细!_第20张图片

  • 开启、重启、关闭firewall服务
开启:systemctl start firewalld.service
关闭:systemctl stop firewalld.service
重启:systemctl restart firewalld.service
  • 查看firewall防火墙的状态
firewall-cmd --state

Linux操作系统(Centos7)零基础入门,超详细!_第21张图片
Linux操作系统(Centos7)零基础入门,超详细!_第22张图片

  • 查看防火墙开放端口规则
firewall-cmd --list-port

在这里插入图片描述

  • 开放80端口
firewall-cmd --permanent --add-port=80/tcp  (注意:--permanent是永久生效,不加这个参数重启后就失效)
  • 加载生效开放的端口
firewall-cmd --reload
  • 查询指定端口80是否开放
firewall-cmd --query-port=80/tcp

在这里插入图片描述

  • 关闭80端口
firewall-cmd --remove-port=80/tcp

Linux操作系统(Centos7)零基础入门,超详细!_第23张图片

安装telnet命令:yum -y install xinetd telnet telnet-server (确认联网状态)

安装netstat与ifconfifig命令:yum -y install net-tools(确认联网状态)

(2)SeLinux的三种共工作模式:配置文件路径:/etc/selinux/config

  • enforcing:强制模式,违反selinux规则的行为将会被阻止并记录到日志中。

  • permissive:宽容模式,违反selinux规则的行为将会记录到日志,但不会阻止。

  • disabled:关闭模式。

3.3.telnet与scp的用法

(1)企业中telnet命令的使用

  • telnet命令主要用于测试到某台机器的某个端口是否畅通
  • telnet这个命令依赖于xinetd夫妇于telnet-server服务
  • telnet命令的安装:yum -y install xinetd telnet telnet-server (确认联网状态)
  • telnet命令的用法:telnet IP地址 端口 ;如telnet 192.168.235.130 80

(2)企业中scp命令的使用

scp命令用于服务其之间文件或者目录的拷贝

  • 从本机拷贝文件到别的机器:scp 本机文件的存放路径 root@服务器IP地址:服务器目标路径
scp /root/vmware.tar [email protected]:/root/
将当前机器的vmware.tar复制到192.168.235.129机器的root目录下

Linux操作系统(Centos7)零基础入门,超详细!_第24张图片

在130机器上执行命令:scp /root/vmware.tar [email protected]:/root/

Linux操作系统(Centos7)零基础入门,超详细!_第25张图片
在这里插入图片描述

  • 从别的机器拷贝文件到本地目录:scp root@服务器IP:服务器目标文件的路径 本机文件的存放路径
scp [email protected]:/root/vmware-tools.tar.xz /root/
将129机器的vmware-tools.tar.xz拷贝到本地的root目录下

Linux操作系统(Centos7)零基础入门,超详细!_第26张图片

执行命令:scp [email protected]:/root/vmware-tools.tar.xz /root/

Linux操作系统(Centos7)零基础入门,超详细!_第27张图片
Linux操作系统(Centos7)零基础入门,超详细!_第28张图片

  • -r参数:递归的作用(拷贝目录,不加-r会报错)
scp -r vmware-tools-distrib [email protected]:/root/

Linux操作系统(Centos7)零基础入门,超详细!_第29张图片

3.4.进程管理命令

(1)ps -ef | more

UID         PID   PPID  C STIME TTY          TIME CMD
root          2      0  0 13:19 ?        00:00:00 [kthreadd]
root          3      2  0 13:19 ?        00:00:00 [ksoftirqd/0]
root          5      2  0 13:19 ?        00:00:00 [kworker/0:0H]

UID:用户名,代表当前进程是那个用户启动的
PID:进程ID
PPID:父进程号
C:CPU占用率
STIME:进程启动的时间
TTY:TTY终端
TIME:进程执行起到现在总的CPU占用时间
CMD:启动这个进程的命令

(2)ps aux | more

USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          2  0.0  0.0      0     0 ?        S    13:19   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    13:19   0:00 [ksoftirqd/0]
root          5  0.0  0.0      0     0 ?        S<   13:19   0:00 [kworker/0:0H]

USER:那个用户启动了这个命令
PID:进程的ID
%CPU:CPU的占用率
%MEM:内存的使用率
VSR:如果一个进程完全驻留在内存中一共使用了多长时间
RSS:进程当前占用了多少内存
TTY:tty终端
STAT:表示当前进程状态(S处于休眠状态,D不可中断状态,Z僵尸状态,X死掉的状态)
START:启动这个命令的时间点
TIME:进程总共占用CPU的时间
COMMAND:启动这个进程的命令

3.5.处理海量数据之cut命令

(1)cut命令的基本使用

cut应用场景:通常对数据进行列的提取

语法:cut [选项] …[file]

选项:
-d	#指定分隔符
-f 	#指定截取区域
-c	#一字符为单位进行分割

Linux操作系统(Centos7)零基础入门,超详细!_第30张图片

(2)以’:'为分隔符,截取出/etc/passwd的第一列跟第三列

cut -d ':' -f 1,3 /etc/passwd
cat /etc/passwd | cut -d ':' -f 1,3

Linux操作系统(Centos7)零基础入门,超详细!_第31张图片

(3)以’:'为分隔符,截取出/etc/passwd的第一列到第三列

cut -d ':' -f 1-3 /etc/passwd
cat /etc/passwd | cut -d ':' -f 1-3

Linux操作系统(Centos7)零基础入门,超详细!_第32张图片

(4)以’:'为分隔符,截取出/etc/passwd的第二列到最后一列

cut -d ':' -f 2- /etc/passwd
cat /etc/passwd | cut -d ':' -f 2-

Linux操作系统(Centos7)零基础入门,超详细!_第33张图片

(5)截取/etc/passwd文件从第二个字符到第九个字符

cut -c 2-9 /etc/passwd
cat /etc/passwd | cut -c 2-9

Linux操作系统(Centos7)零基础入门,超详细!_第34张图片

(6)截取linux上面所有可登陆普通用户

cat /etc/passwd | grep '/bin/bash' | cut -d ':' -f 1 | grep -v root

在这里插入图片描述

3.6.处理海量数据之awk命令

(1)awk简介

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

awk的应用场景:通常对数据进行列的提取

语法:

(1)awk '条件1 {执行动作} 条件2 {执行动作}...' 文件名
(2)awk [选项] '条件1 {执行动作} 条件2 {执行动作}...' 文件名

(2)printf与print的用法

  • printf #格式化输出,不会自动换行
  • print #打印出内容,默认自动换行
  • %s #代表字符串
  • \t #制表符
  • \n #换行符
printf '%s\t%s\t%s\t%s\t%s\t%s\n' 1 2 3 4 5 6 

Linux操作系统(Centos7)零基础入门,超详细!_第35张图片

(3)awk的简单用法

  • NR #行号

  • $1 #代表第一列

  • $2 #代表第二列

  • $NF #代表最后一列

  • 截取行数是4的第一个在字符

df -h | awk 'NR==4 {print $1}'

Linux操作系统(Centos7)零基础入门,超详细!_第36张图片

  • 截取行数是2到5的第一个字符
df -h | awk '(NR>=2 && NR<-5) {print $1}'

Linux操作系统(Centos7)零基础入门,超详细!_第37张图片

  • 截取最后一个字符
df -h | awk '{print $NF}'

Linux操作系统(Centos7)零基础入门,超详细!_第38张图片

  • 以’:’ 为分隔符, -F #指定分割符
awk -F":" '{print $1}' /etc/passwd

Linux操作系统(Centos7)零基础入门,超详细!_第39张图片

  • BEGIN#在读取所有行内容前就开始执行,一般用来初始化操作
cat /etc/passwd | awk 'BEGIN {FS=":"} {print $1}'

Linux操作系统(Centos7)零基础入门,超详细!_第40张图片

df -h | grep -v '文件系统' | awk 'BEGIN {printf "文件系统使用情况:\n\n"} {print $1} {printf "文件系统使用率:"} {print $5}'

Linux操作系统(Centos7)零基础入门,超详细!_第41张图片

  • END #结束的时候执行
df -h | grep -v '文件系统' | awk 'BEGIN {printf "文件系统使用情况:\n\n"} {printf $1} {printf "文件系统使用率:"} {print $5} END {printf "一切正常\n"}' 

Linux操作系统(Centos7)零基础入门,超详细!_第42张图片

3.7.处理海量数据之sed命令

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

sed语法:sed [选项] [动作] 文件名

常见的选项与参数:

-n	#把匹配到的行输出打印到屏幕
p	#以行为单位进行打印,通常与-n一起使用
d	#删除
a	#在行的下面插入新的内容
i	#在行的上面插入新的内容
c	#替换
指定字符串替换:s/要被取代的内容/新的字符串/g	#指定内容进行替换
-i	#对源文件进行修改(高危操作,慎用,用之前要备份源文件)
搜索:在文件中搜索内容 
-e	#表示可以执行多条动作

(1)把第2行的文件系统打印在屏幕上

df -h | sed -n '2p'

在这里插入图片描述

(2)删除第二行显示,不会对源文件产生影响

df -h | sed '2d'

Linux操作系统(Centos7)零基础入门,超详细!_第43张图片

(3)在第二行下面插入新的内容

df -h | sed '2a 1211212121212121212121212121'

Linux操作系统(Centos7)零基础入门,超详细!_第44张图片

(4)在第二行上面插入新的内容

df -h | sed '2i 1211212121212121212121212121'

Linux操作系统(Centos7)零基础入门,超详细!_第45张图片

(5)将第二行替换成指定字符

df -h | sed '2c 1211212121212121212121212121'

Linux操作系统(Centos7)零基础入门,超详细!_第46张图片

(6)把centos-root替换成centos8

df -h | sed 's/centos-root/centos8/g'

Linux操作系统(Centos7)零基础入门,超详细!_第47张图片

(7)对源文件进行修改

sed -i 's/centos7/centos8/g' df.txt

Linux操作系统(Centos7)零基础入门,超详细!_第48张图片

(8)搜索文件中带有TMP的字符

sed -n '/TMP/p' df.txt

Linux操作系统(Centos7)零基础入门,超详细!_第49张图片

(9)把centos8替换成centos7并且搜索文件中带有TMP的字符

sed -e 's/centos8/centos7/g' -e 's/TMD/g' df.txt

Linux操作系统(Centos7)零基础入门,超详细!_第50张图片

4.Linux服务器常用的企业服务安装

4.1.Linux安装软件服务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		#软件发布版本号,代表当前软件版本已经发布多少次
el7		#操作系统版本号
x86		#当前操作系统的CPU架构
64		#当前操作系统的位数

(5)安装rpm软件包

参数:

-i	#install安装软件包
-v	#输出更多的详细信息
-h	#输出哈希标记(#)
--nodeps	#不验证软件的依赖

举例:

rpm -vih zsh-5.0.2-7.el7.x86_64.rpm

Linux操作系统(Centos7)零基础入门,超详细!_第51张图片

当我们安装一些需要前置依赖的软件时,rpm的缺点就暴漏出来了,rpm不能帮我们安装一些前置的依赖
rpm -ivh mariadb-server-5.5.35-3.el7.x86_64.rpm 

Linux操作系统(Centos7)零基础入门,超详细!_第52张图片

我们可以强制安装加上 --nodpes,但是不建议这么做
rpm -ivh mariadb-server-5.5.35-3.el7.x86_64.rpm --nodpes

在这里插入图片描述

(6)rpm包的下载地址

http://rpmfind.net/ 
http://rpm.pbone.net/ 
http://www.rpmseek.com/index.html

(7)rpm查询功能:rpm -q

-a	#查询已经安装了的所有软件包  rpm -qa zsh
-f	#查询文件所属软件包  rpm -qf /usr/bin/zsh
-p	#查询软件包
-i	#显示软件包信息
-l	#显示软件包中的文件列表
-d	#显示被标注为文档的文件列表
-c	#显示被标注为配置文件的文件列表
注意:查询时,也是不能写包名,要写软件名。

举例:

rpm -qa zsh #查询已经安装的rpm软件包列表
rpm -qi	zsh	#查询指定软件的详细信息
rpm -ql	zsh	#查询软件包安装的目录、文件列表

在这里插入图片描述

(8)rpm包升级

-U	#升级rpm软件包服务
rpm -Uvh zsh-5.0.2-7.el7.x86_64.rpm(注意升级的软件包一定要比当前软件包版本高)

(9)rpm包卸载

-e  #卸载
rpm -e zsh(注意这里要写软件名,不要写包名)

4.2.Linux安装服务软件yum方式

(1)什么是yum安装?

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

(2)yum安装优点

  • 方便快捷,不用考虑包依赖,自动下载软件包

(3)yum安装缺点

  • 人为无法干预,无法设定想要的参数

(4)配置本地yum源的方式

配置文件的路径:/etc/yum.repos.d/(注意文件名一定要以.repo结尾)

(1)vi Centos7-yum.repo 编辑Centos7-yum.repo
(2)i编辑文件内容:
	[Centos7-yum]		#yum源名称,唯一的,用来区分不同的yum源
	name=Centos-source	#对yum源描述信息
	baseurl=file:///mnt	#对yum源的路径(repodata目录所在的目录)
	enabled=1			#表示启用yum源
	gpgcheck=0			#为1表示使用公钥检验rpm的正确性

在这里插入图片描述

Linux操作系统(Centos7)零基础入门,超详细!_第53张图片

(5)yum安装方式的使用

yum	repolist	#查看yum源文件

在这里插入图片描述

yum clean all	#清除之前的yum缓存

Linux操作系统(Centos7)零基础入门,超详细!_第54张图片

yum makecache	#创建yum缓存,为后续安装更加快速

在这里插入图片描述

yum -y install zsh	#安装软件yum -y install zsh

在这里插入图片描述

yum info zsh	#查看zsh软件包信息(无论安装不安装都有信息)

Linux操作系统(Centos7)零基础入门,超详细!_第55张图片

yum info installed zsh	#查询已经安装好的软件信息

Linux操作系统(Centos7)零基础入门,超详细!_第56张图片

yum -y erase zsh		#卸载软件

Linux操作系统(Centos7)零基础入门,超详细!_第57张图片

yum search gcc	#搜索gcc软件

Linux操作系统(Centos7)零基础入门,超详细!_第58张图片

yum update 【新版本软件名】	#升级软件

(6)当配置本地yum源出现这种情况

Linux操作系统(Centos7)零基础入门,超详细!_第59张图片

  • 删掉同目录下Centos-Base-repo文件即可
mv  Centos-Base-repo  Centos-Base-bak

4.3.Linux安装服务软件源码方式

(1)源码安装优点

编译安装过程中,可以设定参数、指定安装目录,按照需求进行安装,指定安装的版本,灵活性比较大。

(2)源码安装的缺点

需要对依赖包一个一个进行安装,不能随意升级,一升级可能会由于依赖包的不能使用导致一系列问题。

(3)源码编译安装的4大步骤

  • 解压源码包
tar -xf 源码包
  • 配置
进入解压后的目录,用./configure命令来配置相关信息(比如指定安装目录 --prefix=/usr/local/nginx)和生成Makefile文件
  • 编译
make -j4
  • 安装
make install

4.4.Centos7服务器JDK8安装

(1)下载JDK8源码压缩包

https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

(2)解压压缩包

tar -xvf jdk-8u211-linux-x64.tar.gz

(3)移动到/usr/local/jdk1.8中

mv jdk1.8u211 /usr/local/jdk1.8

(4)全局环境变量的配置文件: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

(5)加载环境变量:source /etc/profile

(6)检验jdk是否安装成功

java -version
java version "1.8.0_211" 
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)

4.5.Centos7部署tomcat网站服务

(1)什么是tomcat

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

(2)tomcat官网下载

https://tomcat.apache.org/download-80.cgi

(3)tomcat部署流程

  • 下载tomcat
yum install -y wget
wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.68/bin/apache-tomcat-8.5.68.tar.gz
  • 将解压后的tomcat移动到/usr/local/tomcat8
mv apache-tomcat-8.5.43.tar.gz /usr/local/tomcat8
  • tomcat重要目录介绍

Linux操作系统(Centos7)零基础入门,超详细!_第60张图片

bin:存放可执行的命令,比如开启和关闭。
conf:配置文件;
	Context.xml:Tomcat公用的环境配置,tomcat服务器会定时去扫描这个文件
	web.xml:Web应用程序描述文件,都是关于Web应用程序的配置文件
	server.xml:可以设置tomcat的端口号,添加虚拟机这些的,是对服务器的设置
	tomcat-users.xml:用户配置文件
webapps:发布web应用
lib:库文件

(4)关闭防火墙

systemctl stop firewalld.service

(5)启动tomcat

sh startup.sh

(6)查看是否监听tomcat

ps -ef | grep tomcat

在这里插入图片描述

netstat -tunlp | grep 24324

在这里插入图片描述

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

IP地址:8080

Linux操作系统(Centos7)零基础入门,超详细!_第61张图片

4.6.Centos7部署apache网站服务

(1)Apache简介

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

(2)源码编译安装Apache

  • 下载组件apr并解压
组件apr官方网站:http://apr.apache.org/download.cgi
wget http://mirror.bit.edu.cn/apache//apr/apr-1.7.0.tar.gz
tar -xf apr-1.7.0.tar.gz

Linux操作系统(Centos7)零基础入门,超详细!_第62张图片

  • 下载组件apr-util并解压
组件apr-util官方网站:http://apr.apache.org/download.cgi wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-util-1.6.1.tar.gz 
tar -xf apr-util-1.6.1.tar.gz

Linux操作系统(Centos7)零基础入门,超详细!_第63张图片

  • 下载apache并解压
apache官方网站:http://httpd.apache.org/download.cgi 
wget http://mirror.bit.edu.cn/apache//httpd/httpd-2.4.39.tar.gz 
tar -xf httpd-2.4.39.tar.gz

Linux操作系统(Centos7)零基础入门,超详细!_第64张图片

  • 安装gcc环境
yum install -y gcc*

在这里插入图片描述

  • 安装zlib-devel库
yum install -y zlib-devel

Linux操作系统(Centos7)零基础入门,超详细!_第65张图片

  • 安装xml的解析器
yum install -y expat-devel

Linux操作系统(Centos7)零基础入门,超详细!_第66张图片

  • 下载并安装pcre正则表达式库
下载地址:https://ftp.pcre.org/pub/pcre/ 
tar -xf pcre-8.43.tar.gz
cd pcre-8.43
mkdir -p /usr/local/pcre
./configure --prefix=/usr/local/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

Linux操作系统(Centos7)零基础入门,超详细!_第67张图片

  • 进入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=/home/test/apr-1.7.0 \--with-apr-util=/home/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,在apache安装目录下
make -j 4 && make install

Linux操作系统(Centos7)零基础入门,超详细!_第68张图片

  • 设置服务器名称
vi /usr/local/apache/etc/httpd.conf
输入:ServerName进行搜索
添加:ServerName www.baidu.com

Linux操作系统(Centos7)零基础入门,超详细!_第69张图片

  • 测试并启停apache服务器
ln -s /usr/local/apache/bin/* /usr/sbin/	#设置软链接
echo "export PATH=/usr/local/apache/bin:$PATH" >>/etc/profile	#设置环境变量
source /etc/profile		#加载环境变量
httpd -t	#测试配置文件语法有没有错误

Linux操作系统(Centos7)零基础入门,超详细!_第70张图片

httpd -k start		#启动apache服务

Linux操作系统(Centos7)零基础入门,超详细!_第71张图片
Linux操作系统(Centos7)零基础入门,超详细!_第72张图片

httpd -k stop		#关闭apache服务

Linux操作系统(Centos7)零基础入门,超详细!_第73张图片

4.7.Centos7部署nginx网站服务

(1)什么是nginx

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

(2)Nginx的优点

1.高并发量:根据官方给出的数据,能够支持高达50000个并发连接数的响应。
2.内存消耗少:处理静态文件,同样起web服务,比apache占用更少的内存及资源,所以他是轻量级的。
3.简单稳定:配置简单,基本在一个conf文件中配置,性能比较稳定,可以7*24小时不间断运行。
4.模块化程度高:Nginx是高度模块化设计,编写模块相对简单。
5.负载均衡服务器:Nginx可以做高并发的负载均衡,且Nginx是开源免费的,如果使用F5等硬件来做负载均衡,硬件成本比较高。
6.可移植性高:Nginx代码完全用c语言编写。

(3)Nginx的缺点

1.动态处理差:nginx处理静态文件好,耗内存少,但是处理动态页面比较差
2.rewrite弱:虽然nginx支持rewrite功能,但是相比于Apache来说,Apache比nginx的rewrite强大

(4)编译安装

  • 安装gcc编译环境
yum install 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 
cd pcre-8.43 
mkdir -p /usr/local/pcre 
./configure --prefix=/usr/local/pcre 
make && make install
  • 下载编译安装nginx
nginx下载官网:http://nginx.org/en/download.html
wget http://nginx.org/download/nginx-1.16.0.tar.gz
mkdir -p /usr/local/nginx
tar -xf nginx-1.16.0.tar.gz
cd nginx-1.16.0 
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with- http_stub_status_module --with-pcre 
make && make install
  • 启动nginx服务
/usr/local/nginx/sbin/nginx -c /usr/local/conf/nginx.conf

Linux操作系统(Centos7)零基础入门,超详细!_第74张图片

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

4.8.Centos7安装mysql5.7数据库服务

(1)mysql简介

mysql是一个开源的关系型数据库,现在是Oracle旗下的一款产品。由c和c++编写,可移植性高。支持在多种操作系统中安装,常见的有Linux,Windows、AIX。
以mysql作为数据库,linux作为操作系统,apache或者nginx作为web服务器,perl/php、python作为服务端的脚本解释器,就可以搭建一个免费的网站。

(2)安装mysql数据库

  • 关闭selinux、防火墙
systemctl stop firewalld.service
vi /etc/selinux/config
更改 SELINUX=disabled
  • 安装cmake工具
yum -y install cmake
  • 下载boost路径(mysql5.1.17必须依赖)
wget http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
tar -xf boost_1_59_0.tar.gz
  • yum安装其他依赖组件
yum -y install gcc gcc-c++ bzip2 bzip2-devel bzip2-libs python-devel ncurses ncurses-devel openssl-devel
  • 创建路径
mkdir -p /usr/local/mysql
mkdir -p /data/mydata
  • 创建mysql用户
useradd -M -s /sbin/nologin mysql
  • 使用cmake工具对mysql5.7.17进行环境收集检验于配置相关模块
解压mysql源码包,并进入解压后的路径
tar -xf mysql-5.7.17.tar.gz
cd mysql-5.7.17
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ \-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \-DMYSQL_DATADIR=/data/mydata \-DSYSCONFDIR=/etc \-DMYSQL_USER=mysql \-DMYSQL_TCP_PORT=3306 \-DWITH_XTRADB_STORAGE_ENGINE=1 \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_PARTITION_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_MYISAM_STORAGE_ENGINE=1 \-DMITH_READLINE=1 \-DENABLED_LOCAL_INFILE=1 \-DWITH_EXTRA_CHARSETS=1 \-DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_general_ci \-DEFAULT_CHARSET=all \-DWITH_BIG_TABLES=1 \
\-DWITH_BOOST=../boost_1_59_0 \
-DWITH_DEBUG=0
参数详细信息解释:
-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 \ 						#使用readline功能 
-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 \
-DWITH_BOOST=../boost_1_59_0 \ 				#指定Boost库的位置,mysql5.7必须添加该参数 
-DENABLE_DOWNLOADS=1 						#支持下载可选文件
  • 编译并安装
make -j 4 && make install
  • 编译并安装
/usr/local/mysql/bin/mysqld \--initialize \--user=mysql \--basedir=/usr/local/mysql \--datadir=/data/mydata \-socket=/tmp/mysql.sock
  • 对mysql的相关路径进行更改权限
chown -R mysql:mysql /usr/local/mysql /data/mydata
  • 修改配置文件
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
  • 启停mysql

①当启动报错:

Starting MySQL.2019-08-03T14:19:37.028727Z mysqld_safe error: log-error set to '/usr/local/mysql/log/mysql.errlog', however file don't exists. Create writable for user 'mysql'. ERROR! The server quit without updating PID file (/data/mydata/localhost.localdomain.pid).

②解决:

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

③启动:

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

④关闭:

/usr/local/mysql/support-files/mysql.server stop
  • 登录mysql
/usr/lcoal/mysql/bin/mysql -uroot -p
  • 修改mysql密码
set password for 'root'@'localhost'=password('密码'); 
mysql> flush privileges; 
ERROR 1146 (42S02): Table 'mysql.servers' doesn't exist 
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';
  • 添加mysql服务并设置mysql开机启动
cp -a /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysql 
chkconfig --add mysql

chkconfig --list mysql
mysql 0:off 1:off 2:on 3:on 4:on 5:on 6:off

chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息
等级0表示:表示关机 
等级1表示:单用户模式 
等级2表示:无网络连接的多用户命令行模式 
等级3表示:有网络连接的多用户命令行模式 
等级4表示:不可用 
等级5表示:带图形界面的多用户模式 
等级6表示:重新启动

使用mysql服务的方式操作启停mysql服务:
service mysql start #启动mysql服务器 
service mysql stop #关闭mysql服务器 
service mysql restart #重启mysql服务器
  • 设置mysql环境变量
ln -s /usr/local/mysql/bin/* /usr/sbin/
  • 用mysql -uroot -p登录服务器

4.9.Centos7模板机安装

(1)配置网卡,这里选用NET模式,不选用DHCP自动分配IP

Linux操作系统(Centos7)零基础入门,超详细!_第75张图片

  • cd /etc/sysconfig/network-scripts/ifcfg-eth…编辑网卡信息
HWADDR=00:0C:29:0B:79:DD
TYPE=Ethernet
BOOTPROTO=static  #ip模式,dhcp为自动分配ip,static为静态ip
IPADDR=192.168.10.102  #静态ip地址,注意为dhcp模式不用设置,static模式必须设置
NETMASK=255.255.255.0  #子网掩码
GATEWAY=192.168.10.2   #网关
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eno16777736
UUID=7da0f256-a33e-4e00-8c62-cf6a2ad70be2
ONBOOT=yes  #开机自启网卡
  • wq保存退出,清理网卡信息:>/etc/udev/rules.d/70-persistent-ipoib.rules
  • 重启网卡:systemctl restart network

(2)配置本地yum源

  • cd /etc/yum.repos.d 将里面的东西备份到bak的文件夹

在这里插入图片描述

  • 新建一个Centos7-yum.repo文件编辑
[Centos7-yum]                #yum源名称,唯一的,用来区分不同的yum源
name=Centos-source			 #对yum源描述信息
baseurl=file:///media/cdrom  #yum源挂载路径
enabled=1					 #表示启用yum源
gpgcheck=0					 #为1表示使用公钥检验rpm的正确性
  • 清理yum缓存:yum clean all
  • 创建yum缓存:yum makecache

Linux操作系统(Centos7)零基础入门,超详细!_第76张图片

(3)挂载光盘,并且设置开机自动挂载

  • mkdir /media/cdrom/ #创建挂载目录
  • mount /dev/sr0 /media/cdrom/ #执行挂载任务
  • echo “mount /dev/sr0 /media/cdrom/” >> /etc/rc.local #设置开机自动挂载(注意:centos7中rc.local没有执行权限)
  • chmod u+x /etc/rc.local

查看挂载情况

Linux操作系统(Centos7)零基础入门,超详细!_第77张图片

查看/etc/rc.local的执行权限

Linux操作系统(Centos7)零基础入门,超详细!_第78张图片

(4)安装常用软件

  • yum install -y gcc gcc-c+ make automake lrzsz wget open*

(5)关掉默认防御机制叫selinux

  • vi /etc/selinux/config
  • sed -i ‘s#SELINUX=enforcing#SELINUX=disabled#’ /etc/selinux/config
  • setenforce 0 临时关闭selinux

5.Linux企业实战

5.1.Centos7静态ip地址配置

(1)将网卡模式改成NAT模式

Linux操作系统(Centos7)零基础入门,超详细!_第79张图片

(2)虚拟网络设置将DHCP勾掉,不让分配随机ip

Linux操作系统(Centos7)零基础入门,超详细!_第80张图片

(3)配置静态ip

DHCP勾选完,会发现重启网卡失败,ip addr发现没有网卡。这会我们要去网络的配置地址去配置静态ip。

vi /etc/sysconfig/network-scripts/ifcfg-enoxxxxxxx

Linux操作系统(Centos7)零基础入门,超详细!_第81张图片

(4)编辑网卡配置文件

vi ifcfg-eno16777728

Linux操作系统(Centos7)零基础入门,超详细!_第82张图片

BOOTPROTO="static"
IPADDR=192.168.10.100
GATEWAT=192.168.10.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.10.100
GATEWAY=192.168.10.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"

(5)重启网卡

systemctl restart network.service

(6)测试是否能ping通内外网

主机ping虚拟机:ping 192.168.10.100

Linux操作系统(Centos7)零基础入门,超详细!_第83张图片

虚拟机ping主机:ping 192.168.31.77(我当前网络的ip地址)

在这里插入图片描述

ping 外网
ping www.baidu.com
报错:ping: unknown host www.baidu.com
ping不通的情况下,要修改一个配置文件resolv.conf 加上以下域名服务器解析地址
nameserver 114.114.114.114 
nameserver 8.8.8.8 
nameserver 1.1.1.1
vi /etc/resolv.conf

Linux操作系统(Centos7)零基础入门,超详细!_第84张图片
Linux操作系统(Centos7)零基础入门,超详细!_第85张图片

5.2.Centos7修改系统主机名

(1)查看系统主机名

hostname

Linux操作系统(Centos7)零基础入门,超详细!_第86张图片

(2)修改主机名命令

hostnamectl set-hostname lixiang

修改完重启机器

reboot

Linux操作系统(Centos7)零基础入门,超详细!_第87张图片

(3)修改host配置文件,使得ping 主机名就可以ping通

vi /etc/hosts
192.168.10.100 lixiang

Linux操作系统(Centos7)零基础入门,超详细!_第88张图片

5.3.Centos7实现ssh免密登录

(1)执行命令创建密钥

ssh-keygen -t rsa

Linux操作系统(Centos7)零基础入门,超详细!_第89张图片

(2)从lixiang传文件到hadoop中

scp /root/.ssh/id_rsa.pub root@hadoop:/root/.ssh/authorized_keys

在这里插入图片描述

(3)测试免密登录

ssh hadoop

在这里插入图片描述

5.4.虚拟机root忘记密码重新设置密码

当忘记root密码开不了机的情况下修改root的开机密码

(1)重启机器

Linux操作系统(Centos7)零基础入门,超详细!_第90张图片

(2)在zh后输入rw single init=/bin/bash

Linux操作系统(Centos7)零基础入门,超详细!_第91张图片

(3)ctrl+x执行

Linux操作系统(Centos7)零基础入门,超详细!_第92张图片

(4)输入touch /.autorelebal ,exec /sbin/init

Linux操作系统(Centos7)零基础入门,超详细!_第93张图片

你可能感兴趣的:(#,Linux,linux,网络,运维)