Linux文件与目录管理

目录的相关操作:

   特殊的目录:

      . :代表此层目录;

      .. :代表上一层目录;

       :代表前一个工作目录;

      ~ :代表目前使用者身份所在的目录;

      ~account:代表account这个使用者的家目录(account是账号的名称)。

     注意:在所有目录下面都会存在的两个目录,分别是 ...,即使是根目录,也存在上一层目录,只是上一层目录和当前目录都是同一目录。

   常见的处理目录的命令:

      cd(Change Directory):切换目录;

      pwd(Print Working Directory):显示当前目录;

      mkdir(Make Directory):建立一个新目录;

      rmdir:删除一个空目录。

  执行文件路径的变量:$PATH:

    查看文件属性的命令ls的完整文件名为:bin/ls,但是在任何地方都能执行这个命令,就是因为环境变量PATH的帮助。

    系统会依照PATH的设置去每个PATH定义的目录下查找文件名为ls的可执行文件。

    如果有多个ls可执行文件,那么先查找到的同名命令先被执行。

    注意:

      •  不同身份用户默认的PATH不同,默认能够随意执行的命令也不同;
      •  PATH是可以修改的;
      •  使用绝对路径或相对路径指定某个命令的文件名来执行,会比查找PATH来的正确;
      •  本目录(.)最好不要放到PATH中。

 

文件与目录管理:

   1.文件与目录的查看:ls

      ls [-aAdfFhilnrRSt] 文件名或目录名称

        a:显示全部文件(包含隐藏文件);

        A:同上,但不包括...这两个目录;

        d:仅列出目录本身(不包含目录内的文件数据);

        f:直接列出结果,而不进行排序(默认以文件名排序);

        F:根据文件、目录等信息,在文件名后附加数据结构(/代表目录,*代表可执行文件,=代表socket文件,|代表FIFO文件);

        h:将文件容量以人类易读的方式列出来;

        i:列出inode号码;

        l:详细信息显示,包含文件的属性与权限等数据;

        n:列出UID与GID而非使用者与用户组的名称;

        r:将排序结果反向输出;

        R:连同子目录内容一起列出来;

        S:以文件容量大小排序;

        t:依时间排序;

      ls [--color={never,auto,always}] 文件名或目录名称

        never:不要依据文件特性给予颜色显示;

        always:显示颜色;

        auto:让系统自行依据设置来判断是否给予颜色;

      ls [--full-time] 文件名或目录名称

        以完整时间模式(年、月、日、时、分)输出;

   2.文件与目录的复制、删除、移动:cp、rm、mv

      cp(复制文件或目录)

        cp [-adfilprsu] 源文件 目标文件

        cp [options] source1 source2 source3 .... directory

          a:相当于pdr的意思;

          d:若源文件为链接文件的属性,则复制链接文件属性而非文件本身;

          f:为强制(force)的意思,若目标文件已经存在且无法开启,则删除后再尝试一次;

          i:若目标文件已经存在,在覆盖时会先询问操作的进行;

          l:进行硬链接,而非复制文件本身;

          p:保留属性复制,连同文件的属性一起复制过去(备份常用);

          r:递归复制(目录的复制常用);(不加r目录则无法复制)

          s:复制成为快捷方式链接文件;

          u:目标文件比源文件旧才更新,或目标文件不存在的情况下才复制;

        以上参数,注意区分a和p,l和s。

      rm(删除文件或目录)

        rm [-fir] 文件或目录

          f:force意思,忽略不存在的文件,不会出现警告信息;

          i:交互模式,在删除前会询问使用者是否操作;(为了怕文件被误删,默认都加入了-i这个选项)

          r:递归删除,最常用于目录的删除(这是非常危险的选项);

      mv(移动文件与目录,或重命名)

        mv [-fiu] 源文件 目标文件

        mv [options] source1,source2,source3 .... directory

          f:force的意思,如果目标文件已经存在,不会询问直接覆盖;

          i:若目标文件已经存在,就会询问是否覆盖;

          u:若目标文件已经存在,且源文件比较新,才会更新;

   3.获取路径的文件名与目录名称

      basename:取得文件名;

      dirname:取得目录名。

 

文件内容查看:

  常用命令如下:

    cat:串联的意思,由第一行开始显示文件内容;

    tac:从最后一行开始显示;

    nl:显示的时候,同时输出行号;

    more:一页一页地显示文件内容;

    less:与more类似,但可以往前翻页;

    head:只看前面几行;

    tail:只看后面几行;

    od:以二进制的方式读取文件内容。

  1.直接查看:

    cat(concatenate):cat [-AbEnTv]

      A:相当于vET的整合,可列出一些特殊字符而不是空白而已;(tab会以^I表示,换行符则是以$显示)

      b:列出行号,仅针对非空白行;

      E:将结尾的换行符$显示出来;

      n:打印出行号,也包含空白行的行号;

      T:将Tab按键以^I显示出来;

      v:列出一些看不出来的字符。

    tac(反向列示):就是将cat反着写,所以功能也是相反的;

    nl(添加行号打印):nl [-bnw] 文件

      b a:不论是否为空行,也同样列出行号;

      b t:空的那一行不要列出行号;

      n ln:行号在屏幕的最左方显示;

      n rn:行号在自己栏位的最右方显示,且不加0;

      n rz:行号在自己栏位的最右方显示,空位自动补0;

      w:行号栏位占用的字节数;

  2.翻页查看:

    more(一页一页翻动);

      空格键:向下翻一页;

      回车键:向下翻一行;

      /字符串:向下查找字符串这个关键词;

      :f:立刻显示出文件名以及目录显示的行数;

      q:立刻离开more,不再显示该文件内容;

      b或ctrl+b:往回翻页,只对文件有用;

    less(一页一页翻动):可以往前往后翻看文件;(前面所学的man就是调用less来显示说明文件内容)

      空格键:向下翻一页;

      pagedown:向下翻页;

      pageup:向上翻页;

      /字符串:向下查找字符串这个关键词;

      ?字符串:向上查找字符串这个关键词;

      n:重复前一个查找;

      N:反向的重复前一个查找;

      g:前进到这个数据的第一行;

      G:前进到这个数据的最后一行;

      q:离开less这个程序;

  3.数据截取:

    head(取出前面几行):head [-n number] 文件

      n:后面接数字,代表显示几行。(如果是负数,代表列出前面所有行数,但不包括结尾指定数字的行)

    tail(取出后面几行):tail [-n number] 文件

      n:后面接数字,代表显示几行。

      f:表示持续刷新显示后面所接文件中的内容,直到按下crtl+c才结束。

    举例:只想要显示第51行至第100行的内容。

      思路:先用head截取前100行,再用tail截取这100行的后50行。

      注意:前后两个命令使用 | 符号连接,这个符号叫做管道,意思是前面的命令所输出的信息,通过管道交由后续的命令继续使用。

      格式如:head -n 100 文件名 | tail -n 50

  4.非纯文本文件od:读取非纯文本,比如二进制文件和数据文件;

    od [-t TYPE] 文件

      a:利用默认的字符输出;

      c:使用ASCII字符来输出;

      d[size]:利用十进制来输出,每个整数占用size字节;

      f[size]:利用浮点数值来输出;

      o[size]:利用八进制来输出;

      x[size]:利用十六进制来输出;

  5.修改文件时间或创建新文件touch:

    修改时间(mtime):当该文件的内容数据变更时,就会更新这个时间;(内容数据指的是文件的内容,而不是文件的属性或权限)

    状态时间(ctime):当该文件的状态改变时,就会更新这个时间;(比如权限与属性被更改了)

    读取时间(atime):当该文件的内容被读取时,就会更新这个时间;(比如我们使用cat命令去读取一个文件时)

   注意:在默认情况下,ls命令显示的是该文件的mtime,也就是这个文件的内容上次被修改的时间。

   创建新文件:touch [-acdmt] 文件

      a:仅自定义access time;

      c:仅修改文件的时间,若该文件不存在则不建立新文件;

      d:后面可接自定义的日期而不目前的日期;

      m:仅修改mtime;

       t:后面可接自定义的时间而不用目前的时间;

 

文件默认权限与隐藏权限:

  文件默认权限:umask,umask的数字指的是默认值需要减掉的权限(与权限有关的是后三位数字)。

    1.直接输入umask,可以查看数字类型的权限设置值;

      

    2.输入umask后,加入-S这个选项,会以符号类型的方式来显示权限

      

    注:新建文件默认没有x权限,只有rw权限,故默认权限值为666;

      新建目录默认所有权限均开放,故默认权限值为777。

    故上面根目录的权限值022代表了,user没有拿掉任何权限,group和other被拿掉了w(值为2)这个权限。

    那么用户:

      建立文件时:666-022=644

      建立目录时:777-022=755

    注意:其实直接使用数字来进行减法有时可能会出错,比如umask为003,那么666-003=663,这就是个错误的结果。

       (正确结果应该为664,因为3代表了2和1两个权限,实际上原本的默认权限中就没有1,就不用再减1了)

  文件隐藏权限:在系统安全上面非常的重要。

    chattr(配置文件隐藏属性):只能在ext2、ext3、ext4的Linux传统文件系统上完整生效。(xfs仅支持部分参数)

      格式:chattr [+-=] [ASacdistu] 文件或目录名称

      +-=:增加、删除、设置参数;

      A:存取时间atime不会被修改;

      S:进行文件修改时,修改会同步写入到磁盘中;

      a:这个文件只能增加数据,而不能删除和修改;(故只有root才能设置此属性)

      c:自动将此文件压缩,读取的时候再自动解压缩;

      d:可使之不会被dump备份;

      i:这个文件不能被删除、改名、设置链接,也无法写入或新增数据;(故只有root才能设置此属性)

    lsattr(显示文件隐藏属性):

      格式:lsattr [-adR] 文件或目录

      a:将隐藏的文件属性也显示出来;

      d:仅列出目录本身的属性而非目录内的文件名;

      R:连同子目录的数据也一并列出来。

    * 使用chattr设置后,可以使用lsattr来查看隐藏的属性。

 

命令与文件的查找:

  脚本文件(命令)的查找

    which(查找执行文件):根据PATH这个环境变量所规范的路径,去查找执行文件的文件名。

    格式:which [-a] command

      a:将所有由PATH目录中可以找到的命令均列出,而不止第一个被找到的命令名称。

  文件的查找

    whereis:在一些特定的目录中查找文件,想知道在哪些目录中进行查找,可输入whereis -l。

      格式:whereis [-bmsu] 文件或目录名

      b:只找binary(二进制)格式的文件;

      m:只找在说明文件manual路径下的文件;

      s:只找source源文件;

      u:查找不在上述三个项目当中的其他特殊文件。

    locate/updatedb:输入文件的部分名称就能得到结果,限制是只在已建立的数据库/var/lib/mlocate/中查找数据。

      但是,数据库的建立默认是在每天执行一次更新,如果你建立起的文件是在更新前查找,就会查找不到。

      此时,需要使用updatedb来手动更新数据库。

      格式:locate [-ir] keyword

    find:查找整个硬盘,故速度较慢。

      格式:find [PATH] [option] [action]

    

转载于:https://www.cnblogs.com/benon94/p/11266182.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值