1、linux开发运维环境安装及部署

1.1.虚拟机的新建

   典型->稍后安装操作系统->选择Centos7 64->设置虚拟机名称及存储路径(默认)->最大磁盘容量(20GB)、单个文件存储->自定义硬件->内存(2GB)、CPU 1颗 8核心(自定)、“新CD/DVD”中使用“使用ISO镜像”设置镜像文件存储路径、网络适配器选择NAT模式->关闭'

1.2.配置分区(至少三个)(点击+添加分区)

(1)/:根分区,期望容量处不填写,代表剩余空间全部分配
(2)/boot:启动分区 400MB
(3)swap:交换分区 4GB

1.3.KDUMP:取消kernel崩溃转储机制
1.4.设置root密码,添加普通账户
1.5.CentOS系统的部署优化
(1)点击“未列出”,输入root账户及密码
(2)配置网络接口

a.进入目录:cd  /etc/sysconfig/network-scripts/
b.查看目录下的文件及文件详情:ls
c. 清屏:ctrl+l
d.编辑:vi ifcfg-ens33
(A)定位ONBOOT=no
(B)点击i进入插入模式
(C)no改为yes
(D)点击ESC退回浏览模式
(F)shift+:进入最后行模式
(G)输入wq保存退出到命令行模式
e.重启网卡:systemctl  restart  network
f.查看网络接口是否连通:ping www.baidu.com(点击ctrl+c,强制终止)

(3)配置yum源

a.网易开源镜像站:http://mirrors.163.com/.help/
c.进入etc目录:cd /etc
d. 删除默认的yum配置文件目录:rm   -rf     yum.repos.d
e.创建目录:mkdir  yum.repos.d
f.进入目录:cd  yum.repos.d
g.下载网易yum配置文件:wget  http://mirrors.163.com/.help/CentOS7-Base-163.repo【如果wget命令出错】
先执行:curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
再执行:yum -y install wgeth.新建yum缓存:yum makecache
i.测试:yum  install  gcc  -y

(4)快照制作:虚拟机菜单-----快照------拍摄快照------(左下角百分比)
(5)终端切换:

 a.默认提供6个操作终端    b.1个GUI可视化界面:ctrl+alt+fn+f1   c.5个CLS命令行界面:ctrl+alt+fn+f2~f6

(6)远程登录linux (putty)

 a.查看本机IP地址:ip addrb.打开putty进行设置:  (a)Host name:输入ip地址    (b)端口号:22  (c)Saved Sessions:输入保存设置名称 (d)点击save,open,yes  (e)在login as处输入root、及密码123456.

(7)重启:reboot;
(8)关机:shutdown now
1.6.常用快捷键

(1)Ctrl+c:中断进程
(2)Tab:单词命令补全
(3)Ctrl+l或clear:清屏
(4)Ctrl+z:强制结束进程程序
(5)Ctrl+d:关闭当前终端

1.7.练习:

Yum的redhat扩展库:yum  install epel-release  -yyum  install sl -y
更新yum缓存:yum makecache

脚本:

下载安装包:wget  http://archive.ubuntu.com/ubuntu/pool/universe/c/cmatrix/cmatrix_1.2a.orig.tar.gz
查看目录:ls
解压缩:tar xvf cmatrix_1.2a.orig.tar.gz
进入解压缩后的目录:cd cmatrix-1.2a
yum install ncurses-devel
安装gcc:yum install gcc
编译前的检测;编译;
安装:  ./configure && make && make install
执行小程序:cmatrix

2、常见命令

2.1.shell概念(壳)

(1)作用:是一种强大的命令行终端工具,用于命令的解释及翻译
(2)CentOS默认shell命令:/bin/bash
(3)历史命令查看:键盘上下键
(4)命令补全:Tab键
(5)命令提示符:   a.例如:[root@localhost~]#   b. root:当前登录的账户名,当前未管理员账户    c. @:分隔符    d. localhost:主机名称    e. ~:当前工作目录,相当于/root  f. #:root账户登录标识符;$:普通账户登录标识符

2.2.命令格式

(1)格式:命令关键字   参数    目标
(2)参数:a.短格式:-参数字母,如:-a,-l,-adb.长格式:--参数单词,如:--help
(3)目标:a.组成:路径/文件名b.绝对路径:从/根目录开始遍历到目标文件c.相对路径:从当前目录向后遍历

2.3.cd命令

(1)作用:切换目录
(2)格式:cd   目录路径
(3)cd   ..    :返回上一级目录
(4)cd  .    :当前目录
(5)cd  ~:切换到/root目录下

2.4.ls命令

(1)作用:浏览目录中的内容
(2)格式:ls  -参数  目录名称
(3)参数:         ls  -a:显示所有文件及隐藏文件(隐藏文件以.开头)                 ls  -l:显示目录内的详细信息(使用命令ll:相当于ls   -l)                 ls  -la:显示所有文件的详细信息                         ls  -ld /etc:查看etc目录内的详细信息                ls  -lh:显示目录内的详细信息并以可读可写的方式显示               ls  a*:显示所有以a开头的文件目录信息
(4)翻页查看:      ls   |   more

2.5.pwd:

显示当前目录路径信息

2.6.man命令

(1)格式:man  命令关键字
(2)作用:查看命令帮助信息
(3)点击"q"退出查看

2.7.date命令

(1)格式:

date  -参数  +显示日期时间格式

(2)参数:

-s:设置系统日期时间
-d:显示指定描述格式的日期时间

(3)日期格式:

a.%Y:完整年份
b.%m:月份
c.%d:日
d.%j:一年中的第几天(001-366),一般用于文件备份中加入此参数以判断文件的新旧,数字越小文件越旧。
例1:date    +%Y-%m-%d

(4)时间格式:

a.%H:小时(00-23)
b.%M:分钟(00-59)
c.%S:秒(00-59)
d.%X:等同于%H:%M:%S
e.%A:星期几
f.%p:显示本地AM   PM
g.%Z:显示时区
例2:date +"%Y-%m-%d %M:%H:%S"(注意:参数中若有空格,必须使用双引号**“ ”**作为定界符或者使用**%t**(用于输出一个Tab键),否则报错)

(5)设置日期时间:date -s “2021-07-01 19:59:00”、
(6)显示指定的日期时间:
date -d “+2 day”
date -d “-3 day”

2.8.查看日历:

cal 日 月份 年份

2.9.ps命令

(1)作用:查看进程状态,一般用于获取进程的pid
(2)格式:ps -参数
(3)参数:
-u:显示用户及进程
-a:显示所有进程
-au:常用语法
(4)信息解释:
a.PID:进程编号
b.%CPU:cpu的利用率
c.%MEM:内存的使用率
d.VSZ:虚拟内存的使用率(KB)
e.STAT:进程状态
R:运行
S:休眠
D:终端
Z:僵死
T:停滞运行

2.10.top命令

(1)作用:查看进程的状态及负载,是”强化版的任务管理器“。
(2)信息解释:
​   a.第一行:系统时间、运行时间、登录的终端数、系统负载(1分钟平均负载、5分钟、15分钟)
​   b.第二行:进程总数、运行数、睡眠数、停止数、僵死数
​   c.第三行:cpu占用率、系统内核占用率、改变过优先级的进程资源占用率、空闲资源占用率
​   d.第四行:内存总量、使用量、空闲量、作为核心缓存的内存量
​   e.第五行:虚拟内存(SWAP单位KB)总量、使用量、空闲量、提前加载的使用量
(3)点击“q”退出
(4)注意:升级版“htop”,使用 yum install htop -y安装,再执行htop

2.11.kill命令

(1)作用:终止进程
(2)格式:kill 进程 pid
(3)注意:killall 批量终止进程

2.12.ifconfig命令

(1)作用:查看本机网卡信息
(2)格式
(3)信息解释:
a.inet:本机ip地址
b.netmask:子网掩码
c.Ether:本机网卡地址
d.RX:发送数据包的个数及容量
e.TX:接收数据包的个数及容量

2.13.uname命令

(1)作用:查看本机系统的版本信息
(2)格式:uname -a

2.14.free命令

(1)作用:显示内存及swap状态
(2)格式:`free  -h`
a.使用字节单位查看信息:free  -b
b.使用KB单位查看信息:free  -k
c.使用MB单位查看信息:free  -m
d.使用自动单位:free  -h
e.查看free工具软件版本: free -V

2.15.who命令

(1)作用:显示登录信息
(2)注意:(:0)表示可视化登录;(tty2~tyy6)为命令行终端登录;(pts/0)远程登录

2.16.history命令

(1)作用:查看历史命令记录及管理记录
(2)格式:
a.history:查看所有的历史命令记录
b.history 数字:显示最近的几条历史命令记录
c.history -c:清空历史命令记录

2.17.uptime 命令

​ (1)查看负载信息:uptime 按照笔记查看参数意义
​ (2)查看uptime 工具软件版本: uptime -V

3.文件系统

3.1.Linux文件处理原则

(1)一切资源皆是文件(目录,普通文件,设备)
(2)FHS(文件系统层次化标准)
a.拓扑:倒置树形拓扑
b.常见目录作用:
(a)./boot:存储系统开机所需的配置文件(内核、镜像、菜单等)
(b)./etc:存储系统功能配置文件
( c)./dev:存储设备文件(硬盘、光盘、控制台等)
(d)./bin:存储常见命令的程序安装配置目录
(e)./lib:开机时使用的函数及库文件
(f)./media:一般用于挂载光盘设备文件
(g)./root:root账户的家目录
(h)./home:普通账户的家目录
(i)./var:存储系统产生的日志文件
注意:FHS意义在于按照文件功能进行分类存储

3.2.常见的文件系统命令

3.2.1 新建文件

a.格式:touch 文件名
b.例:touch t1.txt
​ touch t2.cfg t3.sh t4.gz

3.2.2 新建目录

a.格式:mkdir -参数 目录名称
b.常见的使用参数
-p:新建多级目录时使用
mkdir temp1
mkdir temp1 temp2
例:新建~/n1/n2/n3/n4:
cd ~
touch -p /n1/n2/n3/n4

3.2.3 删除文件

a.格式:rm -参数 文件名称
b.参数:-r:删除目录;(目录需要,文件不需要)
​ -f:强制删除不确认
例:rm -rf test(删除目录)
​ rm -f test.txt(删除文件)

3.2.4 copy文件

a.格式: cp -参数 源文件 目标文件
b.参数
(a)-r:拷贝目录
(b)-p:保留文件的原始属性
(c)-d:拷贝链接文件时保存链接文件属性
注意:(a) 若目标为目录,则正常拷贝
​ (b)若目标为同名普通文件会提示覆盖

3.2.5 mv文件

a.作用:剪切文件或修改文件名
b.格式 : mv 源文件 目标文件或目录
例:(a)剪切:文件到目录

cd ~
touch  test
mv  test   /

(b)修改文件名:文件到文件 :mv test1 test2

3.2.6 dd命令

a.作用:制作指定个数和容量的空文件
b.格式: dd if=/dev/zero of=新文件名 count=数据块个数 bs=单个数据块容量
例1:制作100MB容量的tmp文件:
dd if=/dev/zero of=tmp3 count=2 bs=50MB
stat tmp3
例2:制作光盘镜像:
dd if=/dev/sr0 of=/centos7.iso
注意:/dev/zero 为数据算法文件,用于向文件中传输生成指定容量的数字0

3.2.7 stat命令(status)

a.查看文件属性
b.格式: stat 文件名
c.信息解释:
(a)文件存储容量
(b)硬链接数
(c)inode(索引号)
(d)最近访问:access
最近更改:modify
最近改动:change

3.2.8 flie命令

a.作用:查看文件类型
b.格式:file 文件名
c.常见文件类型
(a)ASCII file:ASCII字符文件
(b)empty:空文件
(c)link:链接文件
(d)block special:块设备(high speed)
(e)character special :字符设备(low speed)
(f)Directory:目录文件

3.2.9 cat 命令

a.作用:查看文件内容,默认输出到屏幕
b.格式:cat -参数 文件名
c.参数
(a)-n:显示行号
(b)-b:文件中所有非空行增加行号(从1开始编号)
(c)例:
​ 向k1文件内写入“china” :echo "china" > k1
​ 将k1的内容“china”转至test文件中: cat k1 >test
​ 输出test的内容: cat k1 test
(d)例:合并文件内容到新文件
touch f1 f2 f3
echo “Hello” > f1
echo “Word” > f2
cat f1 f2 > f3
cat f3

3.2.10 more命令

a.作用:查看内容较多的文档全部内容
b.格式:more 文件名
c.参数
(a) -s:将输出文件的空行减少为一个空行
(b) -p:先清屏再显示内容
(c)-数字:如 -10;表示一屏显示10行(包括空行)
more -5 /etc/passwd
d.注意:点击空格键翻页查看 ;点击回车键整行查看;点击q键退出查看

3.2.11 tac命令

(a)作用:倒序输出文件内容
(b)格式:tac 文件名

3.2.12 head命令

a.作用:只显示文本中前n行内容
b.格式:head -n 文件名

3.2.13 wc命令

a.作用:统计文本文件中的行数、单词数、字节数、
b.格式:wc 参数 -文件名
c.参数:
(a)-l:行数
(b)-w:单词数
(c)-c:字节数
wc命令与查看命令(cat、more、head)或检索命令联合使用
head -10 ../var/log/messages | wc

3.2.14 文件查询命令–find

(1)作用:按照指定条件查找文件
(2)格式:find 查找路径 查找条件 操作
(3)查找条件:
a.格式: -条件关键字 具体条件
b.条件关键字
(a) -name:按照文件名检索匹配
(b) -user:按照文件的所有者检索匹配
© -type b/d/c/p/l/f:按照文件类型检索匹配,类型:b:block块设备;d:目录;c:字符设备;p:管道文件;l:链接文件;f:文本文件
(d) -size:容量数字:按照文件大小进行检索匹配,
如:50k等于 +50k大于 -50k小于
(e) -mtime -n/+n:按照文件修改时间检索匹配,
如:-n n天以内;+n n天以前
(f) -atime -n/+n:按照访问时间检索匹配
(g) -ctime:按照文件修改权限等属性检索匹配
(4)通配符:
a.作用:用于模糊检索时使用
b.*:任意内容、任意个数
c.?:任意内容,1个
例:?b*.txt
示例:
a.检索/下的passwd文件:
find / -name "passwd "
b.检索/下以a开头的文件:
find / -name “a*”
c.检索/下以b开头共4个字符的文件:
find / -name “b???”
d.检索/etc下第二个字符为c的文件并将结果保存到temp1.txt:
find /etc -name “?c*” > temp1.txt
e.检索/etc下的文本文件并统计个数:
find /etc -name “.txt" | wc -l
f.检索/etc下归属于root账户且以a开头的文件:
find /etc -user root -a (并且) -name "a

g.检索/dev目录下的块设备:
find /dev -type b
h.检索~下的目录:
find ~ -type d
i.检索/dev目录下的字符设备或链接设备:
find /dev -type c -o (或者) -type l
j.检索/dev目录下小于10k容量的字符设备:
find /dev -size -10k -a -type c
k.检索/大于50k小于100k的文件:
find / -size -100k -a -size +50k
o.检索/下的10天以内的空文件:
find / -mtime -10 -a -empty

3.2.15 管道符和重定向符

(1)重定向符
a.命令 < 文件:输入重定向,即将文件作为命令的标准输入
b.命令 > 文件:输出重定向,将命令结果输出到文件中(会清空原有的内容)
c.命令 >> 文件:输出重定向,将命令结果追加到文件中(保留原有的内容)
(2)管道符
a.格式:命令1|命令2|命令3|······
b.作用:将前一个命令结果作为下一个的标准输入
c.常用于wc、more、grep、等二次计算中

3.2.16 重要的环境变量

(1)作用:定义系统运行时的相关参数
(2)一般使用大写字母表示
(3)常见的环境变量:

a.HOME:用户家目录的路径;
echo  $HOME
su  JXN
echo   $Home
b.HISTSIZE

(a)作用:记录history命令的记录个数,默认为1000条,echo $HISTSIZE
(b)修改history历史命令记录条数:
配置文件路径:/etc/profile/
修改:
vim /etc/profile
定位HISTSIZE=1000所在行修改数字
点击i键,修改数字
点击ESC键
点击shift+:键
输入wq保存退出
输入reboot重启

c.LONG:

记录语系:echo $LONG

d.PATH:

(a)作用:存储Linux系统命令解释器bash程序的存储路径
(b)执行命令的过程:
第一步:判断是否以绝对路径或相对路径书写命令;若为绝对路径则立即执行下一步;若为相对路径则判断当前目录
第二步:判断命令中是否有别名
第三步:判断是内部命令还是外部命令:
​ 内部命令:该命令属于系统自带且解释器能识别的默认命令,可直接执行;外部命令:来自于外部程序或文件的命令
第四步:通过PATH查询命令程序开始执行
(5)查看变量的运算符:$,格式符:$变量名
(6)定义全局变量
a.格式:export 变量名
b.例子:使用全局变量访问路径
局部变量:
[root@localhost ~]# NIC=/etc/sysconfig/network-scripts
[root@localhost ~]# cd $NIC
全局变量:
root账户下:
cd ~
export NIC=/etc/sysconfig/network-scripts
cd $NIC
cd ~
su JXN(普通账户)
JXN普通账户下:
cd $NIC
可以实现使用全局变量跨越账户使用
(7)which命令
a.作用:显示命令执行程序的存储路径
b.原理:通过输入命令关键字在PATH环境变量中查询其执行程序的存储路径
c.格式:which 命令关键字
d.例:which cat
(7)echo命令
a.作用:默认将数据输出到屏幕
b.格式:echo 内容
c.注意:常用于脚本中的提示语输出

3.2.17 常见文件类型

(1)“-”:普通文件,颜色:黑色;
分类:纯文本文件(ASCII)、二进制文件(binary)
(2)“d”:目录文件;颜色:蓝色;
(3)“c”:字符文件,黄色
(4)“b”:块设备文件,黄色
(5)“l”:链接文件,青色

3.2.18 文件内容查找命令—grep

(1)作用:对一个文件中的内容按照关键字进行过滤
(2)格式:grep -参数 查找条件 文件名
(3)参数:
a.-n:显示检索内容的行号
b.-i:忽略字母大小写
c.-v:反向检索显示(not)
d.-c:统计行数
e.-A数字:如:-A3,显示符合条件的当前行及以下3行
f.-B数字:如:-B5,显示符合条件的当前行及以上5行
g.-C数字:显示5和条件的当前行及上下n行
(4)/etc/passwd文件含义
a.作用:记录用户的账户信息,共分为7段,使用冒号(:)分割
b.意义:
账户名:密码代号:X:UID:GID:注释:家目录:SHELL
(5)grep命令示例:

在passwd文件中检索包含root的信息grep  -n  "root"  /etc/passwdb.
在passwd中检索不能登录的账户信息grep   -n   "/sbin/nologin"   /etc/passwdc.
在passwd中检索能登录的账户信息grep   -nv   "/sbin/nologin"   /etc/passwdd.
在passwd中检索包含ssh的行及以下5行grep  -nA5   “sshd“   /etc/passwde.
在passwd中检索不能登录的用户数grep   -nc   "/sbin/nologin"   /etc/passwd或grep   -nc    "/sbin/nologin"   /etc/passwd   |wc  -lf.
在passwd中检索包含字母d信息(不区分大小写)grep  -ni      “d”    /etc/passwd

(6)使用:使用正则表达式进行模糊检索
a.[ab]:检索包含a或b的行信息,[ ]中只能表示一个内容
(a)例:检索包含d或D的信息
​ grep -n [dD] /etc/passwd
(b)例:检索包含字母o的信息
​ grep -n [oo] /etc/passwd
b.[^]:根据关键字反向显示(反向着色)
(a)例: 检索不包含字母o的信息
​ grep -n [^o] /etc/passwd
(b)例:检索不以r开头的且包括oot的信息
​ grep -n [^r]oot /etc/passwd
(c)[-]:
[0-9]:表示数字;
[a-z]或[A-Z]或[a-zA-z]:表示小写字母、大写字母、字母;
例:检索包含7-9的信息
grep -n [7-9] /etc/passwd
例:检索包含大写字母的信息
grep -n [A-Z] /etc/passwd
c.行首及行尾处理
(a)行首:“^”
示例:检索以#开头的信息。
grep -n “^#” /etc/sos.conf
示例:检索以“[“开头的信息
grep -n “^\[” /etc/sos.conf(需要添加转义符\)
(b)行尾:”$"
例:检索以数字结尾的信息

grep   -n    "[0-9]$"    /etc/sos.conf

(c)空白行:grep -n "^$" /etc/sos.conf
d.其他字符表示
(a)通配符点(.):一个任意字符
(b)通配符星号(*):重复前面0个或多个任意字符
例:检索至少包含两个字母o的信息:

 grep    -n   "[ooo*]"    /etc/passwd

(c)转义符\:对特殊字母去掉特殊功能,使用其本身字符
例:检索以点结尾的行信息:

 grep  -n   \\.$   文件名

3.2.19 tr命令

(1)作用:字符替换

(2)格式:tr 原字符 结果字符

(3)示例:将passwd文件中的小写替换成大写

​ cat /etc/passwd |tr [a-z] [A-Z]

​ 示例:将passwd中的root改为大写字母

​ grep -n “root” /etc/passwd | tr [a-z] [A-Z]

3.2.20 tar打包压缩命令

(1)作用:对文件进行打包压缩解压缩

(2)常见压缩格式:(压缩包红色)

a. *.tar.gz :使用tar打包后进行gzip压缩(常用)

b. *.tar.bz2:使用tar打包后进行bzip2压缩(常用)

c. *.tar.xz:使用tar打包后进行xzip压缩

(3)压缩:tar -cvf 结果文件名 被压缩的文件名

(4)解压缩:tar -xvf 文件名

(5)注意:

-c:压缩;-x:解压缩;-v:显示过程;-f:目标文件名

(6)例:将/root目录下内容压缩为一个文件

tar -cvf /etc/tarroot.tar.gz /root

四、VIM程序编辑器

1.vim是vi程序编辑器的升级版,通过颜色及底纹等方式显示一些特殊信息,编辑速度快,人性化。

2.vim三种模式

(1)命令模式:默认进入后的模式,可以控制光标进行移动,可以使用快捷键进行复制粘贴等操作

(2)编辑模式(输入模式):对文本进行编辑

(3)最后行模式:用于保存退出设置环境

3.三种模式的进入顺序

(1)默认命令模式

(2)命令模式—>输入模式:点击“i”键

(3)编辑模式—>命令模式:点击“Esc”键

(4)最后行模式:命令模式—>最后行模式:点击"shift+:","wq"保存退出—>命令模式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xV7NnmzE-1634099551557)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20210706224122820.png)]

4.创建文件的三种方法:

(1)touch t1

(2)echo “china” >t2

(3)vim t3

5.命令模式的常用快捷键

(1)yy:复制本行(数字yy:复制指定行数)

(2)p:粘贴

(3)dd:删除;dd+p:剪切粘贴(最近一次)。(5dd;7dd+p)

(4)u:只能撤销上一步操作

(5)/字符串:由上到下搜索字符串

(6)?字符串:由上到下搜索字符串

(7)全文加注释:

a.开启大写状态

b.点击:ctrl+v

c.使用方向键的下键向下选择所有行

d.点击I(大写i)

e.输入#

f.连点2次Esc键

6.末行模式常用命令

(1)w:保存

(2)q:退出

(3)wq!:强制保存退出

(4)增加行号取消行号:
set nu/nonu shift+:wq

(5)数字:代表第n行(:6)

7.配置主机名

(1)Linux主机名保存在/etc/hostname

(2)更改过程:

cat /etc/hostname

vim /etc/hostname

(3)若为更改则输入reboot重启系统后再试

(4)注意:主机名一般用于LAN中查看设备的名称,要求见名知意并进行编号

8.例2:使用vim编辑C程序实现编译执行

先安装gcc编译器:yum install gcc -y

(1)新建c文件:vim test.c

(2) 输入代码

(3) 保存退出

(4) 编译执行:gcc test.c

(5) 查看结果:./a.out

9.编辑网卡,设置静态IP地址

(1)查看本机IP:ip addr (ens33)

(2)编辑网卡:

vim /etc/sysconfig/network-scripts/ifcfg-ens33

(3)设置静态IP地址需更改以下内容:

a. BOOTPROTO=static

b. **IPADDR=**192.168.80.120

c. NETMASK=255.255.255.0

d. **GATEWAY=**192.168.80.0

e. DNS1=114.114.114.114

(4)重启网卡:systemctl restart network

  1. vim 打开文件的异常处理

(1)产生原因:

a.文件编辑中因为硬件故障或断电等情况而意外关闭

b.文件共享后同时有多个用户同时打开编辑

(2)处理流程:

a.使用vim打开文件

b.多次点击键盘下键,浏览到警告信息的底部

c.点击R键恢复

d.此时可以看到文件的内容,可以正常保存退出

e.ls -a 查看同名交换文件(.test.txt.swp)执行rm -f 进行删除文件即可

五、文件账户及权限

1.root账户

(1)root账户是系统默认的系统管理员账户,拥有所有权限

(2)使用原则:生产活动中尽量不使用root账户,应通过root账户对普通账户分配权限后,将普通账户分配给用户使用

2.UID

(1)功能:简称为账户编号,具有唯一性

(2)编号原则:

a.管理员账户:[0,999]

root账户UID为0

b.普通账户从1000开始,不得占用管理员的UID值

(3)查看:cat /etc/passwd

(4)id 命令:

a.作用:显示账户UID值等信息

b.格式 :id 账户名

3.新建账户->设置密码->登录->注销

(1)新建账户

a.格式:useradd -参数 账户名

b.参数

(a)-d:指定账户的家目录

(b) -e:指定账户到期时间

(YYYY-MM-DD)

(c)-g:指定一个初始工作组(必须已经存在)

(d)-G:制定一个或多个扩展组

(e)-u:指定账户的UID值

c.例1 新建账户test1:

useradd test1

id test1

cat /etc/passwd

例2 新建账户test2,UID为2000,工作组为test1,家目录为/home/test1:

cd ~

useradd test2 -u 2000 -g test1 -d /home/test155

(2)设置密码:

a.格式:passwd -参数 账户名

b.参数:

(a)-l:锁定账户,禁止登陆

(b)-u:解除锁定,允许登录

(c)-d:允许使用空格作为密码

(d)-e:强制用户在下次登录时修改密码

c.示例:新建账户test3,并设置密码

useradd test3

passwd test3

d.示例:新建账户test4->设置密码->登录->注销

useradd test4

passwd test4

切换控制台,输入账户名及密码

logout(注销)

4.工作组(group)

(1)作用:将相同属性及权限的账户归为一组,组内属性等信息相同

(2)设计原则:生活中有公司->部门->员工->文件,对应软件中为:系统->工作组->账户->文件

(3)分类:

a.基本组:创建账户时一同创建,与账户名同名

b.扩展组:账户可以加入到其它工作组

(4)查看:more /etc/group

(5)GID:组id编号与UID相同

(6)新建工作组

a.格式:groupadd -参数 工作组名

b.参数:-g,指定工作组编号,默认从1000开始

5.删除账户及工作组

(1)删除账户

a.格式:userdel -参数 账户名

b.参数

(a)-f:强制删除

(b)-r:同时删除账户及家目录

(2)删除工作组

a.格式:groupdel 工作组名

b.工作组中若存在账户则不能删除,必须移除包含账户后再试

groupadd test5

more /etc/group

groupdel test5

6.文件权限

(1)查看权限的方法

ls -l 或者 ll

(2)文件归属性

a.所有者(账户)

b.所属组(工作组)

c.其他账户

(3)权限分析

a.文件

(a)r:可读,可以读取文件中的内容

(b)w:可写,可以编辑、修改、删除文件中内容

(c)x:可执行,可运行一个脚本

(d)-:无权限

b.目录文件

(a)r:可读,可以读取目录中的文件列表

(b)w:可写,可以读取目录,修改名称,添加删除文件

(c)x:可执行,可通过cd命令进入目录

(d)-:无权限

(4)权限数字化:

a.原则:

(a)r:4

(b)w:2

(c)x:1

(d)-:0

b.总结

c.数字化分类

(a)rwz:4+2+1—>7(完整权限)

(b)rw-:4+2+0—>6

(c)r-w:4+0+2—>6

(d)r–:4+0+0—>4

(e)-wz:0+2+1—>3

(f) -w-:0+2+0---->2

(g)–x:0+0+1---->1

(h)—:0+0+0---->0 (无权限)

d.例1:写出下列权限的字符表示

(a)764:rwxrw-r–

(b)642:rw-r—w-

(c)153:–xr-x-wx

(d)732:rwx-wx-w-

e.例2:写出下列权限的数字表示:

(a)r-xrw-r–:564

(b)rw–w–wx:623

(c)rw-r–r–:644

(5)ls -l:显示内容解释

a.例:

-rwxr-xr-x. 1 root root 8360 7月 7 19:06 a.out

b.-:普通文件

c.-rwxr-xr-x:文件权限

d. 点(.):表示开启了SELinux(强制完全访问控制策略)下创建的文件

e.1:

(a)文件:硬链接数

(b)目录:目录内的子文件个数

f. root :账户名

g.root:工作组名

h.8360:文件容量,单位字节(Byte)

i. 7月 7 19:06:最后一次修改日期时间

j.a.out:文件名

7.chmod命令

(1)作用:修改文件权限

(2)格式:chmod -参数 权限 文件或目录名
(3)例:

touch test7

chmod 777 test7;ll

chmod 000 test7;ll

8.chown命令

(1)作用:设置文件的所有者账户及所属组

(2)chown -参数 所有者:所属组 文件名或目录名

(3)例:

touch t1.cfg

ll

chown JXN:JXN t1.cfg

ll

9.文件隐藏权限

(1)文件权限共有三种即:一般权限、特殊权限、隐藏权限,当一般的权限足够但无法访问删除时,需考虑是否有隐藏权限

(2)lsattr 命令

a.作用:查看文件隐藏的权限

b.格式:lsattr 文件名

(3)chattr命令:

a.作用:设置文件隐藏权限

b.格式:chattr 参数 文件

c.参数

(a)i:设置文件无法修改,目录中不能新建和删除

(b)a:仅允许追加内容,不能覆盖不能删除

(c)s:从硬盘中彻底删除,不可恢复,使用0填充文件所在空间

(d)注意:参数前可使用“+”、“-”,表示增加或撤销功能

d.示例:touch tmp.sh

lsattr tmp.sh

chattr +a tmp.sh

lsattr tmp.sh

rm -f tmp.sh

chattr -a tmp.sh

rm -f tmp.sh

10.账户切换

(1)格式:su 账户名

(2)注意:

a.可使用su - 账户名 的格式实现重新建立系统环境的账户切换

b.root 账户切换为普通账户时不需要输入密码,任意普通账户向root账户切换时必须需入密码

11.sudo命令

(1)作用:给普通账户提供额外的权限来完成其只有root账户才能完成的任务,临时提升权限

(2)格式: sudo -参数 命令

(3)注意:centOS使用sudo必须配置其配置文件。否则无法使用

(4)sudo配置文件设置

a.必须保证在root账户下设置

b.格式:visudo

c.点击shift+:后输入99再回车,即定位第99行,进行添加一个新行

d.输入普通账户名 ALL(ALL) ALL (意思:账户名,允许使用的主机=(以谁的省份可以执行的命令列表)

e.也可以将提升的权限设定在某个命令上,即执行某个命令时,可以提权,格式:普通账户名 ALLA=(ALL) /bin/命令名称

f.保存退出

g.在普通目录下执行sudo命令,

六、软件的下载及安装

1.源码安装

(1)作用:下载软件编写者发布的原始代码文件进行安装和使用

(2)源码安装过程

a.下载压缩包(*.tar.gz或*.tar.bz2)

b.分析安装环境

c.编译软件

d.安装软件

(3)源码安装方式特点

a.移植性好,与待安装软件的工作环境依赖性不大

b.下载源码在本地设备上编译安装,则是对本地设备的一种“量体裁衣”的安装方式

c.安装功能可定制

d.卸载方便,只需删除安装目录即可,没有windows中的“注册表”的概念

e.缺点:安装过程比较麻烦

(4)下载软件:wget URL

(5)安装环境分析

a.意义:安装包中有configure可执行文件,用于对安装环境进行检测,检查所需库文件、工具文件、编译器是否存在,检查安装依赖关系等。

b.格式:**./configure **

(6)编译软件

a.作用:按照configure命令生成的Makefile文件中记录的信息进行编译,生成二进制安装文件

b.格式:make

c.注意:make时若报错,需要检查提示信息,根据信息安装其他所需文件。

(7)安装软件

a.作用:根据make编译命令生成二进制安装文件进行安装,部署展开文件

b.默认安装目录:

(a)/usr/local

(b)/usr/local/bin

c.格式:make install

(8)例:源码安装python3解释器

a.下载: wget https://www.python.org/ftp/python/3.9.6/Python-3.9.6.tgz

b.解压缩: tar xvf Python-3.9.6.tgz

c.进入软件包目录: cd Python-3.9.6

d.安装环境检查: ./configure

e.编译: make

f.安装:make install

g.注意:需安装yum install zlib* -y 依赖软件

h.注意:环境检查、编译安装、可以一条语句执行,即 : ./configure && make && make install

2.RPM安装方式

(1)rpm:红帽软件管理器

(2)产生原因:软件制作者在其自己的环境下完成编译后发布的安装包,以减少用户的编译安装时间,但要求用户的安装环境要与软件制作者相同。

(3)rpm安装过程

a.读取包头数据,进行软件依赖性检查

b.安装软件

(4)rpm包的名称解释:

a.例:zlib-1.2.7-18.el7.x86_64.rpm

b.意义:软件包名-版本号-编译次数-适用平台

c.其他单词意义:

(a)noarch:通用平台

(b)i386:32位平台

(c)AMD64:64位平台

d.rpm软件安装

a.格式:rpm -ivh 软件包名

b.参数

(a)-i:安装软件

(b)-v:查看安装进度

(c)-h:查看信息

(d)–nodeps:强制安装,忽略软件依赖性

(e)–force:覆盖安装

c.示例: rpm方式安装Nginx

(a)下载: wget https://nginx.org/packages/centos/7Server/x86_64/RPMS/nginx-1.20.1-1.el7.ngx.x86_64.rpm

(b)rpm -ivh nginx-1.20.1-1.el7.ngx.x86_64.rpm

(5)rpm查询命令

a.查看指定软件是否安装:rpm -q 软件名

b.查看所有安装软件:rpm -qa

c.查看安装软件的配置文件:rpm -qc 软件名

(6)rpm的卸载

a.格式:rpm -e 软件名

b.注意:由于软件安装时有依赖性则卸载时必须从上层软件开始卸载

3.yum安装方式

(1)机制:将编译好的软件放置在服务器中,并将这些软件的依赖性信息组成数据库记录下来,用户安装软件时会下载依赖性数据库信息,与自己的rpm数据库进行比对,最后一次性下载所有软件进行安装

(2)yum软件仓库:记录软件依赖性信息的数据库

(3)安装软件:yum install 软件名 -y

(4)升级软件:yum update 软件名 -y

(5)卸载软件:yum remove 软件名 -y

(6)安装带有URL地址的软件:yum install URL

(7)yum配置文件分析

a.存储路径:/etc/yum.repos.d/*-Base.repo

b.内容分

(a)[base]:表示yum软件仓库的名称,[ ]不能省略,内容任意

(b)name:描述yum软件仓库的意义,不重要

(c)baseurl:表示yum仓库的网址,非常重要

(d)gpgcheck:检查软件的数字签名,=1表示检查;=0表示不检查。

(e)gpgkey:检查数字签名时的所需公钥,gpgkey=0时可省略

(8)查看yum软件仓库是否启用:yum repolist all

(9)清除yum缓存:yum clean all

(10)重建yum缓存:yum makecache

4.使用本地光盘镜像制作本地yum源

(1)作用:当不方便使用网络时,可以使用本地DVD光盘作为yum安装源

(2)过程:

a.备份原始yum配置文件:

cd /etc/yum.repos.d

mv CentOS7-Base-163.repo CentOS7-Base-163.repo.back

mv epel.repo epel.repo.back

vim dvd.repo

[dvd]
baseurl=file:///media
gpgcheck=0

保存退出

b.挂载光盘:mount /dev/sr0 /media

c.清理缓存:yum clean all

d.重建缓存:yum makecache

e.尝试下载:yum install tomcat -y

七、磁盘管理

1.硬盘的基本原理

(1)概念:是一种大容量,永久性的磁介质外部存储设备

(2)硬件结构:

a.存储盘头

b.磁头

c.马达驱动

d.缓存RAM芯片

e.永磁铁

f.控制电路

(3)软件逻辑结构:磁道、扇区、柱面,一个标准扇区存储512B的信息

2.添加新硬盘

(1)过程:关闭系统->编辑虚拟机设置->添加->硬盘->SCSI接口->构建新虚拟磁盘->最大磁盘容量20GB,设为单个文件->磁盘文件名默认不变。

(2)常见硬件命名:

a.硬盘:/dev/sd[a-p]

b.打印机:/dev/lp[0-15]

c.光盘:/dev/sr0 或 /dev/cdrom

d.鼠标:/dev/mouse

3.硬盘分区格式:

(1)MBR格式

a.MBR:主引导记录区,位于磁盘第0磁道、0柱面、1扇区的存储空间中,用于存储硬盘的引导信息、基本参数、分区表等信息。

b.组成

(a)总容量为512B,存储基本信息占用446B,存储DPT信息占用64B,剩余2个字节用于表示结束标志,如图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8YNN4AJB-1634099551566)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20210710175911853.png)]

(b)注意:MBR分区存储的信息较少,导致硬盘分区个数较少。

c.MBR分区基本要求

(a)主分区(P):不能超过4个,编号1-4

(b)扩展分区(E):最多一个,P+E最多4个

(c)逻辑分区(L):扩展分区是一种过度概念,在扩展分区基础上可以继续划分多个逻辑分区,第一个逻辑分区编号为5

(d)例: 如图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rMsl98kL-1634099551574)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20210710180018616.png)]

(e)注意:一般会划分为PPP+E格式,即三个主分区,1个扩展分区

(2)GPT分区:

a.GPT:磁盘分区表格式,由于MBR分区信息容量太小,无法存储较多信息,则MBR分区没有备份机制,最高支持2.2TB的容量硬盘。

b.GPT分区格式组成:

(a)GPT由多个LBA逻辑区块地址记录磁盘信息

(b)LBA大小为512B~4k,默认为512B,共有68个LBA区块,前34个记录分区信息,后34个进行备份。

(c)LBA组成

LBA0:存储主引导记录和分区标志

LBA1:存储分区表头信息

LBA2~LBA3:每个LBA存储4个分区信息,共记录4*32,128个分区信息

c.GPT分区不存在主分区与扩展分区,都是主分区,理论上可以分128个主分区,最大支持1ZB的磁盘信息

d.现在主流计算机常用UEFI+GPT组成磁盘管理格式

4.lsblk命令

(1)作用:浏览硬盘分区信息

(2)格式:lsblk -参数 设备名称

(3)显示信息解释

(a)NAME:设备名称

(b)MAJ:MIN:主要:次要设备代码

(c)RM:是否可卸载

(d)SIZE:容量

(e)RO:是否为只读

(f)TYPE:设备类型

(g)MOUNTPOINT:挂载点

5.硬盘分区:

(1)parted命令:

a.作用:显示硬盘分区表信息及分区类型

b.格式:parted 设备名 print

c.例:parted /dev/sda print

d.注意:MBR分区格式标志:msdos;GPT分区格式标志:gpt

(2)fdisk命令:

a.注意:fdisk命令只支持MBR分区格式

b.格式:fdisk 磁盘名

c.例1:对/dev/sdb按照p+p+p+e(l+l+l)格式划分分区

(1)fdisk /dev/sdb

(2)命令(输入 m 获取帮助):n

(3)Select (default p):p

(4)分区号 (1-4,默认 1):回车

(5)起始扇区:回车

(6)Last扇区:+2G

(7)…

(8)输入P浏览分区表查看是否有误

(9)输入w保存同步磁盘并退出

6.对fdisk /dev/sdb进行删除,p+p+e(l+l)

例:

(a)fdisk /dev/sdb

(b)命令(输入 m 获取帮助):d

(c)…

(d)注意:删除时为倒序

(3)gdisk命令

a.作用:针对GPT分区格式进行分区,在已有MBR分区格式的硬盘中不能混用gdisk分区命令,否则数据丢失

b.格式 :gdisk 磁盘名

c.例1:使用gdisk命令对/dev/sdc硬盘分区为2G+5G+3G

(a). gdisk /dev/sdc

(b). Command (? for help):N

©. Partition number :默认回车

(d). First sector :默认回车

(e). Last sector :+2G

(f). Hex code or GUID (L to show codes, Enter = 8300): 默认回车

(g). ……

(h). 输入p查看分区列表

(i). 输入w保存,输入y写入磁盘后退出

a. 例2:使用gdisk命令对/dev/sdc调整第三个分区容量为5G。

(a). gdisk /dev/sdc

(b). 输入d删除第三个分区

©. 新建第三个分区为5G容量

(1). 注意

a. MBR分区及GPT分区不能对同一硬盘混用,否数据句全部丢失

b. 分区时一般会保存一些自由空间,以备将来对分区进行扩容

6.文件系统

(1)基本原理:

a.文件系统用于记录硬盘中数据库、索引块的信息,能帮助系统读取或写入数据

b.组成

(a)超级快:存储索引块的数量、索引块状态、数据块数量及状态,又称硬盘地图

(b)块描述符:存储块位图、索引块位图、索引表所在块号

(c)块位图:存储数据块的使用状态

(d)inode位图:记录索引表的使用状态

(e)inode表:存储文件的大小、长度、权限、创建时间、文件名、所在块号等信息

(f)数据块:存储真实数据的数据块

(2)常见文件系统:ext2、ext3、ext4、xfs等,系统默认使用xfs文件系统

(3)blkid命令

a.作用:显示硬盘的设备标识符(UUID)、文件系统等信息

b.UUID:全局单一标识符,每个硬件都有唯一的标识符,用于区别其他的设备

c.格式:blkid 设备名

(4)df命令

a.作用:列出文件系统占用的磁盘使用量

b.格式:df -参数 文件名

c.参数:

(a)-a:列出所有文件系统信息

(b)-h:以标准存储单位显示(KB,MB,GB)

d.例:df -h /dev/sda1

(5)格式化

a.意义:对分区建立文件系统

b.查看支持文件系统格式的方法:输入mkfs点击两次Tab键

c.mkfs.xfs命令

(a)格式:mkfs.xfs -参数 设备名

(b)作用:使用xfs文件系统格式化设备

(c)参数:

-f:强制格式化,二次格式化时使用

-b block容量:按照指定数据块大小进行格式化,block容量范围:512B~64KB,Linux系统限制在4kB以下

(d)示例:mkfs.xfs /dev/sdb1

7.设备挂载与卸除

(1)挂载:建立目录与设备分区之间的关联,通过该目录就能进入使用设备分区存储空间

(2)挂载点(mountpoint):本质是一个目录,该目录是进入磁盘分区的入口

(3)mount命令:

a.格式:mount -参数 设备名 挂载点目录名

b.例:建立挂载目录,挂载/dev/sdb所有分区

(a)必须先格式化所有分区:mkfs.xfs /dev/sdb1

(b)cd /mnt

(c)mkdir s1 s2 s4 s5

(d) mount /dev/sdb1 /mnt/s1

(e)…

(f)lsblk /dev/sdb

c.例:使用UUID值挂载设备分区

(a)查看被挂载分区的UUID:blkid /dev/sdc1

(b)建立挂载点目录:mkdir /mnt/usdc1

mount UUID=“294cd0f4-fed0-4c33-bf73-388ca9756f84” /mnt/usdc1

lsblk /dev/sdc1

d.例:挂载光盘:

mount /dev/sr0 /media

e.注意:

(a)单一文件系统不能重复挂载到不同挂载点

(b)单一目录不能重复挂载多个文件系统

(c)挂载点目录若不为空目录则挂载后原数据会被隐藏

(4)umount命令

a.作用:下载设备

b.格式:umount -参数 设备名或挂载点目录名

c.参数:

-f:强制卸载

-n:不更新/etc/fstab配置文件情况下卸载

d.例:umount /dev/sdb1 或 umount /mnt/s2

e.注意:卸载挂载点时,当前目录不能为挂载点目录,否则报错,必须返回其他目录即可卸载设备

8.开机挂载

(1)产生原因:一般挂载为手动挂载,重启系统后失效,必须配置开机挂载配置文件后才会永久挂载失效

(2)配置文件路径:/etc/fstab

(3)配置开机文件挂载,将sdb三个分区进行设置

a.vim /etc/fstab

b.添加新行,输入6列信息:

设备名或UUID 挂载点目录名 文件系统 defaults 0(是否备份)0(开机是否进行检查)

c.添加:

/dev/sdb1 /mnt/s1 xfs defaults 0 0
/dev/sdb2 /mnt/s2 xfs defaults 0 0
/dev/sdb3 /mnt/s3 xfs defaults 0 0

d.保存退出

e.测试是否有误:mount -a

f. 重启:reboot

g.查看:lsblk /dev/sdb

(4)注意:

a.根目录(/)必须第一个挂载

b.所有挂载点或分区在同一时间内只能挂载一次

c.若要卸载设备,卸载后必须清除开机挂载配置文件中的对应记录

9.卸载大文件当作分区使用

(1)作用:当硬盘无自由空间,且又需要增加新分区,则可以将某个分区内部剩余空间划出一个大容量文件,处理后挂载为“新分区"使用

(2)例:制作1G大文件挂载成分区使用

a.cd /

b.制作大文件:dd if=/dev/zero of=loopdev bs=1G count=1

c.格式化:mkfs.xfs -f /loopdev

d.建立挂载点: mkdir /mnt/lpd

e.挂载: mount **-o loop ** (将文件转为块设备文件) /loopdev /mnt/lpd

f.查看:lsblk

10.增加swap交换空间

(1)swap空间为虚拟内存类的空间,弥补物理内存不足

(2)查看:free -h

(3)例:使用:gdisk划分出2G空间制作为swap交换空间。

a.查看swap交换空间: free -h

b.建立分区 :gdisk /dev/sdc(+1G、+2G、+3G、+2G)

c.格式化:mkswap /dev/sdc4

d.生效:swapon /dev/sdc4

h…查看swap交换空间:free -h

开机挂载,永久生效:

e进入配置文件:vim /etc/fstab

f.最后一行添加:/dev/sdc4 swap swap defaults 0 0

g.测试:mount -a

11.软硬链接

(1)硬链接

a.原理:由于Linux系统允许多个文件指向同一个inode,即允许一个文件有多个有效路径名,则硬链接就是指向原始文件的索引指针

b.查看硬链接的方法

(a)stat 文件名

(b)ll 文件名

c.建立硬链接

(a)格式:ln -参数 源文件 目标链接名

(b)参数:-s , 建立软链接

(c)例:

touch n1.txt

ll n1.txt

ln n1.txt n2.txt

ll n1.txt

d.注意

(a)硬链接建立后,删除源文件数据依然可以访问,只有硬链接数为0时,数据不可访问

(b)不能给目录建立硬链接,目录默认硬链接数为2,其本质为目录内部的2个隐藏指向: . …

(c)不可以在不同的文件系统中相互建立硬链接,由于inode是当前文件系统的索引值只针对当前分区使用,所以硬链接不能跨越文件系统

(2)软链接

a.原理:是一种符号链接,类似于windows的快捷方式,仅包含所连接的路径名

b.格式:格式: ln -s 源文件 目标链接名

c.示例:

echo “china” > h1.txt

ln -s h1.txt h2.txt

cat h2.txt

rm -f h1.txt

cat h2.txt(报错:不存在)

d.注意

(a)软链接只是一种指向关系,删除源文件后,数据不可访问

(b)软链接可以方便浏览绝对路径较长的文件,例:

ln -s /etc/sysconfig/network-scripts/ifcfg-ens33 nic

cat nic

(c)可以通过ll命令查看软链接的指向路径

(3)软硬链接的区别

a.硬链接中源文件与目标链接文件共用一个索引号是同一个文件的不同引用,软链接中源文件与目标链接文件拥有不同的索引号,是2个不同的文件。

b.硬链接数可查看,软链接只可查看指向的路径。

c.文件大小不同:硬链接文件大小相同。

d.软链接可以跨文件系统使用。

八、LVM(逻辑卷管理器)

1.作用:硬盘分区或制作RAID后再动态扩容或缩容时无法保证已有的数据安全,若用户需要灵活调整硬盘分区存储空间,必须通过LVM技术实现

2.原理

(1)原则:LVM在磁盘分区与文件系统之间添加一个逻辑层,以提供一个抽象的卷组,通过卷组进行空间分配,使得用户忽略底层磁盘布局,从而灵活调整空间大小。

(2)结构:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ERImnVKD-1634099551611)(F:\QQ图片20210712194924.jpg)]

(3)PE:数据基本块,默认大小为4MB的存储块

(4)PV:物理卷,可以是整个硬盘或某个分区

(5)VG:卷组,由一个或多个物理卷集合组成,

(6)LV:逻辑卷,从卷组中切割出的空间

3.常见命令

物理卷(PV) 卷组(VG) 逻辑卷(LV)
扫描 pvscan vgscan lvscan
建立 pvcreate vgcreate lvcreate
显示 pvdisplay vgdisplay lvdisplay
删除 pvremove vgremove lvremove
扩容 ------- vgextend lvextend
缩容 ------- vgreduce lvreduce

4.LVM使用过程

(1)新硬盘加入物理卷

(2)创建卷组,并将物理卷加入卷组

(3)切割出指定容量的逻辑卷

(4)格式化逻辑卷

(5)创建挂载目录,挂载逻辑卷

(6)设置逻辑卷的开机挂载信息

5.例1:添加三块硬盘,创建150MB的逻辑卷并格式化挂载使用

(1) 添加3块硬盘

(2)创建物理卷:

pvcreate /dev/sdb /dev/sdc /dev/sdd

(3)创建卷组:

vgcreate VG1 /dev/sdb /dev/sdc /dev/sdd

(4)查看卷组信息:vgdisplay VG1

(5)切割150MB的逻辑卷:

a.lvcreate -n lv1 -L 150M VG1

ll /dev/VG1/lv1

b.注意:-L表示容量单位,会有误差

(6)显示逻辑卷信息:lvdisplay /dev/VG1/lv1

(7)格式化:mkfs.xfs /dev/VG1/lv1

(8)创建挂载目录:mkdir /mnt/lvm1

(9)挂载:mount /dev/VG1/lv1 /mnt/lvm1

(10)开机挂载:

a.vim /etc/fstab

b.添加一行新内容:

/dev/VG1/lv1 /mnt/lvm1 xfs defaults 0 0

c.测试:mount -a

d.lsblk /dev/VG1/lv1

6.例2:基于上例,切割出200MB(50个4M的数据基本块)的逻辑卷

(1)创建lv:

a.命令:lvcreate -n lv2 -l 50 VG1

b.注意:-l之后书写PE(4MB)的个数

(2)查看信息:lvdisplay /dev/VG1/lv2

(3)格式化逻辑卷:mkfs.xfs /dev/VG1/lv2

(4)创建挂载目录:mkdir /mnt/lvm2

(5)挂载:mount /dev/VG1/lv2 /mnt/lvm2

(6)设置开机挂载:

vim /etc/fstab

添加:/dev/VG1/lv2 /mnt/lvm2 xfs defaults 0 0

查看:lsblk /dev/VG1/lv2

7.逻辑卷的扩容

(1)过程:

a.卸载逻辑卷

b.扩容

c.重新格式化

d.重新挂载

(2)例:对上例1逻辑卷扩容到300MB

a.umount /dev/VG1/lv1

b.lvextend -L 300M /dev/VG1/lv1

c.mkfs.xfs -f /dev/VG1/lv1 (-f :由于第二次格式化,所以需要强制格式化)

d.挂载:mount -a /dev/VG1/lv1 /mnt/lvm1

e.测试:mount -a

f.查看信息:lsblk /dev/VG1/lv1

(3)注意:

a.扩容前必须卸载设备

b.扩容时注意容量单位

c.扩容后必须重新格式化,否则容量不增加

8.逻辑卷的缩容

(1)注意:

a.相对扩容,缩容会有风险,需要提前备份数据

b.缩容前必须进行文件系统完整性检查,以保证数据的安全

(2)过程

a.卸载设备

b.文件系统完整性检查

c.缩容

d.重新格式化

e.重新挂载

(3)例:基于例2缩容到100MB

a.卸载设备

umount /dev/VG1/lv2

b.文件系统完整性检查

xfs_repair -n /dev/VG1/lv2

c.缩容

lvreduce -L 100M /dev/VG1/lv2

d.重新格式化

mkfs.xfs -f /dev/VG1/lv2

e.重新挂载

mount /dev/VG1/lv2 /mnt/lvm2

f.测试:mount -a

g.查看:lsblk /dev/VG1/lv2

9.LVM的撤销

(1)撤销顺序:LV->VG->PV

(2)注意

a.删除撤销时需要输入“y”进行确认

b.删除前必须备份数据

(3)过程:

a.卸载设备

b.清除开机挂载对应记录

c.删除LV,解散VG,撤销PV

(4)例:将上例1及例2的LVM撤销

a.卸载设备:

umount /dev/VG1/lv1

umount /dev/VG1/lv2

b.清除开机挂载记录:

(a)vim /etc/fstab

(b)定位后删除

(c)保存退出

c.删除LV:

lvremove /dev/VG1/lv1(输入y确认)

lvremove /dev/VG1/lv2(输入y确认)

d. 解散VG:vgremove /dev/VG1

e.撤销PV:

(a)本质:取消硬盘或分区对物理卷的支持

(b)命令:

​ pvremove /dev/sdb /dev/sdc /dev/sdd

(c)查看信息:lsblk 或 vgdisplay /dev

九、RAID(磁盘冗余阵列)

1.作用:使用多块硬盘组成大容量的“硬盘组”,将用户的数据分成多个片段,同步进行读写,并通过冗余备份功能实现数据的安全性。

2.常见的RAID组件方案

(1)RAID 0

a.原理:将至少两块硬盘通过硬件或软件的方式“串联”来,组成一个大的硬盘卷组,数据同步读写到硬盘中。

b.图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sobOAczT-1634099551613)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20210713194752772.png)]

c.特点:

(a)优点:数据同步传输,可以读取/写入分开,性能提升较大

(b)缺点:若任意一块硬盘故障则整个系统损坏,无冗余备份功能。

(2)RAID 1

a.原理:

(a)将至少两块硬盘“并联”起来,写入数据时同步写入多块硬盘中

(b)图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iy3UoCQa-1634099551615)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20210713200246763.png)]

b.特点:

(a)特点:使用硬盘镜像备份功能,提高数据安全性

(b)缺点:若使用两块硬盘组件,一块存储数据,一块进行备份,利用率为50%

(3)RAID 5

a.原理:至少使用3块硬盘,经数据存储到不同的硬盘中,每个硬盘都有其他的校验数据。

b.图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g6tHNt3B-1634099551617)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20210713200309176.png)]

c.特点:

(a)优点:兼顾性能及安全性,使用“奇偶校验”替代“硬盘镜像”

(b)缺点:硬盘利用率较低,数据恢复具有一定概率

(4)RAID 10(主流)

a.本质:RAID 1+RAID 0

b.原理:至少需要四块硬盘,先制作两块硬盘之间的RAID 1阵列,再制作RAID 0 阵列

c.图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9Ku4wIx9-1634099551621)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20210713200908916.png)]

d.特点:兼顾性能与安全性,成本较高。

3.mdadm命令

(1)作用:管理系统中的RAID磁盘阵列

(2)格式:mdadm -参数 磁盘阵列名称 -参数 硬盘成员名

(3)参数:

a. -a:检测设备名称并确认

b. -n:指定硬盘个数

c. -l:指定RAID级别

d. -C:创建RAID

e. -v:显示过程

f. -f:模拟设备损坏

g. -r:移除设备

h. -Q:查看RAID 摘要信息

i. -D:查看RAID 详细信息

j. -S:停止RAID工作

(4)例1:添加4块硬盘组件RAID 10

a.添加硬盘

b.创建RAID 10

mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde

(a)-Cv:创建RAID并显示过程

(b)/dev/md0:创建RAID的设备名

(c)-a yes:检测RAID设备名,并确认

(d)-n 4:参与制作的硬盘个数,4块

(e)-l 10:RAID级别为RAID 10

(f)最后为四块硬盘的名称

c.查看信息:mdadm -D /dev/md0

d.格式化:mkfs.xfs /dev/md0

e.建立挂载目录:mkdir /mnt/RAID

f.挂载:mount /dev/md0 /mnt/RAID

g.开机挂载:

(a)vim /etc/fstab

(b)添加:

/dev/md0 /mnt/RAID defaults 0 0

(c)保存退出

(5)例:RAID的故障修复

a.模拟某个硬盘损坏

mdadm /dev/md0 -f /dev/sdb

b.卸载设备:umount /dev/md0

c.手动添加新硬盘后通过命令加入到该RAID阵列中:

​ mdadm /dev/md0 -a /dev/sdf

d.等待后查看状态:

mdadm -D /dev/md0

(6)撤销RAID

a.注意:生产环境中若要取消RAID则必须提前备份数据

b.例:上例的RAID撤销

(a)卸载设备:umount /dev/md0

(b)删除开机挂载记录:

​ vim /etc/fstab

(d)停止RAID工作:mdadm -S /dev/md0

(e)查看RAID磁盘阵列信息:mdadm -D /dev/md0

(7)RAID备份盘技术

a.作用:防止某块硬盘损坏的同时另一块也同时损坏

b.结构:RAID 10 4+1 共5块硬盘

c.例:创建RAID 10 及备份盘

(a)mdadm -Cv /dev/md1 -a yes -n 4 -l 10 -x(备份盘) 1 /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf(备份盘)

(b)查看RAID磁盘阵列信息:mdadm -D /dev/md1

(c)注意:-x 1,表示备份盘且为1块硬盘,硬盘列表中最后一块为备份盘

(d)模拟损坏:mdadm /dev/md1 -f /dev/sdb

(e)再次查看RAID磁盘阵列信息:mdadm -D /dev/md1

​ (注意:此时备份盘自动替补)

十、使用Apache搭建Web服务器

1.组成

(1)服务器端应用软件:IIS7、nginx、apache等

(2)web页:通过HTML、css等程序框架编写的网页

(3)服务器存储空间

2.Apache的安装

(1)yum install httpd -y

(2)关闭安全检测服务:SELinux:setenforce 0

(3)关闭防火墙:systemctl stop firewalld

(4)启动Apache服务:systemctl start httpd

(5)开机启动:systemctl enable httpd

3.Apache 配置文件分析

(1)服务目录:/etc/httpd

(2)主配置文件路径:/etc/httpd/conf/httpd.conf

(3)网页源文件默认存储目录:/var/www/html

(4)网页访问日志:/var/log/httpd/access/log

(5)错误日志:/var/log/httpd

cd /etc/httpd/error.log

(6)httpd.conf配置文件分析

a.组成:

(a)注释内容

(b)全局配置

(c)区域配置

b.需要关注的参数

(a)ServerRoot:服务程序的主目录

(b)Listen:监听的端口号,默认为80

(c)User:运行服务的账户名

(d)Group:运行服务的工作组

(e)ServerAdmin:管理员的邮箱地址

(f)DocumentRoot:网站数据存储目录

(g)Timeout:网页请求超时时间,单位毫秒

4.快速部署个人网站

(1)新建一个网页的存储目录:mkdir /web1

(2)使用winscp上传网页源文件

a.主机名:输入要登录主机的ip地址

b.端口号:22

c.账户:root;密码:123456

d.左侧为windows,右侧为Linux,在左侧找到文件拖拽到右侧Linux目录中

(3)httpd.conf配置

a.vim /etc/httpd/conf/httpd.conf

b.定位119行将"/var/www.html"改为:“/web1”

c.区域位置将"/var/www"改为: “/web1”

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YyFHwjY5-1634099551631)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20210714195415949.png)]

d.:wq

e.重启服务:systemctl restart httpd

十一、使用LNMP一键安装包搭建论坛

1.准备工作

(1)快照恢复

(2)关闭SELinux:setenforce 0

(3)关闭防火墙:systemctl stop firewalld(临时关闭)

2.使用winscp上传LNMP一键安装包(L:Linux、N:nginx、M:mysql、P:PHP)

(1)cd /

(2)上传lnmp1.7-full.tar.gz

(3)检测yum是否可用:yum makecache

(4)解压缩:tar xvf lnmp1.7-full.tar.gz

3.安装LNMP

(1)cd /lnmp1.7-full

(2)执行可执行文件: ./install.sh

(3)进入安装向导

a. Install MySQL :默认回车

b.设置密码:Please setup root password of MySQL.
Please enter: 默认为root账户密码

c.Default enable,Enter your choice [Y/n]: y

d.选择PHP版本:默认回车

e.是否安装内存优化:不安装,回车

f.按任意键开始安装

4.配置Nignx

(1)注意:LNMP一键安装包的nginx是经过优化的与默认安装的nginx配置项目路径有所不同

(2)将Discuz论坛源文件的upload目录上传到 /home/wwwroot/default 目录中

(3)赋予upload相关权限

a.cd /home/wwwroot/default

b.chmod -Rf 777 upload

c.chown www:www -R /home/wwwroot/default/upload

(4)配置nginx.conf文件

a.vim /usr/local/nginx/conf/nginx.conf

b.定位第69行,将”/home/wwwroot/default“ 修改为”/home/wwwroot/default/upload“

c.保存退出

(5)重启nginx:

a.cd /usr/local/nginx/sbin

b.执行: ./nginx -s reload

5.打开客户端浏览器输入服务器IP,安装Discuz论坛程序,按照向导操作

Linux操作系统(3.2.14find)相关推荐

  1. 实验报告Linux操作系统基本命令,linux操作系统实验报告全部.doc

    linux操作系统实验报告全部 计算机操作系统 实验报告 学 号:姓 名:提交日期:2014.12.15成 绩: 东北大学秦皇岛分校 [实验题目]熟悉Linux/UNIX操作系统[实验目的]1.熟悉L ...

  2. Linux哪个和Windows很像,Linuxfx - 这套Linux操作系统看起来和Windows 10非常类似

    正如你在截图中所看到的那样,Linuxfx的外观和感觉与Windows 10非常类似,甚至还可以得到一个带有Windows开始按钮的开始菜单,然而,这个实际上可能是一个问题,因为微软可能不喜欢在另一个 ...

  3. 如何在VMware虚拟机上安装Linux操作系统(Ubuntu)

    作为初学者想变为计算机大牛非一朝一夕,但掌握基本的计算机操作和常识却也不是多么难的事情.所以作为一名工科男,为了把握住接近女神的机会,也为了避免当白痴,学会装系统吧!of course为避免把自己的电 ...

  4. linux操作系统的特点有哪些,LINUX操作系统有哪些概念和特点?

    嵌入式LINUX操作系统的概念 以应用为中心,以计算机技术为基础,软件.硬件可裁剪,适应应用系统对功能.可靠性.成本.体积.功耗要求严格的专用计算机系统,称为嵌入式系统.一个最小的嵌入式系统的基本组成 ...

  5. linux六种进程状态,Linux操作系统中进程的七种状态

    Linux操作系统中进程的七种状态 发布时间:2018-05-07 20:43, 浏览次数:741 , 标签: Linux 1 Linux中进程的七种状态(1)R运行状态(runing):并不意味着进 ...

  6. mysql用户权限与安装Linux操作系统

    用户与权限: 关于用户的创建: 我们都知道安装数据库服务器的时候,一般默认的情况下只有一个root用户,但是在公司里一个数据库会有多个人使用,所以自然的一个数据库里需要有多个用户,并且在使用数据库的过 ...

  7. linux 卸载yaf,LINUX操作系统怎么搭建YAF框架

    如何在已经搭建好的php环境下,继续搭建yaf框架环境?那么小编就在本文给大家介绍下搭建方法 LINUX操作系统怎么搭建YAF框架 命令: wget 地址参考图片 命令: tar zxvf yaf-2 ...

  8. Linux操作系统选择:Debian or Ubuntu

    此文首发于我的个人博客:Linux操作系统选择:Debian or Ubuntu - zhang0peter的个人博客 我最开始使用Linux系统的时候选择的是Ubuntu,因为Ubuntu名气大,而 ...

  9. linux课程设计死锁避免,linux操作系统课程设计—车辆死锁.doc

    linux操作系统课程设计-车辆死锁.doc 键入文字"操作系统原理"课程设计BX090709吴沛儒操作系统原理课程设计报告姓名吴沛儒班级BX0907学号9指导老师胡静二〇一一年十 ...

  10. 无人值守u盘安装linux,从U盘无人值守安装linux操作系统(纯实践笔记)

    作者:曲宝全 本文的目的是:实现从U盘无人值守安装Linux操作系统 环境说明:1个4G的U盘(根据自己的操作系统ISO大小来定),本文试验的操作系统是RHEL4.8-x86_64-AS-DVD.is ...

最新文章

  1. USACO 1.3... 虫洞 解题报告(搜索+强大剪枝+模拟)
  2. CentOS7上搭建Hadoop集群(入门级)
  3. 2016年第一堂课课后作业1
  4. h5 客服系统源码_Bos:做在线客服系统项目(附源码)
  5. 对家自动驾驶汽车出 Bug?马斯克幸灾乐祸:“哈哈!”
  6. 康众平板探测器_2020-2025年数字化X线探测器行业市场深度调研及投资前景预测分析报告 数字化设备成为市场主流...
  7. Python网络编程之socketserver实现多并发
  8. 使用Aircrack-ng和RT3070无线网卡破解WIFI密码
  9. pc恶意程序木马分析 启动流程 逆向分析 数据解密
  10. 【LeetCode】86. 分隔链表
  11. 深度学习电脑配置推荐
  12. Unity地图分割组合时出现接缝的处理办法
  13. 用智能人脸识别门禁管理工地更严谨考勤更方便
  14. python小数乘法_运营管理案例分析:《质保主管 Hank Kolb》.docx
  15. 全球及中国保健品市场消费需求与投资价值评估报告2022-2028年
  16. mysql删除多个索引
  17. 会计师事务所寄快递教程
  18. 《后现代全栈系统的设计与应用》
  19. 8Lua从入门到精通-王桂林-专题视频课程
  20. Cinema 4D 快速教程

热门文章

  1. 如何删除“无法删除文件,无法读取源文件或磁盘”文件
  2. 2020 APP批量头像,高质量严选真实用户头像
  3. 2021微信透明头像!真实有用
  4. 热传导方程有限差分法实现matlab,热传导方程有限差分法的MATLAB实现-史策
  5. ThinkPHP商城实战
  6. 如何前后端分离的架构中使用Shiro框架
  7. NXP RT1062 flashloader下载程序到RAM执行
  8. java网络通信技术示例:简单的聊天小程序
  9. 测试鼠标点击速度软件编程,怎么测试鼠标自动点击速度
  10. zend调试php,Zend Studio使用教程:在Zend Studio中调试PHP(4/5)