• Linux:Day3 文件系统


    Linux的文件系统:

      根文件系统(rootfs):root filesystem

        

        /boot:引导文件存放目录:内核文件(vmlinuz)、引导加载器(bootloader,grub)都存放于此目录;

        /bin:供所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序;

        /sbin:管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序;

        /lib:基本共享库文件,以及内核模块文件(/lib/modules);

        /lib64:专用于x86_64系统上的辅助共享库文件存放位置;

        /etc:配置文件目录(纯文本文件);

        /home/USERNAME:普通用户家目录;

        /root:管理员的家目录;

        /media:便携式移动设备挂载点;cdrom、usb

        /mnt:临时文件系统挂载点;

        /dev:设备文件及特殊文件存储位置;

          b:block device,随机访问

          c:character device,线性访问

        /opt:第三方应用程序的安装位置;     以前用的比较多,现在用的少了

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

        /tmp:临时文件存储位置;

        /usr:universal shared,read-only data;

          bin:保证系统拥有完整功能而提供的应用程序;

          sbin:

          lib:

          lib64:

          include:C程序的头文件(header files);

          share:结构化独立的数据,例如doc,man等;

          local:第三方应用程序的安装位置:

            bin, sbin, lib, lib64, etc, share

        /var:variable data files

          cache:应用程序缓存数据目录;

          lib:应用程序状态信息数据;

          local:专用于为/usr/local下的应用程序存储可变数据;

          lock:锁文件

          log:日志目录及文件;

          opt:专用于为/opt下的应用程序存储可变数据;

          run:运行中的进程相关的数据;通常用于存储进程 的pid文件;

          spool:应用程序数据池;

          tmp:保存系统两次重启之间产生的临时数据;

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

        /sys:用于输出当前系统上硬件设备相关信息的虚拟文件系统;

        /selinux:seccrity enhanced Linux,selinux相关的安全策略等信息的存储位置;

      Linux上的应用程序的组成部分:

        二进制程序:/bin, /sbin,  /usr/bin, /usr/sbin,  /usr/local/bin, /usr/local/sbin

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

        配置文件:/etc, /etc/DIRECTORY, /usr/local/etc

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

      Linux下的文件类型:

        - (f):普通文件

        d:目录文件;

        b:块设备;

        c:字符设备;

        l:符号链接文件;

        p:管道文件;

        s:套接字文件;

       

    bash的基础特性:

      (1)命令历史

        history

          环境变量:

            HISTSIZE:命令历史记录的条数;

            HISTFILE:~/.bash_history;

            HISTFILESIZE:命令历史文件记录历史的条数; 

          history -d OFFSET:删除指定偏移量所在的命令;

                -c:删除所有命令历史

                 #:显示历史中最近的#条命令;

                -a:手动追加当前会话缓冲区的命令历史至历史文件中;

        调用历史中的命令:

          !#:重复执行第#条指令;

          !!:重复执行上一条命令;

          !string:执行以字符开头的最近一条命令;

        调用上一条命令的最后一个参数:

          !$

          Esc, .

          Alt+.   并不是所胡系统都支持,建议使用前两种;

        控制命令历史的记录方式:

          环境变量:HISTCONTROL

            ignoredups:忽略重复的命令;连续且相同方为“重复”;

            ignorespace:忽略所有以空白开头的命令;

            ignoreboth:前面两种都忽略

          修改环境变量值的方式:export 变量名=“值”

            变量赋值:把赋值符号后面的数据存储于变量名指向的内容空间;

      (2)命令补全

        bash执行命令:

          内部命令:

          外部命令:bash根据PATH环境变量定义的路径,自左至右在每个路径搜寻给定命令名命名的文件,第一次找到即为要执行的命令;

            直接补全:Tab,用户给定的字符串只有一条唯一对应的命令;

            以用户给定的字符串为开头命令不唯一,则再次Tab会给出列表;

      (3)路径补全

        把用户给出的字符串当做路径开头,并在其指定上级目录下搜索已指定的字符串形状不的文件名;

          如果唯一:则直接补全;

          否则:再次Tab,给出列表;

       (4)命令行展开

        ~:展开为用户的主目录

        ~USERNAME:展开为指定用户的主目录

        {}:可承载一个以逗号分隔的列表,并将其展开为多个路径

          /tmp{a,b} = /tmp/a, /tmp/b

          /tmp/{tom,jerry}/hi = /tmp/tom/hi, /tmp/jerry/hi

      (5) 命令的执行结果状态

        成功

        失败

        bash使用特殊变量$?保存最近一条命令的执行状态结果:

          0:成功

          1-255:失败

        程序执行有两类结果:

          程序的返回值;

          程序的执行状态结果;

    目录管理类命令:

      cd,pwd,ls

      mkdir,rmdir

      mkdir [OPTION]... DIRECTORY...      

        不加选项时,如果路径中除了最后一个目录之外还有其它的目录也不存在,则报错!

              如果想创建的目录已经存在,则报错!

        -p:如果路径中除了最后一个目录之外还有其它的目录也不存在,则自动创建其它目录!

          如果想创建的目录已经存在,不报错,也不会创建,相当于没执行此命令。

        -v:显示详细信息。

        -m MODE:创建目录时直接指定权限。

      tree:

        -d:只显示目录

        -L level:指定显示的层级数目

        -P pattern:只显示由指定pattern匹配到的路径;

      

      rmdir:删除空目录

        rmdir [OPTION]... DIRECTORY...

          只能删除空目录,如果有文件则会报错。

          -p:删除目标目录后,如果其父目录也为空目录,则也删除,直至非空目录停止。

        

        练习:

          (1) 如何创建/tmp/x/y1, /tmp/x/y2, /tmp/x/y1/a, /tmp/x/y1/b, /tmp/x/y2/a, /tmp/x/y2/b

          (2) 如何创建x_m, y_m, x_n, y_n

          (3) 如何创建/tmp/bin, /tmp/sbin, /tmp/usr, /tmp/usr/bin, /tmp/usr/sbin

          

      文本文件查看类命令:

        cat, tac

        more, less, tail, head

        

        tail [OPTION]... [FILE]...

          -c #:指定获取后#字节

          -n #:指定获取后#行,可简写为-#

          -f:跟踪显示文件新追加的内容;

      文件的时间戳管理工具:

        touch

        文件:metadata, data

          查看文件状态:stat

        三个时间戳:

          access time:访问时间,简写为atime,读取文件内容

          modify time:修改时间,mtime,改变文件内容(数据)

          change time:改变时间,ctime,元数据发生改变

        touch [OPTION]... FILE...

          -a:only atime

          -m:only mtime

          -t STAMP:[[CC]YY]MMDDhhmm[.ss]

          -c:如果文件不存在,则不创建!

          

          

  • 相关阅读:
    vb教程图文并茂
    一个文本框的andriod教程
    5月18日,完成导入数据,但是从命令行显示数据乱码,程序已经正常工作
    android 文件读写权限的设定
    raw目录的位置是D:android_projectsqrscanappsrcmain es aw
    一个在raw里面放着数据库文件的网上例子
    P1446 [HNOI2008]Cards [Burnside引理]
    UVA11255 Necklace [Polya定理]
    Polya 定理入门[Burnside引理,Polya定理,欧拉函数]
    P2831 愤怒的小鸟 [状压dp/模拟退火]
  • 原文地址:https://www.cnblogs.com/sq5288/p/9441049.html
Copyright © 2020-2023  润新知