一、文件系统概述
1.文件系统的基本概念
操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。它规定了文件的存储方式及文件索引方式等信息。文件系统主要由三部分组成,分别是与文件管理相关的软件、被管理的文件和实施文件管理所需的数据结构。
2.文件系统类型
xfs是CentOS 8默认的文件系统类型。
ext2是Linux自带的文件系统类型,Linux在早期的发行版本中使用ext2作为默认使用的文件系统。
ext3是在ext2的基础之上发展演变而来,具有ext2没有的优点。
Reiserfs是SuSE Linux默认的文件系统类型。
swap文件系统在Linux中作为交换分区的文件系统使用。
网络文件系统(Network File System,NFS)。
ISO9660是光盘文件使用的标准文件系统。
二、Linux的树形目录结构
1.常用目录介绍
2.特殊目录
符号 | 意义 |
. | 当前工作目录 |
.. | 父目录 |
~ | 用户主目录 |
- | 前一个工作目录 |
3.文件的命名
Linux支持长文件名,最长可以达到256个字节。Linux的文件名中不能含有空格和以下特殊字符:
! @ # ¥ % ~ & × ( ) [ ] { } ' " \ / | ; < > << >>
Linux操作系统中的文件名和命令都需要区分大小写。
4.绝对路径和相对路径
(1)绝对路径
绝对路径是以根目录为起点,完整地表示到目标文件或目录的路径。
(2)相对路径
相对路径是以当前目录为起点,完整地表示到目标文件或目录的路径。
三、Linux的文件管理命令
1.用mkdir命令创建目录
mkdir(make directory的缩写)命令用于创建新的目录,可以同时创建一个或多个目录。
命令格式:mkdir [选项] 目录名称
选项 | 功能说明 |
-m | 在创建目录时设定权限模式 |
-p | 创建目录结构中指定的每一个目录,如果目录不存在则创建目录,如果目录已存在也不会被覆盖 |
-v | 或--verbose:每次创建新目录都显示信息 |
〖例2.1〗在当前位置创建目录web。
#mkdir web
〖例2.2〗在/home下创建目录web,假设目前位于系统的根目录中。
方法一:
#mkdir home/web //相对路径方法
方法二:
#mkdir /home/web //绝对路径方法
方法三:
#cd home
#mkdir web
〖例2.3〗在root用户主目录中创建目录work1和work2,在/tmp目录下创建www目录,假设目前位于root用户主目录中。
#mkdir work1 work2 /tmp/www
〖例2.4〗在root用户主目录中创建目录树web1/web2/web3/web4,假设目前位于root用户主目录中。
#mkdir -p web1/web2/web3/web4
2.用cd命令切换目录
该命令用于改变当前目录,使用户进入指定的目录,并使该指定目录成为当前目录。
命令格式: cd [目录名称]
〖例2.5〗切换当前位置为/home
#cd /home
〖例2.6〗目前位于系统根目录,创建/home/student目录,并进入student目录。
#mkdir home/student
#cd home/student
〖例2.7〗切换到当前目录的父目录。
#cd ..
〖例2.8〗返回当前用户的主目录
方法一:
#cd
方法二:
#cd ~ //~表示主目录
3.用pwd命令查看当前路径
pwd(print working directory的缩写)命令用于显示当前目录的绝对路径。
命令格式: Pwd
4.用ls命令查看当前目录下的信息
该命令用于列出一个或多个目录下的内容(目录或文件)。这是一个应用非常广泛的命令,支持很多的选项,以实现更详细的功能。
命令格式: ls [选项] [目录名称]
选项 | 功能说明 |
-a | 列出目录下的所有文件,包括以 . 开头的隐含文件(all) |
-d | 将目录像文件一样显示,而不是显示其下的文件(directory) |
-i | 输出文件 i 节点的索引信息(inode) |
-l | 列出文件的详细信息(long) |
-m | 横向输出文件名,并以“,”作为分格符 |
-x | 按列输出,横向排序 |
-R | 列出所有子目录下的文件 |
-S | 以文件大小排序 (Size) |
-1 | 一行只输出一个文件 (1个文件) |
--help | 在标准输出上显示帮助信息 |
〖例2.9〗查看当前目录下的所有文件,含隐藏文件。
#ls -a
〖例2.10〗以长格式方式查看/home目录下的所有文件信息。
方法一:
#ls -l -a /home
方法二:
#ll -a /home
5.用touch命令创建/更新文件
该命令用于创建一个新的空文本文件。
命令格式: touch 文件名
〖例2.11〗在当前位置创建文件file1和file2。
#touch file1 file2
6.用cp命令复制文件及目录
cp(copy的缩写)命令可用于目录或文件的复制。
命令格式:cp [选项] 源文件 目标文件
选项 | 功能说明 |
-a | 保留链接、文件属性,复制目录时可递归的复制目录 |
-f | 如果目标文件或目录已经存在,则将其覆盖,并不作提示 (force) |
-i | 如果目标文件或目录已经存在,则对用户进行提示,可以用字母y确认,其他字母都是否认 |
-r | 复制目录,实现将源目录下的文件和子目录一起复制到目标目录中 |
〖例2.12〗将文件file1复制到/home目录下并重命名为file2。
#cp file1 /home/file2
〖例2.13〗将文件file1复制到/home目录下并重命名为file2,如果/home下已经存在file2文件,则备份原file2文件。
#cp -b file1 /home/file2
〖例2.14〗将work1目录复制到/home目录下。
#cp -r work1 /home
7.用mv命令移动/重命名文件及目录
mv(move的缩写)命令用于移动或重命名目录或文件。Linux操作系统中没有单独的重命名命令,因此,可利用该命令来间接实现。
命令格式: mv [选项] 源文件 目标文件
〖例2.15〗将文件file1重命名为file2。
#mv file1 file2
〖例2.16〗将文件file2移动到/tmp目录下并重命名为file3,如果/tmp下已经存在file3文件,则备份原file3文件。
#mv -b file2 /tmp/file3
〖例2.17〗将目录work2移动到/tmp目录下。
#mv work2 /tmp
〖例2.18〗将文件file2移动到/tmp目录下并重命名为file3
#mv file2 /tmp/file3
8.用rm命令删除文件
rm(remove的缩写)命令用来删除文件或目录。可以删除一个或多个文件或目录,也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是断开了链接,原文件保持不变。
命令格式: rm [选项] 目标文件
选项 | 功能说明 |
-f | 强制删除文件或目录 (force) |
-i | 对用户进行提示,(inform)可以用字母y确认,其他字母都是否认 |
-r | 目录删除,将指定目录下的所有文件及其子目录一并删除 |
〖例2.19〗删除文件file。
#rm file
〖例2.20〗删除目录work。
#rm -r work
〖例2.21〗强制删除目录work。
#rm -rf work
9.用rmdir命令删除目录
rmdir(rmove directory的缩写)命令的删除对象必须是空目录,且必须在上级目录进行删除操作。
命令格式:rmdir [选项] 目录名
选项 | 功能说明 |
-p | 删除指定的目录树 |
-v | --verbose 删除目录过程中输出诊断信息 |
--help | 显示命令帮助信息 |
10.用find命令查找文件
该命令用于在相应路径下查找满足条件的文件。
命令格式:find 查找目录的路径 查找条件选项 对查找条件的设定
选项 | 功能说明 |
-name | 通过文件名查找文件 |
-user | 通过用户名查找文件 |
-type | 通过文件类型查找文件 |
-size | 通过文件大小查找文件 |
-atime | 通过文件的最后访问日期查找文件(单位:天) |
-mtime | 通过文件的最后修改日期查找文件(单位:天) |
-newer | 查找比指定文件更新的文件 |
-amin | 查找在指定时间内曾被存取过的文件(单位:分钟) |
-cmin | 查找在指定时间内被更改过的文件(单位:分钟) |
-perm | 查找符合指定权限数值的文件 |
〖例2.22〗在/root目录下,查找所有文件拥有者是root的文件。
#find /root -user root
〖例2.23〗查找/etc目录下所有以pass字符串开头的文件。
#find /etc -name pass*
11.获取帮助
在字符界面下常使用man命令获得帮助
在命令行下使用info获取帮助
项目一:Linux下文件管理的实践
操作过程:
(1)根据项目描述要求在/home/guestuser1/目录下分别创建work1和work2两个子目录,由于已经明确所要生成目录的绝对路径,所以可以通过mkdir命令直接生成指定的目录,执行命令:
$mkdir /home/guestuser1/work1
$mkdir /home/guestuser1/work2
需要注意的是,在生成目录时,可以使用绝对路径,也可以使用相对路径。如果只写出一个目录的名字,则新的目录将会被创建在当前目录中。
(2)要进入指定的路径,可以直接用cd命令加绝对路径的方式进行操作,执行命令:
$cd /home/guestuser1/work1
(3)显示当前路径可以验证上一步操作的正确性,执行命令:
$pwd
(4)由于是在当前位置创建文件file1,可以使用相对路径的操作方法来实现,执行命令:
$touch file1
(5)由于要求显示包括隐藏文件在内的所有文件,因此需要添加选项-a,执行命令:
$ls -a
(6)由于要求将当前目录下的文件拷贝到另一个目录中,因此不需要写源文件的绝对路径,只需要写出被拷贝的对象名file1就可以,执行命令:
$cp file1 /home/guestuser1/work2
(7)为了验证file1文件拷贝是否成功,查看/home/guestuser1/work2目录下的内容,命令格式:
$ls /home/guestuser1/work2
(8)目前位于系统/home/guestuser1/work1路径下,所以删除目录/home/guestuser1/work1中的file1文件,执行命令:
$rm file1
(9)删除目录/home/guestuser1/work1,首先要切换出当前位置,执行命令:
$cd ..
$rm -r /home/guestuser1/work1
(10)由于需要将文件file1改名成file2,并不涉及到对文件的备份问题,所以直接进行mv操作,执行命令:
$cd /home/guestuser1/work2
$mv file1 file2
(11)需要查找的范围是当前目录,所以不需要指明查找目录的路径。而查找所有以“file”开头的文件,则查找的依据是文件的名称,所以条件选项选择-name,执行命令:
$find -name file*
需要注意的是,查找结果是文件存放的相对路径。其中“./file2”,代表的是当前目录下的文件file2。也就是说“.”代表当前目录。另外,“..”代表上层目录。如果指定从根目录下开始查找,则查找结果是文件存放的绝对路径。