zoukankan      html  css  js  c++  java
  • 3-2 LInux文件管理

    LInux文件管理

    文件系统目录结构

    Linux中目录结构是有一定的约定的FHS

    • /bin:存放二进制程序
    • /boot:启动相关
    • /dev:设备文件
    • /etc:配置文件
    • /home:用户家目录
    • /lib:库文件
    • /lib64:64位库文件
    • /madia:关盘等设备
    • /mnt:外部设备挂载点
    • /opt:存放第三方程序(现在用的少)
    • /proc:虚拟目录对应内存中的内容
    • /root:root账号家目录
    • /run:存放正在运行中的相关文件
    • /sbin:管理员执行的二进制程序
    • /sys:存放硬件相关
    • /tmp:临时文件夹
    • /usr:二层根,存放很多内容,比如man手册
    • /var:变化的内容,比如日志

    在Linux中对文件名称大小写敏感,由于文件系统对大小写敏感导致的,如FATFS的U盘挂载到LInux下大小写时不敏感的,所以Linux系统对文件大小写并不敏感,而是文件是同对大小写敏感

    文件系统细节

    文件系统和目录被组织成一个单根的导致树结构,文件系统从根目录下开始,用“/”表示,跟文件系统为“rootfs:root filesystem”,文件名称曲风大小写,以"."开头的文件为隐藏文件,路径分隔使用"/"符号,文件有两类数据:元数据和数据

    文件名规则

    • 文件名最长255个字节
    • 包括路径在内的文件名称最长4095个字节
    • 有不同的颜色区分不同文件
      • 目录:蓝色
      • 可执行文件:绿色
      • 压缩文件:红色
      • 连接文件:浅蓝色
      • 其他文件:灰色

      颜色是可以惊醒定义和修改的/etc/DIR_COLORS这个文件就是用来定义文件颜色的,更改这个配置文件就会改变颜色

    • 除了斜杠"/"和NUL,所有字符都有效,但是用特殊字符的目录名和文件不推荐使用,有些字符需要使用引号引用
    • 标准Linux文件系统(如ext4)对文件名称大小写敏感

    CentOS7的目录变化

    • /bin和/usr/bin
    • /sbin和/usr/sbin
    • /lib和/usr/lib
    • /lib64和/usr/lib64

    在CentOS7中这些目录已经是一个目录了

    Linux下的文件类型

    • -:普通文件
    • d:目录文件
    • b:块设备
    • c:字符设备
    • l:符号链接文件
    • p:管道文件pipe
    • s:套接字文件

    特殊文件/dev/zero指的是NUL,可以输出NUL

    /dev/null黑洞设备,可以将不要的内容输出值此设备

    dd if=/dev/zero of=f1.txt bs=1 count=1 分别指输入,输出,一次读入大小,读入几次

    hexdump -C 查看十六进制文件

    查看与切换目录

    pwd             #查看所在文件夹
    pwd -P          #查看真实路径
    cd 或 cd ~      #切换到自己的家目录
    cd ~USER        #可以切换到USER用户家目录
    cd -            #切换到上一个所在的目录
    $OLDPWD         #这个变量存放了上一次所在的目录
    

    时间戳

    ctime = Change time为元数据更改时间
    mtime = Modify time为内容更改时间
    atime = Access time为访问时间(一天之内再次访问不做修改,有个例外,当都时间比些时间要早时有访问会更新,centos6开始)
    stat命令可以查看文件元数据

    查看目录的文件列表

    ls                  #默认列出文件夹下的文件泪飙(不包含隐藏文件)
    ls -a               #列出文件夹所有文件
    ls -A               #列出文件夹除. ..以外的为念列表
    ls -l               #列出晚间的详细信息,默认显示时间为mtime内容更改时间
    ls -d               #只列目录本身的属性,不进入目录
    ls -R               #递归显示子目录里的文件列表
    ls -$               #一行显示$个文件
    ls -S               #按从大到小排序
    ls -r               #倒序排列信息
    ls -t               #按找mtime排序
    ls -l --time=ctime  #查看文件ctime也可以查看atime
    ls -X               #以文件后缀分类显示
    ls -h               #以人类易读的方式显示大小
    stat FILE           #查看文件元数据
    

    绝对路径与相对路径

    绝对路径指从根开始,路径指定到目标
    相对路径一般相对现在所在的目录,有些特殊情况相对于其它路径

    .               #当前目录
    ..              #父目录
    ../../../../../ #当上级目录数量超过根时,由于根的父目录也是根,所以会一直为根
    

    基名与目录名

    /etc/sysconfig/network              #以这个文件为例
    basename /etc/sysconfig/network     #取其基名
    #结果为network
    dirname /etc/sysconfig/network      #取其目录名
    #结果为/etc/sysconfig
    

    通配符模式

    ls *.txt                #显示以txt为后缀的文件(.txt不会被列出来)
    ls *                    #将所有文件列出,目录则进入目录并列出其文件列表
    ls -d *                 #只显示目录本身不深入目录显示文件列表
    ls .* * -d  或 ls -a  * #显示所有文件
    

    *:匹配零个或多个字符
    ?:匹配任何单个字符
    ~:当前用户家目录
    ~USER:用户USER家目录
    ~+:当前工作目录
    ~-:前一个工作目录
    [0-9]:匹配数组范围
    [a-z]:字母aAbB
    [A-Z]:字母AaBb
    [STRING]:匹配列表中任何一个字符
    [^STRING]:匹配列表中所有字符以为的字符
    预定义的字符类:man 7 glob
    [:digit:]:任意数字相当于[0-9]
    [:lower:]:任意小写字母
    [:upper:]:任意大写字母
    [:alpha:]:任意大小写字母
    [:alnum:]:任意数字或字母
    [:blank:]:水平空白字符
    [:space:]:水平或垂直空白字符
    [:punct:]:标点符号
    [:print:]:可打印字符
    [:cntrl:]:控制(非打印)字符
    [:graph:]:图形字符
    [:xdigit:]:十六进制字符

  • 相关阅读:
    10本Java程序员有助成长的书
    Java最新学习路线图
    2020最新版Java学习路线图
    自己的Java学习经历
    Java并发编程学习教程
    2020年最新Java学习路线
    Java Stream入门知识讲解
    你可能不知道的java14新特性
    Windows下获取当前目录路径,及创建新的文件夹方法
    win10下_findnext报oxc0000005错误解决
  • 原文地址:https://www.cnblogs.com/kjalbert/p/11578848.html
Copyright © 2011-2022 走看看