1.这周所学的一些命令的使用
1.1 usermod
(1) 修改用户名:
usermod -l newuser olduser
注意只改变了用户名,其家目录不改变;
(2) 增加描述信息:usermod -c "描述信息" user
(3) 修改登录shell :usermod -s /sbin/nologin user
将用户user修改成不可登陆
(4) 锁定账号:-L
禁止其登录系统
(5)解锁账号:-U
允许其登录系统
1.2 文件查找 which / whereis / find
which: 查找可执行文件的路径
which [-a] command
whereis:查找文件或目录名称whereis file/directory
find:find 路径 参数
三个文件查找其中find查找较全面
参数 | 作用 |
---|---|
-name | 按照名字查找 |
-perm | 安装权限查找 |
-prune | 不再当前指定的目录下查找 |
-user | 文件属主来查找 |
-nogroup | 文件所属组来查找 |
-nouser | 查找无有效所属组的文件 |
-type | 按照文件类型查找 |
1.3 userdel : 删除用户
参数 | 作用 |
---|---|
-f | 强制删除用户 |
-r | 同时删除用户及用户家目录 |
rm删除用户只是将其看为文件删除其还在/etc/passwd下
1.4 权限
命令 | 作用 |
---|---|
chmod | 用于设置文件或目录的权限 |
chown | 用于修改文件属性和权限 |
chgrp | 用于修改文件属性和权限 |
例题:
研发部开发人员David和Peter属于组A,行政部人员Jack和Mike属于组B;
1.建立目录“/project_a”,该目录里面的文件只能由研发部开发人员读取、增加、删除、修改以及执行,其他用
户不能对该目录进行任何的访问操作;
2.建立目录“/project_b”,该目录里面的文件只能由行政部人员读取、增加、删除、修改以及执行,其他用户不
能对该目录进行任何的访问操作;
3.建立目录“/project”,该目录里面的文件可由研发部、行政部人员读取、增加、删除、修改以及执行,其他部
门用户只可以对该目录进行只读的访问操作
#此题只给出两个组,其实要想实现此功能需要3个组。研发部一个组,行政部一个组,包含研发部和行政部需要一
个组。此题目的在于熟悉组、用户、权限相关命令
groupadd a;groupadd b;groupadd ab
echo ‘1’ | passwd --stdin david #其它用户省略
mkdir /project_a;mkdir /project_b;mkdir /project
chgrp ab /project;chgrp a /project_a;chgrp b /project_b
usermod -G a,ab david;usermod -G a,ab peter;usermod -G b,ab mike;usermod -G b,ab jack
chmod 774 /project; chmod 770 /project_a; chmod 770 /project_b
2.ACL
主要用在与提供传统的UGO的读写执行权限之外进行更细致的权限设置,可以针对单一文件,单一用户,单一目录来进行权限设置
2.1查询ACL功能是否启用(默认都启用)cat /boot/config-3.10.0-693.el7.x86_64 | grep -i xfs #centos7.
2.2 设置ACL:setfacl
参数 | 描述 |
---|---|
-m | 设置后续acl参数,不可与-x合用 |
-x | 删除后续acl参数,不可与-m合用 |
-b | 删除全部的acl参数 |
-k | 删除默认的acl参数 |
-R | 递归设置acl,包括子目录 |
-d | 设置默认acl,只对目录有效 |
2.2.1 用法:
setfacl -m u:alice:rx file ; ll file
设置用户alice对文件file具有可读可执行权限并查看设置结果成功否(权限后面显示 +);
setfacl -x u:alice file
删除用户alice对文件file特设权限
setfacl -b file
删除对文件file设置的所有acl参数
echo $?
来查看上句命令是否执行 结果0 执行了
3. vi 文本编译器
3.1 Vi 的三种模式:
命令模式 控制光标移动,可对文本进行复制、粘贴、删除和查找等
输入模式 正常的文本录入 ( i进行 )
末行模式 保存或退出文档 (shift + : )
3.2 vi 输入模式常用命令
命令 | 作用 |
---|---|
dd | 删除(剪切)光标所在整行 |
10dd | 删除(剪切)从光标处开始的10行 |
yy | 复制光标所在整行 |
10yy | 复制从光标处开始的10行 |
p | 删除(dd)或复制(yy)过的数据粘贴到光标后面 |
n | 显示搜索命令定位到的下一个字符串 |
N | 显示搜索命令定位到的上一个字符串 |
u | 撤销上一步的操作 |
ctrl+f | 向文件尾翻一屏 |
ctrl+b | 向文件首翻一屏 |
a | 在当前字符后添加文本 |
i | 在当前字符前添加文本 |
o | 在当前后面插入一空行 |
h、j、k、l | 左、下、上、右 |
shirf + $ | 行尾 |
shift + ^ | 行首 |
shift + G | 尾部 |
gg | 首部 |
3.2 vi 末行模式常用命令
命令 | 作用 |
---|---|
:w | 保存 |
:q | 退出 |
:q! | 强制退出 |
:wq! | 强制保存退出 |
:set nu | 显示行号 |
:set nu | 不显示行号 |
: s/one/two | 当前光标所在行的第一个one替换成two |
: s/one/two/g | 当前光标所在行的所有one替换成two |
:%s/one/two/g | 将全文中的所有one替换成two |
?str | 在文本中从下至上搜索该字符串 |
/str | 在文本中从上至下搜索该字符串 |
4. bash 脚本编辑
4.1 脚本书写
vi test.sh (按i进行编辑)
#!/bin/bash
(头内容解析器)
echo "hello_word"
(shift+x保存退出)
chmod u+x test.sh
(给用户赋执行权限)
执行脚本方法有三种
- 直接路径
直接路径 脚本名
- 当前路径
./ 脚本名
- sh
sh 脚本名