2018-Linux系统基础-linux-05.文件和目录

第五章 文件和目录

  1. linux系统和Windows系统不同,它按照目录的形式挂载文件系统,其目录结构是一个分层的树形结构。
  2. 链接是一种在共享文件和访问它的用户的若干目录项之间建立联系的方法,linux系统中包含硬链接和软链接。

1. linux文件

  1. 文件分类:
    1. 一般文件
    2. 目录
    3. 设备(光驱、硬盘等)

1.1. linux文件扩展名

1.1.1. 压缩和归档的文件

  1. .bz2:使用bzip2压缩的文件。
  2. .gz:使用gzip压缩的文件。
  3. .tar:使用tar压缩的文件,又称tar文件。
  4. .tbz:使用tar和bzip压缩的文件。
  5. .tgz:使用tar和gzip压缩的文件。
  6. .zip:使用zip压缩的文件,Linux下使用gzip命令压缩的文件。

1.1.2. 文件格式

  1. .au:音频文件。
  2. .gif:GIF图像文件。
  3. .html/.htm:HTML文件。
  4. .jpg:JPEG图像文件
  5. .pdf:PDF文档。
  6. .png:PNG图像文件。
  7. .ps:PostScript文件,为打印而格式化过的文件。
  8. .txt:纯ASCII文本文件。
  9. .wav:音频文件。
  10. .bmp:图像文件。

1.1.3. 系统文件

  1. .conf:一种配置文件,配置文件有时也使用.cfg。
  2. .lock:锁文件,用来判定程序或设备是否 正在被使用。
  3. .rpm:Linux系统中用来安装软件的软件包 管理器文件。

1.1.4. 编程和脚本语言

  1. .c:C语言的源码文件。
  2. .cpp:C++语言的源码文件。
  3. .h:C或C++语言的头文件。
  4. .o:程序的对象文件。
  5. .pl:Perl脚本。
  6. .py:Python脚本。
  7. .so:库文件。
  8. .sh:Shell脚本。
  9. .tcl:TCL脚本。

1.1.5. 查看文件类型

  • 语法:file name

1.2. linux文件类型

  1. 普通文件
    1. 查看文件属性:ls -lh
    2. 属性第一个符号是"-"
  2. 目录文件
    1. 查看文件属性:ls -lh
    2. 属性第一个符号是"d"
  3. 设备文件
    1. 字符设备文件
      1. 查看文件属性:ls -l
      2. 属性第一个符号是"b"
      3. 可以通过service kudzu start来自动增加、删除或修改字符
      4. 常见设备:打印机和终端
      5. 注:/dev/null这是一个非常有用的字符设备文件
        1. 送入这个设备的所有内容都会被忽略
        2. 将一个用户的shell指向这里就能禁止这个用户登录
    2. 块设备文件
      1. 查看文件属性:ls -l
      2. 属性第一个符号是"c"
      3. 主要特点:随机读写
      4. 常见设备:磁盘
  4. 符号链接文件
  5. 管道文件(FIFO文件)
    1. 查看文件属性:ls -l
    2. 属性第一个符号是"p"
    3. 管道文件是从一头流入,从另一头流出。
  6. 链接文件
    1. 软链接
      1. 文件用户数据块中存放的内容是另一文件的路径名的指向,可以使任意文件或目录,可以连接不同文件系统的文件。
      2. 查看文件属性:ls -h
      3. 属性第一个符号是"l"
      4. 你在对符号文件进行读或写操作的时候,系统会自动把该操作转换为对源文件的操作,但是删除链接操作时,系统仅仅删除链接文件,而不删除源文件本身
    2. 硬链接
      1. 硬链接是已存在文件的另一个文件,对硬链接文件进行读写和删除操作时,结果和软链接相同。但是如果删除硬链接文件的源文件,硬链接文件仍然存在,而且保留了原有的内容,之后就会把硬链接文件将其变成一个普通的文本文件。
      2. 查看文件属性:ls -h
      3. 属性的第一个符号是"l"
      4. 如果第二列文件硬链接数大于1,那么这个文件是硬链接。
      5. 限制:
        1. 不允许给目录创建硬链接
        2. 只有在同一文件系统中的文件之间才能建立链接。

2. linux目录结构

  1. linux系统有根文件系统,它包含系统引导和使其他文件系统得以挂载所必要的文件,根文件系统需要有单用户状态所必须的足够的内容,还应该包括修复损坏系统、恢复备份等工具。
  2. linux系统的目录结构是分层的属性结构,都是挂载在根文件系统"/"下
    1. /home:包含linux系统上个用户的主目录子目录以该用户名命名。
    2. /root:是root用户的主目录
    3. /bin:常用命令文件,不能包含子目录
    4. /sbin:包含系统管理员和root用户所使用的命令文件
    5. /dev:包含大部分的设备文件
    6. /lib:包含linux系统的共享文件和内核模块文件
      • /lib/modules中存放核心可加载模块,特别是那些恢复损坏系统时引导的模块。
    7. /tmp:包含一些临时文件
    8. /mnt:为某些设备(硬盘)挂载提供默认挂载目录
    9. /boot:包含linux系统的内核文件和引导装载程序文件
    10. /proc:不存在在某个硬盘上,而是由内核在内存中产生
    11. /opt:包含某些第三方应用程序的安装软件
    12. /media:为光盘、软盘、U盘等设备提供默认挂载目录
    13. /selinux:selinux(安全增强linux)是linux系统中的一个强制访问控制机制,可以增强系统安全性。
    14. /var:存放不经常变化的数据,如系统日志、打印队列、DNS数据库文件等
    15. /etc:包含linux系统上大部分的配置文件
    16. /usr:存放不经常变化的数据
    17. /lost+found:基本都是空的,是在紧急情况下存放数据
    18. /srv:存放一些服务启动之后所需要去用的资源目录

3. 文件和目录操作

3.1. pwd

  1. 显示工作目录路径(当前用户所处的工作目录的绝对路径)
  2. 语法:pwd

3.2. cd

  1. 更改工作目录路径
  2. 语法:cd [目录名]
    • ~:切换至用户主目录
  3. 例子:cd /etc

3.3. ls

  1. 列出子目录和文件信息
  2. 语法:ls [选项][目录或是文件]
    • 文件名前加一个.表示是隐藏文件
  3. 具体见PPT

3.4. touch

  1. 创建空文件以及更改文件或目录的时间
  2. 语法:touch [-acfm][-d <日期时间>][-r <参考文件或目录>][-t <日期时间>][文件]
  3. 选项见PPT

3.5. mkdir

  1. 创建目录
  2. 语法:mkdir [选项][目录名]
    1. -m:对新建目录设置存取权限,没有时默认755
    2. -p:可以是一个路径名称,一次可以创建多个目录

3.6. rmdir

  1. 删除空目录
  2. 语法:rmdir [选项][目录名]
  3. 如果文件目录非空的话,将会报错。

3.7. cp

  1. 复制文件和目录到其他目录中
  2. 语法:cp [选项][源文件或目录][目标文件或目录]

3.8. mv

  1. 移动或更名现有文件或目录
  2. 语法:mv [选项][源文件或目录][目标文件或目录]
    1. -i:交互式操作
    2. -f:禁止交互式操作
  3. mv -f /root/picture/*.png /usr/picture

3.9. rm

  1. 删除文件或目录
  2. 语法:rm [选项][文件或目录]
    1. -f:忽略不存在的文件
    2. -r:将参数中列出的全部目录和子目录均递归删除
    3. -i:进行交互式删除,需要确认删除

3.10. wc

  1. 统计指定文件中的行数、单词书或字节数,并将统计结果显示输出到屏幕
  2. 语法:wc [选项][文件]
    1. -l:统计行数
    2. -w:统计单词数
    3. -c:统计字符数
    4. 链接使用-lwc:按顺序成表格输出

4. 链接文件

  1. 在linux系统中,内核为每一个新创建的文件分配一个inode(索引节点)好,文件属性保存在索引节点里,在访问文件时,索引节点被赋值到内存里,从而快速访问文件

4.1. 链接文件简介

  1. linux系统分为两种链接:硬链接和软链接(符号链接)

4.1.1. 硬链接

  1. 硬链接是一个指针,指向文件索引节点,系统不为它重新分配inode,也可以用ln命令来建立硬链接
  2. 两个限制:
    1. 不允许给目录创建硬链接
    2. 只有在同一文件系统中的文件之间才能创建链接

4.1.2. 软链接

  1. 又称符号链接,这个文件包含了另一个文件的路径名

4.1.3. 两种链接之间的区别

  1. 硬链接记录的是目标的inode(索引节点),更像备份,只能在本分区中操作
  2. 软链接记录的是目标的路径,类似快捷方式,可以进行跨分区链接

4.1.4. 链接文件的使用

  1. 常见链接文件语法:ln [选项][源文件名][链接文件名]
    • -i:交互式操作
    • -s:如下
  2. 软(符号)链接:ln -s name1 nameb
  3. 硬链接:ln name1 name2

2018-Linux系统基础-linux-05.文件和目录
https://spricoder.github.io/2018/07/16/2018-Linux-system-basics/2018-Linux-system-basics-linux-05.%E6%96%87%E4%BB%B6%E5%92%8C%E7%9B%AE%E5%BD%95/
作者
SpriCoder
发布于
2018年7月16日
许可协议