• linux文件与目录管理


    1.相对路径/绝对路径

    绝对路径就是从根目录写起的,像这样:/user/share/doc;

    相对路径是先对当前的位置而言的,加入现在处于/user/share/doc目录下,那么cd ../man,将实现跳转到

    /user/share/man目录下;

    2.目录相关操作

    .                                     //当前目录
    ..                                    //上一层目录(根目录的上一层还是他自己)
    -                                     //表示前一个工作目录             
    ~                                     //表示当前用户身份所在的住文件夹
    cd                                    //切换目录
    pwd                                   //显示当前目录位置(绝对路径)
    mkdir test1                           //在当前目录下创建一个test1目录
    mkdir -p test1/test2/test3            //在当前目录下递归地创建多级目录
    rmdir test1                           //删除目录test1
    rmdir -p test1/test2/test3            //删除test3,连同上级目录为空的也删除

    3.系统变量$PATH

    其实这个应该不会陌生,$PATH的目的就是让我们更方便地去调用系统的可执行文件;

    没有系统变量$PATH之前,我们执行一个命令,可能需要这样:/bin/ls;

    但是如果我们把/bin加入到系统路径变量$PATH里面了,那么我们只需要敲一下ls就可以了,此时系统会自动到$PATH

    里面去找有没有和**/ls相匹配的执行文件,如果有,则执行之,如果有多个,那么就执行先查询到的那个目录下的该命令。

    PATH="$PATH":/root                 //将/root添加到系统路径变量

    4.查看文件和目录ls

    最后一个-h用于查看文件的大小(以b为单位)

     5.复制、删除和移动

    cp [options] source destination 将源文件复制到目标文件中,对于参数[options]下面列出:

    -p                                      //连同文件的属性权限全部复制
    -i                                      //若目标文件存在则询问是否覆盖
    -f                                      //强制的意思,即使目标文件存在切无法开启,则删除后再尝试一次
    -s                                      //复制为快捷方式文件
    -u                                      //若目标文件比源文件旧才更新
    -r                                      //递归操作,用于复制目录

    rm [potions] 文件/目录

    -i                                       //删除前询问
    -r                                       //递归操作,用于目录的删除
    -f                                       //不会询问

    所以你应该知道 rm -rf这个命令有多危险了。

    mv [options] source destination

    -f                                        //如果目标文件已经存在,不会询问直接覆盖
    -i                                        //如果目标文件存在则会询问
    -u                                        //源文件比较新才会更新

    6.文件内容查阅

    对于同一个文件,不同的输出(显示)方式,cat为正常排版显示

    当文件内容很多时,就需要翻页显示了:

    more                             //一页一页翻动
    空格----------------------向下翻一页
    enter--------------------向下滚动一行
    /字符串-------------------在当前页查询这个字符串
    q------------------------离开这个more
    b或者ctrl+b---------------往回翻

    与之类似的还有less命令,但是less更有弹性:

    空格----------------------向下翻一页
    PageDown-----------------向下翻一页
    PageUp-------------------向上翻一页
    /字符串-------------------向下查询字符串
    ?字符串-------------------向上查询字符串
    n------------------------重复前一个查询
    N------------------------反向重复前一个查询
    q------------------------离开less

    以上命令分别为取前两行和后两行。

     对于非纯文本文件,可以使用od命令来查阅文本内容:

    od -t [options] 非纯文本文件 options参数如下:

    a                                    //默认字符输出
    c                                    //ASCII字符输出

     7.文件的时间属性

    linux下的文件都会记录该文件许多的时间参数,这里记录主要的三个时间参数:

    modification time(mtime)当文件的内容数据更改时,会更新这个时间;

    status time(ctime)当文件的状态,即权限与属性被更改了,都会更新这个时间;

    access time(atime)当文件被取用时,会更新这个时间;

    默认情况下显示文件的mtime;

    前面提到过touch命令可以新建一个文件/文件夹,其实touch命令还可以修改文件的时间

    touch -a file                               //修改文件atime为当前时间
    touch -m file                               //修改文件mtime为当前时间
    touch -c file                               //修改文件ctime为当前时间
    touch -d "2 days ago" file                  //修改了atime和mtime,ctime不变
    touch -t 1808080808 file                    //修改文件atime和mtime,ctime为目前时间

    8.文件目录的默认权限和隐藏权限

    我们新建一个文件/目录的时候,都会有一个默认权限,这个默认权限是怎么确定的呢

    这个umask值0022指的是被拿掉的权限(用户组和其他被拿掉写的权限);

    新建目录最高权限为drwxrwxrwx即777;

    新建文件(默认没有x权限)最高权限为-rw-rw-rw-即666;

    那么根据上面的umask值(022)来说,

    新建一个文件的话,权限应该为:-rw-rw-rw- 减去 -----w--w- 等于-rw-r--r--;

    新建一个目录的话,权限应该为:drwxrwxrwx 减去 -----w--w- 等于drwxr-xr-x;

    9.文件隐藏属性

    lsattr -a 文件/目录           该命令用来显示文件的隐藏属性;

    -a                             //将隐藏文件的属性也秀出来
    -d                             //如果接的是目录,则仅列出目录本身的属性(不包括目录内文件名)
    -R                             //连同子目录的数据也一并列出来

    chattr +-=[options] 文件/目录       该命令用来设置文件的隐藏属性(a、i为常用的)

    A                              //该属性使得访问该文件时atime不会被修改
    S                              //一般文件是一步写入磁盘的,该属性使其写入变为“同步”
    a                              //该属性使得该文件只能增加数据,不能删除和修改,只有root才能修改该属性
    c                              //这个属性,使得文件存入的时候压缩存储,读取的时候解压再读取
    d                              //当dump程序被执行的时候,该属性使得该文件不会被dump备份
    i                              //让一个文件不能被删除、改名、写入,只有root能设置此属性
    s                              //如果该文件被删除,将会被完全从硬盘空间中删除
    u                              //与s相反,如果文件被删除,数据其实还在磁盘中,可以用来找回该文件

    10.文件特殊属性

    SUID:仅对二进制程序有效,执行者对该程序有x权限、权限只在run-time有效、执行者将具有该程序所有者的权限

    这个程序是用来改密码的,权限显示,其所有者为root,其他人有x的权限,并且仔细看所有者权限-rws

    这个-rws中的s就是Set UID,简称SUID的特殊权限,那么非所有者执行这个程序的时候,会暂时以root的身份去执行

    这个程序,进而更改密码。

    SGID:Set GID,就是获取用户组的支持,(暂时不太明白)

    SBIT:只针对目录有效,用户对该目录有读写权限后,在该目录下创建文件目录,只有root和用户自己才能删除

    11.查看文件类型

    file命令

    12.命令和文件的查询

  • 相关阅读:
    PHP版本VC6与VC9/VC11/VC14、Thread Safe与None-Thread Safe等的区别
    Django 开发------django-crontab实现服务端的定时任务
    django HTML 数据处理
    HTML 罗盘式时钟
    Tcpdump 常用命令、参数记录
    jquery 实现 <imput>标签 密码框显示/隐藏密码功能
    Django 实现分页功能(django 2.2.7 python 3.7.5 )
    bootstrap 4 学习笔记
    IIS属性解析
    IIS站点权限设置
  • 原文地址:https://www.cnblogs.com/eco-just/p/9532672.html
Copyright © 2020-2023  润新知