Linux 1: Cloud computing operating system management | Linux
Linux 系列
Linux 1: 云计算操作系统管理
Cloud computing operating system management | Linux
Linux 2: 云计算网络应用管理
- Cloud computing network application management | Linux
Linux 3: 数据库开发技术
- Database development technology | Linux
Linux 1: Cloud computing operating system management | Linux
- Linux 系列
- Linux 1: 云计算操作系统管理
- Linux 2: 云计算网络应用管理
- Linux 3: 数据库开发技术
- Linux 操作系统 1: 云计算操作系统管理
- 目录说明
- 用户
- 用户标志
- 用户类型
- 账号控制(ID)
- 用户
- 组
- 用户操作
- 添加用户
- 修改用户属性(usermod)
- 查看已存在的用户
- 删除用户
- 组操作
- 创建组
- 组查看
- 组成员管理
- 删除组
- 基本目录操作命令
- 目录的查看、切换
- 目录及文件的创建、移动、复制、删除
- 目录的创建
- 目录及文件的移动
- 目录及文件的复制
- 目录及文件的删除
- 目录的查找
- 使用find命令的 -exec(额外)操作
- find 的高级使用
- 文本文件操作
- 查找文本内容
- 格式化手册阅读工具 man (可查看所有命令的手册)
- 历史命令
- 统计文件占用空间
- 系统信息查看
- 系统配置修改
- 解释器
- 快捷键
- 通配符
- 别名
- vim编辑器
- 命令模式操作
- 命令模式下光标操作
- 命令模式下复制删除操作
- 命令模式下撤销编辑操作
- 命令模式下保存退出操作
- 命令模式下查找功能
- 末行模式操作
- 文件操作
- 批量添加注释(命令模式下)
- 字符串替换
- 行内替换
- 区域内替换
- 存盘及退出
- 开关参数的控制
- 编辑器设置
- 重定向
- 管道
- 软连接(快捷方式)
- 硬连接
- 压缩包的创建及解压
- 创建压缩包
- 解压缩
- 设备挂载及卸载
- 设备的挂载
- 设备的卸载
- 软件包管理 RPM
- yum命令工具
- 安装/卸载软件包
- 清空本地 yum 缓存
- 计划任务(周期性任务)
- cron 任务
- 编写crontab任务记录
- 权限
- 访问权限
- 权限归属关系
- 权限查看
- 查看文件/目录权限:
- 权限查看结果字段
- 文件类型位(首位):
- 权限位:
- 用户在不同权限下的访问情况:
- 权限信息字段:
- 设置基本权限
- 用户文件权限设置示例:
- 修改默认权限
- 设置归属关系
- 文件归属关系设置示例:
- 权限优先级
- 附加权限
- Set GID
- Set UID(适用于攻击方)
- Sticky Bit 粘滞位(t权限,如公共目录 /tmp)
- ACL策略管理
- ACL访问策略
- 设置ACL权限
- 设置ACL权限示例
- 查看ACL权限
- 分区管理
- 分区规划
- MBR分区模式
- GPT分区模式(常用)
- 分区工具
- 格式化分区
- 挂载使用
- 开机自动挂载
- 交换空间
- parted常用分区指令
- 使用交换分区做交换空间(格式化交换文件)
- 创建Swap文件
- 逻辑卷
- LVM快速部署及使用
- 创建卷组
- 创建逻辑卷
- 扩展逻辑卷
- 逻辑卷的删除
- 逻辑卷的缩减
- RAID磁盘阵列
- RAID0,条带模式
- RAID1,镜像模式
- RAID5(至少需要三块磁盘组成)
- RAID0+1(至少需要四块磁盘组成)
- RAID1+0(至少需要四块磁盘组成)
- RAID各级别特点对比
- RAID阵列实现方式
- 硬RAID
- 软RAID
- 系统文件损坏故障
- 故障现象:
- 解决思路:
- 模拟故障:
- 重设root密码
- 练习题目
- grep 命令的使用
- vim 命令的使用
- 复制、删除、移动命令的使用
- 别名的使用
- 创建命令的使用
- 重定向和管道命令的使用
- 系统网络参数的配置
- 查找并提取文件内容
- rpm 命令的使用
- yum练习
- 综合练习 3.31
- 案例1:添加用户帐号
- 案例2:设置用户密码
- 综合练习 4.2
- 案例1:指定yum软件源
- 案例2:查找并处理文件
- 案例3:查找并提取文件内容
- 案例4:tar制作/释放归档压缩包(zcf、ztf、zxf、jcf、jtf、jxf、cf、tf)
- 案例5:usermod修改用户
- 案例6:创建用户
- 案例7:创建用户和组
- 案例8:配置一个cron任务
- 案例9:设置别名
- 案例10:设置基本权限
- 练习 4.7
- 案例3:配置用户和组账号
- 练习4.8
- 案例2:文件/目录的默认权限
- 练习4.8
- 案例3:设置归属关系
- 练习4.9
- 案例:SGID练习
- 练习 4.12
- 权限简答
- 案例1:创建用户和组
- 案例2:配置文件/var/tmp/fstab的权限
- 4.14练习
- 练习4.15
- 案例:硬盘分区练习
- 练习:新建一个逻辑卷
- 4.16 案例:LVM逻辑卷练习
- 练习4.19
- 案例1:MBR分区模式规划分区
- 案例2:构建LVM存储
- 案例3:构建lvm存储(修改PE大小)
- 案例4:扩展逻辑卷
Linux 操作系统 1: 云计算操作系统管理
目录说明
根目录 **/** :Linux系统起点
**/dev** :存放设备(键盘、鼠标、显示器、硬盘)
**/dev/hda** :第一块IDE设备
**/dev/sda** : 第一块SCSI设备
![Alt](https://img-blog.csdnimg.cn/img_convert/9443f1de6401cbeb91d4f060ebf055a5.png)绝对路径:以根(**/**)开始的路径
相对路径:不以根(**/**)开始的路径
用户
用户标志
root 标志:#
普通用户标志:$
用户类型
普通用户
系统管理员用户
超级用户(root)
账号控制(ID)
用户
UID:用户ID
root 的 UID 为:0
普通用户的 UID ⩾\geqslant⩾ 1000 (用户UID之间若有跳跃,则创建新用户时UID默认延续用户中UID最大值)
组
GID:组ID
组账号类型:
基本组(私有组)
附加组(从属组)
用户操作
添加用户
useradd [选项]... 用户名
常用命令选项:
-u:指定 UID
-d:指定要创建用户的家目录,不使用则默认用户的家目录为 /home/创建的用户名
-G:指定用户的附加组(从属组)
-s:指定用户的shell解释器
修改用户属性(usermod)
usermod [选项]... 用户名
常用命令选项:
-l:更改用户帐号的登录名称
-u:更改用户id
-d:更改用户家目录路径
-s:更改用户登录解释器
-G:更改用户附加组
查看已存在的用户
grep 要查找的用户 /etc/passwd
查找用户的结果格式:用户名 : 密码占位符 : UID : GID(基本组) : 用户描述 : 用户家目录(宿主目录) : 用户所使用的shell解释器程序
用户相关文件说明:
/etc/passwd:存放用户账户信息文件
/etc/shadow:存放用户密码文件
删除用户
userdel 用户名 #删除用户(不删除用户的家目录)
userdel -r 用户名 #删除用户及用户的家目录
userdel -r admin #删除用户root及用户root的家目录
组操作
创建组
groupadd [-g GID组ID] 组名
记录组账号的基本信息文件: /etc/group
组查看
记录组的基本信息文件:/etc/group
grep 要查找的组 /etc/group
组基本信息文件**/etc/group**格式:组账号名称 : 密码占位符x : 组的GID号 : 本组的成员用户列表
记录组的管理信息文件:/etc/gshadow
组管理信息**/etc/gshadow**文件格式:**组账号名称 : 加密后的密码字符串 : 组的管理员列表 : 组成员列表 **
组成员管理
gpasswd [选项]... 要操作的用户 组名
命令常用选项:
gpasswd -A:定义组管理员列表
**gpasswd -M **:定义组成员用户列表,可设置多个(用逗号分隔)
gpasswd -a 要添加的用户 组名:添加组成员,每次只能加一个
gpasswd -d 要删除的用户 组名:删除组成员,每次只能删一个
gpasswd -A nsd01 stugrp #定义stugrp管理员列表是nsd01
gpasswd -M nsd04,nsd05,nsd01 stugrp #定义组成员列表为nsd04,nsd05,nsd01
gpasswd -a nsd02 stugrp #将nsd02用户加入到stugrp组里
gpasswd -d nsd03 stugrp #将nsd03用户从stugrp组里移除
删除组
groupdel 要删除的组名
基本目录操作命令
目录的查看、切换
pwd
:查看当前工作目录
cd
:切换工作目录
cd ~user #用户的家目录 cd /root #管理员用户的家目录 cd /home #普通用户的家目录
ls
:显示当前目录的内容
青色:快捷方式
蓝色:目录
黑色:文本文件
绿色:可执行程序
ls -l /目录 #查看详细属性信息 ls -A /目录 #查看所有文件 ls -a /目录 #显示所有文件 ls -ld /目录 #显示目录本身属性信息 ls -lh /目录 #提供易读的容量单位 ls -R /目录 #递归显示内容
目录及文件的创建、移动、复制、删除
目录的创建
mkdir /要创建的目录 #创建目录
mkdir -p /要创建的目录 #连同父目录一起创建
mkdir -m 要创建的目录 #创建文件夹时直接设置权限,默认权限umask值为022,创建文件夹时的权限为777-022=755
目录及文件的移动
mv /源目录 /要移动到的目录 #移动,路径不变的情况下通目录内移动的同时可修改文件名称
目录及文件的复制
cp /源目录 ...n个 /要复制到的目录 #复制
cp -r /源目录 ...n个 /要复制到的目录 #递归复制(复制的同时可修改名称)
目录及文件的删除
rm -rf /要删除的目录 #强制删除
rm -r /要删除的目录 #递归删除(删除目录是必须加 -r,删除文件时可不加)
目录的查找
find /要查找的目录 -type f #查找目录中的文本文件
find /要查找的目录 -type d #查找目录中的目录
find /要查找的目录 -type l #查找目录中的快捷方式
查找文件格式与要查找的文件类型可使用
-a
(且) 或-o
(或) 表示(不加默认为使用-a)
find /要查找的目录 -name ”v*” #查找目录及子目录中的以v开头的文件或目录find /要查找的目录 -size -10M #查找小于10M的文件或目录
find /要查找的目录 -size +10M #查找大于10M的文件或目录find /要查找的目录 -user 指定用户名 #查找指定用户所有权下的文件或文件夹find /要查找的目录 -mtime -10 #查看10天内修改的文件
find /要查找的目录 -mtime +10 #查看10天前修改的文件find /要查找的目录 -exec #执行后续操作
使用find命令的 -exec(额外)操作
find /要查找的目录 条件 -exec 处理命令 {} \; #根据条件查找并处理结果
{}:替代每一个查找结果
; : 处理操作结束
find 的高级使用
wc /要查看的目录 #显示文件夹属性
wc -l /要查看的文件 #查看文件行数find /etc/ -name "*.conf" | wc -l #统计以.conf结尾的行find /opt/ -name "nsd*" -a -type f #查找以nsd开头的文件
find /opt/ -name "nsd*" -o -type f #查找以nsd开头的文件或/opt中的文本文件
文本文件操作
cat /要查看的文件 #查看文本文件内容
less分屏阅读工具(支持上下键翻页)
创建文本文件
touch /要创建的文件位置
查找文本内容
grep -v '要查找的文本' #取反匹配
grep -i '要查找的文本' #忽略大小写
grep '^root' #查找以root为首的行
grep 'root$' #查找以root为尾的行
grep 'root' #查找含有root的行
grep '^$' #查找空行grep root /etc/passwd #过滤 /etc/passwd 文件含root的行
格式化手册阅读工具 man (可查看所有命令的手册)
man hier #查看目录结构描述
历史命令
history #查看历史命令(默认1000条)
history -c #清空历史命令
统计文件占用空间
du #统计文件的占用空间
du -s #只统计一个目录的占用空间
du -sh #统计文件占用空间(带单位显示)
系统信息查看
hostname #查看主机名echo "svr7.nm.cn" > /etc/hostname #永久修改主机名
hostname svr7.nm.cnuname -r #查看内核版本
lscpu #查看cpu信息
cat /proc/meminfo #查看内存
cat /etc/redhat-release #查看系统信息
系统配置修改
hostname 要设置的主机名 #修改主机名
ifconfig #查看ip
ifconfig ens33 192.168.1.41/34 #修改网卡ens33的IP地址
date #查看系统日期时间
date +%F #查看年月日
date +%Y #只显示年
date +%m #只显示月份
date +%d #只显示日期
date -s ”yyyy-mm-dd HH:MM:SS” #设置系统时间(自定义)
hwclock -s #重置系统时间(当前时间)
解释器
默认解释器: /bin/bash
cat /etc/shells #查看系统中所有解释器
快捷键
Tab:自动补全 — 1下 自动补齐;2下 自动查找
Ctrl+c :中止/废弃当前命令行
Ctrl+l :清屏
Ctrl+u :清空至行首
Ctrl+w :往回删除一个单词,以空格为界
Esc+. / Alt+. :粘贴上一个命令的参数
. :当前目录
… :父目录(上一层目录)
通配符
? :单个字符
* :任意多个字符
{a,b} :匹配a,b两个中的其中一个
[a,c] :匹配a~c范围中的任意一个
别名
alias #查看已设置的别名
alias hn='ls' #为命令ls设置别名hn (临时)
unalias hn #取消已设置的别名hn
vim /etc/bashrc #为所有用户添加别名(永久)
vim ~/.bashrc #为当前用户添加别名(永久)
vim编辑器
:o为另起一行插入
命令模式操作
命令模式下光标操作
0 或 ^ 或 Home键 :到当前行行首
End键 或 $ :到当前行行尾
Page Up键 :向上翻页
Page Down键 :向下翻页
1G 或 gg :到文件首行
G :到文件末行
命令模式下复制删除操作
yy / #yy :复制光标处的一行/整行
P :粘贴到光标之前
p :粘贴到光标之后
x 或 Delete :删除光标处的单个字符
dd / #dd :删除光标处的一行/整行
d^ :从光标处之前删除至行首
d$ :从光标处删除至行尾
命令模式下撤销编辑操作
u :撤销最近的一次操作
U :撤销对当前行的所有修改
Ctrl + r :取消前一次的撤销操作
命令模式下保存退出操作
zz :保存修改并退出
命令模式下查找功能
/word :向后查找字符串”word”
N :跳至前一个结果
n :跳至后一个结果
末行模式操作
文件操作
:w /root/newfile :另存为其他文件( /root/newfile )
:r /etc/filesystems :读取其他文件内容( /etc/filesystems )
批量添加注释(命令模式下)
Ctrl
+v
键选中要添加注释的行
I
键
Esc
键
字符串替换
行内替换
: s /old/new :使用new替换当前行的第一个old
: s /old/new/g :使用new替换当前行所有的old
区域内替换
:n,m s/old/new/g :使用new替换n~m行中所有的old
:% s/old/new/g :使用new替换文件内所有的old
存盘及退出
:w :保存当前文件
:q! :放弃已有更改后强制退出
:wq 或 :x :保存已有修改后退出
开关参数的控制
编辑器设置
:set nu :显示行号
:set nonu :不显示行号
:set ai :启用自动缩进
:set noai :关闭自动缩进
重定向
定义:将屏幕显示的信息保存到文件中
> :多次重定向到一个文件将被覆盖原来的内容
>> :多次重定向可实现追加信息
示例:
ls --help > /opt/help.txt #将帮助信息保存到文件中
echo 123 > /opt/a.txt #将数字123写入到文件中
echo 123 >> /opt/a.txt #将数字123追加写入到文件中
管道
定义:将前一条命令的标准输出后交给下一条命令处理
| :管道符
示例:
ifconfig ens33 | head -2 #显示上一个命令结果的前两行
cat -n /etc/passwd | head -12 | tail -5 #显示5~12行内容
软连接(快捷方式)
ln -s /原始文件或目录 /软连接文件(快捷方式路径) #创建软连接(快捷方式),快捷方式与原始文件可不在同一分区(删除原始文件后快捷方式不可用)
硬连接
ln /原始文件或目录 /硬连接文件(快捷方式路径) #创建硬连接(快捷方式),快捷方式与原始文件必须在同一分区(删除原始文件后快捷方式仍然可用)
压缩包的创建及解压
创建压缩包
tar -tf /压缩包文件 #查看压缩文件
tar -zcf /压缩后的文件.tar.gz /要压缩的文件路径 #通过.gz格式进行打包归档(压缩)
tar -jcf /压缩后的文件.tar.bz2 /要压缩的文件路径 #通过.bz2格式进行打包归档(压缩)
tar -Jcf /压缩后的文件.tar.xz /要压缩的文件路径 #通过.xz格式进行归档(压缩)zip -r /压缩后的文件.zip /要压缩的文件路径 #通过.zip格式进行压缩(跨平台)
解压缩
tar -xf /压缩文件 #解压缩到当前目录
tar -xf /压缩文件 -C /要解压到的位置 #解压缩到指定目录unzip -r /压缩文件.zip #解压缩到当前目录
unzip /压缩文件.zip -d /要解压到的位置 #解压缩到指定目录
设备挂载及卸载
设备的挂载
mount /设备路径(/dev/cdrom) /挂载点目录(/dvd) #挂载光驱设备(一个设备可有多个挂载点目录,但不允许一个挂载点有多个设备)
设备的卸载
unmount /挂载点目录 #卸载设备
软件包管理 RPM
rpm -q 软件名称 #查询已安装的RPM软件包的版本信息
rpm -qa #列出已安装的所有软件包
rpm -qpi 软件包.rpm #查看指定软件的详细信息
rpm -qpl 软件包.rpm #查看指定软件的文件安装清单(目录)
rpm -ivh 需要安装的软件包 #安装软件包
rpm --import 签名文件 3导入签名认证
rpm -e 软件名称 #卸载软件
yum命令工具
yum:自动解决依赖关系
yum list firefox #查看软件列表yum search ftp #查找包含ftp和ftp相关的包
yum info firefox #查看firefox软件的描述信息
yum probides /etc/passwd #查看/etc/passwd文件是由哪个软件产生的
安装/卸载软件包
yum [-y] 指令 [软件名]yum [-y] install #安装指定软件包 类似于rpm -i
yum [-y] remove #卸载指定软件包yum install https #安装https软件包
yum install -y gcc #自动安装
清空本地 yum 缓存
yum clean all
计划任务(周期性任务)
cron 任务
用途:按照设置的时间间隔为用户反复执行某一项固定的系统任务
软件包:cronie、crontabs
系统服务:crond
日志文件:/var/log/cron
tail /var/log/cron # 了解cron执行消息
crontab -e -u root #为root用户添加日志文件
crontab -r #清空当前用户计划任务
编辑:crontab -e [-u 用户名]
查看:crontab -l [-u 用户名]
清除:crontab -r [-u 用户名]
编写crontab任务记录
/etc/crontab文件:任务记录文件
任务命令行(绝对路径): 分时日月周
*:匹配范围内任意时间 例如 * * * * *
,:分隔多个不连续的时间点
-:指定连续时间范围
/n:指定时间频率,每n…
权限
访问权限
访问权限由读取、写入、可执行共同决定
读取:允许查看内容
r
ead,涉及操作:cat,less,head,tail等写入:允许修改内容
w
rite,涉及操作:vim,>>,>可执行:允许运行和切换 e
x
cute,涉及操作:shell脚本编写时可以赋予,默认文本文件有可执行权限
权限归属关系
所有者:拥有此文件/目录的用户
u
ser所属组:拥有此文件/目录的组
g
roup其他用户:除所有者、所属组以外的用户
o
ther
权限查看
查看文件/目录权限:
ls -l 要查看的目录 #查看指定目录中的目录及文件权限
ls -ld 要查看的目录 #查看指定目录的权限
权限查看结果字段
文件类型位(首位):
-:文件
d:文件夹
l:快捷方式
权限位:
rw- r-- r–
所有者权限 所属组权限 其他用户权限
420 400 401rwx=7
rx=5
7:rwx
6:rw-
5:r-x
4:r--
3:-wx
2:-w-
1:--x
0:---
用户在不同权限下的访问情况:
r--
:用户无法进行任何操作
rw-
:
rwx
:用户可执行任何操作
-w-
:只能创建文件,无法进行移动操作
-wx
:
--x
:用户只可进入目录,无法查看到目录下的文件及其他操作
r-x
:
权限信息字段:
lrwxrwxrwx. 1 root root 3 4月 7 10:04 /dev/cdrom -> sr0
文件类型 所有者权限 所属组权限 其他用户权限. 硬链接数 所有者 所属组 大小 最后修改时间 文件名称
设置基本权限
chmod [ugoa][+-=], ... 要设置权限的文件夹
选项说明:
-R:递归修改权限(修改目录及其子目录)
参数说明:
u:修改所有者权限
g:修改所属组权限
o:其他用户
+:赋予权限
-:删除权限
=:直接指定所有权限
用户文件权限设置示例:
chmod u-w /nsd01 #取消所有者w(写)权限
chmod u+w /nsd01 #所有者添加w权限
chmod g=r /nsd01 #设置所属组权限为只读
chmod o=--- /nsd01 #设置其他用户的权限为无任何权限chmod u=rwx,g=w,o=rx /nsd01 #同时为用户设置权限
chmod 725 /nsd01chmod -R o=--- /opt/aa/ #递归修改权限,目录本身及此目录中的权限都会发生变化
修改默认权限
umask #查看默认权限值
umask 022 #修改默认权限值为022(创建文件夹时的权限为777-022=755,创建文件时的权限为644)
设置归属关系
chown 属主[:属组] 文件
选项说明:
-R:递归修该归属关系
文件归属关系设置示例:
chown a:root /opt #为opt文件夹设置所属用户a,所属组root
权限优先级
- 判断用户的身份 所有者>所属组>其他人
- 查看对应身份的权限
附加权限
Set GID
占用属组的x位(
g+x
,g-x
)显示为s或S,取决于属组是否有x权限(s:有x执行权限,S:没有x执行权限)
对目录有效
在一个具有SGID权限的目录下,新建的文档会自动继承此目录的属组身份
Set UID(适用于攻击方)
占用属主(User)的x位(
u+x
,u-x
)显示为s或S,取决于属组是否有x权限(s:有x执行权限,S:没有x执行权限)
对对可执行的程序有意义
在一个具有SUID标记的程序下,具有此程序属主的身份和相应的权限
Sticky Bit 粘滞位(t权限,如公共目录 /tmp)
占用其他人权限(Other)的x位(
o+t
,o-t
)显示为t或T,取决于其他人是否有x权限
适用于目录,用来限制用户滥用写入权
在设置了粘滞位的文件夹下,即使用户有写入权限,也不能删除或改名其他用户文档
ACL策略管理
ACL访问策略
能够对个别用户、个别组设置独立的权限
大多数挂载的ECT3/4、XFS文件系统默认已支持
设置ACL权限
setfacl -m u:要设置的用户:要给此用户的权限rwx 要设置的目录或文件
setfacl -m g:要设置的用组:要给此组的权限rwx 要设置的目录或文件
常用命令选项:
-m:定义一条ACL策略
-x:清除指定的ACL策略
-b:清除所有已设置的ACL策略
-R:递归设置ACL策略
设置ACL权限示例
setfacl -m u:root:4 /a #在a目录下为root用户设置读权限setfacl -m u:root:--- /a #设置拒绝权限
查看ACL权限
getfacl 要查看的目录或文件
分区管理
磁道:
扇区:1扇区=512字节
识别硬盘 -> 分区规划 -> 格式化 -> 挂载使用
lsblk #查看分区详细信息,查看识别硬盘
分区规划
MBR分区模式
分区类型:主分区、扩展分区、逻辑分区
实际操作为:3个主分区+1个扩展分区+n个逻辑分区
理论最多支持4个主分区(题目正确答案)
最多支持1个扩展分区(扩展分区不可直接用来存储数据)
逻辑分区可以有无限个,建立在扩展分区之上
最大支持2.2TB容量
GPT分区模式(常用)
最多支持128个主分区
最大支持18EB的容量
1EB=1024*1024TB
分区工具
fdisk /dev/sdb #进入分区工具
选项
n:添加一个分区
p:打印分区表
q:不保存退出
格式化分区
文件系统类型:
windows:NTFS FAT32
Linux:ext4 xfs
mkfs.ext4 /deb/sdb1 #将sdb1格式化为ext4文件系统类型
blkid /dev/sdb2 #查看分区文件系统类型,UUID是设备的唯一标识
mkfs.xfs /dev/sdb2 #格式化分区为xfs文件系统类型
挂载使用
mkdir /dvd/mdb
mount /dev/sdb1 /dvd
ls /dvd
mkdir /dvd/abc #验证写入数据
mount /dev/sdb2 /mdb
mkdir /mdb/abc01 #验证写入数据
ls /mdb/
df -h /mypart1 #查看挂载设备的使用情况
开机自动挂载
开机自动挂载配置文件:/etc/fstab
vim /etc/fstab
配置文件/etc/fstab 的显示格式:设备路径 挂载点 类型 参数 备份标记[1:备份,0:不备份] 检测顺序[1:检测,0:不检测]
mount -a #作用1:检测etc/fstab下的问题,作用2:查看文件中的设备有没有挂载的会自动进行挂载
示例:实现开机自动挂载
mount /mypt1
mount /mypt2
vim /etc/fstab/dev/sdb3 /mytp1 ext3 defaults 0 0/dev/sdb7 /mytp1 xfs defaults 0 0/dev/cdrom /mnt iso9660 defaults 0 0 #光盘的文件类型为 iso9660
tail -2 /etc/fstab
mount -a
df -h
交换空间
相当于虚拟内存,
当物理内存不够用时,使用磁盘空间来模拟内存
在一定程度上缓解内存不足的问题
交换分区:以空闲分区充当的交换空间
交换文件:以文件模拟的设备充当交换空间
parted常用分区指令
parted /dev/sdc#
mktab gpt #指定分区模式为 gpt
print #查看分区表
mkpart #交互式创建分区
unit GB #以 GB 单位显示分区表
使用交换分区做交换空间(格式化交换文件)
mkswap -f 要交换文件
选项
f:强制执行
mkswap /dev/sdb1 #将分区 /dev/sdb1 格式化为交换分区
free -m #查看剩余内存的使用量及交换空间的大小(单位:MB)swapon /dev/sdb1 #启用交换分区 /dev/sdb1
swapon -s #查看交换分区
swapoff /dev/sdb1 #停用交换分区 /dev/sdb1vim /etc/fstab #将交换分区设置为开机自动挂载
/dev/sdb1 swap swap defaults 0 0
/dev/sdb2 swap swap defaults 0 0
tail -2 /etc/fstab
swapon -a
swapon -s
创建Swap文件
利用文件创建Swap空间
(生成大的文件用dd命令)
dd if=源设备 of=目标设备 bs=块大小 count=块数
dd if=dev/xero of=/opt/swap.db bs=1M count=2048 #示例
ls -lh /opt/swap.db
mkswap /opt/swap.txt
swapon /opt/swap.txt
swapon -s
free -m
chmod 600 /opt/swap.txt
swapoff /opt/swap.txt
vim /etc/fstab/opt/swap.txt swap swap defaults 0 0
swapon -a
swapon -s
逻辑卷
优势:
可以整合分散的空间
逻辑卷支持扩容(动态扩容)
LVM快速部署及使用
创建卷组
格式:vgcreate 卷组名 设备路径
工作方式:
零散空闲存储 -> 整合的虚拟磁盘 -> 虚拟的分区
物理卷(PV) 卷组(VG) 逻辑卷(LV)
功能 | 物理卷管理 | 卷组管理 | 逻辑卷管理 |
---|---|---|---|
Scan扫描 | pvscan | vgscan | lvscan |
Create创建 | pvcreate | vgcreate | lvcreate |
Display显示 | pvdisplay | vgdisplay | lvdisplay |
Remove删除 | pvremove | vgremove | lvremove |
Ectend扩展 | / | vgextend | lvextend |
pvcreate /dev/sdb1 /dev/sdb2 #创建物理卷,可以不用写,直接使用vgcreate创建也是可以的
pvs #查看物理卷信息
vgcreate myvg /dev/sdb1 /dev/sdb2 #创建卷组
vgs #查看卷组信息
创建逻辑卷
格式:
lvcreate -L 逻辑卷大小 -n 逻辑卷名 卷组名
示例:
lvcreate -L 16G -n myvo myvg
lvs
扩展逻辑卷
情况一:卷组有足够的剩余空间
扩展逻辑卷大小
vgs lvextend -L 18GG /dev/systemvg/vo #扩展到18G df -h /vo #查看使用情况 lvs df -h
扩展文件系统大小
resize2fs #扩展 ext3/ext4 文件系统类型 xfs_growfs /dev/systemvg/vo #扩展 xfs 文件系统类型 df -h
情况二:卷组没有足够的剩余空间
扩展卷组
vgs vgextend systemvg /dev/sdb3 #为逻辑卷systemvg扩展空间
扩展逻辑卷大小
vgs lvextend -L 25G /dev/systemvg/vo lvs
扩展文件系统大小
xfs_growfs /dev/systemvg/vo df -h
逻辑卷的删除
–
逻辑卷的缩减
ext4不支持逻辑卷的缩减
xfs不支持逻辑卷的缩减
RAID磁盘阵列
廉价冗余磁盘阵列
通过硬件/软件技术,将多个较小/低速磁盘整合成一个磁盘
阵列的价值:提升I/O效率、硬件级别的数据冗余
不同RAID级别的功能、 特性各不相同
RAID0,条带模式
同一个文档分散存放在不同磁盘
并行写入以提高效率
RAID1,镜像模式
一个文档复制成多分,分别写入不同磁盘
多份拷贝提高可靠性,效率无提升
RAID5(至少需要三块磁盘组成)
相当于RAID0和RAID1的折中方案
需要至少一块磁盘的容量来存放校验数据(奇偶校验)
RAID0+1(至少需要四块磁盘组成)
?整合于RAID0和RAID1的折中方案
?需要至少一块磁盘的容量来存放校验数据(奇偶校验)
RAID1+0(至少需要四块磁盘组成)
?整合于RAID0和RAID1的折中方案
?需要至少一块磁盘的容量来存放校验数据(奇偶校验)
RAID各级别特点对比
对比项 | RAID0 | RAID1 | RAID10 | RAID5 | RAID |
---|---|---|---|---|---|
磁盘数 | >=2 | >=2 | >=4 | >=3 | >=4 |
存储利用率 | 100% | <=50% | <=50% | n-1/n | n-2/n |
校验盘 | 无 | 无 | 无 | 1 | 2 |
容错性 | 无 | 有 | 有 | 有 | 有 |
IO性能 | 高 | 低 | 中 | 较高 | 较高 |
RAID阵列实现方式
硬RAID
由RAID控制卡管理阵列(不同型号服务器配置方式不同)
主板 -> 阵列卡 -> 磁盘 -> 操作系统 -> 数据
软RAID
由操作系统来管理阵列
主板 -> 硬盘 -> 操作系统 -> RAID软件 -> 数据
系统文件损坏故障
故障现象:
/etc/fstab文件内容有误,系统无法正常开机
解决思路:
引导进入修复模式,然后进行修复
模拟故障:
vim /etc/fstab/dev/sdb1 /mypar1 xfs defaults 0 0
reboot
解决故障:
在Control-D界面处直接输入root密码,会直接进入命令行,之后修改fstab文件
vim /etc/fstab
# /dev/sdb1 /mypar1 xfs defaults 0 0
reboot
重设root密码
开机界面按e
UTF-8
rd.break console=tty0
Ctrl+X
mount -o remount,rw /sysroot
chroot /sysroot
echo redhat | passwd --stdin roottouch /.autorelabel
exit
reboot
练习题目
grep 命令的使用
利用grep显示/etc/fstab文件中以UUID开头的信息
grep '^UUID' /etc/fstab
利用grep显示/etc/passwd以bash结尾的行
grep 'bash$' /etc/passwd
利用grep显示/etc/login.defs 以#开头的行
grep '^#' /etc/login.defs
利用grep显示/etc/login.defs 有效配置的行
grep -v '^$' /etc/login.defs | grep -v '^#'
vim 命令的使用
在根目录下创建一个子目录 c
mkdir /c
利用vim建立文件/tedu/stu.txt并写入内容“I Love Goddess”
vim /tedu/stu.txtI Love Goddess :wq
复制、删除、移动命令的使用
在目录/opt下创建一个子目录 nsd
mkdir -p /opt/nsd
在目录/opt/nsd/创建文件readme.txt,利用vim写入内容 I Love Linux
vim /opt/nsd/readme.txt
将/etc/passwd 和 /etc/resolv.conf同时拷贝到/opt/nsd目录下
cp /etc/passwd /etc/resolv.conf /opt/nsd
将文件 /etc/redhat-release复制到 /root/ 下,同时改名为 version.txt
cp /etc/redhat-release /root/version.txt
将文件 /root/version.txt 移动到/opt/nsd/目录下
mv /root/version.txt /opt/nsd/
将/home目录复制到/opt/nsd/目录下
cp -r /home /opt/nsd/
新建目录结构/student/test/nsd
mkdir -p /student/test/nsd cd /student/test/nsd
将文件夹/boot/grub2/复制到目录/student/test/nsd下
cp /boot/grub2 /student/test/nsd
在目录/student/test/nsd创建文件testa.txt并写入内容 NSD Student(利用echo方式)
echo "NSD Student" > testa.txt
将/student/test/nsd/testa.txt文件复制到/root目录下,同时 改名为 tedu.txt
cp /student/test/nsd/testa.txt /root/tedu.txt
将/etc/passwd 、/etc/resolv.conf、/etc/hosts 同时拷贝到/student/test/nsd目录下
cp /etc/passwd /etc/resolv.conf /etc/hosts /student/test/nsd
将文件/root/tedu.txt移动到/student/test/nsd目录下
mv /root/tedu.txt /student/test/nsd
将文件 student/test/nsd 重改名为 hs.txt
mv /student/test/nsd /student/test/hs.txt
删除/student/test/nsd目录下的grub2子目录
rm -rf /student/test/nsd/grup2
别名的使用
为虚拟机定义一个别名,执行byebye可以实现关闭系统
alias byebye='poweroff'
创建命令的使用
一条命令创建文件夹/protected/project/tts10
mkdir -p /protected/project/tts10
请在/opt创建三个文本文件分别为1.txt、a.txt、nsd.txt(至少写出2种方法)
touch /opt/1.txt /opt/a.txt /opt/nsd.txt touch {1,a,nsd}.txt
利用vim文本编辑器修改/opt/nsd.txt内容写入"I LOVE Linux"
vim /opt/nsd.txtI LOVE Linux :wq
重定向和管道命令的使用
显示ifconfig命令的前2行内容
ifconfig | head -2
显示/etc/passwd第九行内容
cat -n /etc/passwd | head -9 | tail -1
将hostname命令的输出内容,覆盖写入到/opt/hn.txt
hostname > /opt/hn.txt
利用echo命令,将”abc“ 内容追加写入到/opt/hn.txt
echo abc >> /opt/hn.txt
系统网络参数的配置
设置主机名为t.a.cn
hostname t.a.cn
配置静态IP地址为192.168.4.0/24
ifconfig ens33 192.168.4.0/24
查找并提取文件内容
在文件 /usr/share/dict/words 中查找到所有包含字符串 seismic 的行,将输出信息,写入到/opt/nsd1.txt
grep 'seismic' /use/share/dict/words > /opt/nsd1.txt
查看内核版本,将显示结果重定向到/root/version.txt
uname -r > /root/version.txt
查看红帽系统版本,将显示结果追加到/root/version.txt
cat /red hat-release > /root/version.txt
查看主机名将显示结果追加到/root/version.txt
hostname > /root/version.txt
将/etc/fstab文件中以UUID开头的信息,写入到/root/fstab.txt
grep ‘^UUID’ /etc/fstab > /root/fastab.txt
提取/etc/passwd以bash结尾的行,将其信息写入/opt/pass.txt
grep ‘bash$’/etc/passwd > /opt/pass.txt
复制/etc/login.defs文件到当前目录下,改名为init.txt
cp /etc/login.defs ./init.txt
提取init.txt文件里的有效配置(去除以#号开头,去除空行),保存为init2.txt
grep -v '^#' init.txt | grep -v '^$' > init2.txt
rpm 命令的使用
列出当前主机已安装的所有RPM软件
rpm -qa | wc -l
查看firefox软件包的安装清单
rpm -ql firefox
查看firefox软件包的用途
rpm -qi firefox`
查询光盘中的lynx软件包的用途,安装清单
rpm -pi firefox
利用rpm安装vsftpd这个软件包
rpm -ihv /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm rpm -q vsftpd
删除vim、vi、hostname命令程序
which vim vi hostname rm- rf /usr/bin/vim /usr/bin/hostname /
修复vim、vi、hostname
rpm -ivh --force /mnt/Packages/vim-enhanced-7.4.160-4.el7.x86_64.rpm rpm -qf /usr/bin/vim
安装bind-chroot包,体验依赖关系
rpm -ivh --force /mnt/Packages/bind-9.9.4-61.el7.x86_64.rpm
卸载vsftpd软件
rpm -e vsftpd rpm -q vsftpd
yum练习
将光盘文件挂载到/mnt目录下,查看/mnt下内容
mount /dev/cdrom /mnt ls /mnt
搭建本地yum仓库
vim /etc/yum.repos.d/mnt.repo[mnt] # 源名称name=Centos7.5 # 操作系统版本baseurl=file:///mnt # 包路径,光盘挂载路径,要与挂在路径相同enabled=1gpgcheck=0 ls /etc/yum.repos.d/ mkdir /etc/yum.repos.d/bind mv /etc/yum.repos.d/bind mv /etc/yum.repos.d/CentOS-* /etc/yum.repos.d/bind ls /etc/yum.repos.d/ yum repolist #验证包
综合练习 3.31
案例1:添加用户帐号
创建一个名为tedu01的用户帐号
useradd tedu01 grep tedu01 /etc/passwd id tedu01
检查/etc/passwd文件的最后一行
tail -1 /etc/passwd
检查/home新增的宿主目录
ls /home/
新建用户tedu02,宿主目录位于/opt/tedu02
useradd -d /opt/tedu02 tedu02 grep tedu02 /etc/passwd
新建系统账号system01,将UID设为1234,登录shell设为/sbin/nologin
useradd -u 1234 -s /sbin/nologin system0 grep system01 /etc/passwd
新建用户admin,附加组设为adm,root
useradd -G adm,root admin id admin
更改用户tedu 01密码(root用户)
passwd tedu01
修改当前用户密码
passwd
直接为用户tedu02设置密码123(非交互式)
echo 123 | passwd --stdin tedu02
案例2:设置用户密码
为用户tedu01设置一个密码:123456
echo 123456 | passwd --stdin tedu01
过滤/etc/shadow文件中包含tedu01的内容
grep tedu01 /etc/shadow
为用户system01设置密码,并测试是否能够登录
echo a | passwd --stdin system01
无法登陆
非交互式给用户tedu02设置密码123456
echo 123456 | passwd --stdin tedu02
交互式给用户admin设置密码redhat
passwd admin redhat
综合练习 4.2
案例1:指定yum软件源
将此配置为虚拟机默认软件仓库
mkdir /dvd mount /dev/cdrom /dvd
确认可用的仓库列表
ls /mnt
利用yum仓库安装httpd与vsftpd
vim /etc/yum.repos.d/mnt.repo[mnt]name=Centosbaseurl=file:///mntenabled=1gpgcheck=0 :wq rm -rf /etc/yum.repos.d/Centos-* ls /etc/yum.repos.d/ yum repolist rm -rf /var/run/yum.pidcat /etc/yum.repos.d/mnt.repo yum install -y httpd vsftpd
利用rpm命令检测是否安装成功
rpm -q httpd vsftpd
案例2:查找并处理文件
创建目录/root/findfiles/
mkdir /root/findfiles ls /root/
利用find查找所有用户 lisi 拥有的必须是文件,把它们拷贝到 /root/findfiles/ 文件夹中
find / -user lisi -a -type f -exec cp {} /root/findfiles/ \;
-user
:按照文件的所有者来查找利用find查找/boot目录下大于10M并且必须是文件,拷贝到/opt
find /boot -size +10M -type f -exec cp {} /opt/ \;
将目录 /boot内容中以 vm 开头的数据, 复制到/boot/kernel目录下
mkdir /boot/kernel find /boot/ -name "vm*" -exec cp {} /boot/kernel/ \; ls /boot/kernel/
利用find查找/boot/ 目录下为快捷方式
find /boot/ -type l
利用find查找/etc 目录下,以 tab 作为结尾的 必须是文件,将其拷贝到/opt/tab/文件夹下
ls /opt/ rm -rf /opt/tab mkdir /opt/tab find /etc/ -name "*tab" -type f -exec cp {} /opt/tab/ \;
案例3:查找并提取文件内容
在文件 /usr/share/dict/words 中查找到所有包含字符串 seismic 的行,将输出信息,写入到/opt/nsd18.txt
grep "seismic" /usr/share/dict/words >> /opt/nsd18.txt cat /opt/nsd18.txt
查看内核版本,将显示结果重定向到/root/version.txt
uname -r > /root/version.txt cat /root/version.txt
查看红帽系统版本,将显示结果追加到/root/version.txt
cat /etc/red hat-release > /root/version.txt cat /root/version.txt
查看主机名将显示结果追加到/root/version.txt
hostname >> /root/version.txt
将/etc/fstab文件中以UUID开头的信息,写入到/root/fstab.txt
grep '^UUID' /etc/fstab > /root/fastab.txt cat /root/fastab.txt
提取/etc/passwd以bash结尾的行,将其信息写入/opt/pass.txt
grep 'bash$' /etc/passwd > /opt/pass.txt cat /opt/pass.txt
复制/etc/login.defs文件到当前目录下,改名为init.txt
cp -r /etc/login.defs ./init.txt
提取init.txt文件里的有效配置(去除以#号开头,去除空行),保存为init2.txt
grep -v '^#' init.txt | grep -v '^$' > init2.txt
案例4:tar制作/释放归档压缩包(zcf、ztf、zxf、jcf、jtf、jxf、cf、tf)
首先创建/root/boothome/与/root/usrsbin/目录
mkdir /root/boothome/ /root/usrsbin/
备份/boot、/home这两个文件夹,保存为boothome.tar.gz文件
tar -zcf /boothome.tar.gz /boot /home
查看boothome.tar.gz文件内包含哪些内容
tar -tf /boothome.tar.gz
将boothome.tar.gz释放到文件夹/root/boothome/下
tar -xf /boothome.tar.gz -C /root/boothome/
备份/usr/sbin目录,保存为usrsbin.tar.bz2文件
tar -jcf /usrsbin.tar.bz2 /usr/sbin
查看usrsbin.tar.bz2文件内包含哪些内容
tar -xf /usrsbin.tar.bz2
将usrsbin.tar.bz2释放到/root/usrsbin/文件夹下
tar -xf /usrsbin.tar.gz2 /root/usrsbin
创建一个名为 /root/backup.tar.bz2 的归档文件,其中包含 /usr/local 目录中的内容,tar 归档必须使用 bzip2 进行压缩
tar -jcf /root/backup.tar.bz2 /usr/local/ tar -xf /root/backup.tar.bz2
案例5:usermod修改用户
新建一个用户nsd03,将宿主目录设为/opt/home03,并设置密码为redhat
useradd -d /opt/nsd03 nsd03 id nsd03 ls /opt grep nsd03 /etc/passwd echo redhat | passwd --stdin nsd03
将用户nsd03的宿主目录改为/home/nsd03
usermod -d /home/nsd03 nsd03 grep nsd03 /etc/passwd ls /home
将用户sys01的登录Shell改为/bin/bash
useradd -s /sbin/nologin sys01 usermod -s /bin/bash sys01 grep sys01 /etc/passwd
案例6:创建用户
创建一个名为alex的用户,用户ID是 3456。密码是flectrag
useradd -u 3456 alex grep alex /etc/passwd echo flectrag | passwd --stdin alex id alex
案例7:创建用户和组
一个名为adminuser的组
groupadd adminuser grep adminuser /etc/group
一个名为natasha的用户,其属于adminuser,这个组是该用户的从属组
useradd -G adminuser natasha grep natasha /etc/group
一个名为harry的用户,属于adminuser,这个组是该用户的从属组
useradd -G adminuser harry grep harryr /etc/group
一个名为sarah的用户,其在系统中没有可交互的shell,并且不是adminuser组的成员用户
useradd -s /sbin/nologin sarah grep sarah /etc/group
natasha、harry、和sarah的密码都要设置为flectrag
echo flectrag | passwd --stdin natasha echo flectrag | passwd --stdin harry echo flectrag | passwd --stdin sarah
案例8:配置一个cron任务
为用户 natasha 配置一个定时任务
su natasha crontab -e
crontab -e -u natasha
每天在本地时间 23:30 执行
需要完成的任务操作为 /bin/echo hiya
30 23 * * * /bin/echo hiya
案例9:设置别名
为root用户永久设置别名为hn=‘hostname’
su root vim ~/.bashrcalias hn='hostname'
vim /root/.bashrcalias hn='hostname'
为所有用户设置别名为 qstat=’/bin/ps -Ao pid,tt,user,fname,rsz’
vim /etc/bashrcqstat='/bin/ps -Ao pid,tt,user,fname,rsz'
案例10:设置基本权限
新建/nsddir1/目录,在此目录下新建readme.txt文件,并进一步完成下列操作:
mkdir /nsddir1/ touch /nsddir1/readme.txt
使用户zhangsan能够在此目录下创建/删除子目录
useradd zhangsan setfacl -m u:zhangsan:rwx /nsddir1/
使用户zhangsan能够修改readme.txt文件
setfacl -m u:zhangsan:rw /nsddir1/readme.txt vim /nsddir1/readme.txt
调整此目录的权限,使任何用户都不能进入,然后测试用户zhangsan是否还能修改readme.txt
chmod -r /nsddir1/ ls -ld /nsddr1/readme.txt vim /nsddr1/readme.txt
为此目录及其下所有文档设置权限 rwxr-x—
chmod -R 760 /nsddir1/ ls -ld /nsddr1/readme.txt
练习 4.7
案例3:配置用户和组账号
新建用户alex,其用户ID 为3456,密码是flectrag
useradd -u 3456 alex grep alex /etc/passwd echo flectrag | passwd --stdin alex
创建下列用户、组及组成员的关系:
2.1 一个名为adminuser的组groupadd adminuser grep adminuser /etc/group
2.2 一个名为natasha的用户,其属于adminuser组,这个组是该用户的从属组
```shell useradd -G adminuser natasha id natasha
2.3 一个名为harry的用户,其属于adminuser组,这个组是该用户的从属组
useradd -G adminuser harry id harry
2.4 一个名为sarah的用户,其在系统中没有可交互的Shell,并且不是adminuser组的成员
useradd -s /sbin/nologin sarah grep sarah /etc/passwd
2.5 natasha、harry、sarah的密码都要设置为flectrag
echo flectrag | passwd --stdin natasha echo flectrag | passwd --stdin harry echo flectrag | passwd --stdin sarah
练习4.8
案例2:文件/目录的默认权限
以root用户登录,测试umask掩码值
1.1. 查看当前umask值umask
1.2. 新建目录udir1,文件ufile1,查看默认权限
mkdir /udir1 /ufile1 ls -ld /udir1 ls -ld /ufile1
1.3. 将umask设为077,再新建目录udir2、文件ufile2,查看默认权限
umask 077 umask mkdir /udir2 /ufile2 ls -l /udir2 ls -l /ufile2
1.4. umask值重新设置为022
umask 022 umask
以用户zhangsan登入,查看当前的umask值
useradd zhangsan su zhangsan umask
练习4.8
案例3:设置归属关系
新建/tarena1目录,并进一步完成下列操作
mkdir /tarena1 ls -ld /tarena1
将属主设为gelin01,属主设为tarena组
id gelin01 grep tarenauseradd gelin01 groupadd tarena chown gelin01:tarena /tarena1/
使用户gelin01对此目录具有rwx权限,其他人对此目录无任何权限
ls -ld /tarena1/ chmod o=/tarena1/
使用户gelin02能进入,查看此目录
id gelin02 useradd gelin02gpasswd -a gelin02 tarena su gelin02 ls -ld /tarena1/
将gelin01加入tarena组,将tarena1目录的权限设为450,再测试gelin01童虎能否进入此目录
gpasswd -a gelin01 tarena chmod 450 /tarena1/ ls -ld /tarena1/su - gelin01 cd /tarena1/
否
练习4.9
案例:SGID练习
创建/nsdpublic目录,将属组改为tarena,进一步完成下列操作:
mkdir /nsdpublic ls -ld /nsdpublic groupadd tarena chown :tarena /nsdpublic
新建子目录nsd01,子文件test01.txt,查看两者的权限及归属
mkdir /nsdpublic/nsd01 touch /nsdpublic/nsd01/test01.txt
为此目录添加SGID权限,再新建子目录nsd02,子文件test02.txt
chmod g+s /nsdpublic ls -ld /nsdpublic/mkdir /nsdpublic/nsd02 touch /nsdpublic/nsd02/test02.txt
查看上述子目录及文件的权限及归属
ls -ld /nsdpublic/nsd02 ls -ld /nsdpublic/nsd02/test02.txt
练习 4.12
权限简答
- 权限的分类是什么?
基本权限、附加权限、ACL权限
- 基本权限的分类是什么?
读取r、写入w、可执行x
- 归属关系都有哪些?
所有者、所属组、其他用户
- 用户的分类?组账号的分类?
用户分类:普通用户、系统用户、超级用户
组账号分类:基本组,附加组
- 唯一标识用户身份的是什么?
UID
- 保存用户信息的配置文件是?里面的字段值都是什么意思?
/etc/passwd
用户名 : 密码占位符 : UID : GID(基本组) : 用户描述 : 用户家目录(宿主目录) : 用户所使用的shell解释器程序
- 保存组账号基本信息的配置文件是?里面的字段值是什么意思?
/etc/group
组账号名称 : 密码占位符x : 组的GID号 : 本组的成员用户列表
- 保存组账号管理信息的配置文件是?里面的字段值是什么意思?
/etc/gshadow
组账号名称 : 加密后的密码字符串 : 组的管理员列表 : 组成员列表
- 如何创建用户?如何修改用户的属性?分别说出下列选项意思-d -G -s -u
Useradd
usermod
-d:指定要创建用户的家目录,不使用则默认用户的家目录为 /home/创建的用户名
-G:指定用户的附加组(从属组)
-s:指定用户的shell解释器
-u:指定 UID
- 如何修改权限?如何修改归属关系?
chmod [ugoa][±=], … 要设置权限的文件夹
chown 属主[:属组] 文件
- 文件/目录默认的权限是?
644/755
取决于umask设置
- 用户的初始配置文件来自于哪个模板目录
/etc/skel
- 如何创建组?如何删除组?如何往组里添加成员?如何删除组成员?
groupadd [-g GID组ID] 组名
groupdel 要删除的组名
gpasswd -a 要添加的用户 组名
gpasswd -d 要删除的用户 组名
案例1:创建用户和组
一个名为tarena的组
groupadd tarena grep tarena /etc/group
一个名为natasha的用户,其属于tarena组,这个组是该用户的从属组
useradd -G tarena natasha id natasha
一个名为harry的用户,其属于tarena组,这个组是该用户的从属组
useradd -G tarena harry id harry
一个名为sarah的用户,其在系统中没有可交互的shell,并且不是tarena这个组的成员用户
useradd -s /sbin/nologin sarah grep sarah /etc/passwd
为natasga、harry、sarah设置密码为redhat
echo redhat | passwd --stdin nataha echo redhat | passwd --stdin harry echo redhat | passwd --stdin sarah
案例2:配置文件/var/tmp/fstab的权限
拷贝文件/etc/fstab到/var/tmp/fstab,配置文/var/tmp/fstab的权限
cp /etc/fstab /var/tmp/fstab
文件/var/tmp/fstab的拥有着是root用户
文件/var/tmp/fstab属于root组
chown root:root /var/tmp/fstab ls -ld /var/tmp/fstab
文件/var/tmp/fstab对任何人都不可执行
chmod -x /var/tmp/fstab ls -l /var/tmp/fstab
用户natasha能够对文件/var/tmp/fstab执行读和写操作
setfacl -m u:natasha:rw /var/tmp/fstab setfacl /var/tmp/fstab
用户harry对文件/var/tmp/fstab既不能读,也不能写
setfacl -m u:harry:- /var/tmp/fstab getfacl /var/tmp/fstab
所有其他用户(当前的和将来的)能够对文件/var/tmp/fstab进行读操作
ls -l /var/tmp/fstab
4.14练习
划分3个2G的主分区,一个扩展分区,3个2G的逻辑分区
利用sdb硬盘划分2个1G的逻辑分区
lsblk fdisk /dev/sdb n p+2G n p+2G n p+2G n en+2G n+2G n+2G
将/dev/sdb3格式化成ext3的文件系统类型,第一个逻辑分区格式化为xfs的文件系统类型,第3个逻辑分区格式化为ext4的文件系统类型
mkfs.xfs /dev/sdb5 blkid /dev/sdb5
分别查看几个分区的文件类型
blkid /dev/sdb1 blkid /dev/sdb2 blkid /dev/sdb3 blkid /dev/sdb4 blkid /dev/sdb5 blkid /dev/sdb6 blkid /dev/sdb7
将/dev/sdb3挂在到/mypt1文件夹下,第3个逻辑分区挂载到/mypt2
mount /dev/sdb3 /mytp1 df -h /mypt1mkfs.xfs /dev/sdb7 mkdir /mypt2 mount /dev/sdb7 /mypt2 df -h /mypt2
刷新分区表
```shell
partprobe /dev/sdb #刷新分区表 或者reboot
```
练习4.15
案例:硬盘分区练习
添加一块10G硬盘,采用msdos(MBR)分区模式,完成如下操作
划分2个2G的主分区,一个1G的主分区,2个1G的逻辑分区
lsblk fdisk /dev/sdbnp1+2Gnp2+2Gnp3+1Gnen+2Gn+2Gpw
将/dev/sdb3格式化为ext4的文件系统类型。将第2个逻辑分区格式化为xfs的文件系统类型
mkfs.ext4 /dev/sdb3 blkid /dev/sdb3mkfs.xfs /dev/sdb6 blkid /dev/sdb6
实现开机自动挂/dev/sdb3,挂载到/mydb1目录
vim /etc/fstab/dev/sdb3 /mydb1 ext4 defaults 0 0 mount -a #检测文件语法、自动挂载 mkdir /mydb1 df -h
练习:新建一个逻辑卷
使用/dev/sdb3构建LVM存储
新建一个名为systemvg的卷组
vgcreate systemvg /dev/sdc{3,5}
在此卷组中创建名为vo的逻辑卷,大小为180M
lvcreate -L 180M -n vo systemvg
将逻辑卷vo格式化为xfs的文件系统类型
mkfs.xfs /dev/systemvg/vo
将逻辑卷vo挂载到/myvo目录,并在此目录下建立一个测试文件votest.txt,内容为“I AM KING”
mkdir /myvo mount /dev/systemvg/vo /myvo vim /myvo/votest.txt"I AM KING" cat /myvo/votest.txt
将逻辑卷实现自动开机自动挂载到/myvo目录
vim /etc/fstab /dev/systemvg/vo /myvo xfs defaults 0 0 umount /myvo mount -a
4.16 案例:LVM逻辑卷练习
添加一块80G硬盘,划分三个10G的主分区,2个10G的逻辑分区
lsblk fdisk /dev/sdb vgcreate system /dev/sdc{3,5} lsblk
利用/dev/sdb1和/dev/sdb2创建一个名为systemvg的卷组
vgcreate systemvg /dev/sdb[1-2]
在此卷组中创建一个名为vo的逻辑卷,大小是16G
lvcreate -L 16G -n vo systemvg1
将此逻辑卷格式化为xfs文件系统类型
mkfs.xfs /dev/systemvg/vo blkid /dev/systemvg/vo
将该逻辑卷挂载到根下的vo文件夹下,并写入测试文件为test.txt,内容为"I AM KING."
mkdir /vo mount /dev/systemvg/vo /vovim /vo/test.txtI AM KING. echo "I AM KING." > /vo/test.txtcat /vo/test.txt
将此逻辑卷实现开机自动化挂载
vim /etc/fstab /dev/systemvg/vo /vo xfs defaults 0 0umount /vo mount -a lsblk
练习4.19
案例1:MBR分区模式规划分区
添加一块80G的硬盘并规划分区
划分2个10G的主分区;1个12G的主分区;2个10G的逻辑分区。
fdisk /dev/sdbnp1+10Gnp2+10Gnp3+10Gnene+10Gne+10G
案例2:构建LVM存储
利用/dev/sdb1和/dev/sdb2新建一个名为systemvg的卷组
vgcreate systemvg /dev/sdb1 /dev/sdb2 vgs
在此卷组中创建一个名为vo的逻辑卷,大小为10G
lvcreate -L 10G -n vo systemvg
将逻辑卷vo格式化为xfs文件系统
mkfs.xfs /dev/systemvg/vo blkid /dev/systemvg/vo
将逻辑卷vo挂载到/vo目录,并在此目录下建立一个测试文件votest.txt,内容为“I AM KING”
mkdir /vo mount /dev/systemvg/vo /vo echo "I AM KING" > /vo/votest.txt cat /vo/votest.txt
实现逻辑卷vo开机自动挂载到/vo
vim /etc/fstab/dev/systemvg/vo /vo xfs defaults 0 0 umount /vo df -h mount -a df -h /vo
案例3:构建lvm存储(修改PE大小)
新的逻辑卷命名为dateabase,其大小为50个PE的大小,属于datastore卷组
vgcreate database /dev/sdb3 vgs lvcreate -l 50 -n database datastore
使用EXT4文件系统对逻辑卷database格式化,此逻辑卷应该在开机时自动挂载到/nsd/vo
mkfs.ext4 /dev/database/datastore vim /etc/fstab/dev/database/datastore /nsd/vo ext4 defaults 0 0mkdir -p /nsd/vo mount -a df -h
案例4:扩展逻辑卷
将/dev/systemvg/vo逻辑卷的大小扩展到30G
vgs lvsvgextend systemvg /dev/sdb5 /dev/sdb6 vgs lvextend -L 30G /dev/systemvg/vodf -h xfs_growfs /dev/systemvg/vo df -h /vo
如有侵权,请联系作者删除
Linux 1: Cloud computing operating system management | Linux相关推荐
- Linux 2: Cloud computing network application management | Linux
Linux 系列 Linux 1: 云计算操作系统管理 Cloud computing operating system management | Linux Linux 2: 云计算网络应用管理 C ...
- linux验证db2安装成功_DB2(Linux 64位)安装教程
数据库版本:db2 Express-C 操作系统版本:Red Hat 6.5 1.首先下载并解压安装包:[root@dbserver tmp]# tar -xzvf db2_v101_linuxx64 ...
- linux如何修改机器名,简单修改Linux主机名
导读 在本篇文章里小编给大家整理的是关于Linux修改主机名的简单方法以及相关代码,需要的朋友们可以参考下. 1.查看当前的主机名 [root@fangjian ~]# hostnamectl Sta ...
- Linux操作系统基础理论(3)-----浅析Linux 与Minix 下进程实现的异同
Linux操作系统基础理论(3)-----浅析Linux 与Minix 下进程实现的异同 目录 摘要:... 1 1. 引言... 1 1.1 Minix简介... 1 1.2 Linux ...
- 成功解决解决VM软件安装Linux的Ubuntu过程,打开时 Operating System not found
成功解决解决VM软件安装Linux的Ubuntu过程,打开时 Operating System not found 目录 解决问题 解决思路 解决方法 解决问题 安装Ubuntu16.04虚拟机,打开 ...
- Linux安装Oracle报Checking operating system version must be redhat-3, SuSE-9, redhat-4, UnitedLin
在Linux系统中安装oralce的过程中,如果Linux发行版本不是oracle的推荐版本,可能会报如下错误,导致runInstaller无法完成: Checking operating syste ...
- linux ros是什么?(Robot Operating System)
Robot Operating System 参考文章:ROS学习入门(抛砖引玉篇)
- Cloud platform build management Topic | Cloud computing
云计算专题目录 Catalogue | Cloud computing Cloud platform build management Topic | Cloud computing 云计算专题目录 ...
- KylinX:A Dynamic Library Operating System for Simplified and Efficient Cloud ~
正文之前 仿佛好久没写过东西了..刚才一翻,最新文章在1-19,三个月了...果然我已经快放弃简书了,不过这儿好歹承载了那么多的回忆,还是别丢了吧.以后把我翻译的一些论文丢上来算了.. 正文 ~原文我 ...
最新文章
- 发布一个实体类属性生成小工具,给开发加点料
- [YTU]_2635(P4 游戏中的Human角色)
- cookie和session的讲解
- 关于oracle sql语句查询时表名和字段名要加双引号的问题
- 谷歌修复安卓蓝牙组件中无需用户交互的 bug
- Angular 学习笔记 Material
- pyecharts制作交互式数据展示地图
- 基于Metronic的Bootstrap开发框架--工作流模块功能介绍(2)
- 手机CPU处理器大解析
- 约瑟夫环数学问题——举一反三、触类旁通
- Sql Server 中事务(begin tran/commit tran/rollback tran)的用法
- 40+个工业检测数据集
- 苹果iPhone升级到10.3.3后,4G数据网络经常性断网无法连接???
- 计算机激光鼠标,差评终结者:激光鼠标就是比光电的好?
- 【技术邻】CAE工程师崩溃的10个瞬间
- 胡说八道JVM—垃圾回收算法和垃圾回收器
- SpringSecurity认证案例
- Cannot open output file: Permission denied 的处理方式
- 数据结构--排序算法(冒泡排序)
- 如何引导回购和好评且不被平台抽查和处罚