Linux之文件与目录管理

1.  文件权限

    1.  查看文件权限

        ls -al     

总用量 116356
dr-xr-x---.  8 root root      4096 9月   3 18:20 .
dr-xr-xr-x. 19 root root   1212416 9月   1 21:43 ..
-rw-------.  1 root root      1447 5月  15 01:44 anaconda-ks.cfg
-rw-------.  1 root root     16208 10月  9 10:02 .bash_history
-rw-r--r--.  1 root root        18 12月 29 2013 .bash_logout
-rw-r--r--.  1 root root       176 12月 29 2013 .bash_profile
-rw-r--r--.  1 root root       254 7月   7 16:06 .bashrc
drwxr-xr-x   3 root root        21 9月   1 21:40 bin
-rw-r--r--.  1 root root       100 12月 29 2013 .cshrc
-r--------.  1 root root        20 7月   8 00:00 .erlang.cookie
-rw-r--r--.  1 root root        50 7月   7 09:30 .gitconfig

        共七个字段。

        1.  第一个字段(类型与权限)

            -rw-r--r--   共有十个字符。

            第一个字符代表类型。

              -  文件

              d  目录

              l  链接文件

              b  设备文件里的可供存储的接口设备

              c  设备文件里的串行端口设备,如:键盘鼠标

            剩下的三个为一组,分别代表属主的权限,属组的权限,其他人的权限

        2.  第二个字段(多少文件名链接到此节点)

        3.  第三个字段(属主)

        4.  第四个字段(属组)

        5.  第五个字段(文件大小)

            默认单位为B

        6.  第六个字段(创建文件日期或修改日期与时间)

            查看完整时间ls -l --full-time

        7.  第七个字段(文件目录名称)  

    2.  修改文件权限

        1.  chgrp  改变文件属组

            chgrp  组名  文件名称或目录名称

            -R   递归

        2.  chown  改变文件属主

            chown  用户名:组名  文件名称或目录名称

            -R  递归

        3.  chmod  改变文件权限

            chmod 777 文件名

            chmod u+x 文件名

            chmod g+x 文件名

            chmod o+x 文件名

            chmod a+x 文件名

            chmod a-x 文件名

2.  目录与文件的权限意义

类型 r读 w写 x执行
文件 读取文件内容 编辑、修改文件内容,不能删除文件本身 可以执行文件
目录 列出该目录的所有内容 新建文件或目录;删除已存在的文件或目录;重命名已存在的文件或目录;移动目录下的所有文件或目录的位置 用户可以进入该目录

3.  目录与文件的管理命令

    1.  cd  切换目录

        cd  什么参数都没有,切换到用户家目录

        cd .  到当前目录

        cd ..  到父目录

        cd -  到上一个目录

        cd ~  到用户家目录

        cd ~account  到指定用户的家目录

    2.  pwd  显示目前所在的目录

        -P  获得真正的目录,而不是链接文件所在的目录

    3.  mkdir  新建目录

        -p  递归创建目录

        -m  为目录配置权限,而不是使用umask.

          mkdir -m 711 test

    4.   rmdir  删除空目录(非空目录删不掉)

    5.  ls  查看文件与目录

        -a  列出所有

        -d  仅列出目录本身,而不是目录下的文件

        -h  将文件容量以人类可读的方式列出

        -i  列出inode号码

        -l  列出长数据,包含文件的属性与权限等数据

        --full-time  以完整时间列出文件与目录

        -t  以修改时间倒序列出所有文件与目录

        --time=atime  列出所有文件的访问时间

        --time=ctime  列出所有文件状态被修改的时间

        -r  将排序结果反向输出,例如:原本文件名由小到大,反向则由大到小

        -S  按照文件大小排序

        -F  在文件名称后面,添加提示符

            对 可执行文件 添加一个 *
            对 目录文件 添加一个 /
            对 符号链接文件 添加一个 @

            对 普通文件 什么都不添加

        -p  对目录添加/  

    6.  cp  复制文件与目录

        -a  拷贝文件与目录的所有属性,相当于-p -d -r的和

        -r  递归复制,用于复制目录

        -p  连同文件的属性一起复制过去,而非使用默认属性,备份常用

        -d  若源文件为链接文件,带这个参数表示复制链接属性,而不是复制源文件   

        -i  若目标文件与目录已存在,则使用这个参数有询问,默认带有-i   

    7.  rm  删除文件与目录

        -r  递归删除

        -f  强制删除

        -i  删除并询问

        \rm  删除不询问,当有-f参数的时候,不生效

        实例:

          误操作删除文件,如何恢复?

          恢复看是否磁盘有写入,如果没有写入恢复的几率还是很高的

          yum install -y https://forensics.cert.org/centos/cert/7/x86_64/foremost-1.5.7-27.el7.x86_64.rpm

          误删了jpg文件,恢复命令:

          foremost -t jpg -i /dev/sda1 -o /tmp/restore

          -t  文件类型

          -i  指定哪个分区

          -o  恢复到哪个位置

    8.  mv  移动文件与目录,或更名

    9.  basename  取路径的文件名

    10.  dirname  取路径的目录名

    11.  touch  创建文件

4.  文件内容查阅

    1.  cat

        -A  相当于-vET的整合选项,可列出一些特殊字符而不是空白而已

            linux以$作为断行字符,windows以^M$作为断行字符

            [tab]以^I表示

        -n  打印出行号,连同空白行也会有行号

        -b  列出行号,仅针对非空白行做行号显示,空白行不标行号

    2.  tac

        反向列出文件内容,从最后一行到第一行  

    3.  nl

        -b  a  类似于cat -n,不论是否为空行,也同样列出行号

        -b  t  如果有空行,空的那一行不要列出行号(默认值)

    4.  more

        空格  翻一页

        回车  翻一行

        /字符串  向下搜寻字符串

        :f  显示文件名和当前所在行数

        q  退出,不再显示该文件内容

        b  往回翻页,只对文件有用,管道无效

    5.  less

        空格  向下翻一页

        pagedown  向下翻一页

        pageup  向上翻一页

        /  向下搜寻字符串

        ?  向上搜寻字符串

        n  重复搜寻前一个字符串

        N  反向搜寻前一个字符串

        -N  打印出行号

    6.  head

        -n  获得前几行

        -n  后面的数为负数,-n -100表示100行以后的都不要

    7.  tail

        -n  获取后几行

        -n  后面的数为正数,-n +100表示100行以后的取出

        -f  实时打印出文件内容  

    8.  od

        查看执行文件,使用这个命令

5.  文件目录时间  

    1.  atime  access time访问时间

    2.  ctime  status time 文件目录权限与属性发生改变

    3.  mtime  modification time文件内容修改

6.  文件预设权限

    1.  umask

        1.  查看

            直接使用umask命令,显示的数字化

            使用-S参数,显示的是u,g,o

        2.  新建文件

            如果umask是0022,那么新建文件就是666-022=644.

        3.  新建目录

            如果umask是0022,那么新建目录就是777-022=755

        4.  设置新的预设权限

            umask 0002

        5.  root用户与一般用户

            root的umask为0022

            一般用户的umask为0002   

7.  文件隐藏属性

    1.  设置隐藏权限

        +  增加一个隐藏参数,原有的权限不动

        -  减去一个隐藏参数,原有的权限不动

        =  只设定后面接的参数

        a  文件只能增加数据,不能删除文件,不能修改文件内容

        i  文件不能增加数据,不能删除,不能修改,不能改名        

    2.  查看隐藏权限

        -a  列出所有的文件的隐藏权限(包括隐藏文件)

        -d  如果接的是目录,列出的是目录本身的属性而不是目录下的文件名

        -R  连同子目录的数据也列出来  

8.  查看文件类型

    1.  file

        file   /usr/bin/passwd

        可以看是数据文件,还是执行文件,还是一个目录

 

9.  查找命令与文件

    1.  which

        查询环境变量PATH的路径的所有指令的完整名

        

    2.  whereis

        查看特定的一些目录,查找指令文件和指令说明文档和目录等。

    3.  find

        find [PATH] [option] [action]

        1.  与时间有关的参数

        例如:find /var –mtime +4

        

        find /var –mtime +4 : 大于等于5天前的修改文件内容的所有文件

        find /var –mtime 4 : 四天前那一天的修改文件内容的文件

        find /var –mtime -4: 小于等于4天内的修改文件内容的文件

        find /var –newer /etc/passwd: 列出比/etc/passwd新的文件

        2.  与使用者或组名有关的参数

            find /var –uid ID号:查找/var下uid为***的文件

            find /var –gid ID:查找/var下gid为***的文件

            -user name

            -group name

            -nouser

            -nogroup

        3.  与文件权限及名称有关的参数

            -name 文件名: 搜寻文件名为***的文件

            -size [+-]SIZE : 搜寻比SIZE大或小的文件, -size +50k

            -type TYPE: 搜寻类型

        4.  find的特殊功能:

            find /var –name yangjianbo -exec ls -l {} \;

            

            

        5.  find通配符的使用

            

            

            

            

        6.  find 也可以与xargs结合使用。

            find ./ -name '*.bak' | xargs rm -rf        

    4.  locate 

        1.  linux系统中有个叫mlocate.db的数据库文件,这个包含系统文件的文件名及对应的路径信息。

            配置文件/etc/updatedb.conf

            locate命令直接找这个库,而不用遍历整个硬盘。

             在使用这个命令之前,要updatedb一下,更新一下这个数据库文件。

        2.  语法:

            locate [option] 文件名

            -c  不显示匹配的内容,只显示行数

            -r  支持正则表达式匹配

            -i  匹配时忽略大小写

            --regex  支持扩展正则匹配

        3.  例子:

            locate pwd  会找出所有包含pwd字符串的文件名和路径

            locate /etc/sh  包含/etc/sh的都会找出来

            locate /etc/sh*  也可以使用通配符

        4.  安装locate

             sudo yum install mlocate

            安装完以后,使用updatedb更新库     

posted @ 2021-10-10 23:48  奋斗史  阅读(56)  评论(0)    收藏  举报