• 1.3 Linux目录操作


    零、学习目标

    1. 了解文件目录权限
    2. 掌握文件目录权限操作
    3. 熟悉常用文件目录操作

    一、导入新课

    • 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-xrwxrrwrx
    数字方式4-2-1
    100-010-001
    4+2+1=74+0+0=44+2+0=64+0+1=5
    • chmod 756 love.txt相当于chmod u=rwx, g=rx, o=rw love.txt

    2、权限操作实战

    任务1、创建文件,设置其用户组
    • 创建文件的方法很多,比如用vim、touch、echo……

    • root用户创建新文件love.txtecho输出命令,默认是输出到屏幕;>重定向命令)
      在这里插入图片描述

    • 查看文件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命令帮助信息(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 -dls -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博客。
  • 相关阅读:
    Unix/C/C++进阶--pthread 跨平台
    [附源码]SSM计算机毕业设计新闻发布和评论管理系统JAVA
    追求极致性能,RocketMQ 消息通信详解
    vue 与 swiper结合使用时,swiper效果失效
    结构优于制度,软件开发中的康威定律
    机器学习 | Python实现KNN(K近邻)算法模型
    day43 数据库
    UNITY2022打包window无法窗口化的问题
    数据序列化协议 Protocol Buffers(Protobuf) 认知
    volatile-读写屏障插入策略
  • 原文地址:https://blog.csdn.net/howard2005/article/details/133802655