文章目录
零、学习目标
- 了解文件目录权限
- 掌握文件目录权限操作
- 熟悉常用文件目录操作
一、导入新课
- Linux是一款安全性十分良好的操作系统。不仅有用户层面的安全性,还有目录操作层面的安全性,本次课我们要学习Linux的目录权限操作:读权限、写权限和执行权限。另外,常用目录操作也应该掌握,对于我们学习Hadoop奠定一个良好的Linux操作基础。
二、新课讲解
(一)常用权限操作
1、常用权限操作
(1)chgrp命令
- 功能:修改文件所属组
- 语法格式:
chgrp 用户组 文件
- 说明:ch - change;grp - group
(2)chown命令
- 功能:改变文件所有者
- 语法格式:
chown 用户 文件
- 说明:ch - change;own - owner
(3)chmod命令
- 功能:改变文件权限
- 语法格式:
chmod 权限 文件
- 说明:ch - change;mod - mode
- 三种角色(role)
字母 | 角色 |
---|---|
u | 所有者(user) |
g | 用户组(group) |
o | 其他人(other) |
- 三种权限(permission | authority)
字母 | 权限 |
---|---|
r | 可读(readable) |
w | 可写(writable) |
x | 可执行(executable) |
- 两种权限设置方式
方式 | 说明 | 实例 | 实例 | 实例 | 实例 |
---|---|---|---|---|---|
字母方式 | r-w-x | rwx | r | rw | rx |
数字方式 | 4-2-1 100-010-001 | 4+2+1=7 | 4+0+0=4 | 4+2+0=6 | 4+0+1=5 |
chmod 756 love.txt
相当于chmod u=rwx, g=rx, o=rw love.txt
2、权限操作实战
任务1、创建文件,设置其用户组
-
创建文件的方法很多,比如用vim、touch、echo......
-
root用户创建新文件
love.txt
(echo
是输出命令,默认是输出到屏幕;>
是重定向命令)
-
查看文件
love.txt
的用户及用户组
-
将其用户组改为
lzy
用户组(在1.2节曾创建了lzy
用户组),执行命令:chgrp lzy love.txt
(love.txt → \rightarrow →lzy)
-
查看文件
love.txt
的用户及用户组
任务2、修改文件的所有者
- 将root用户所建文件
love.txt
的所有者改变成alice
(在1.2节里创建的普通用户) - 执行命令:
chown alice love.txt
(love.txt ∈ \in ∈ alice)
- 查看文件
love.txt
的所有者信息
任务3、修改文件所有者与用户组
- 将
love.txt
文件所有者改为smith
,用户组改为luzhou
- 查看文件
love.txt
的用户及用户组信息
任务4、修改文件操作权限
-
针对文件
love.txt
,权限字符串:-rw-r--r--
-
权限字符串有10位,分为四个部分。
-
第1位:表示文件类型;
-
表示文件,d
表示目录,l
表示链接 -
第234位:表示文件所有者(user)的读写可执行权限
-
第567位:表示文件所在组(group)的读写可执行权限
-
第89X位:表示文件其他人(other)的读写可执行权限
-
修改文件所有者权限为可读可写可执行(rwx),文件所在组的权限改为可读可执行但是不可写(r-x),文件其他人的权限设置为可读可执行但是不可写(r-x)
-
执行命令:
chmod u=rwx,g+x,o=rx love.txt
(g+x:表明在原来权限基础上添加可执行权限)
-
查看文件
love.txt
的操作权限
-
其实,执行
chmod 755 love.txt
效果完全相同,我们不妨试一试。
-
课堂练习:减去love.txt文件的用户组和其他人的可执行权限(字母方式或数字方式)
-
采用字母方式,执行命令:
chmod g-x,o-x love.txt
-
查看love.txt的详细信息
-
采用数字方式,执行命令:
chmod 744 love.txt
-
查看love.txt的详细信息
(二)常用目录操作
1、常用目录操作
命令 | 功能 |
---|---|
help, man, info | 获得命令帮助 |
pwd | 查看当前的工作目录 |
cd | 切换工作目录 |
ls -l | 以长格式显示文件和目录的列表,包括权限,大小,最后更新时间等信息 |
ls -a | 显示所有子目录和文件的信息,包括以"."开头的隐藏目录和隐藏文件 |
ls -d | 显示目录属主的属性,而不是显示目录内容 |
ls -R | 以递归的方式显示指定目录及其子目录的内容 |
mkdir | 命令创建新的目录,使用"-p"创建嵌套的多层目录结构。 |
du | 统计目录及文件的空间占用情况 |
du -a | 统计磁盘空间占用时包括所有的文件,而不仅仅统计目录 |
du -h | 以K,M单位显示显示统计结果 |
du -s | 只统计每个参数所占空间总大小,而不是统计每个子目录和文件的大小 |
cp | 拷贝目录或文件,允许使用通配符 |
mv | 移动目录或文件 |
rm | 删除目录或文件(rm -rf 强制删除) |
2、目录操作实战
任务1、获取命令帮助信息
- 执行命令:
help pwd
,查看pwd
命令帮助信息
- 执行命令:
man pwd | head -20
,查看pwd
命令帮助信息(p rint w orking d irctory)
- 执行命令:
info pwd | head -20
,查看pwd
命令帮助信息
任务2、查看当前目录
- 执行命令:
pwd
(pwd: print working directory)
- 在后续搭建Hadoop环境时,经常会复制当前目录到配置文件里去使用。
任务3、显示目录(文件)
-
执行命令:
ls
,显示当前目录下的目录文件名(ls - list)
-
执行命令:
ls /home
,显示/home
目录下的目录文件名
-
执行命令:
ls -l
,显示当前目录下的目录文件详细信息
-
说明:
ls -l
相当于ll
命令
-
执行命令:
ls -a
,显示所有子目录和文件的信息,包括以"."开头的隐藏目录和隐藏文件(.
- 当前目录;..
- 父目录)
-
执行命令:
ls .
,查看当前目录的内容
-
执行命令:
ls ..
,查看父目录的内容
-
执行命令:
ls -d
与ls -d /home
,显示目录属主的属性,而不是显示目录内容
-
执行命令:
ls -R /home
,以递归的方式显示指定目录及其子目录的内容(R - recursive)
-
我们换一个目录来试,执行命令:
ls -R /etc/sysconfig
-
注意选项参数是
-R
,不是-r
,用-r
,查看结果是不同的,并没有递归
-
执行命令:
ls -h /etc/sysconfig
任务4、创建目录
-
创建单个目录:mkdir 目录名,在当前目录下创建
test
目录(mkdir - make directory)
-
创建多层目录:mkdir -p 多层目录,在当前目录下创建hw/yl/lzy
-
如果不加参数
-p
,就不能创建原本不存在的多级目录
-
创建平行的多个目录:mkdir 目录1 目录2 目录3......
-
课堂练习 :创建下图所示目录结构(可以有不同的方法来完成任务)
-
方法一:采用参数
-p
直接创建
-
采用递归方式查看刚才创建的目录结构
-
执行命令:
yum -y install tree
,安装tree
,查看目录树
-
修改网卡配置文件,执行命令:
vim /etc/sysconfig/network-scripts/ifcfg-ens33
-
存盘退出,重启网络服务,执行命令:
systemctl restart network
-
执行命令:
yum -y install tree
-
执行命令:
tree /lzy
,查看目录结构
-
为了演示第二种方法,先把
/lzy
目录彻底删除
-
方法二:逐层创建每一级目录
-
逐层创建,需要用到两个命令:mkdir和cd(切换目录)
-
执行命令:
tree /lzy
,查看目录树
任务5、切换目录
-
执行命令:
cd /
,返回根目录
-
执行命令:
cd ~
(~
省掉也是一样的),返回当前用户的主目录,当前用户是root
用户,其主目录是/root
-
howard用户的主目录就是
/home/howard
,由root用户切换到howard用户,当前目录依然是root用户的主目录,即/root
,发布cd ~
命令,切换到howard用户的主目录,即/home/howard
。
-
返回上一级目录:cd ...
-
说明:本来当前目录在
/home/howard
,发布cd..
命令,返回到/home
目录。 -
返回上一次的目录:cd -
-
说明:刚才由
/home/howard
目录,发布cd ..
命令,返回到父目录/home
,紧接着发布cd -
命令,返回上一次的目录,那就是/home/howard
了。
任务6、统计目录及文件空间占用情况
- 执行命令:
du
- 执行命令:
du -a
- 执行命令:
du -h
任务7、复制目录(文件)
- 拷贝单个文件到当前目录
- 拷贝单个文件到指定目录
- 退出普通用户环境,返回根用户环境
- 拷贝单个文件到指定目录
- 拷贝多个文件到指定目录
- 拷贝目录(包括一切子目录的内容),需要一个参数
-r
。
任务8、移动目录(文件)
- 移动文件:将
hw1
目录下的CentOS-Base.repo
文件移到当前目录
- 移动目录:将
hw2
目录下的yum
目录移到hw1
目录
任务9、删除目录(文件)
- 删除文件:将
hw1
目录下以Cent
打头的文件全部删除
- 删除目录:删除
hw1
目录下的yum
目录
- 如果用这种方式来删除一个目录,那是很麻烦的,尤其当目录里有很多子目录或文件
- 强制删除目录:
rm -rf hw1/yum
三、归纳总结
- 回顾本节课所讲的内容,并通过提问的方式引导学生解答问题并给予指导。
四、上机操作
- 形式:单独完成
- 题目:目录权限操作与常用目录操作
- 要求:按照讲课笔记,完成全部目录权限操作与常用目录操作,每个操作都必须截图,发一篇CSDN博客。