• Linux文件目录磁盘基本知识


    目的:了解Linux文件系统

    Linux系统常用的命令

    # uname (Unix Name)系统相关的命令
    # 查看Linux系统的内核版本
    uname -r 
    

    系统环境变量PATH

    # 显示系统变量的环境,一般配置可执行文件的路径,这样在执行可执行文件的时候不需要输入全路径了
    echo $PATH
    
    

    文件与目录管理

    目录相关的操作

    # cd(change directory) 切换目录
    cd /etc
    
    # pwd(print working directory) 显示当前的工作路径
    pwd -P // 显示文件的物理物理,即使是快捷键
    
    # mkdir 创建新的文件夹
    # -m 设置创建文件夹的权限,不需要看预设权限umask
    mkdir -m 777 hello
    # -p 创建多个文件夹
    mkdir -p hello/world
    
    # rmdir 删除空的文件夹
    # -p 连同父文件夹如果是空的也删除
    rmdir -p hello/world # 如果hello也是空文件夹,hello文件夹也会被删除
    
    

    文件的相关操作

    # ls list 显示文件夹下的文件详细内容
    ls -a // 全部文档,连同隐藏文件
    ls -A // 全部文档,连同隐藏文件(除了.和..)
    ls -d // 仅列出目录本身,而不是列出目录内的文件
    ls -f // 直接列出结果,而不进行排序(ls默认按照文件名排序)
    ls -F // 根据文件、目录等信息,给予附加数据结构表示文件类型
    ls -h // 将文件大小较易人类阅读的方式显示(KB,MB,GB)
    ls -i // 列出inode号
    ls -l // 长数据串行,包含文件的属性与权限等数据
    ls -n // 列出uid和gid而非使用者与群组的名称
    ls -r // 将排序结果反向输出
    ls -R // 连同字目录内容一起列出,相当于该目录下的所有文件都会列出
    ls -S // 以文件大小排序,而非文件名进行排序
    ls -t // 以时间排序,而非文件名进行排序
    ls --color=never // 不要按照文件的特性给于颜色显示
    ls --color=always // 显示颜色
    ls --color=auto // 让系统根据设定来判断是否显示颜色
    ls --full-time // 以完整的时间格式输出
    ls --time={atime,ctime} // 输出access时间或改变权限属性时间(ctime)而非内容变更时间(modification time) 已被-c和-u替换
    
    # cp 复制 注意如果src有多个来源,则目标文件必须是个文件夹 cp -a src1 src2 des
    cp -a src des // 相当于-pdr的意思
    cp -d src des // 如果复制的src是链接文件的属性(link file), 则复制链接文件属性而非文件本身
    cp -f src des // force,如果des目标文件已经存在且无法打开,则移除后在尝试一次cp
    cp -i src des // 如果目标文件des已经存在时,在覆盖时会先询问动作的进行
    cp -l src des // 进行硬连接(hard link)的连接文件建立,而非文件本身
    cp -p src des // 连同文件的属性一起复制过去,而非默认属性(备份常用)
    cp -r src des // 递归持续复制,用于目录的复制行为
    cp -s src des // 复制成为符号链接文件(symbolic link),即快捷键
    cp -u src des // 如果des比src旧,则更新des目标文件
    
    # rm 删除
    rm -f src // 强制删除,不管文件是否存在
    rm -i src // 询问方式删除
    rm -r src // 递归删除
    
    # mv 移动目录或者更改文件名
    mv -f src des // 如果目标文件存在,直接覆盖
    mv -i src des // 如果目标文件存在,就会询问覆盖
    mv -u src des // 如果目标文件已存在,且source文件新,才会更新(update)
    
    # basename 查看文件名
    # dirname 查看文件所在目录
    

    文件查看

    # cat 由第一行开始显示文件内容
    
    # tac 从最后一行开始显示,可以看出tac是cat倒着写
    
    # nl 显示的时候,顺道输出行号
    
    # more 一页一页的显示文件内容
    
    # less 和 more类似,但是比more更好的是,他可以往前翻页
    # less 中常用的快捷方式
    # # 空格键 向下翻页
    # # pagedown 向下翻页
    # # pageup 向上翻页
    # # /字符串 向下搜索[字符串]功能
    # # ?字符串 向上搜索[字符串]功能
    # # n 重复前一个搜寻(与/或?有关)
    # # N 反向的重复前一个搜寻(与/或?有关)
    # # q 离开less程序
    
    # head 只看头几行
    
    # tail 只看尾几行
    
    # od 以二进制的方式读取文件内容
    

    补充说明

    # Linux系统下有很多的时间参数,主要介绍下面三个参数:
    # modification time(mtime):当文件的内容更改时会更新这个时间,内容指的是文件的内容,而不是文件的属性和权限
    # status time(ctime):当文件的状态改变时会更新这个时间,如文件的权限和属性被更改的时候会更新这个时间
    # access time(atime):当文件被访问的时候会更新这个时间
    # 使用touch命令可以修改文件的上述时间
    # touch -a file // 仅修改access time
    # touch -c file // 仅修改文件的时间,如果文件不存在则不建立新文件
    # touch -d file // 后面跟可以接欲修订的日期而不用目前的日期,也可以使用--date='日期或时间'
    # touch -m file // 仅修订mtime
    # touch -t file // 后面跟可以接欲修订的日期而不用目前的日期,格式为[YYMMDDhhmm]
    

    文件隐藏属性

    # chattr (change attribute)设置文件隐藏的属性
    # + 增加一个特殊的参数,其他原本存在的参数不变
    # - 移除一个特殊的参数,其他原本存在的参数不变
    # = 设定一定,且仅有后面接的参数
    chattr + A // 当设定A的属性,如果你存取此文件(或目录)时,他的访问时间atime将不会被修改,可以避免I/O较慢的机器过度的存取磁盘
    chattr + S // 文件一般是异步的写入磁盘,当设置这个属性的时候,文件有任何的修改会同步的写入磁盘
    chattr + a // 当设定a的属性,这个文件将只能增加数据,而不能删除或者修改数据,只有root用户才可以设定该属性
    chattr + c // 这个属性读取时会自动解压,存储时会先压缩在写入磁盘
    chattr + d // 设置这个属性的文件(或目录)在dump时,不会被备份
    chattr + i // 可以让文件不能被删除/改名/设置连接点也无法写入/新增资料
    chattr + s // 设置这个属性的文件如果被删除了,将会完全的移除硬盘,无法找回
    chattr + u // 和s属性相反,如果文件被删除了,其实数据内容还在磁盘上,可以用来找回数据
    
    # lsattr 显示文件的隐藏属性
    lsattr -a file // 将隐藏文件的属性也显示出来
    lsattr -d dir // 如果接的是目录,仅列出目录本身的属性而非目录内的文件名
    lsattr -R dir // 连同子目录的数据也一并列出来
    

    SUID SGID等相关权限需补充


    磁盘与文件系统管理

    分区和文件系统

    一般磁盘分区完要进行格式化,这是因为不同的操作系统设定的文件属性/权限不同,为了存放这些文件需要的数据,因此需要将分割槽进行格式化,使得操作系统可以使用格式化后的文件系统.传统磁盘与文件系统之应用中,一个分割槽就只能被格式化成为一个文件系统,所以一般可以说一个文件系统就是一个分区.但是可以利用LVM与软件磁盘阵列,这些技术可以将一个分割槽格式化为多个文件系统.

    Linux中的block块

    superblock

    # 记录此文件系统的整体信息,包括inode/block的总量、使用量、剩余量,以及文件系统的格式与相关信息等
    # dumpe2fs dump ext2/ext3/ext4.. file system
    dumpe2fs -h /dev/sda5 // 查看文件系统的信息
    

    inode

    记录文件的属性,一个文件占用一个inode,同时记录这文件的数据所在的block号码

    block

    实际记录文件的内容,如果文件太大时,会占用多个block块.


    BASH

  • 相关阅读:
    2.8Java专项测试复盘
    我的第一篇博客
    VS2010调试汇编
    socket学习
    DLL 共享数据学习
    PE学习
    char*,const char*和string的相互转换 + 三种版本字符串
    unresolved external symbol “symbol”(不确定的外部“符号”)。
    深入理解const char*p,char const*p,char *const p,const char **p,char const**p,char *const*p,char**const p
    volatile学习
  • 原文地址:https://www.cnblogs.com/kayj/p/12306548.html
Copyright © 2020-2023  润新知