美文网首页
Linux文件与目录管理

Linux文件与目录管理

作者: 南风nanfeng | 来源:发表于2018-05-31 15:34 被阅读7次

    文件内容查阅

    如果我们要查阅一个文件的内容时,该如何是好呢?这里有相当多有趣的命令可以来分享一下: 最常使用的显示档案内容的命令可以说是 cat 、 more 及 less 了!此外,如果我们要查看一个大型的文件 (好几百 MB 时),但是我们只需要最后面的几行字而已,那么该如何是好?呵呵!用 tail 呀,此外,tac 这个命令也可以达到!好了,说说各个命令的用途吧!

    • cat 由第一行开始显示文件内容
    • tac 从最后一行开始显示,可以看出 tac 是 cat倒着写的!
    • nl 显示的时候,顺道输出行号!
    • more 一页一页的显示文件内容
    • less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
    • head 只看头几行
    • tail 只看尾巴几行
    • od 以二进制的方式读取文件内容!

    上述 nl 、cat、tac ,都是一口气将数据显示到屏幕上面,那有没有可以进行一页
    一页翻动的命令啊?让我们可以一页一页的观察。呵呵!有癿!那就是more、less 啰:
    在 more 这个程序的运作过程中,你有几个按键可以操作的:

    • 空格键 (space):代表向下翻一页;
    • Enter :代表向下翻『一行』;
    • /字符串 :代表在这个显示的内容中,向下搜寻『字符串』这个关键词;
    • :f :立刻显示出文件名以及目前显示的行数;
    • q :代表立刻离开 more ,不再显示该档案内容。
    • b :或[ctrl]-b :代表往回翻页,不过这动作只对档案有用,对管线无用。

    less 的用法比起 more 又更加的有弹性,在 more 的时候,我们没有办法
    能往后面看,但若使用了 less 时,就可以使用 [pageup] [pagedown] 等按键的
    后翻看文件。除此之外,在 less 里头可以拥有更多癿『搜寻』功能喔!不止可以向下搜寻,也可以向上搜寻。可以输入的命令有:

    • 空格键 :向下翻动一页;
    • [pagedown]:向下翻动一页;
    • [pageup] :向上翻动一页;
    • /字符串 :向下搜寻『字符串』的功能;
    • ?字符串 :向上搜寻『字符串』的功能;
    • n :重复前一个搜寻 (与 / 或 ? 有关!)
    • N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
    • q :离开 less 这个程序;

    我们在 ls 这个命令的介绍时,有稍微提到每个档案在 linux 底下都会记录许多的时间参数, 其实是有三个主要的变动时间,那么三个时间的意义是什么呢?

    • modification time (mtime):
      该档案的『内容数据』变更时,就会更新这个时间!内容数据指的是档案的内容,而不是档案的属性或权限喔!
    • status time (ctime):
      该档案的『状态 (status)』改变时,就会更新这个时间,举例来说,像是权限与属性被更改了,都会更新这个时间啊。
       access time (atime):
      弼『该档案癿内容被取用』时,就会更新这个读取时间 (access)。丼例杢说,我们使用 cat 去读
      取 /etc/man.config , 就会更新该档案癿 atime 了。
    [root@localhost barksrc]# ll log.log ; ll --time=atime log.log ; ll --time=ctime log.log 
    -rw-rw-r-- 1 root root 8 5月  30 15:16 log.log
    -rw-rw-r-- 1 root root 8 5月  30 17:23 log.log
    -rw-rw-r-- 1 root root 8 5月  30 17:22 log.log
    

    档案预讴权限:umask

    [root@localhost barksrc]# umask
    0022
    [root@localhost barksrc]# umask -S
    u=rwx,g=rx,o=rx
    

    要注意de 是,umask de 分数指的是『该默认值需要减掉的权限!』因为 r、 w、 x 分别是 4、 2、 1 分,也就是说,要拿掉能写的权限,就是输入 2 分,以此类推。
    那么如何设定 umask 呢?直接在 umask 后面输入 002 就好了!

    [root@localhost barksrc]# umask 002
    [root@localhost barksrc]# umask
    0002
    

    文件隐藏属性:

    • chattr (配置文件隐藏属性)
    [root@www ~]# chattr [+-=][ASacdistu] 文件或目录名称
    选项与参数:
    + :增加某一个特殊参数,其他原本存在参数则不动。
    - :移除某一个特殊参数,其他原本存在参数则不动。
    = :设定参数,且仅有后面的参数
    

    其中,最重要的是 +i 与 +a 这个属性了。 +i 可以让一个文件无法被更改,对亍需要强烈系统安全的人来说, 相当重要!里头还有很多属性是需要 root 才能设定!

    • lsattr (显示文件隐藏属性)
    [root@www ~]# lsattr [-adR] 文件或目录
    选项与参数:
    -a :将隐藏文件的属性也显示出来;
    -d :如果接的是目录,仅列出目录本身的属性而非目录内的文件名;
    -R :连同子子目录的数据也一并列出来!
    

    脚本文件名的搜寻:which或type

    which 预设是找 PATH 内设定的目录,所以有些系统内核命令不一定能找的到!我们可以通过type 这个命令!

    文件名的搜寻:whereis

    [root@www ~]# whereis [-bmsu] 文件或目录名
    选项与参数:
    -b :只找binary格式的文件
    -m :只找在说明文件 manual 路径下的文件
    -s :只找source来源文件
    -u :搜寻不在上述三个项目中的其他特殊文件
    

    文件名的搜寻:locate

    [root@localhost /]# locate redis.conf
    /data/program/redis/6383/redis.conf
    /data/program/redis/6384/redis.conf
    /data/program/redis/6385/redis.conf
    /data/program/redis/6386/redis.conf
    /data/program/redis/6387/redis.conf
    /data/program/redis/6388/redis.conf
    /data/program/redis/7000single/redis.conf
    /data/program/redis/redis-3.2.3/redis.conf
    

    这个东西还是有使用上的限制呦!为什么呢?你会发现使用 locate 寻找数据的时候特别快, 这是因为 locate 寻找的数据是由『已建立癿数据库 var/lib/mlocate/』里面的数据所搜寻到的,所以不用直接在去硬盘中存取据,呵呵!当然很快速咯!那么有什么限制呢?就是因为他是经由数据库搜寻的,而数据库的建立默认是在每天执行一次 (每个distribution 都不同,CentOS 5.x 是每天更新数据库一次!),所以当你新建的文件, 即还在数据库更新前搜寻该档案,那么 locate 会告诉你『找不到!』

    相关文章

      网友评论

          本文标题:Linux文件与目录管理

          本文链接:https://www.haomeiwen.com/subject/mitxsftx.html