文件系统基础

   操作系统用于明确存储设备或分区上文件的存储结构,在存储设备上组织文件的方式,它主要负责为用户创建文件、存入、读出、修改、删除、复制、剪切等来控制文件。


Linux文件系统结构:一个倒立的树状结构,层级,有索引

    /:原始起点

        /dev/pts/2:

                最左侧/:为根目录

            其它/:为路径分隔符


    文件路径表示:

        绝对路径:以根目录为起点的路径

        文件系统以及基本命令讲解_filesytem从根目录开始的路径(绝对路径)

        相对路径:以指定目录为起点的路径

        文件系统以及基本命令讲解_filesytem_02从当前目录开始的路径(相对路径)

    

    文件命名法则:

        1.不能超过255个字符

        2.严格区分大小写

        3.同一级目录下,不可出现两个文件名同名

        4.可以使用/以外的所有字符


    文件系统结构:

        /boot:存放开机启动文件,内核文件,Bootloader引导程序

        /etc:存放配置文件

        /dev:存放特殊文件

            b:block设备,随机访问,以块为单位

             c:character设备,线性访问,以字符为单位

        /home:存放普通用户的家目录

        /bin:存放基本用户命令,普通用户可执行

        /sbin:存放管理命令,只有管理员才有权限执行

        /usr:存放共享文件以及二进制文件

        /var:经常可变化的文件

        /lib:存放程序所依赖的库文件

        /lib64:存放用于x86_64系统上的库文件

        /root:管理员家目录

        /opt:第三方程序文件

        /mnt:默认文件系统挂载点

        /media:默认光盘挂载点

        /tmp:存放临时文件

        /srv:系统上运行的服务用到的数据

        /proc:用于输出内核与进程相关信息的伪文件系统

        /sys:用于输出当前系统上硬件相关信息的伪文件系统


linux上的程序组成:

    1.二进制文件:/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin

    2.库文件:/lib, /lib64, /usr/lib, /usr/lib64, /usr/local/lib, /usr/local/lib64

    3.帮助文件:/usr/share/man, /usr/share/doc, /usr/local/share/man, /usr/local/share/doc

    4.配置文件:/etc, /etc/DIRECTORY, /etc/local/etc


linux下文件类型:


    -:普通文件

    d:目录文件

    l:链接文件

    b:块设备文件

    c:字符设备文件

    p:管道文件

    s:套接字文件


基础命令

cd命令:切换当前用户的工作目录

    cd [OPTIONS...] DIORECTORY

        cd /PATH:切换至指定工作目录

        文件系统以及基本命令讲解_filesytem_03

        cd ~:切换至用户家目录

        文件系统以及基本命令讲解_filesytem_04

        cd ~USERNAME:切换指定用户的家目录

        文件系统以及基本命令讲解_filesytem_05

        cd -:与上一次所在工作目录之间来回切换

        文件系统以及基本命令讲解_filesytem_06

        cd ..:切换之上一级目录

        文件系统以及基本命令讲解_filesytem_07

    

    ls命令:显示当前目录或指定目录下的文件列表

        ls [OPTIONS...] DIRECTORY

            -l:显示文件的详细信息文件系统以及基本命令讲解_filesytem_08

            -d:只显示目录文件本身

文件系统以及基本命令讲解_filesytem_09

            -i:显示每个文件的inode号

文件系统以及基本命令讲解_filesytem_10

            -h:对文件大小做单位换算,一般和-l选项结合用

文件系统以及基本命令讲解_filesytem_11

            -R:递归显示目录下所有文件以及子目录下的文件

文件系统以及基本命令讲解_filesytem_12

            -r:逆序显示文件列表

文件系统以及基本命令讲解_filesytem_13

            -a:显示目录下所有文件,包括以.开头的文件

文件系统以及基本命令讲解_filesytem_14

            -A:除了.和..以外,其余都显示

文件系统以及基本命令讲解_filesytem_15

            -S:文件以大到小排序显示

文件系统以及基本命令讲解_filesytem_16

            -Sr:文件从小到大显示

文件系统以及基本命令讲解_filesytem_17

文件通配符:

    *:匹配任意字符任意次

    ?:匹配任意单个字符

    []:匹配指定范围内任意单个字符

    [^]:匹配指定范围外任意单个字符

    [0-9]:匹配数字范围

    [a-z]:匹配字母范围

    [abc123]:范围内任意一个字符

预定义的字符类:#man 7 glob 可查看帮助

    [:digit:]:匹配任意单个数字

    [:alpha:]:匹配任意单个大小写字母

    [:space:]:匹配空白字符

    [:punct:]:匹配任意特殊字符

    [:upper:]:匹配大写字母

    [:lower:]:匹配小写字母

    [:alnum:]:匹配字母或数字


    pwd命令:显示当前用户所在工作目录

        文件系统以及基本命令讲解_filesytem_18

    当前工作目录环境变量$PWD

    上一次所在目录环境变量$OLDPWD

    文件系统以及基本命令讲解_filesytem_19

    

    stat命令:查看文件元数据,包括文件时间戳,权限,大小,属主属组,链接数等

        文件三个时间戳:

            Access time:访问时间,读取文件内容时将改变此时间戳

            Modify time:修改时间,修改文件内容时将改变此时间戳

            Change time:改变时间,文件元数据发生变动时,将改变此此时间戳

文件系统以及基本命令讲解_filesytem_20


    touch命令:修改文件时间戳或创建空文件

        touch [OPTIONS...] FILE...

            -a:更新文件的访问时间戳

文件系统以及基本命令讲解_filesytem_21

            -m:更新文件的修改时间戳

文件系统以及基本命令讲解_filesytem_22

            -c:刷新文件的所有时间戳,如果文件不存在,则不予创建

文件系统以及基本命令讲解_filesytem_23

            -t DATE:明确指定文件时间戳

                YYmmddHHMM.S

文件系统以及基本命令讲解_filesytem_24

            touch FILE:创建空文件

文件系统以及基本命令讲解_filesytem_25


    cp命令:复制文件或目录

        cp [OPTIONS...] SOURCE DEST

        cp SRC DEST:单源复制

            如果DEST存在,且为文件,把SRC文件内容覆盖至DEST

            如果DEST不存,则创建,并把文件内容覆盖至DEST

            如果DEST存在,且为目录,在DEST目录下创建一个与SRC同名的文件,并把内容填充至此

        cp SRC... DEST:多源复制

            如果DEST不存在,则报错

            如果DEST存在,且为目录,则将SRC...复制到DEST目录下

            如果DEST存在,且为文件,报错

        cp SRC DEST:单源复制,源为目录,需要加-r选项

            如果DEST存在,且为目录,将SRC目录复制到DEST目录下

            如果DEST存在,则为文件,报错

            如果DEST不存在,则创建DEST目录,并把SRC目录下所有文件复制到DEST目录

        -r:复制目录文件,默认只能复制文件

文件系统以及基本命令讲解_filesytem_26

        -f:强制

        -i:交互式

文件系统以及基本命令讲解_filesytem_27

         -p:保留原文件的ownership,mode,timestamp属性

文件系统以及基本命令讲解_filesytem_28

        -a:归档

        -v:显示详细过程

文件系统以及基本命令讲解_filesytem_29

        --preserv=

           mode:权限

           ownership:属主属组

          timestamp:时间戳

          link:链接属性

          all:所有


命令别名:定义别名可以简化操作,提高命令执行效率

alias:显示当前shell进程所定义的别名

定义别名:

    alias NAME='COMMAND'

文件系统以及基本命令讲解_filesytem_30

撤销别名:

    unalias NAME

文件系统以及基本命令讲解_filesytem_31

执行原始命令:

    \COMMAND

    'COMMAND'

    /PATH/TO/COMMAND

文件系统以及基本命令讲解_filesytem_32

在命令行定义别名只对当前shell进程有效,如果想永久有效,则需要定义在配置文件当中

/etc/bashrc:全局配置,所有用户都生效

~/.bashrc:只对当前用户生效


练习:

    1、定义别名命令baketc,每天将/etc/目录下所有文件,备份到/testdir独立的子目录下,并要求子目录格式为backupYYYY-mm-dd,备份过程可见

文件系统以及基本命令讲解_filesytem_33

    2、创建/testdir/rootdir目录并复制/root所有下文件到该目录内,要求保留原有权限

文件系统以及基本命令讲解_filesytem_34


mv:移动或重命名文件或目录

    工作机制与cp命令一致

    mv [OPTIONS...] SRC DEST

        -i:交互式

        -f:强制

    重命名文件名:mv NAME NEWNAME

     文件系统以及基本命令讲解_filesytem_35


rm:删除文件或目录

    rm [OPTIONS...] FILE...

        -r:递归删除

        -f:强制删除

        -i:交互式

    注意:危险操作 rm -rf /*

文件系统以及基本命令讲解_filesytem_36



tree命令:以树状格式查看目录结构

-L:查看目录级别

-d:只显示目录

文件系统以及基本命令讲解_filesytem_37

mkdir命令:创建目录

-p:递归创建

-v:显示详细信息

-m MODE:创建目录时,指定权限

文件系统以及基本命令讲解_filesytem_38

rmdir命令:删除空目录

-p:递归删除空目录

-v:显示过程


file命令:查看文件内容类型

file [OPTIONS...] FILE...

-b:列出命令结果,不显示文件名

-c:显示命令执行过程

-f:列出指定文件中的文件的类型

-L:查看软链接文件对应的文件类型

-F:使用指定分隔符号替换输出文件名后默认的”:”分隔符

-i:输出mime类型的字符串

-z:尝试去解读压缩文件的内容

文件系统以及基本命令讲解_filesytem_39