第三章 用户组和权限
1.用户组
用户和组的关系
- 用户的主要组(primary group):用户必须属于一个且只有一个主组,默认创建用户时会自动创建和用户名同名的组,做为用户的主要组,由于此组中只有一个用户,又称为私有组
- 用户的附加组(supplementary group): 一个用户可以属于零个或多个辅助组,附属组
用户和组的配置文件
/etc/passwd:用户及其属性信息(名称、UID、主组ID等) /etc/shadow:用户密码及其相关属性
/etc/group:组及其属性信息
/etc/gshadow:组密码及其相关属性
用户和组的命令
用户命令:
useradd #用户创建
usermode #用户属性修改
userdel #用户删除 -r 强制 -f 删除邮箱及家目录
组命令:
groupadd #创建组
groupmode #修改组权限
groupdel #删除组
2.文件权限管理
设置文件所有者 chown
[09:57:08 root@yp data]#ll
total 16
-rw-r--r--. 1 root root 18 Aug 3 20:30 a.txt
[09:57:22 root@yp data]#chown yp a.txt
[09:57:39 root@yp data]#ll
total 16
-rw-r--r--. 1 yp root 18 Aug 3 20:30 a.txt
修改文件权限 chmod
[root@centos8 data]#chmod -R a+X dir
[root@centos8 data]#ll -d dir
drwxr-xr-x 3 root root 48 Dec 18 11:15 dir
设定文件特殊属性
不能删除,改名,更改
chattr +i
之能追加内容,不能删除、改名
chattr +a
显示特定属性
lsattr
[root@centos8 data]#chattr +i dir
[root@centos8 data]#lsattr dir
------------------ dir/fstab
------------------ dir/f1.txt
3.访问控制列表 ACL
- 置ACL权限:setfacl
查看设置ACL:getfacl
范例:
使yp账户没有权限对yp.txt做任何操作
[15:44:49 yp@yp data]$setfacl -m u:yp:- yp.txt
[15:44:49 yp@yp data]$cat yp.txt
cat: yp.txt: Permission denied
查询yp.txt文件acl权限
[15:46:03 root@yp data]#getfacl yp.txt
# file: yp.txt
# owner: root
# group: root
user::rw-
user:yp:---
group::r--
mask::r--
other::r--
取消yp账户对yp.txt文件的acl限制
[15:46:29 root@yp data]#setfacl -x yp yp.txt
[15:53:06 root@yp data]#getfacl yp.txt
# file: yp.txt
# owner: root
# group: root
user::rw-
group::r--
mask::r--
other::r--
使yp账户可以对yp.txt进行读、写
[15:53:16 root@yp data]#setfacl -m u:yp:rw yp.txt
[15:54:56 root@yp data]#getfacl yp.txt
# file: yp.txt
# owner: root
# group: root
user::rw-
user:yp:rw-
group::r--
mask::rw-
other::r--
将dir文件夹所有文件权限修改:
setfacl -Rm u:yp:rw dir/
- 备份和还原ACL
备份ACL:
getfacl -R /tmp/dir > acl.txt
清除ACL权限:
setfacl -Rb /tmp/dir
还原ACL权限:
setfacl -R --set-file=acl.txt
或setfacl --restore acl.txt
查看ACL权限:
getfacl -R /emp/dir
第四章 文本处理工具
文本编辑工具vim
1.三种常见模式和转换
命令模式
插入模式
扩展命令模式
- 命令模式–>插入模式:
i insert, 在光标所在处输入
I 在当前光标所在行的行首输入
a append, 在光标所在处后面输入
A 在当前光标所在行的行尾输入
o 在当前光标所在行的下方打开一个新行
O 在当前光标所在行的上方打开一个新行
- 插入模式 — ESC-----> 命令模式
- 命令模式 ---- : ----> 扩展命令模式
- 扩展命令模式 ----ESC,enter----> 命令模式
2.命令模式常用命令
ZZ 保存
ZQ 保存退出
H 页首跳转
M 页中跳转
L 跳转到页尾
G 最后一行
gg 第一行
#G 第#行
x 删除字符
#x 删除#个字符
~ 转换大小写
r 替换
dd 剪切行
D 剪切光标处直到行尾
yy、#yy 复制行
P、p 粘贴到上下方
C删除当前光标到行尾,并进入插入模式
cc删除当前并进入插入模式
/ 查找
u、#u 撤销最近更改
U撤销此行所有更改
. 重复操作
#. 重复#次
3.扩展命令模式
w 写(存)磁盘文件
wq 写入并退出
x 写入并退出
X 加密
q 退出
q! 不存盘退出,即使更改都将丢失
r filename 读文件内容到当前文件中
w filename 将当前文件内容写入另一个文件
!command 执行命令
r!command 读入命令的输出
- 地址定界
地址定界格式:
# 具体第#行,例如2表示第2行
#,#
从左侧#表示起始行,到右侧#表示结尾行
#,+#
从左侧#表示的起始行,加上右侧#表示的行数,范例:2,+3 表示2到5行
.
当前行
$
最后一行
.,$ -1
当前行到倒数第二行
%
全文, 相当于1,$
- 查找并替换
格式:
s/查找的内容/替换内容/修饰符
修饰符:
i 忽略大小写
g 全局替换,默认情况下,每一行只替换第一次出现
gc 全局替换,每次替换前询问
- 其他设置
复制保留格式:set paste
自动缩进: set ai
显示TAB和换行符:set list
设置光标所在的标识线:set cul
加密:set key
4.可视化模式
v:按字符选取
V:按行选取
ctrl+v:按列选取
常见文本处理工具
查看文本文件内容
cat:
-E 显示行结束符$
-A 显示所有控制符
-n 显示所有编号
-b 排除空行编号
-s 压缩空行
查看非文本文件内容
- hexdump
- od
- xxd
分页查看内容
more:
-d 显示翻页及退出
/ 搜索
n/N 跳到下个或上个匹配
less分页器:
cat /etc/init.d | less
显示文本前后行内容
- head
-c# 指定取前#行
-n# 指定取前#行
- tail
-f 按文件号追踪
-F 按文件名追踪
-c# 指定后#行
-n# 指定后#行
按列抽取文本
cut:
-d 抽取标准 默认抽取空格
-f# 只抽取第#列
-c 抽取字符
合并文件
paste:
-d 分隔符,默认TAB
-s 显示为一行
文本统计
wc:
-i 计行
-w 单词数
-c 字节数
-m字符总数
-L 显示文件中最长的长度
整理文本
sort:
-r 反向整理
-R 随机排序
-n 按数字大小顺序整理
-h 按计量单位顺序整理
-f 忽略大小写
-u 去重
去重
uniq:
-c 显示每行重复次数
-d 显示重复行
-u 显示不重复行
第五章 正则表达式
基本正则表达式
参数:
* 匹配任意次
.* 任意长度
? 匹配0次或1次
+ 匹配一次以上
{n} 匹配n次
{m,n} 最少匹配m次,最多n次
{,n} 最多n次
{n,} 最少n次
位置锚定:
^ 行首
[^#] 不以#开头
$ 行尾
^$ 空行
< 词首
> 词尾
分组:
( )
扩展正则表达式
字符匹配元字符:
. 任意单个字符
[yuan] 指定范围的字符
[^yuan] yuan之外的字符
[:alnum:] 字母和数字
[:alpha:] 任何英文大小写
[:lower:] 小写字母
[:upper:] 大写字母
[:blank:] 空白字符
[:space:] 垂直的空白字符
[:cntrl:] 不可打印的控制字符
[:digit:] 十进制
[:xdigit:] 十六进制数
[:graph:] 可打印的非空白字符
[:print:] 可打印字符
[:punct:] 标点符号
匹配次数:
- 任意字符
? 0或1次
- 至少一次
{n} n次
{m,n}最少m次,最多n次
位置锚定:
^ 行首
$ 行尾
<,\b 行首
>,\b 行尾
第六章 文本处理工工具-grep
-
格式:
grep [options] PATTERN [FILE…] -
常见选项:
-color=auto 文本颜色(默认)
-m # 匹配#次
-v 显示不被pattern匹配到的行
-i 忽略大小写
-n 显示匹配到的行号
-c 统计匹配的行数
-o 只显示匹配到的字符
-q 静默模式
-A # after 后#行
-B # before 前#行
-C # context 前后各#行
-e 多点编辑
-w 匹配整个单词
-E 正则表达式
-F 不支持正则表达式
-f file 根据模式文件处理
-r 递归,不处理软连接
-R 递归,处理软连接
- 范例:
取文件相同行
[02:37:15 root@localhost ~]#grep -f /data/1.txt /data/2.txt
取磁盘利用率最高的值
[02:41:15 root@localhost ~]#df |grep '^/dev/sd'|tr -s ' ' % |cut -d'%' -f5|sort -nr|head -n1
15