基础命令——第一阶段
-
默认解释器:
/bin/bash用户--->解释器--->内核---->硬件 bash是所有解释器里最强大的一个 -
mount挂载,光盘——>光驱设备—>访问光盘的内容 删除挂载umount-
光驱设备: /dev/sr0 Redhat更新为cdrom 是sr0的快捷方式
-
光盘---》光驱设备---》访问光盘的内容
-
光盘镜像文件---》虚拟的光驱设备-----》访问点(目录)光盘镜像文件放入虚拟机的光驱设备
-
-
-
添加用户
useradd他与mkdir不一样 前者是创建用户 后者是创建文件夹useradd 用户名
-
ls查看目录-
ls -l文件地址 显示该文件的详细信息 -
ls -lh提供易读的容量单位(k m) -
ls -ld显示目录本身(而不是内容) 的属性 -
ls -A显示目录当中隐藏的数据 -
ls -R递归显示目录的内容通配符匹配
-
ls /dev/tty**号表示多个字符 所有的 -
```ls /dev/tty?` `` ?只能表示一个字符(单个字符)
-
-
别名的定义:简化复杂的命令
- 查看已设置的别名
-alias [别名名称]
- 定新的别名
alias hn='houstname'别名名称=‘实际执行的命令’
- 删除别名
unalias 别名
- 别名文件:
/root/.bashrc
- 查看已设置的别名
-
mv —— Move移动:源数据会消失
- 格式:
mv 原文件 目标路径 - 使用mv命令可以实现改名的作用,目标路径最后一个文件名字就是要改的名字
- 格式:
-
cp—— Copy:源数据不会消失
- 格式:cp [选项] 源文件 目标路径
- 常用命令选项
- -r 当对象是是目录时加上-r
-
在文本文件中过滤,包含指定字符串的行
-
grep [选项] ‘字符串’ 文本文件
-
grep root /etc/passwd这个命令的含义就是 在etc/passwd文件下含有root的行默认情况下不支持通配符
常用命令
- -v 取反匹配
- -i 忽略大小写
- ^word 以字符串word开头
- word$ 以字符串word结尾
-
-
常见的压缩格式及命令工具
- gz -> gzip (未来用的更多一些)
- .bz ->bzip2
- .xz ->xz
-
tar工具的常用选项(只能打包一些静态文件)
-
归档压缩包:tar 【选项】 /路径/压缩包名字 /路径/源数据.......
- ````tar -zcf /root/hahha.tar.bz2 /etc/passwd /home/ /boot/``` 表示将passwd home boot文件归案压缩为hahha文件 文件后面的.tar.bz2专业人命名规范
- -c 创建归档 进行打包数据
- -f: 指定包 ,必须是在所有选项的最后
- -z、-j、-J:调用 .gz .bz2 .xz 格式的工具进行处理
- ````tar -zcf /root/hahha.tar.bz2 /etc/passwd /home/ /boot/``` 表示将passwd home boot文件归案压缩为hahha文件 文件后面的.tar.bz2专业人命名规范
-
释放压缩包(解包):tar [选项] /路径/压缩包名字 -C 解压路径 (-C表示解压到哪里)
tar -xf /root/hahha.tar.bz2 -C /nsd01/- -x: 释放归档
- -f: 指定包 ,必须是在所有选项的最后
- -C 指定解压路径
-
tar集成备份工具
-c:创建归档 进行打包数据
-x: 释放归档
-f: 指定包 ,必须是在所有选项的最后
-z、-j、-J:调用 .gz .bz2 .xz 格式的工具进行处理
-C 指定解压路径
-
>重定向 并覆盖原有内容;>>重定向并追加内容 -
echo通过这个指令并结合重定向 可以在文档当中输入对应的内容 该命令是属于shell编程当中的输出命令 -
管道:
|前后执行条件同时执行 -
find精确查找——基本使用-
-find [目录] [文件] -
根目录下的proc是不占用硬盘空间的,表示的是内存数据
-
常用选项
-
-name pattern按文件名查找,支持使用通配符*和?find /etc/ -name 'passwd' -
-type type按文件类型查找,可以是f(普通文件),d(目录),l(符号链接)等;find /etc/ -type l -
-size+或- (+号是大于 -号是小于);文件大小(k、M、G);find /boot/ -size +330k;find /boot/ -size +10k -size +100k -
-user查找用户创造的数据;find / -user natasha -
-mtime修改时间(所有的时间都是过去时间);find /root/ -mtime _90 -
案例:
find /etc/ -name '*tab' | wc -l意思是通过在etc文件夹当中查找出来的文件数目进行统计
-
-
-
find查找——高级使用-
操作方法
-find [范围] [条件] -exec 处理命令 {}find /boot/ -size +10M -exec cp {} /mnt \;
-
vim快捷方式
| 复制 | yy; 3yy | 复制光标处的一行、3行 |
|---|---|---|
| 粘贴 | p、P | 粘贴到光标处之后、之前 |
| 删除 | x | 删除光标处的单个字符 |
| dd、3dd | 删除光标处的一行、3行 | |
| D(大写) | 从光标处删除到行尾 | |
| 撤销 | u | 撤销上一步操作 |
| 文本查找 | /a | 向后查找字符串“a” |
| n、N | 跳至后/前一个结果 | |
| 撤销编辑 | u | 撤销最近的一次操作 |
| Ctrl+r | 取消前一次的撤销操作 | |
| 保存退出 | ZZ(大写) | 保存修改屏退出 |
| 行内替换 | :s/root/new | 替换光标所在行第一个“root” |
|---|---|---|
| :/root/new/g | 替换光标所在行所有的“root” | |
| 区域内替换 | :1,10s/root/new/g | 替换第1-10行所有的“root” |
| :%s/root/new/g | 替换文件类所有的“root” |
RPM、Yum软件包
-
虚拟机的光驱设备有没有镜像文件
-
挂载光驱到
/mnt命令为:mount /dev/cdrom /mnt/ -
RPM包的一般安装位置(分散)
文件类别 默认安装位置 普通执行程序 /usr/bin /bin/ 服务器程序、管理工具 /usr/sbin/、/sbin 配置文件 /etc/ 日志文件 /var/log -
查询某个软件是否安装
rpm -q firefox -
查看安装的包并统计数目
rpm -qa | wc -l -
模糊查询某个软件是否安装
rpm -qa | grep mysql -
安装软件
yum安装依赖-
执行思路:运行的命令yum--->配置文件---->软件仓库
-
客户端(本机):指定服务端位置
- 仓库配置:/etc/yum.repos,.d/*.repo 配置文件只能写到这,并且后缀只能是
.repo - 错误的文件会影响正确的文件:遇到错误的文件,一般不要删除,选择给他移动到当前目录下的其它文件
- 仓库配置:/etc/yum.repos,.d/*.repo 配置文件只能写到这,并且后缀只能是
-
将文件放在**/etc/yum.repos,.d/** 该文件下
[nsd20] name=hahaxixi #仓库的名称 baseurl=file:///mnt #指定服务端位置file://表示本地为服务端 enabled=1 #本文件启用 gpgcheck=0 #不检测红帽签名信息 -
容易出现的错误:
- 没有挂载光驱设备
mount - 配置文件路径可能出现问题:查看是否放到了
/etc/yum.repos.d/;配置文件一定是repo文件 - 错误的文件,认真对照序号3的文件
- 没有挂载光驱设备
-
卸载:
yum remove [包名]yum卸载具有很强大的危险性 不要随便卸载 -
查询:
yum provides [包名]或者yum search [包名] -
如果误删程序,可以使用
reinstall再装一遍;只能修复一些简单的失误; -
清空yum缓存:
yum clean all -
展示yum相应的配置:
yum repolist -
查看历史命令:
history默认记录1000条命令;更改的方式是:vim /etc/profile -
可以使用!加命令
!cat的方式执行最近的一次使用cat的命令 -
du命令是专门查看文件夹大小的命令 加选项-sh表示 这个文件的大小
du -sh /root -
查看时间:
date修改时间:date -s '2008-10-1 12:58:55'date +%Y显示年date +%m显示月date +%d显示日期date +%H显示时date +%M显示分date +%S显示秒date +%F显示年-月-日date +%R显示时:分
-
软链接:
- 优势:可以针对目录与文件制作快捷方式,支持跨分析
- 缺点:源数据消失,快捷方式失效
- 格式:
ln -s [/路径/源数据] [/路径/快捷方式的名称]
-
硬链接:
- 格式:
ln [/路径/源数据] [/路径/快捷方式的名称] - 优势:源数据消失,快捷方式仍然有效
- 缺点:只能针对文件制作快捷方式,不支持跨分区
- 格式:
-
归档压缩
-
压缩:
zip -r /opt/abc.zip /etc/passwd /home -
解压:
unzip -t /opt/abc.zip -d /nsd20
-
-
用户账号、组账号
- 用户账号作用:
- 可以登陆操作系统
- 唯一标识:uid
- 不同得用户具备不同的权限,唯一标识:UID(编号从0开始的编号,默认最大60000)
- 管理员账号root的UID:永远为0
- 普通用户的UID:默认从1000开始
- 组账号的作用
- 方便管理用户
- 唯一表示:GID(编号从0开始的编号,默认最大60000)
- 原则:Linux一个用户必须至少属于一个组
- 组账号的分类
- 基本组:系统创建与用户同名
- 附加组(从属组):由管理员创建,由管理员进行加入
- 如何统计当前一共有多少用户:使用wc查找passwd一共有多少行
wc -l passwd root:x:0:0:root:/root:/bin/bash7个字段分别表示什么- 用户名:密码占位符:UID:基本组GID:用户描述信息:家目录:解释器
/etc/passwd(国家的户口系统)/home/家目录(房子)- 指定uid创建用户:
useradd -u 1200 nsd02指定uid为1200创建用户为nsd02 - 指定单独创建在附加组里面:
useradd -G stugrp nsd05指定用户属于附加组stugrp /sbin/nologin:禁止用户登录操作系统useradd -s /sbin/nologin nsd10让nsd10用户没有登录权限
usermod命令- 修改用户;格式:
usermod [选项] 用户名 useradd nsd12创建用户-l更改用户账号的登录名称usermod -l hahha12 nsd12-u用户idusermod -u 1600 hahha12-d家目录路径usermod -d /etc/abc hahha12只是更改配置文件(passwd)的内容-s登录解释器usermod -s /sbin/nologin hahha12-G附加组usermod -d /etc/abc hahha12
- 修改用户;格式:
- 创建用户可以更改密码
passwd [用户名]
- 非交互式:
echo 123 | passwd --stdin nsd01在root账户下 使用该命令进行对nsd01用户设置密码 - 该文件下:查看是否设置了密码
grep hahha /etc/shadowshadow是存贮用户的管理信息
/etc/skel目录下 一般是创建用户时home/[用户名]目录下的文件是由/etc/skel这个文件而来- 用户的删除:
userdel [-r] 用户名-r宿主目录/用户邮件文件也一并删除- 在
/var/spool/mail - useradd做了那些事情
- /etc/passwd 增加一行信息
- /etc/shadow 增加一行信息
- 创建家目录
- 创建用户的邮件文件
- /etc/group 增加一行信息
- /etc/gshadow 增加一行信息
- /etc/group,保存组账号的基本信息
stugrp:x:1504:nsd067- 组名:组密码占位符:组的GIP:组成员列表
- 查看组:只有
grep 组名 /etc/group
- 组管理组成员的命令
gpasswd- 格式:
gpasswd [选项] 组名 -a添加组成员,每次只能加一个-d删除组成员,每次只能删除一个-M定义-A定义组管理员gpasswd -A zhangsan tarena该A一定是大写的A- 案例:
gpasswd 选项 组名 组名 /etc/graoup是组得基本信息文件;/etc/gshadow是组的管理信息
- 格式:
权限管理
-
对于目录:
- r读取权限:查看目录内容
- w写入权限:修改目录的内容(可以创建、删除、改名目录的内容)
- x执行权限:能否进入此目录里(能否访问此目录)
-
归属关系
- 所有者(属主):拥有此文件/目录的用户-user
- 所属组(属组):拥有此文件/目录的组-group
- 其他用户:除所有者、所属组以外的用户-other
lrwxrwxrwx. 1 root root 3 May 3 13:42 /dev/cdrom -> sr0第一个root表示所有者,第二个是所属组rwxrwxrwx分为三组,第一组表示所有者权限 第二组表示所属组 第三组表示权限 第一个字母表示文件类型
-
linux当中如何判断用户具有的权限
- 首先判断用户针对该数据所处的身份
- 查看相应身份的权限位
-
修改权限
-
chmod命令
-
格式:
chmod [ugoa] [+-=] [rwx] 文件... -
常用命令选项
--R:递归修改权限
-
-
chmod u-w /nsd10所有者去掉w权限 -
chmod u+w /nsd10所有者加上w权限 -
chmod g+w /nsd10所属组加上w权限 -
chmod g=r /nsd10所属组重新定义权限 -
chmod a=rwx /nsd10a表示所有人 -
chmod u=---,g=rx,o=rwx/nsd10
-
-
修改归属关系
- chown命令
chown zhangsan:stugrp /nsd13修改所属于zhangsan 所属组名为stugrpchown zhangsan:stugrp /nsd13仅修改所属人chown zhangsan:stugrp /nsd13修改所属组
-
acl策略的作用
-
文档归属的局限性
- 任何人只属于三种角色 属组、属主、其他人
- 无法是实现更精细的控制
-
acl访问策略
- 能够对个别用户、个别组设置独立的权限
- 大多数挂载的EXT3/4、XFS文件系统默认已支持
-
使用setfacl单独赋予用户权限
setfacl -m u:dc:rx /nsd19-
格式:
setfacl [选型] u:用户名:权限 文件setfacl [选项] g:组名:权限 文件 -
-m:修改ACL策略
-
-x:清楚指定的ACL策略
-
-b:清楚所有已设置的ACl策略
-
-R:递归设置ACL策略
-
-
getfacl查看acl策略
getfacl /nsd19
-
-
Set GID 概述
- 权限
chmod g+s 目录文件- 占用属组(Group) 的x(执行)位
- 显示为s或S,取决于属组是否有 x 权限
- 对目录有效
- 在一个具有SGID权限的目录下,新建的文档会自动继承此目录的属组身份
- 权限
-
附加权限(特殊权限)
- 粘滞位,Sticky Bit权限
chmod o+t /home/public- 占用其他人(Other) 的 x(执行)位
- 显示为t或T,取决于其他人是否有x 权限
- 适用于目录,用来限制用户滥用写入权
- 在设置了t权限的文件下,即使用户有写入权限,也不能删除或改名其他用户文档
-
计划任务(周期性)
-
用途:按照设置的时间间隔为用户反复执行某一项固定的系统任务(夜晚备份日志或数据等)
-
软件包:cronie、crontabs(默认安装)
-
系统服务:crond
-
日志文件:/var/log/cron
-
使用命令
- 编辑:
crontab -e [-u 用户名]#### 重要 - 查看:
crontab -l [-u 用户名] - 清楚:
crontab -r [-u 用户名]
- 编辑:
-
计划书书写格式
-
分 时 日 月 周 任务命令行(绝对路径——指的就是脚本)
30 8 * * * #每天早上8:30执行一次 30 23 * * * #每天晚上23:30执行一次 30 23 * * 5 # 每周周五晚上11:30分执行一次 30 23 * * 1-5 # 每周1到周五晚上11:30 执行一次 30 23 * * 1,3,6 # 每周星期1,3,6晚上11:30执行一次 30 23 1 * 1 # 每月的1 号或每周一晚上11:30执行一次 * * * * * # 每分钟执行一次 */5 * * * * # 每个5分钟执行一次 1 */2 * * * # 每两个小时执行一次
-
-
计划任务记录文件
/var/spool/cron/
-
磁盘空间的管理
-
识别硬盘 => 分区规划 => 格式化 => 挂载使用
- 分区规划:MBR/msdos分区模式
- 最大支持容量为2.2TB 的磁盘
- 扩展分区不能格式化
- 分区类型:主分区、扩展分区(占用所有剩余空间)、逻辑分区
- 最多只能由4个主分区
- 扩展分区可以没有,至多有一个
- 1~4个主分区,或者0~3个主分区+1个扩展分区(n个逻辑分区) (企业主要应用)
- 扩展分区不能格式化,空间不能直接存储数据 扩展分区存在的意义在于产生逻辑分区
- 可以用于存储数据的分区:主分区与逻辑分区
- 格式化:赋予空间文件系统的过程
- 文件系统:数据在空间中存放的规则
- windows常见的文件系统:NTFS FAT(兼容性强)
- linux常见的文件系统:ext4(RHEL6)xfs(RHEL7) FAT
- 命令:
mkfs. (tab)(tab)点后面对应是文件系统类型——格式化mkfs.ext4 /dev/sdb1mkfs.xfs /dev/sdb2
- 挂载使用:
mount /dev/sdb2 /mypart2# 临时挂载 - 查看分区是否被格式化:
blkid /dev/分区名 df -h查看自己挂载的lsblk查看磁盘情况fdisk常用交互指令(创建分区)——分区规划m列出指令帮助p查看现有的分区表(存放分区信息的表格)n新建分区d删除分区 (对硬盘有影响)q放弃更改并退出w保存更改并退出
blkid /dev/sdb1# 查看文件系统类型partprobe刷新分区表- 开机自动挂载
/etc/fstab——非常珍贵 写错就开不了机- 书写格式:
设备路径 挂载点 文件系统类型 参数 备份标记 检测顺序 vim /etc/fstab修改fstab命令 文件格式为上述mount -a如果没有任何输出 上述文件没有问题 每次修改完fstab文件后必须使用该命令检测一次
- 书写格式:
- 分区规划:MBR/msdos分区模式
-
GPT分区模式
-
GPT,GUID Partition Table
-
全局唯一标识分区表
-
突破固定大小64字节的分区表限制
-
最多可支持128个主分区,最大支持18EB容量
** 1EB = 1024PB =1024 * 1024TB
-
parted常用分区指令-
help//查看指令帮助 -
mktable gpt//建立指定模式分区表 -
mkpart分区的名称 文件系统类型 start end //指定大小或百分比%作为起始、结束位置 —— 这个命令会恢复所有的数据 在他之前一定要提前查看该硬盘 -
print//查看分区表 -
rm 序号//删除指定的分区 -
quit//退出交互环境 -
案例:
-
-
交换空间(虚拟内存)
- 利用硬盘的空间,充当内存的空间
- CPU------->内存---------->硬盘
-
swapon命令查看当前计算机的交换空间 -
free -m目前交换空间一共有多大 m表示已mb显示 -
利用硬盘分区制作交换空间——流程
ls /dev/sdc2mkswap /dev/sdc2# 格式化交换文件系统blkid /dev/sdc2#查看文件系统类型swapon#查看交换空间组成的成员信息swapon /dev/sdc2#启用交换分区swapon# 查看交换空间组成的成员信息free -m#查看交换空间的大小swapoff /dev/sdc2#停用交换分区swapon#查看交换空间组成的成员信息free -m#查看交换空间的大小
-
-
LVM(逻辑卷)管理工具集
功能 物理卷(physics volume)管理 卷组(volume group)管理 逻辑卷(logic volum)管理 Scan扫描 pvs vgs lvsca Create创建 pvcreate vgcreate lvcreate Display显示 pvdisplay vgdisplay lvdisplay Remove 删除 pvremove vgremove lvremove Extend扩展 / vgextend lvextend # 创建卷组 [root@localhost ~]# vgcreate systemvg /dev/sdb[1-2] # 创建卷组 做了两个动作 创建了物理卷 之后再次建立的卷组 Physical volume "/dev/sdb1" successfully created. Physical volume "/dev/sdb2" successfully created. Volume group "systemvg" successfully created [root@localhost ~]# vgs #查看卷组 VG #PV #LV #SN Attr VSize VFree centos 1 4 0 wz--n- 16.00g 4.00m systemvg 2 0 0 wz--n- 19.99g 19.99g [root@localhost ~]# pvs #查看物理卷 PV VG Fmt Attr PSize PFree /dev/sda2 centos lvm2 a-- 16.00g 4.00m /dev/sdb1 systemvg lvm2 a-- <10.00g <10.00g /dev/sdb2 systemvg lvm2 a-- <10.00g <10.00g [root@localhost ~]# lvs #查看逻辑卷 LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert home centos -wi-ao---- 1.00g root centos -wi-ao---- 10.00g swap centos -wi-ao---- 1.00g var centos -wi-ao---- 4.00g [root@localhost ~]# #创建一个逻辑卷 [root@localhost ~]# lvcreate -L 16G -n vo systemvg Logical volume "vo" created. [root@localhost ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert home centos -wi-ao---- 1.00g root centos -wi-ao---- 10.00g swap centos -wi-ao---- 1.00g var centos -wi-ao---- 4.00g vo systemvg -wi-a----- 16.00g #多出了一个vo的逻辑卷 16G #查看卷组 [root@localhost ~]# ls -l /dev/systemvg 总用量 0 lrwxrwxrwx. 1 root root 7 5月 15 22:50 vo -> ../dm-4 [root@localhost ~]# ls /dev/systemvg/vo /dev/systemvg/vo [root@localhost ~]# ls /dev/mapper/systemvg-vo /dev/mapper/systemvg-vo [root@localhost ~]# #格式化卷组 [root@localhost ~]# mkfs.xfs /dev/systemvg/vo #格式化文件 meta-data=/dev/systemvg/vo isize=512 agcount=4, agsize=1048576 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=4194304, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 [root@localhost ~]# blkid #查看文件类型 /dev/sr0: UUID="2020-04-22-00-54-00-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos" /dev/sda1: UUID="f1470cdc-79a1-496a-bc17-fd7d9d4a2fd1" TYPE="xfs" /dev/sda2: UUID="ZRr9rD-qUQS-9zZK-kYRG-XvNi-AaPW-oY4fRA" TYPE="LVM2_member" /dev/sdb1: UUID="XO2vlT-bG3N-9c5Q-4PTf-2Bbj-dieq-wdxztf" TYPE="LVM2_member" /dev/sdb2: UUID="qTOvA7-EZND-dm5B-oI2d-mDWw-8qif-gDu59M" TYPE="LVM2_member" /dev/mapper/centos-root: UUID="869e286f-6732-4a4e-a664-efb563ecaa8c" TYPE="xfs" /dev/mapper/centos-swap: UUID="f8966c28-d795-46cd-9e4f-4b98e0efb02f" TYPE="swap" /dev/mapper/centos-var: UUID="8822f008-e2c3-49a0-9f27-f3e58daa4ced" TYPE="xfs" /dev/mapper/centos-home: UUID="e8e6cdb8-f998-40a2-9590-5e4ca10598c5" TYPE="xfs" /dev/mapper/systemvg-vo: UUID="826abd22-7760-4dd8-96d3-cb37dcdf4cd9" TYPE="xfs" #开机自动挂载 [root@localhost ~]# vim /etc/fstab 修改fstab文件进行开机自动挂载 # 该文件编辑格式:/dev/systemvg/vo /mylv xfs defaults 0 0 #扩展vo逻辑卷 [root@localhost ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert home centos -wi-ao---- 1.00g root centos -wi-ao---- 10.00g swap centos -wi-ao---- 1.00g var centos -wi-ao---- 4.00g vo systemvg -wi-ao---- 16.00g [root@localhost ~]# lvextend -L 18G /dev/systemvg/vo #扩展逻辑卷 Size of logical volume systemvg/vo changed from 16.00 GiB (4096 extents) to 18.00 GiB (4608 extents). Logical volume systemvg/vo successfully resized. [root@localhost ~]# lvs #查看逻辑卷 LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert home centos -wi-ao---- 1.00g root centos -wi-ao---- 10.00g swap centos -wi-ao---- 1.00g var centos -wi-ao---- 4.00g vo systemvg -wi-ao---- 18.00g #刷新文件系统 [root@localhost ~]# xfs_growfs /dev/systemvg/vo #在卷组有足够的空间下(查看卷组是否有足够的空间——vgs) 扩展逻辑卷后 刷新vo这个逻辑卷 meta-data=/dev/mapper/systemvg-vo isize=512 agcount=4, agsize=1048576 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0 spinodes=0 data = bsize=4096 blocks=4194304, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 4194304 to 4718592 [root@localhost ~]# df -h | grep vo /dev/mapper/systemvg-vo 18G 33M 18G 1% /mylv #扩展卷组 之后再次扩展逻辑卷 [root@localhost ~]# vgextend systemvg /dev/sdb{3,5,6} Physical volume "/dev/sdb3" successfully created. Physical volume "/dev/sdb5" successfully created. Physical volume "/dev/sdb6" successfully created. Volume group "systemvg" successfully extended [root@localhost ~]# vgs VG #PV #LV #SN Attr VSize VFree centos 1 4 0 wz--n- 16.00g 4.00m systemvg 5 1 0 wz--n- 72.00g 54.00g [root@localhost ~]# lvextend -L 25G /dev/systemvg/vo Size of logical volume systemvg/vo changed from 18.00 GiB (4608 extents) to 25.00 GiB (6400 extents). Logical volume systemvg/vo successfully resized. [root@localhost ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert home centos -wi-ao---- 1.00g root centos -wi-ao---- 10.00g swap centos -wi-ao---- 1.00g var centos -wi-ao---- 4.00g vo systemvg -wi-ao---- 25.00g [root@localhost ~]# xfs_growfs /dev/systemvg/vo #刷新逻辑卷文件系统 meta-data=/dev/mapper/systemvg-vo isize=512 agcount=5, agsize=1048576 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0 spinodes=0 data = bsize=4096 blocks=4718592, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 4718592 to 6553600 [root@localhost ~]# df -h /dev/systemvg/vo #查看是否动态格式化成功 文件系统 容量 已用 可用 已用% 挂载点 /dev/mapper/systemvg-vo 25G 33M 25G 1% /mylv-
逻辑卷支持缩减
- xfs文件系统:不支持缩减
- ext4文件系统:支持缩减
-
vgdisplay systemvg显示该卷组PE Size 4.00MiB -
请创建一个大小为250M的逻辑卷名字为lvredhat(工作当中不会使用 但是在考试当中就有可能会考到)
-
注意:创建逻辑卷是会根据PE Size来整除 若不能整除 则需要向上加直到整除(默认为4M)
查看使用
lvdisplay systemlv 可以使用
lvchange -L 1M systemlv
[root@localhost test]# vgdisplay systemvg --- Volume group --- VG Name systemvg System ID Format lvm2 Metadata Areas 5 Metadata Sequence No 6 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 1 Max PV 0 Cur PV 5 Act PV 5 VG Size 72.00 GiB PE Size 4.00 MiB #修改前 Total PE 18433 Alloc PE / Size 6463 / <25.25 GiB Free PE / Size 11970 / <46.76 GiB VG UUID DcR8By-KKz7-q9CV-wG3j-Dv1E-VOYP-Qr3E5Z [root@localhost test]# vgchange -s 1M systemvg #修改逻辑卷单一大小 Volume group "systemvg" successfully changed [root@localhost test]# vgdisplay systemvg --- Volume group --- VG Name systemvg System ID Format lvm2 Metadata Areas 5 Metadata Sequence No 7 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 1 Max PV 0 Cur PV 5 Act PV 5 VG Size 72.00 GiB PE Size 1.00 MiB #修改后 Total PE 73732 Alloc PE / Size 25852 / <25.25 GiB Free PE / Size 47880 / <46.76 GiB VG UUID DcR8By-KKz7-q9CV-wG3j-Dv1E-VOYP-Qr3E5Z [root@localhost test]# -
-
删除逻辑卷
- 删除卷组的前提:基于此卷组创建的所有逻辑卷,要全部删除
- 删除逻辑卷的前提:不能删除正在挂载使用的逻辑卷
[root@localhost test]# lvremove /dev/systemvg/vo #移除vo逻辑卷 Logical volume systemvg/vo contains a filesystem in use. #显示正在使用当中 [root@localhost test]# umount /mylv #删除vo逻辑卷的挂载 [root@localhost test]# lvremove /dev/systemvg/vo #再次删除 Do you really want to remove active logical volume systemvg/vo? [y/n]: y Logical volume "vo" successfully removed [root@localhost test]# -
-
进程管理
-
程序:静态没有执行的代码 硬盘空间
-
进程:动态执行的代码 CPU与内存资源
-
父进程与子进程 树形结构
-
进程编号:PID
pstree查看各种进程systemd所有进程的父进程
[root@localhost test]# pstree lisi #lisi是新建用户 新开标签页 bash───vim [root@localhost test]# pstree -p lisi bash(5005)───vim(5140) [root@localhost test]# pstree -a lisi bash └─vim aaa.txt [root@localhost test]# pstree -ap lisi bash,5005 └─vim,5140 aaa.txt [root@localhost test]#-
ps aux操作列出正在运行的所有进程,显示进程信息非常详细
-
ps -elf列出正在运行的所有进程,显示父进程信息
PPID为父进程的PID
# 统计当前进程总数 [root@localhost test]# ps aux | wc -l 239 [root@localhost test]# ps -elf | wc -l 239 -
top交互式工具[root@localhost test]# top -d 1 # 1秒刷新 -
pgrep -------Process Grep
-
用途:pgrep [选项]... 查询条件 -
常用命令选项
-l:输出进程名,而不仅仅是PID
-u:检索指定用户的进程
-x:精确匹配完整的进程名
[root@localhost test]# pgrep -l a 2 kthreadd 7 migration/0 10 lru-add-drain 11 watchdog/0 12 watchdog/1 13 migration/1[root@localhost test]#jobs # 查看后台进程信息 [root@localhost test]#bg 1 # 让后台编号为1的进程继续运行 [root@localhost test]#fg 1 # 让后台编号为1 的进程恢复的前台 [root@localhost test]#killall xeyes #杀死所有的大眼睛进程 -
-
-
杀死进程的方式 [-9]加上以后强制
- kill [-9] 命令 一般按照进程的PID进行杀死
- killall [-9]命令 一般按照进程的名字进行杀死
- pkill [-9] 命令 按照进程的名字(包含就算)进行杀死 ——不太建议用这个命令
配置Linux网络
-
root@localhost test]# hostnamectl set-hostname svr7.tedu.cn配置主机名为svr7.tedu -
三种方式配置地址:
-
nmtui——了解
-
nmcli
-
缺点:必须使用自己的命名(为网卡(eth0)起一个自己的名字)——行业规定:起一个和网卡本名一样的名字;
[root@svr7 ~]# nmcli connection show #查看nmcli NAME UUID TYPE DEVICE 有线连接 1 2f07983e-66fc-364e-a89c-85c94d596c9c ethernet eth0 virbr0 1808ef67-47bb-4dbc-a970-00375fc30713 bridge virbr0 ens33 dc49894b-1a3e-40e8-8037-bec8cd865716 ethernet -- [root@svr7 ~]# nmcli connection delete ens33 成功删除连接 "ens33" (dc49894b-1a3e-40e8-8037-bec8cd865716)。 [root@svr7 ~]# nmcli connection show NAME UUID TYPE DEVICE 有线连接 1 2f07983e-66fc-364e-a89c-85c94d596c9c ethernet eth0 virbr0 1808ef67-47bb-4dbc-a970-00375fc30713 bridge virbr0 [root@svr7 ~]# nmcli connection delete '有线连接 1' #删除对应网卡 成功删除连接 "有线连接 1" (2f07983e-66fc-364e-a89c-85c94d596c9c)。 [root@svr7 ~]# nmcli connection show NAME UUID TYPE DEVICE virbr0 1808ef67-47bb-4dbc-a970-00375fc30713 bridge virbr0 #新添加网卡 # 类型为以太网网卡 con-name之后的是代号 ifname是原本的网卡名 [root@svr7 ~]# nmcli connection add type ethernet con-name eth0 ifname eth0 连接 "eth0" (623c2c69-a088-4fcf-890b-69f7e8b5e252) 已成功添加。 [root@svr7 ~]# nmcli connection show NAME UUID TYPE DEVICE eth0 623c2c69-a088-4fcf-890b-69f7e8b5e252 ethernet eth0 virbr0 1808ef67-47bb-4dbc-a970-00375fc30713 bridge virbr0 #修改ipv4的地址 # 修改ipv4的地址为192.168.4.7 ,且子网掩码为255.255.255.0也就是24位 ;manual表示手工配置 ;网关为192.168.4.254 并且开机自动启用connection.autoconnect yes # ipv4.method manual 手动配置 # ipv4.addresses 修改ip地址 #ipv4.gatway 修改网关 [root@svr7 ~]# nmcli connection modify eth0 ipv4.method manual ipv4.addresses 192.168.4.7/24 ipv4.gateway 192.168.4.254 connection.autoconnect yes #配置成功后并且激活 投入使用 [root@svr7 ~]# nmcli connection up eth0 连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/5) #查看网关 [root@svr7 ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.4.254 0.0.0.0 UG 100 0 0 eth0 192.168.4.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0 192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
-
-
修改配置文件
# 修改配置文件 [root@svr7 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 -
远程控制其他linux系统:
[root@svr7 ~]# ssh root@192.168.4.207 [root@svr7 ~]# cat /root/.ssh/known_hosts # 查看远程记录 -
安全复制工具 scp=ssh+cp
scp [-r] 用户名@服务器:路径 本地路径对方的文件下载到自己的目录下scp [-r] 本地路径 用户名@服务器:路径把自己的文件给别人
-
采用公钥私钥的方式进行无密码验证
- 文件在
/usr/.ssh当中 [root@svr7 ~]# ssh-keygen生成私钥[root@svr7 ~]# ssh-copy-id root@192.168.4.207将生成的私钥传递给对应的服务器
- 文件在
-
ip命令- 查看ip地址
ip address show - 临时添加ip地址
ip address add 192.168.10.1
- 查看ip地址
-
ping命令[root@svr7 ~]# ping -c 2 192.168.4.207只发送两个包
-
指定本机dns服务器
- 作用:负责域名解析的服务器,将域名解析为IP地址
- dns文件:
[root@svr7 ~]# cat /etc/resolv.conf - 写dns服务器:
[root@svr7 ~]# echo nameserver 88.99.100.200 > /etc/resolv.conf
-
内核及系统日志
-
由系统服务rsyslog统一记录/管理
- 日志消息采用文本格式
- 主要记录事件发生的时间、主机、进程、内容
-
常见的日志文件——必须背下来
日志文件 主要用途 /var/log/messages 记录内核消息、各种服务的公共消息 /var/log/dmesg 记录系统启动过程的各种消息 /var/log/cron 记录与cron计划任务相关的消息 /var/log/maillog 记录邮件收发相关的消息 /var/log/secure 记录与访问限制相关的安全消息 -
用户日志——不用背、背命令
日志文件 主要用途 /var/log/lastlog 记录最近的用户登录事件 /var/log/wtmp 记录成功的用户登录/注销事件 /var/log/btmp 记录失败的用户登录事件 /var/log/utmp 记录当前登录的每个用户的相关事件 -
查看文本日志消息
- 通用分析工具
- tail、tailf、less、grep等文本浏览/检索命令
- awk、sed等格式化过滤工具
- 专用分析工具
- webmin系统管理工具
- webalizer、AWStats等日志统计套件
- 通用分析工具
-
用户登录分析
- users、who、w命令
- 查看已登录的用户信息,详细度不同
- last、lastb命令
- 查看最近登录/失败的用户信息
last查询最近登录的信息lastb查询登录失败的日志信息
- users、who、w命令
-
日志信息的优先级
-
linux内核定义的事件紧急程度
— 分为0~7共八种优先级别
— 其数字越小,表示对应事件越紧急/重要
-
云计算应用管理
-
SELinux安全机制
-
保护内部安全的机制,一套增强Linux系统安全的强制访问控制体系
-
集成到Linux内核中运行
-
RHE7基于SELinux体系针对用户、进程、目录和文件提供了预设的保护策略,以及管理工具
-
SELinux的运行模式
— enforcing (强制)
— permissive (宽松)
— disabled (彻底禁用)
[root@svr7 ~]# getenforce #查看当前运行模式 Enforcing [root@svr7 ~]# setenforce 0 #修改当前运行的模式 [root@svr7 ~]# getenforce Permissive [root@svr7 ~]# vim /etc/selinux/config [root@svr7 ~]# getenforce Permissive [root@svr7 ~]#
-
-
破解root密码思路
- 前提:必须是服务器的管理者、涉及重启服务器
- 物理安全 网络安全
WEB基础服务、nfs服务基础
1. 独立Web主机
—基于B/S(Browser/Server)架构的网页服务
— 服务端提供网页
— 浏览器下载并显示网页
— HTML 超文本标记语言
— HTTP 超文本传输协议
-
搭建服务器
- 安装软件包:
[root@svr7 ~]# yum -y install httpd - 在默认文件当中创建一个index文件:
[root@svr7 ~]# echo NSD2203 Web server > /var/www/html/index.html - 启动httpd进程:
[root@svr7 ~]# systemctl restart httpd - 测试访问:
[root@svr7 ~]# curl 192.168.4.7
- 安装软件包:
-
httpd的相关配置
-
主配置文件:
/etc/httpd/conf/httpd.conf -
重启服务的命令:
systemctl restart httpd -
软件包:httpd
-
系统服务:httpd
-
提供的默认位置
— Listen:监听地址:端口(80)
— Servername:本站点注册的DNS名称
— DocumentRoot:网页根目录(/var/www/html)
— DirectoryIndex:起始页/首页文件名(index.html)
-
访问控制:基于网页文件目录,进行访问控制规则
— 当子目录没有规则,默认继承上一级目录规则
— 针对此目录有单独配置,则不继承上一级目录规则
-
-
实验
#更改配置文件 [root@svr7 ~]# vim /etc/httpd/conf/httpd.conf DocumentRoot "/webroot" <Directory "/webroot"> AllowOverride None # Allow open access: Require all granted </Directory> #根据配置添加文件夹及文件 [root@svr7 ~]# mkdir /webroot [root@svr7 ~]# echo webroot > /webroot/index.html #重启服务 [root@svr7 ~]# systemctl restart httpd #测试服务 [root@svr7 ~]# curl 192.168.4.7 webroot -
虚拟Web主机的含义及类型
-
虚拟Web主机
— 有一台服务器提供多个不同的Web站点
-
区分方式
— 基于域名的虚拟主机
— 基于端口的虚拟主机
— 基于IP地址的虚拟主机
-
配置文件路径
—
/etc/httpd/conf/httpd.conf主配置文件—
/etc/httpd/conf.d/*.conf调用配置文件——后读取后应用[root@svr7 ~]# vim /etc/httpd/conf.d/haha.conf #haha.conf为新文件 后缀名必须为conf #以下格式需要记忆 <VirtualHost *:80> #在所有IP地址监听80端口 ServerName www.qq.com #网站的域名 DocumentRoot /var/www/qq #网页文件路径 </VirtualHost> <VirtualHost *:80> ServerName www.lol.com DocumentRoot /var/www/lol </VirtualHost> -
一旦使用虚拟Web主机功能,所有的网站都必须使用虚拟Web主机来访问
#根据端口来区别虚拟主机 [root@svr7 ~]# vim /etc/httpd/conf.d/haha.conf <VirtualHost *:80> ServerName www.qq.com DocumentRoot /var/www/qq </VirtualHost> Listen 8080 <VirtualHost *:8080> ServerName www.qq.com DocumentRoot /var/www/lol </VirtualHost>
-
-
NFS服务基础
-
Network File System
—用途:为客户机提供共享使用的文件夹
— 协议:NFS(TCP?UDP 2049)、RPC(TCP/UDP 111)
-
所需软件包:nfs-utils
-
系统服务:nfs-server
[root@svr7 ~]# vim /etc/exports #修改文件 /public *(ro) #表示根目录下的public文件夹对所有客户端提供只读的共享 [root@pc208 ~]# systemctl restart rpcbind #nfs所依赖的服务 [root@pc208 ~]# systemctl restart nfs-server #从共享的主机上挂载文件到本地 [root@pc208 ~]# mount 192.168.4.7:/public /mnt#开机自动挂载nfs服务器上的共享文件 # defaults后面的参数,_netdev表示在能发现ip网络之后请求 [root@pc208 ~]# vim /etc/fstab 192.168.4.7:/public /mnt nfs defaults,_netdev 0 0 -
DNS服务
-
DNS服务器的功能
— 正向解析:根据注册的域名查找其对应的IP地址
— 反向解析:根据IP地址查找对应的注册域名,不常用
-
DNS服务器分类
-
一级DNS服务器:
.com .net .edu .cn .org -
二级DNS服务器:
.net.cn .com.cn .edu.cn -
三级DNS服务器:
sina.com.cn .tedu.com.cn
-
-
DNS的分布式结构
-
Full Qualified Domain Name,完全合格主机名(FQDN)
-
— =站点名.域名后缀
— =站点名. .. .. . 二级域.一级域
-
-
常见的顶级/一级域名
- 国家/地区域:.cn、.us、.kr、.hk、.tw、
- 组织域:.com、.net、.edu、.org、.gov、.mil、
-
-
BIND(伯克利大学开发的Linux软件)
-
装包:
[root@svr7 ~]# yum -y install bind bind-chroot主要起作用是bind; 而bind-chroot起到bind软件崩溃时,锁住他 -
BIND服务器端程序
— 主要执行程序:/usr/sbin/named
— 系统服务:named
— 默认端口:TCP/UDP 53端口
— 运行时的虚拟根环境:/var/named/chroot
-
主配置文件:/etc/named.conf #设置负责解析的域名
-
地址库文件:/var/named #完全合格的主机名与IP地址对应关系
#拷贝一份配置文件到/opt下 以免出错 [root@svr7 ~]# cp /etc/named.conf /opt/ #修改主配置文件 [root@svr7 ~]# vim /etc/named.conf options {: directory "/var/named"; #放在哪个文件下下面 }; zone "tedu.cn" IN { type master; //type slave; file "tedu.cn.zone"; #文件名字叫什么 }; #模板文件拷贝到/var/named下进行修改 [root@svr7 ~]# cp -p /var/named/named.localhost /var/named/tedu.cn.zone #拷贝模板文件 并改名为tedu.cn.zone [root@svr7 ~]# vim /var/named/tedu.cn.zone $TTL 1D @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum tedu.cn. NS svr7.tedu.cn. #tedu.cn的服务器是svr7.tedu.cn. svr7.tedu.cn. A 192.168.4.7 #svr7.tedu.cn. 的ip地址是 192.168.4.7 #书写完后重启DNS服务 [root@svr7 ~]# systemctl restart named #验证DNS服务的命令 [root@svr7 ~]# nslookup www.tedu.cn Server: 127.0.0.1 Address: 127.0.0.1#53 Name: www.tedu.cn Address: 1.1.1.1 -
-
指定DNS服务是谁的文件
[root@svr7 ~]# cat /etc/resolv.conf # Generated by NetworkManager search tedu.cn [root@svr7 ~]# echo nameserver 192.168.4.7 > /etc/resolv.conf [root@svr7 ~]# cat /etc/resolv.conf nameserver 192.168.4.7