zoukankan      html  css  js  c++  java
  • 文件系统

    在Linux中,一切都是文件,linux所有存储空间和设备共享一个根目录

    1文件的层次结构

    ## 1.1树形文件结构
    apt install tree
    tree /home
    

    #####目录是逻辑上分区,分区是物理上分区,创建分区 提升搜索效率

    1.2路径名

    1.2.1绝对路径

    从根目录开始计算

    #打印当前工作路径
    pwd
    

    1.2.2相对路径

    相对于当前路径而言

    1.2.2.1四种表示方法

    • ./doc 当前路径 .
    • ../log 父路径..
    • ~chun 某个用户的主目录
    • ~ 当前用户主目录 好处:不受绝对路径的限制 配置文件常用 简化路径的输入
    改变当前工作路径
    cd 
    

    常见的系统目录 cdrom 光盘挂载点
    media 移动介质的挂在点 mnt 文件系统的临时挂载点 opt 可选程序的安装 sys 各种系统配置信息 var(日志文件 根目录的子目录)和 usr dev 当前设备支持的所有设备文件 sda 第一个磁盘 mem系统物理内存 etc linux 控制中心

    2文件类型

    2.1普通文件

    文件名256字内 文件名 由 字母 数字 点 下划线 连字符

    2.1.1.纯文本文件

    2.1.2.二进制文件 可执行文件几乎都是二进制文件 cp cat su rm 不能直接阅读,而是给计算机执行

    shell属于文本文件

    2.1.2.3.其他特定数据格式的文件 Mysql数据库文件 只能通过Mysql管理系统来读取和修改 ll

    file命令查看文件的具体属性 file /etc/profile

    2.2目录文件 开头显示d

    ll | grep '^d'
    将ll的输出结果给后面 做筛选
    

    2.3字符设备文件 c 开头是c 有序

    硬件设备 以字符流发送 包括键盘 鼠标 打印进 ls -l /dev

    2.4块设备文件 乱序 磁盘可以随机访问

    可以随机访问 配置了高级缓存 磁盘 U盘 sd卡

    ll /dev |grep '^b'
    ### 辨析 os 对硬盘的读写按块执行  缓存
    磁盘裸设备    应用程序来直接访问   此时是字符使用   oracle  就是这样
    
    ## 2.5管道   连接管子与管子   转换管      以p开头
    ###分类 :匿名管道和命名管道
    | 连接两个命令的
    

    ls- l /etc |more

    命名管道的创建和读写数据的方法
    在shell通过命令交互式创建管道
    通过调用系统函数命名管道
    • mknod
    mknod fifo p      # fifo 命名管道文件  #p表示为管道文件
    ls - fifo
    ls -l fifo
    
    • mkfifo
    mkfifo  fifo
    ls -l fifo
    
    gcc m.c
    ./a.out
    cat<info
    # <重定向 将后面重定向给cat 
    

    ##2.6 套接字 是一种方便进程之间通信的特殊文件 用于编写程序 MySQL套接字
    以s开头

    2.7文件链接

    就是对文件的引用 链接就是他所对应的原始文件

    2.7.1符号链接 软连接 开头是l

    相当于一个指针 可以跨系统 用户需要对文件具有访问权限

    2.7.2硬链接

    当用户删除或移动原始文件 硬链接不会被破坏 第三列为 硬链接数

    3.文件权限

    3.1基本权限和特殊权限

    3.1.2基本权限

    • 3个权限组: 文件所有者u,文件所属组g 以及其他用户o 所有用户用a
    • 3个基本权限类型: 读r 写w(写入修改 目录内容) 执行x(进入某个目录) 没有权限用连字符表示 二进制表示法 100 010 001 4 2 1

    3.1.3特殊权限

    setuid setgid 黏滞位 允许用户暂时提高权限 使用常在 执行某个特殊任务 暂时提升权限
    存储账户和密码 /etc/passwd /etc/shadow setuid setgid 用s表示 setuid 占用所有者权限的第3个字符即x所在的位置 如何setuid或者gid和x权限同时拥有 2种权限叠加要小写s表示 一种用S表示 数字表示法setuid在权限的最高位用十进制数字4表示 setgid 在权限的最高位用十进制2表示 同时设置setid 和可执行权限

    黏滞位 切切与2种特殊权限相反 功能只有文件所有者才能修改或者删除/tmp目录中的文件 在文件权限用t表示 占用其他用户权限第3个字符 即x所在位置 如果设置可黏滞位和执行权限用t表示 用十进制1表示

    3.2显示文件权限

    ls -l bash 权限 755

    3.3修改文件权限

    R递归修改文件权限
    chmod -R 755 /123
    + 增加 -删除
    chmod g+w /123
    chmod g+w,o+w /123
    mkdir -p  递归创建
    touch 创建一个空白文件
    
    

    遵循 最小权限的原则

    3.4更改文件所有权

    chown -R 实现递归更改 sudo chown -R root dir1 #同时更改文件所有者或所属组 sudo chown root:root dir1 所属组和所属用户没有必然联系

    3.5文件特殊权限

    if 目录文件和目录同时设置执行 则用小写字母 s和t表示 只有特殊权限用 S和T表示

    chmod u+s data 为data文件设置setid权限 +s 表示设置setuid 权限 setgroudid chomod g+s /123

    setxxx 通常在可执行文件上面 黏滞位通常在非可执行文件或者目录 黏滞位位于其他用户权限组 表示方法为t chmod o+t data

    设置setid chmod 4751 dir1 4是setuid 权限

    S或者T 没有个执行权限

  • 相关阅读:
    JVisualVM简介与内存泄漏实战分析
    高并发性能提升和超卖的解决方案
    ehcache应用场景及集群同步(RMI)
    一台机器配置多个tomcat的实践经验
    事务范围数据库读写分离失败
    基于spring的数据库读写分离
    Zookeeper linux下使用
    Zookeeper集群
    Dubbo入门实例(二)
    Zookeeper安装与启动
  • 原文地址:https://www.cnblogs.com/zhenqk/p/12159132.html
Copyright © 2011-2022 走看看