Linux目录操作
Linux是一款安全性十分良好的操作系统。不仅有用户层面的安全性,还有目录操作层面的安全性,本次课我们要学习Linux的目录权限操作:读权限、写权限和执行权限。另外,常用目录操作也应该掌握,对于我们学习Hadoop奠定一个良好的Linux操作基础。
一、常用权限操作
(一)、常用权限操作
(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 |
chmod 756 love.txt
相当于chmod u=rwx, g=rx, o=rw love.txt
(二)、权限操作
1、创建文件,设置其用户组
-
创建文件的方法很多,比如用vim、touch、echo……
-
root用户创建新文件
love.txt
(echo
是输出命令,默认是输出到屏幕;>是重定向命令)
-
查看文件
love.txt
的用户及用户组
-
将其用户组改为
lzy
用户组(在1.3节曾创建了lzy
用户组),执行命令:chgrp lzy love.txt
(love.txt→lzy)
-
查看文件love.txt的用户及用户组
2、修改文件的所有者
- 将root用户所建文件
love.txt
的所有者改变成alice
(在1.3节里创建的普通用户) - 执行命令:
chown alice love.txt
(love.txt ∈ alice)
- 查看文件
love.txt
的所有者信息
3、修改文件所有者与用户组
- 将
love.txt
文件所有者改为smith
,用户组改为luzhou
- 查看文件
love.txt
的用户及用户组信息
4、修改文件操作权限
-
针对文件
love.tx
t,权限字符串:-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的详细信息
二、常用目录操作
(一)、常用目录操作
命令 | 功能 |
---|---|
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
命令帮助信息(print working dirctory)
- 执行命令:
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直接创建
-
在这里插入图片描述
-
采用递归方式查看刚才创建的目录结构
在这里插入图片描述
方法二、逐层创建每一级目录
-
逐层创建,需要用到两个命令:mkdir和cd(切换目录)
-
执行命令:·tree /lzy·,查看目录树
安装tree
执行命令:yum -y install tree
,安装tree
,查看目录树
修改网卡配置文件,执行命令:vim /etc/sysconfig/network-scripts/ifcfg-ens33
-
存盘退出,重启网络服务,执行命令:
systemctl restart network
-
执行命令:
yum -y install tree
-
执行命令:
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