LINUX的基础命令
一、常用的系统工作命令
1.echo
屏幕终端上显示信息
2.date
用于显示时间或者日期
3.reboot
重启系统
4.poweroff
关闭系统
5.wget
用于在终端下载网络文件
6.ps
管理应用进程,优化系统的性能
R 运行
S 中断
D 不可中断
Z 僵死
T 停止
7.top
用于监视进程活动和系统负载等信息
8.pidof
用于查询某个指定服务进程的PID的值
9.kill
用于终止某个命令的PID服务进程
10.killall
用于终止某个指定名称的服务所对应的全部进程
11.clear
清除所有命令行
二、系统状态检测命令
1.ifconfig
获取网卡配置和网络参数状态等信息
2.uname
查看系统内核和系统版本信息
加个 -a 可以完整的查看当前系统的的内核名称、主机名、内核发行版本等
3.uptime
由于查看系统的负载信息,显示当前的系统时间、系统以运行时间、启动终端数量以及平均负载值等信息
4.free
用于显示当前系统中内存的使用量信息
加个 -h 可以实现一定的进制转换
5.who
用于查看当前登入主机的用户终端信息
6.last
用于查看所有历史系统登录信息,但是容易遭黑客的篡改,不能特别相信
7.history
用于显示过去的所有历史执行的命令信息,会列出一排的命令
可以通过 !xx 的方式来直接执行历史命令
8.sosreport
用于收集系统配置及架构信息并输出诊断网络(要有红帽的权限)
三、工作目录切换命令
1.pwd
显示当前的系统所在的目录位置
2.cd命令
(1)cd /xx/xx 到指定的文件目录去
(2)cd ~ 到家目录去
(3)cd … 上一级
(4)cd - 上一次
3.ls命令
用于显 示目录中的文件信息
(1)ls -a 显示所有的文件包括隐藏文件
(2)ls -l 或 ll 显示所有文件的属性、大小等详细信息
四、文本文件编辑命令
1.cat命令
用于查看文本内容
格式: cat [选项 ] [文件]
2.more命令
用于查看较多内容的文本文件
格式: more[选项]文件
3.head命令
用于查看纯文本文档的前N行
格式: head [选项 ] [文件]
4.tail命令
用于查看纯文本文档的后N行
格式: tail [选项 ] [文件]
5.tr命令
用于替换文本文件中的字符
格式: tr [原始字符 ] [目标字符]
6.wc命令
用于统计指定文本的行数、字数、字节数
格式: wc [参数 ] 文本
7.stat命令
用于查看文件的具体存储信息和时间等信息
格式: stat 文件名称
8.cut命令
用于按列提取文本字符
格式: cut [参数] 文本
9.diff命令
用于比较多个文本的文件的差异
格式: diff [参数] 文件
五、文件目录管理命令
1.touch命令
用于创建空白文件或则设置文件的时间
格式: touch [选项] [文件]
-a 读取时间
-m 修改时间
-d 同时修改atime与mtime
2.mkdir命令
用于创建空白的目录
格式: mkdir [选项] 目录
3.cp命令
用于复制目录或文件
格式: cp [选项] 源文件 目标文件
-p 保留原始文件属性
-d 让对象为“链接文件”,则保留该“链接文件”的属性
-r 递归持续复制(用于目录)
-i 若目标文件存在则询问是否覆盖
-a 相当于-pdr(p、d、r为上述参数)
4.mv命令
用于剪切文件或将文件重命名
格式: mv [选项] 源文件 [目标路径|目标文件名]
5.rm命令
用于删除文件或者目录
格式: rm [选项] 文件
6.dd命令
用于按照制定大小和个数来复制文件或转换文件
格式: dd [参数]
if 输入的文件名称
of 输出文件的名称
ba 设置每个“块”的大小
count 设置要复制“块”的个数
7.file命令
用于查看文件类型
格式: file 文件名
六、打包压缩和搜索命令
1.tar命令
用于对文件的打包压缩和解压
格式: tar [选项] [文件]
-c 创建压缩文件
-x 解开压缩文件
-t 查看压缩包里有哪些文件
-z 用Gzip压缩或解压
-j 用bzip2压缩或解压
-v 显示压缩或解压的过程
-f 目标文件名
-P 保留原始文件的权限与属性
-p 使用绝对路径来压缩
-C 指定解压到的目录
2.grep命令
用于在文本中执行关键词搜索,并显示匹配的结果
格式: grep [选项] [文件]
-b 将可执行文件(binary)当作文本文件(text)来搜索
-c 仅显示找到的行数
-i 忽略大小写
-n 显示行号
-v 反向选择—仅列出没有”关键词“的行
3.find命令
用于按照指定条件来查找文件
格式: find [查找路径] 查找条件 操作
-name 匹配名称
-perm 匹配权限(mode 为完全匹配,-mode 为包含即可)
-user 匹配所有者
-group 匹配所有组
-mtime -n +n 匹配修改内容的时间(-n 指n天以内,+n指n天以前)
-atime -n +n 匹配访问文件的时间(-n 指n天以内,+n指n天以前)
-ctime -n +n 匹配修改文件权限的时间(-n 指n天以内,+n指n天以前)
-nouser 匹配无所有者的文件
-nogroup 匹配无所有组的文件
-newer f1 !f2 匹配比f1新 但比f2旧的文件
–type b/d/c/p/l/f 匹配文件类型(后面的字幕参数依次表示块设备、目录、字符设备、管道、链接文件、文本文件)
-size 匹配文件的大小(+50KB 为查找超过50KB的文件, 而-50KB 为查找小于50KB的文件)
-prune 忽略某个目录
-exec ---- () \ ; 后面可跟用于进一步处理搜索结果的命令
管道符、重定向与环境变量
第四节课
输入输出重定向
格式 命令【符号】文件(对象)
输出重定向
用于把命令得到的东西放到文件中
清空(写入) > 此命令多次使用后文件中依旧是一行,因为清空写入,每次都清空再写入文件
错误清空 2>
追加(写入) >> 此命令几次次使用后文件中就是是几行,因为追加写入,每次都追加写入文件
错误追加 2>>
全部输出 &>
输入重定向
输入 <
**例:**haha为文件
[xxx]#wc -l haha
49 haha
[xxx]#wc -l < haha 将文件的内容作为标准输入的信息,导入到命令中(不是作为对象,所以不需要获取名称)
49
管道符 (|) 任意门
格式 命令【符号】命令
用于将前一个命令的输出结果作为后一个命令的标准输入值来进行一个二次处理 A|B
例:
[xxx]#ls | wc -l 将输入到屏幕的结果带入到后面一个命令来测有多少行
命令行和通配符
(*)代表匹配0个或多个字符 空值或者无穷多的值
(?)代表匹配单个字符 一个值
[a-z] 小写字母
[A-Z] 大写字母
[0-9] 数字
[1,3,5] 指定数字1,3,5
[a,c,e] 指定字母a,c,e
常用的转义字符
反斜杠(\):使反斜杠后面的一个变量变为单纯的字符串
单引号(“):转义其中的所有的变量为单纯的字符串
双引号(”“): 保留其中的变量属性,不进行转义处理
反引号(``): 把其中的命令执行后返回结果
重要的环境变量
第一步、判段用户是否以绝对路径或相对路径的方式输入命令(如/bin/ls),如果是的话则直接执行命令
第二步、检查是否为”别名命令“,可以使用一个自定义的命令名称来替代原来的命令 格式 alias 别名 = 命令
如果要取消则可以使用 unalias 别名 每次重启都会清除
全局变量
HOME 家目录
SHELL 自己使用的解释器
HISTSIZE 历史执行过的命令
MAIL 邮件保存路径
LANG 系统语系
RANDOM 生成一个随机数字
PSI Bash解释器的提示符
PATH 定义解释器搜索用户执行命令的路径
EDITOR 用户默认的文本编辑器
Vim编辑器与Shell命令脚本(重点)
第五、六次课
补充内容
文件:/dev/null 黑洞文件,相当于Linux中的清空站
执行命令,返回执行结果:反引号 命令 反引号、$ ( 命令 )
取值:$变量 读取变量的值
Vim文本编辑器
通过Vim打开的文本颜色鲜明
命令模式:搜索、复制、粘贴、替换、删除 切换桥梁 使用a、i、o(为下一行)来从命令模式切换到输入模式
输入模式:Windows记事本,随意编辑的编辑环境 使用ESC则可以从输入模式下变成命令模式
末行模式:保存、退出、设置编辑环境
Vim中常用的命令
在命令模式下
dd 删除(剪切)光标所在行
5dd 删除(剪切)光标所在的前5行
yy 复制光标所在行
5yy 复制从光标处开始的5行
n 显示搜索命令定位到下一个字符串
N 显示搜索命令定位到上一个字符串
u 撤销上一步的操作
p 将之前删除(dd)或复制(yy)过的数据粘贴到光标后面
末行模式中可用的命令
-
: w 保存
-
q 退出
-
q! 强制退出(放弃对文档的修改内容)
-
wq! 强制保存退出
-
set nu 显示行号
-
set nonu 不显示行号
-
命令 执行该命令
-
整数 跳转到该行
配置Yum软件仓库
新建一个文件
第一步:vim [文件名]+后缀 .repo
第二步:编辑文件
[] []中写文件名
name= 文件描述
baseurl= 路径
gpgcheck= 是否进行校验写0
enabled= 是否启用
~
~
~
:wq!
先再按ESC进入命令模式,再写:wq!末行模式下保存并退出
shell命令脚本
脚本名称
脚本注释
脚本命令
以上三个是脚本的重要组成部分
写脚本
第一步:vim [文件名]+后缀 .sh
第二步:写内容
格式:
#!/bin/bush 脚本的声明
#(脚本的注释,可以随便写)
xxxxxx 写脚本的命令
~
~
~
:wq!
先再按ESC进入命令模式,再写:wq!末行模式下保存并退出
运行脚本
直接bash + 脚本名.sh
接收用户的参数
见书4.2.2
判断用户的参数
测试语句格式:[ 条件表达式 ] —括号两边均有一个空格
逻辑操作符:
&& 当前面命令执行成功时,执行后面的命令
|| 当前面命令执行失败时,执行后面的命令
! 取反值
文件测试所用的参数
-d 测试文件是否为目录类型
-e 测试文件是否存在
-f 判断是否为一般文件
-r 测试当前用户是否有权限读取
-w 测试当前用户是否有权限写入
-x 测试当前用户是否有权限执行
例一:
[xxx]# [ -d /etc ]
[xxx]# echo $?
0 则证明是条件成立,是一个目录
[xxx]# [ -d /etc/ususu ]
[xxx]# echo $?
1 则证明是条件不成立,不是一个目录
例二:
[xxx]# [ -d /etc ] && echo “OK” 判断是否为一个目录,如果是的话就输出OK
OK
[xxx]# [ -d /etc/sadsd ] && echo “OK” || echo “NONONO”
NONONO
[xxx]# [ ! -d /etc ] 判断是否为一个目录,结果为真 输出0,再取反 输出1
[xxx]# echo $?
1
可用的整数比较运算符(切记不要使用大于号等符号)
-eq 是否等于
-ne 是否不等于
-gt 是否大于
-lt 是否小于
-le 是否等于或小于
-ge 是否大于或等于
常见的字符串比较运算符
= 比较字符串内容是否相同
!= 比较字符串内容是否不同
-z 判断字符串内容是否为空
例三:
[xxx]# [ -z $PRICE ] 判断这个变量是否为空
[xxx]# echo $?
0
if条件测试语句 (if fi)
例四:编写脚本
#!/bin/bash
if [ ! -e /media/haha ] (如果这个文件不存在,则执行下面的任务)
then
mkdir -p /media/haha
fi
~
~
~
:wq!
for条件循环语句 (do done)
for循环语句语句允许脚本一次性度读取多个信息,然后逐一对信息进行操作处理,当要处理的数据有范围时,使用for循环语句在合适不过了
例5:编写脚本
#!/bin/bash
for IP in `cat ip.txt ’ (为反引号) 先执行cat ip.txt文件,然后获取多个IP地址的值,循环读取
do
ping -c 3 -i 0.2 -w 3 $IP &> /dev/null 把读出的地址全部清空,显得界面整洁
if [ $? -eq 0 ] ; then 判断IP地址是否存在
echo “$IP is On-line”
else
echo “$IP is Off-line”
fi
done
~
~
~
:wq!
while条件循环语句
while条件循环语句是一种让脚本根据某些条件来重复执行命令的语句,它的循环结构往往在执行前并不确定最终执行的次数,
完全不同于for循环语句中有目标、有范围的使用场景。while循环语句通过判段条件测试的真假来决定是否继续执行命令,
若条件为真就继续执行,为假就结束循环。
例六:编写脚本
#!/bin/bash
PRICE=$(expr $RANDOM % 1000) 确保生成的随机数是小于1000的
TIMES=0 定义一个次数变量初始值为0
while true 无线循环直到为真
do
read -p "Enter: " INT 再定义一个变量INT,读取输入值
let Times++ 每读一次,次数+1、
if [ $INT -eq $PRICE ] ; then 如果输入值和生成值一致,则结束,并显示次数
echo “Congratulation,$TIMES”
exit 退出循环
elif [ $INT -gt $PRICE ] ; then 如果输入值高于生成值,则显示为高
echo “HIGH”
else 如果输入值低于生成值,则显示为 低
echo “LOW”
fi
done
~
~
~
:wq!
case条件测试语句 (case esac)
case语句是在多个范围内匹配数据,若匹配成功则执行相关命令并结束整个条件测试,而如果数据不在所列出的范围内,则执行星号(*)中所对应的默认命令
例七:编写脚本
#!/bin/bash
read -p "Enter: " KEY 读取一个输入的变量
case “$KEY” in 判断输入值是属于哪种值
[ a - z ] | [ A - Z ] ) *记住只有一个右括号
echo “zimu”
; ;
[ 0 - 9 ] )
echo “shuzi”
; ;
* ) 相当于else
echo “luanma”
; ;
esac
~
~
~
:wq!
计划任务服务程序
at 一次性
crond 周期性
at格式
[xxx]# at 20:20 写时间
xxxxxxxxxxxx
at> reboot 在at>后面写命令,按下回车后继续出一个at>,把想做的事情一件一件写好,如果都写好了就按ctrl + d结束保存
可以使用
[xxx]# at -l 查看计划任务的时间
[xxx]# at -c 1 到最后来查看计划任务的内容
[xxx]# atrm 1 删除计划任务
crond格式
crond 服务名称 重启服务时使用的是服务名称
crontab 工具名称 配置时使用
第六节课1:20分有例子
格式:
[xxx]# crontab -e 编辑自己的计划任务 (-u 编辑其他人的计划任务)
分 时 日 月 星期 命令(没有值就用*来做占位)
*命令不能直接使用,要用由路径+命令来执行 可以使用[xxx]# whereis 命令 来查找命令路径
*查看crond的服务状态,要确保他是active(running)启动的
[xxx]# systemctl restart crond 重启一下
[xxx]# systemctl enable crond 再加入启动状态中启用,二次确认
用户身份与文件权限
第六、七课
用户身份与能力
useradd命令
用于创建新的用户,格式为 useradd [选项] 用户名
useradd命令中的用户参数以及作用
-d 指定用户的家目录(默认/home/username)
-e 账户的到期时间,格式为YYYY-MM-DD.
-u 指定该用户的默认 UID
-g 指定一个初始的用户基本组(必须已存在)
-G 指定一个或多个扩展用户组
-N 不创建与用户同名的基本用户组
-s 指定该用户的默认Shell解释器
groupadd命令
用于创建用户组,格式为 groupadd [选项] 群组名
usermod命令
用于修改用户的属性,格式为 usermod [选项] 用户名
-c 填写用户账户的备注信息
-d -m 参数-m与参数-d连用,可重新指订用户的家目录并自动把旧的数据转移出去
-e 账户的到期时间,格式YYYY-MM-DD
-g 变更所属用户组
-G 变更拓展用户组
-L 锁定用户禁止其登录系统
-U 解锁用户,允许其登录系统
-s 变更默认终端
-u 修改用户的 UID
passwd命令
用于修改用户密码、过期时间、认证信息等
格式为 passwd [选项] [用户名]
userdel命令
用于删除用户,格式为 userdel [选项] 用户名
文件权限与归属
文件 目录
r: read 对文件的读取权限 列出我们目录内文件列表的权限
w: write 修改文件内容的权限 在目录中进行新建,剪切,删除,改名等权限
x: execute(满权限) 如果文件是脚本,我们有权限执行脚本 能切换到目录里面去的权限,如cd命令
权限数字法
rw-rw-r-- 664
rw-rw–w- 642
654 rw-r-xr–
237 -w–wxrwx
文件的特殊权限
SUID 让程序的执行者临时拥有了所有者的权限
rws -----> rwx rwS -----> rw-
SGID 让目录内新建的文件,继承上级目录所有组的名称
rws -----> rwx rwS -----> rw-
SBIT 让目录内的文件只能够被自己所删除
rwt -----> rwx rwT -----> rw-
rwsrwSr-- 有SUID、SGID没有SBIT 110-6 rwSr-s-wT 有SUID、SGID、SBIT 111-7
6 764 7 652
chmod命令
用于设置文件或者目录的权限
格式为 chmod [参数] 权限(是用权限数字法) 文件或者目录名
[ -R ] 对于目录才要加
chownn命令
用于设置文件或目录的所有者和所属组
格式为 chown [参数] 所有者:所属组 文件或目录名称
文件的隐藏权限(防止黑客对文件的攻击)
chatter命令
用于管理文件的隐藏权限
格式为 chattr +权限 文件名 设置文件的隐藏权限
chattr -权限 文件名 取消文件的隐藏权限
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9SXxLehc-1612353611658)(C:\Users\l\AppData\Roaming\Typora\typora-user-images\image-20210203162457861.png)]
lsattr命令
用于显示文件的隐藏权限
格式为 lsattr 文件名 查看文件的隐藏权限
例:
要对一个含有隐藏命令的文件做删除操作
第一步 查出他的隐藏权限
[xxx]# lsattr 文件名
第二步 不管他是什么权限直接全选 - 是删除权限
[xxx]# chatter -xx 文件名
第三步 删除
[xxx]# rm 文件名
文件访问控制列表
FACL 针对某个文件,针对某个用户进行精准的权限控制 点变加 说明他有FACL权限
setfacl -m u:用户名:权限 文件名 用来设置文件上的FACL权限的
getfacl 文件名 查看文件上有哪些权限的
su命令与sudo服务
su命令
用于切换用户
格式为 su 用户名
su - 用户名 这个切换后的用户的所有的环境变量都是自己的,不会保留前一个用户的
sudo 服务
sudo 命令把特定命令的执行权限赋予给指定用户, 这样既可保证普通用户能够完成特定的工作,也可以避免泄露 root 管理员密码
命令名称: visudo 只有在管理员的权限下才能使用
第一步:
:set nu 显示行数
第二步:
找一空行编辑
用户名 ALL=(ALL) 所授权的命令(要有命令路径whereis)—多条命令以逗号为间隔符
第三步:
可以 su 用户名 来切换到用户,使用 sudo 命令 来使用上面授权的命令
存储结构与磁盘划分
第八课
附加内容
-rw-r–r--. 4 root root 1562 Jul 21 2020 ini .cfg
第一个 - 是文件类型, 后面的则是文件的所有者,所有组等的权限 . 变 + 则说明他有 FACL 的权限 4 为inode(文件)的个数,当为0时,才是真正的删除掉
root root 第一个是所有者,第二个是所有组 1562 是文件大小 Jul 21 2020 文件内容的最后一次修改时间 ini .cfg 文件的名称
一切从“/”开始 根目录
*/root /dev /etc
/home 放置普通用户文件 /root 管理员的家目录
所处的工作目录不同,对应的目录下的文件也不同
物理设备的命名规则
挂载硬件设备
mount和umount命令
用于挂载、卸载文件系统
挂载:mount 设备 目录
卸载:umount 设备 / 目录
添加硬盘设备
fdisk 命令
用于管理磁盘 分区,格式为“fdisk [磁盘名称]”,它提供了集添加、删除、转换分区等功能于一身的“一站式 分区服务”
du 命令
用于查看文件数据占用量
格式为 du [选项] [文件]
磁盘容量配额
xfs_quota 命令
是一个专门针对 XFS 文件系统来管理 quota 磁盘容量配额服务而设计的命令
格式为 quota [参数] 配额 文件系统
其中,-c 参数用于以参数的形式设置要执行的命令;-x 参数是专家模式
下面是四种限制
硬限制最小和最大
isoft inode 每个文件都要占用一个 block 文件都有大小
ihard
软限制最小和最大
bsoft
bhard
例:
[xxx]# xfs_quota -x -c ’ limit bsoft=3m bhard=6m isoft=3 ihard=6 用户名 ’ /目录
edquota 命令
用于编辑用户的 quota 配额限制,在为用 户设置了 quota 磁盘容量配额限制后,可以使用 edquota 命令按需修改限额的数值。其中,-u 参数表示要针对哪个用户进行设置;-g 参数表示要针对哪个用户组进行设置
格式为 edquota [参数] [用户]
例:
[xxx]# edquota -u 用户 进入vim编辑器
然后就可以修改了
软硬方式链接
ln 命令
用于创建链接文件,在使用 ln 命令时,是否添加-s 参数,将创建出性质不同的两种“快捷方式”
软连接:使用 -s 的话相当于Windows中的快捷方式,此时若把源文件删除的话,则快捷方式也打不开
硬连接:不加 -s 的话相当于多了一个路径,虽然保存的内容是一份,但是找到的路径有两份
格式为 ln 源文件 目标文件
使用 RAID 与 LVM 磁盘阵列技术
第九、十课
见书P134
部署磁盘阵列
mdadm 命令
用于管理 Linux 系统中的软件 RAID 硬盘阵列,格式为 mdadm [模式] [选项] [成员设备名称]
例:在虚拟机上部署4块硬盘来制作一个RAID 10 磁盘阵列
第一步:先还原虚拟机,再编辑虚拟机点击添加 添加上四个硬盘大小不要太大5GB
第二部:使用mdadm 命令
[xxx]# mdadm -Cv /dev/md0 -n 4 -l 10 /dev/sd[b - e] 四个盘的名称使用的是通配符
这是组合出来的RAID的名称 4 是四块硬盘 10 则为 RDIA10 四块盘做一个RAID 10
第三步:查看查看一下初始化的状态,会有一个初始化的过程,可以不断使用这个命令来查看是否配置完
[xxx]# mdadm -D /dev/md0
磁盘阵列+备份盘
为了防止磁盘列阵当中的磁盘出现故障,造成数据丢失,可以使用一块闲置的硬盘作为替代盘,一旦有RAID磁盘列阵中有硬盘出现故障后就会自动顶替上去
一般建好的盘最后一个是热备盘
例:创建一个 RAID 5 磁盘阵列+备份盘
第一步:先还原虚拟机,再编辑虚拟机点击添加 添加上四个硬盘大小不要太大5GB
第二部:使用mdadm 命令 参数-n 3 代表创建这个 RAID 5 磁盘阵列所需的硬盘数,参数-l 5 代表 RAID 的级别,而参数-x 1 则代表有一块备 份盘
[xxx]# mdadm -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sd[b - e]
第三步:查看查看一下初始化的状态,会有一个初始化的过程,可以不断使用这个命令来查看是否配置完
[xxx]# mdadm -D /dev/md0
例:追加备份盘
[xxx]# mdadm /dev/mod0 -a 设备名称
LVM(逻辑卷管理器)
特点:
动态调整分区大小
让用户不需要关心底层架构
PV 让硬盘支持LVM的技术
VG 让我们已经支持的LVM技术的硬盘能够组成一个很大的卷组
LV 进行切割,切割成所需的大小
例:分区
第一步:创建一个PV
[xxx]# pvcreate /dev/sdb
[xxx]# pvcreate /dev/sdc
第二步:进行VG操作,把两个盘加到VG中,并建个名字
[xxx]# vgcreate 卷组名 /dev/sdb /dev/sdc
第三步:可以查看
[xxx]# vgdisplay
第四步:切割
第一种是以容 量为单位,所使用的参数为-L。
例如,使用-L 150M 生成一个大小为 150MB 的逻辑卷。
另外 一种是以基本单元的个数为单位,所使用的参数为-l。
每个基本单元的大小默认为 4MB
[xxx]# lvcreate -n vo -l 50 卷组名 50是50个PE 一个PE是4M
生成的是一个**/dev/卷组/逻辑卷的文件 卷组就是卷组名** 可以使用 ll 查看
第五步:格式化设备
[xxx]# mkfs.ext4 /dev/卷组名/vo(逻辑卷)
第六步:挂载目录、挂载设备
[xxx]# mkdir /vo
[xxx]# mount /dev/卷组名/vo /vo
[xxx]# df -h 查看
第七步:vim编辑设备,让他能够永久为用户服务,再重启
写上 /dev/卷组名/vo /vo ext4 defaults 0 0
扩容逻辑卷
例:
第一步:和上面相连,先卸载掉
[xxx]# umount /vo
[xxx]# lvextend -L 300M /dev/卷组名/vo 扩容到300M
第二步:检查硬盘完整性,并重置硬盘容量
[xxx]# e2fsck -f /dev/卷组名/vo
第三步:在次变更大小
[xxx]# resize2fs /dev/卷组名/vo
第四步:再次挂载系统,查看存储
[xxx]# mount -a
[xxx]# df -h
缩小逻辑卷(注意和扩大的区别)
例:
第一步:和上面相似,先卸载掉
[xxx]# umount /vo(/dev/卷组名/vo)
第二步:检查硬盘完整性,并重置硬盘容量
[xxx]# e2fsck -f /dev/卷组名/vo
第三步:把逻辑卷 vo 的容量减小到 120MB
[xxx]# resize2fs /dev/storage/vo 120M
第四步:再次挂载系统,查看存储
[xxx]# mount -a
[xxx]# df -h
逻辑卷快照
跟逻辑卷大小保持一致,保证VG卷组有足够的空间,一次性,还原后就会自行删除
例:
生成快照
[xxx]# lvcreate -L 100M -s -n 快照名 /dev/卷组名/vo -s 就是创建快照的命令
查看快照
[xxx]# lvdisplay
恢复快照之前先去卸载文件系统,再还原
[xxx]# umount /vo
[xxx]# lvconvert - -merge /dev/卷组名/快照名
可能在恢复过程中出现死机或卡顿的情况解决方案:
多等一会儿,然后打开另外一个终端查看一下 lvdisplay ,查看一下快照卷是否消失了,重启或关闭中端就可以了
删除逻辑卷
接上面
第一步:卸载掉当前的文件系统
[xxx]# umount /vo
第二步:编辑一下 fstab 文件,把里面写入的挂载信息删干净
[xxx]# vim /etc/fstab
第三步:移除,并确认
[xxx]# lvremove /dev/卷组名/vo
第四步:再移除卷组
[xxx]# vgremove 卷组名
第四步:最后移除PV物理卷,即可!!
[xxx]# pvremove /dev/sdb
[xxx]# pvremove /dev/sdc
iptables 与 firewalld 防火墙
第十、十一课
iptables命令(老版本的防火墙)
格式为:iptables +[参数]
-I 是写到最上面,要想把你的优先级设置到最高时使用
-A 则是兜底的策略
-F 是全部清除
-D 是清除指定的一条
例:
[xxx]# iptables -F 清空防火墙
[xxx]# iptables -L 查看已有的防火墙
[xxx]# iptables -P INPUT DROP 默认策略设置为拒绝 DROP 拒绝 ACCEPT 接受
[xxx]# iptables -I INPUT -p icmp -j ACCEPT 向 INPUT 链中添加允许 ICMP 流量进入的策略规则
icmp是拼的数据包的协议
[xxx]# iptables -D INPUT 1 删除掉 INPUT 里面的第一条
[xxx]# iptables -I INPUT -s 192.168.10.0/24 -p tcp --dport 22 -j DROP
将 INPUT 规则链设置为允许来自其他所有 主机的流量,只拒绝指定网段的主机访问本机的 22 端口
firewalled命令
firewalled-cmd命令中使用的参数及作用**(有自动补长的功能可以使用TAB来补长命令)**
Runtime模式 又称为当前生效模式,而且随着系统的重启会失效
Permanent模式 配置好了不生效,而重启后生效
例:
[xxx]# firewalled-cmd --get-default-zone 查询默认的区域,配置的策略必需要在这个区域才行
pubilc
[xxx]# firewalled-cmd --get-default-zone=dmz 设置区域为dmz区域
success
[xxx]# firewalled-cmd --list-services 查询系统中的所有服务
https ssh cockpit
例二:
查询public 区域是否允许请求 SSH 和 HTTPS 协议的流量:
[xxx]# firewalled-cmd --zone=public --query-service=ssh
yes public 区域 查询ssh
[xxx]# firewalled-cmd --zone=public --query-service=https
no public 区域 查询https
例三:
把 firewalld 服务中请求 HTTPS 协议的流量设置为永久允许,并立即生效:
[xxx]# firewalled-cmd --zone=public --add-service=https 但是查询结果是不可以的
success public 区域 设置https协议
[xxx]# firewalled-cmd --reload 需要重启一下才可以
success
[xxx]# firewalled-cmd --zone=public --query-service=https 再次查询的结果就是可以的
yes
例四:
把 firewalld 服务中请求 ssh 协议的流量设置为永久拒绝,并立即生效:
[xxx]# firewalled-cmd --zone=public --query-service=ssh
yes public 区域 查询ssh
[xxx]# firewalled-cmd --permanent --zone=public --remove-service=ssh 注意写的命令,重启生效,看下面的两种查询方式
success 重启后生效 public 区域 移除ssh协议
[xxx]# firewalled-cmd --zone=public --query-service=ssh 使用当前查询ssh协议还是在的,应为上面是重启生效,所以现在还没生效
yes
[xxx]# firewalled-cmd --permanent --zone=public --query-service=https 使用重启查询,发现生效了,协议不存在,成功!
no
[xxx]# firewalled-cmd --reload 重启一下
success
[xxx]# firewalled-cmd --zone=public --query-service=ssh 使用当前查询ssh协议,协议不存在
no
配置网卡的方法
1:修改配置文件 up load
在 **/etc/sysconfig/network-scripts/ifcig-ens160 ** 中
2:7-8 nmtui / 5-6 setup
3:nu-connection-editor
4:右上角的按钮可以配置
192.168.10.0/24 24 —> 255.255.255.0 —> 11111111.11111111.11111111.00000000 主机位,网络位
物理机器:192.168.10.1
第一台:192.168.10.10
第二台:192.168.10.20
第三台:192.168.10.30