【明目标】

  1. 掌握Linux的文件系统的目录结构
  2. 掌握绝对路径和相对路径
  3. 理解路径中的特殊代词,如根目录,用户家目录,当前目录和父目录代词
  4. 能使用常见的目录文件操作命令

    【探情景】

    一、在网络运维中,经常需要做以下的任务:

  5. 备份配置文件到家目录

  6. 查看日志文件,并做备份
  7. 将光盘ISO文件挂载到文件系统

二、转化为学习任务

【学新知】

参考资源

  1. 菜鸟教程 [ https://www.runoob.com/linux/linux-tutorial.html ]
  2. 参照对照 Windows的文件系统和文件类型来学习

一、Linux的文件系统树

(二)Linux的文件树结构
Linux是单根文件系统树,特点有:

  1. 只有一个根目录,是/,是固定的。相对来说,Windows是磁盘盘符,如c盘等。
  2. 它的子目录也是约定好的,有各自的用途
  3. 文件系统 >磁盘分区。磁盘或分区都是mount挂载到一个文件系统的目录下。
  4. 存放数据的目录建议单独分区。如/home, /var,/tmp
  5. 而类似/dev,/etc,/usr这些都是与/目录在一起的。

任务2.1 认识Linux的文件树 - 图1
(三)常用的二级目录

  1. 用户主目录 **/home****/root**
    在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的 alice、bob 和 eve。

    而系统管理员root的用户主目录在 /root。

  2. 配置文件目录 **/etc**
    这个目录用来存放所有的系统管理所需要的配置文件和子目录。

  3. /var 和 /tmp
    /var 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

    /tmp 是临时目录,用来存放临时文件的。

  4. /usr/opt
    usr 是 unix shared resources(共享资源) 的缩写,用户通过rpm二进制安装的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。里面有重要的子目录,包括 /usr/bin; /usr/sbin; /usr/lib

    如果用户自定义安装,源码编译安装,可以用 /opt目录。

  5. /mnt/media

    /mnt, 让用户临时挂载别的文件系统的,如挂载同磁盘的Windows的文件系统目录,进行查看。包括光驱镜像文件。
    可移动磁盘(U盘、光盘等)也可以挂载到 /media目录下。

  6. /dev 和 /proc /sys

    dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。
    proc 是 Processes(进程) 的缩写,/proc 是虚拟文件系统,它是系统内存的映射,存储的是当前内核运行状态,我们可以通过直接访问这个目录来获取系统信息。
    sys 一个文件系统 sysfs , 该文件系统是内核设备树的一个直观反映。

  7. /boot 和/run 以及其他

    boot 这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。

(三)一切皆文件
在Linux中,一切都可以认为是文件

  1. 普通文件,包括链接文件
  2. 目录是文件
  3. 设备也以文件形势存取
  4. 文件是以文件系统组织起来的

【仿示范】

一、使用文件操作命令
(一)命令提示符
在shell中,[root@localhost ~]#

  1. root@localhost 是指 在主机名为localhost的主机上, 当前登陆用户是root
  2. ~ 的当前所在目录路径,随着目录切换而变化。 ~是当前用户的主目录的指代。
    1. 如果root登陆, ~对应的路径是 /root
    2. 如果是非root用户,如sdxy, ~对应的是/home/sdxy
  3. 提示符 # 后面是root用户权限的命令。 非root用户的提示符是 $
  4. 在#(或$)后面可以输入指令,回车执行,并返回结果

二、浏览命令

  1. pwd 显示当前所处的路径。

    是print work directory的首字母缩写
    ```shell [root@localhost ~]# pwd /root [root@localhost ~]#

[root@localhost ~]# su sdxy # 使用 su 切换用户 [sdxy@localhost root]$ pwd # gxsd@ 表示当前用户变了, root] root表示路径还是 /root /root [sdxy@localhost root]$ cd # 直接cd 不加目的目录,默认到当前用户的主目录 [sdxy@localhost ~]$ pwd /home/gxsd [sdxy@localhost ~]$

  1. 2. `cd `切换目录路径
  2. (英文全拼:change directory 这是用来变换工作目录的命令。
  3. ```perl
  4. cd [相对路径或绝对路径]
  5. ## 切换到根目录 /
  6. [root@localhost ~]# cd /
  7. [root@localhost /]# pwd
  8. /
  9. ## 切换到用户主目录, cd后面留空
  10. [root@localhost /]# cd
  11. [root@localhost ~]# pwd
  12. /root
  13. [root@localhost ~]#
  14. ## 切换到用户主目录 ~
  15. [root@localhost ~]# cd ~
  16. [root@localhost ~]# pwd
  17. /root
  18. [root@localhost ~]#
  19. ## 切换到上级目录 ..
  20. [root@localhost ~]# pwd
  21. /root
  22. [root@localhost ~]# cd ..
  23. [root@localhost /]# pwd
  24. /
  25. [root@localhost /]#
  26. ## 相对路径中 当前目录 ./
  27. [root@localhost ~]# cd /
  28. [root@localhost /]# pwd
  29. /
  30. [root@localhost /]# cd ./
  31. bin/ dev/ home/ lib64/ mnt/ proc/ run/ srv/ tmp/ var/
  32. boot/ etc/ lib/ media/ opt/ root/ sbin/ sys/ usr/
  33. [root@localhost /]# cd ./etc/
  1. ls 和 ll , 列出目录及文件名

    list files ,在Linux系统当中, ls 命令可能是最常被运行的。

    1. ## 追加 --help 参数, 查询 命令 ls的用法帮助
    2. [root@localhost ~]# ls --help
    3. 用法:ls [选项]... [文件]...
    4. ##参数的含义
    5. -l, 使用较长格式列出信息。
    6. -a, --all 不隐藏任何以. 开始的项目
    7. -d, 显示目录自身,不是它的子目录或子文件

    因为ls -l非常常用, 可以简写为ll。注意不是数字1,是字母L的小写。 ```shell [root@localhost ~]# cd /home/ [root@localhost home]# ll ### ll ==> ls -l 以每行一个目录(文件)列表显示。显示具体属性。 总用量 4 drwx———. 15 gxsd gxsd 4096 3月 15 00:38 gxsd [root@localhost home]#

[root@localhost home]# ls -a ## 显示所有子目录和文件, 横排文件名。 . .. gxsd [root@localhost home]# ll -d ## 显示目录自身的属性,不是子。。 drwxr-xr-x. 3 root root 18 1月 23 03:14 . [root@localhost home]#

  1. 三、变更类命令<br />(一)新增一个目录<br />`mkdir [-p] 目录 `
  2. ```shell
  3. [root@localhost ~]# pwd
  4. /root
  5. [root@localhost ~]# mkdir logs ## 在当前目录下 新建 logs目录
  6. [root@localhost ~]# ll -d logs/ ## -d, 只显示父目录自身,不显示内容
  7. drwxr-xr-x. 2 root root 6 3月 15 01:44 logs/
  8. [root@localhost ~]#
  9. ## 切换到logs目录下,创建2022的年份子目录,在其中再创建03的月份目录,
  10. ## 可以使用 mkdir -p 父子目录一起创建
  11. [root@localhost ~]# pwd
  12. /root
  13. [root@localhost ~]# cd logs/
  14. [root@localhost logs]# pwd
  15. /root/logs
  16. [root@localhost logs]# mkdir -p 2022/03
  17. ## 查看下
  18. [root@localhost logs]# ll -R ## -R的递归查看
  19. .:
  20. 总用量 0
  21. drwxr-xr-x. 3 root root 16 3月 15 01:46 2022
  22. ./2022:
  23. 总用量 0
  24. drwxr-xr-x. 2 root root 6 3月 15 01:46 03
  25. ./2022/03:
  26. 总用量 0
  27. [root@localhost logs]#

(二)删除一个目录。 删库跑路??
用法:rmdir [选项]... 目录...
删除指定的空目录。

  1. ## 将刚创建的目录删除
  2. [root@localhost logs]#
  3. [root@localhost logs]# rmdir 2022/
  4. rmdir: 删除 "2022/" 失败: 目录非空
  5. [root@localhost logs]# rmdir -p 2022/03/
  6. [root@localhost logs]# ll
  7. 总用量 0
  8. [root@localhost logs]#

(三)新增一个文件

  1. touch 命令

    1. [root@localhost logs]# touch abc.txt
    2. [root@localhost logs]# ll
    3. 总用量 0
    4. -rw-r--r--. 1 root root 0 3 15 02:03 abc.txt
  2. echo 重定向

    1. [root@localhost logs]# echo ' ' >> abc2.txt
    2. [root@localhost logs]# ll
    3. 总用量 4
    4. -rw-r--r--. 1 root root 2 3 15 02:05 abc2.txt
    5. -rw-r--r--. 1 root root 0 3 15 02:03 abc.txt
  3. vim 编辑器 ```shell [root@localhost logs]# vim abc3.txt [root@localhost logs]# ll 总用量 4 -rw-r—r—. 1 root root 2 3月 15 02:05 abc2.txt -rw-r—r—. 1 root root 0 3月 15 02:09 abc3.txt -rw-r—r—. 1 root root 0 3月 15 02:03 abc.txt

  1. (五)删除文件<br />默认时,rm 不会删除目录。使用--recursive(-r 或-R)选项可删除每个给定<br />的目录,以及其下所有的内容。
  2. ```shell
  3. [root@localhost logs]# rm --help
  4. 用法:rm [选项]... 文件...
  5. Remove (unlink) the FILE(s).

复制命令

  1. cp -rf /etc/hosts ~/2022/03/

【做任务】

任务1. 将/etc/hosts配置文件 备份到我们的家目录/root/2022/03/.

  1. 浏览找到/etc/hosts的配置文件
  2. 目的目录在哪里? 是否要创建
  3. 复制过来。

【拓技能】

【共复盘】


任务2.1 认识Linux的文件树 - 图2

Shell 浏览和查看 Linux的文件树

  1. [sdxy@localhost ~]$ pwd ### 返回当前所在是目录路径
  2. /home/sdxy
  3. [sdxy@localhost ~]$ cd /
  4. [sdxy@localhost /]$
  5. [sdxy@localhost /]$ pwd
  6. /
  7. [sdxy@localhost /]$ ls ### 列表显示 当前目录下的所有子目录,文件
  8. bin dev home lib64 mnt proc run srv tmp var
  9. boot etc lib media opt root sbin sys usr