Linux成长之路(二)——Linux目录结构和对文件的基本操作

一. Linux目录结构

Windows系统与Linux系统在文件管理上是不同,Windows最顶层文件目录是用存储介质(磁盘)来区分的,除系统文件外,用户文件放在哪个盘里都一样,而Linux整个文件系统都是由文件目录(树形目录)来管理的,所以目录在Linux中是非常重要的概念。

  • FHS标准(Filesystem Hierarchy Standard 文件系统层次结构标准)
    图片来自实验楼
    (图片来自实验楼)
    附上FHS标准文档链接: FHS_2.3 标准文档

    FHS 是根据以往无数 Linux 用户和开发者的经验总结出来的,并且会维持更新,FHS 依据文件系统使用的频繁与否以及是否允许用户随意改动(注意,不是不能,学习过程中,不要怕这些),将目录定义为四种交互作用的形态:
    这里写图片描述

  • 目录路径

    • 路径
      使用cd命令来切换目录,.表示当前目录,..表示上一级目录,上一篇博客说过以.开头的文件是隐藏文件,因此这两个目录也是隐藏目录。可以使用ls -a命令来查看隐藏目录。
      这里写图片描述

      “cd”命令演示:
      这里写图片描述

    • 绝对路径
      绝对路径就是从文件系统的起始目录(根目录)开始,到达目标目录的完整目录路径。

    • 相对路径
      相对路径是以当前目录为起始目录(.)开始,到达目标目录的完整目录路径。
      演示:
      这里写图片描述

      注意:
      1、具体使用哪一种目录看你当前方便使用哪一种。
      2、在进行目录切换的过程中请多使用 Tab 键自动补全,可避免输入错误,连续按两次Tab可以显示全部候选结果

二. Linux文件的基本操

  • 新建

    • 新建空白文件
      “touch”命令:其主要是来更改已有文件的时间戳的(比如,最近访问时间,最近修改时间),但其在不加任何参数的情况下,只指定一个文件名,则可以创建一个为指定文件名的空白文件(不会覆盖已有同名文件),当然你也可以同时指定该文件的时间戳。
      这里写图片描述

    • 新建目录
      “mkdir”命令用来创建空白目录:
      这里写图片描述
      同时创建父目录“mkdir -p”:
      这里写图片描述
      (-p 后面也可以是绝对路径名)

  • 复制

    • 复制文件
      “cp”复制文件到指定目录:
      将前面/home/gcg目录下的gcg文件复制到/home/gcg/gcg_dir/father/son目录中:
      这里写图片描述
      (是复制不是剪切)

    • 复制目录
      先来一个错误的示范:
      先创建一个目标目录,将前面的gcg_dir复制进去,结果出错:
      这里写图片描述
      正确方法是在”cp”后面加上“-r”或“-R”,表示连同目录里面的所有目录和文件一起复制:
      这里写图片描述

  • 删除

    • 删除文件
      “rm”指令删除文件,这里需要注意当删除只读文件时,系统会给出提示。我们先把前面创建的gcg文件改为只读,再删除它:
      这里写图片描述

    • 删除目录
      删除目录和复制目录道理一样,不能直接rm,需要在rm后面加上-r或者-R:
      这里写图片描述

  • 移动文件与文件重命名

    • 移动文件
      移动文件在windows中相当于剪切文件的功能,使用“mv”指令。演示:
      这里写图片描述
    • 重命名
      mv也可以重命名:
      这里写图片描述
      如果上述实验中,gcg_dir和gcg_dir2都存在,那么【mv gcg_dir gcg_dir2】到底是将它重命名为gcg_dir2还是将它移动到gcg_dir2中呢?
      这里写图片描述
      答案显而易见:是移动了(其实同一个目录中也不允许有相同的目录名)。

      再做一个实验:
      这里写图片描述
      这个实验是将一个文件重命名为另一个已存在的文件名,这时会覆盖先前的文件。

    • 批量重命名
      批量重命名的话使用mv就太麻烦了,相信大家都知道rename这个命令,不过这儿要批量重命名还需要用到正则表达式,这个在以后的文章中会详讲,这儿只是做个演示:
      这里写图片描述
      第二个参数是匹配所有需要修改名字的.txt文件,第一个参数是通过正则表达式来修改文件名。这儿只用记住rename可以批量重命名就行。
  • 查看文件
    1、”cat”、”tac”、”nl”可以用来查看文件
    原文件:
    这里写图片描述
    使用三种不同命令查看的结果:
    这里写图片描述
    这三个命令的区别:【nl】=【cat -n】,不过nl更专业,tac是倒序打印。

    2、当文件内容很多时,使用上述命令需要用鼠标来滚轮来翻页,如果没有鼠标怎么办?这时可以使用“more”和“less”命令来查看文件,他们是专业的阅读文件的命令。
    使用方法:打开后默认只显示一屏内容,终端底部显示当前阅读的进度(百分比)。可以使用Enter键向下滚动一行,使用Space键向下滚动一屏,按下h显示帮助,q退出。

    3、”head”和“tail”查看文件:
    head只显示最开始十行,tail只显示最后十行,不足十行的文件全显示:
    这里写图片描述
    (关于tail命令,不得不提的还有它一个很牛的参数-f,这个参数可以实现不停地读取某个文件的内容并显示。这可让我们动态查看日志起到实时监视的作用)

  • 查看文件类型
    使用“file”命令:
    这里写图片描述

  • 编辑文件
    如果是在终端里,可能大家用得多的是vim编辑器,这里可以先学学vim编辑器的使用,这是学习地址Vim编辑器快速入门,如果是在可视化系统中的话可以双击文件也能像Windows中的记事本那样编辑文件。

三. 总结

这一篇主要介绍了目录结构和对文件目录的基本操作,其中涉及到了一些很常用的命令,下一节将学习环境变量与文件查找的相关内容。
这一次的实验是在虚拟机做的,不过学习的文档还是来自实验楼,这里再给大家推荐一个学习的好网址Linux菜鸟教程

参考文献:https://www.shiyanlou.com/courses/1/labs/59/document

注:转载请注明原文出处:
作者:CUG_UESTC
出处:http://blog.csdn.net/qq_31192383/article/details/52823500

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章