文章目录
1.文件系统层次结构
Linux系统中的所有文件存储在文件系统中,它们被组织到一个颠倒的目录树中,称为文件系统层次结构。这棵树是颠倒的,因为树根在该层次结构的顶部,树根下方延伸出目录和子目录的分支。
/目录是根目录,位于文件系统层次结构的顶部。/字符还用作文件名中的目录分隔符。
例如:
etc是/目录的子目录,我们把它们称为/etc目录。
/etc目录包含一个名为issue的文件,可称为 /etc/issue目录。
1.1根目录下重要的目录
/usr | 安装的软件、共享的库,包含文件和静态只读程序的数据。 |
---|---|
/etc | 特定于此系统的配置文件 |
/var | 系统的可变数据,在系统启动之间保持永久性。 |
/run | 自上一次系统启动以来启动的进程的运行时数据 |
/home | 普通用户存储其个人数据和配置文件的主目录 |
/root | 管理超级用户root的主目录 |
/tmp | 供临时文件使用的全局可写空间 |
/boot | 开始启动过程所需的文件 |
/dev | 包含特殊的设备文件,共系统用于访问硬件 |
2. 对目录进行操作
命令结构的使用结构: 命令名称 [操作选项] [操作源对象] [操作目标对象]
[] 里面的内容可以省略
2.1 树状目录结构的解释
颠倒的树状目录结构,最上次的目录是根目录(‘/’)
Linux是一个多用户、多任务操作系统,同时可以登录多个用户。
特性:
- 根目录下的home目录功能:总的家目录
- 总的家目录下边又有各个用户自己的家目录
- 默认情况下家目录就是以用户名定义的
2.2 目录的基本命令
指令名称 | 指令作用 |
---|---|
cp | 复制文件或目录 |
mv | 移动文件或目录 |
mkdir | 创建目录 |
rm | 删除文件或目录 |
rmdir | 删除目录 |
1. cp 指令:复制一个或多个文件
将一个现有文件复制为当前或另一个目录中的新文件,或将多个文件复制到另一个目录中(最后一个参数必须为目录)。在目标位置时,新文件都必须是唯一的。如果新文件名不唯一,那么复制命令将覆盖现有文件。
常用选项:
-f 强制(force)复制文件或目录
-i 覆盖文件之前先询问用户
-r 复制文件到指定位置,包含目录
-R 将指定目录下的文件及子目录
举例:
[lemon@localhost workspace]$ cp study_02 study02
[lemon@localhost workspace]$ ls -l
总用量 16
drwxrwxr-x. 2 lemon lemon 4096 10月 20 17:09 study
-rw-rw-r--. 1 lemon lemon 2585 10月 20 17:20 study02
-rw-rw-r--. 1 lemon lemon 2585 10月 20 09:08 study_02
-rw-rw-r--. 1 lemon lemon 1641 10月 20 08:41 study_file
[lemon@localhost workspace]$ cp study studyfile
cp: 略过目录"study"
[lemon@localhost workspace]$ cp -r study studyfile
[lemon@localhost workspace]$ ls
study study02 study_02 studyfile study_file
[lemon@localhost workspace]$ ls -R
.:
study study02 study_02 studyfile study_file
./study:
study02
./studyfile:
study02
使用cp study studyfile命令时,提示略过目录"study",但使用-r递归选项时,复制成功。
2.mv指令:移动文件或者文件改名
功能:
a. mv命令中第二个参数类型的类型不同,mv命令将文件重命名或将其移至一个新的目录中。
b. 当第二个参数是文件时,mv命令完成文件重命名,此时源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
c. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。
常用选项:
-f 如果目标文件已存在,不会询问而直接覆盖
-i 若目标文件已经存在,就会询问是否覆盖
举例:
[lemon@localhost workspace]$ ls -R
.:
study study00 study01 study02
./study:
[lemon@localhost workspace]$ mv study00 study_00
[lemon@localhost workspace]$ ls
study study_00 study01 study02
[lemon@localhost workspace]$ mv study_00 ./study
[lemon@localhost workspace]$ ls -R
.:
study study01 study02
./study:
study_00
第一个mv命令是重命名,第二个命令会导致文件重新放置到另外的目录中。
3.mkdir:创建目录
常用选项:
-p 递归创建目录,为目标位置请求创建缺失的父目录(若路径中某些目录尚不存在,系统将自动创建好那些不存在的目录,即一次可以创建多层目录)
举例:
[lemon@localhost workspace]$ ls -R
.:
study study01 study02
./study:
study_00
[lemon@localhost workspace]$ mkdir aaa/bbb/ccc
mkdir: 无法创建目录"aaa/bbb/ccc": 没有那个文件或目录
[lemon@localhost workspace]$ mkdir -p aaa/bbb/ccc
[lemon@localhost workspace]$ ls -R
.:
aaa study study01 study02
./aaa:
bbb
./aaa/bbb:
ccc
./aaa/bbb/ccc:
./study:
study_00
mkdir通过-p命令创建了该目录下的aaa/bbb/ccc目录。
4.rm / rmdir:删除文件或目录
rm 删除文件或目录,默认是删除文件
常用选项:
-f 忽略所有提示信息,强制删除(即使文件属性为只读,也直接删除,使用时应该小心)
-r 删除文件,包括目录
-i 删除文件时,提示是否要删除
举例:
[lemon@localhost workspace]$ ls
aaa study study01 study_01 study02
[lemon@localhost workspace]$ ls -R
.:
aaa study study01 study_01 study02
./aaa:
bbb
./aaa/bbb:
ccc
./aaa/bbb/ccc:
./study:
study_00
[lemon@localhost workspace]$ rm study_01
[lemon@localhost workspace]$ ls
aaa study study01 study02
[lemon@localhost workspace]$ rm aaa
rm: 无法删除"aaa": 是一个目录
[lemon@localhost workspace]$ rm -r aaa
[lemon@localhost workspace]$ ls
study study01 study02
[lemon@localhost workspace]$ rm -ri study
rm:是否进入目录"study"? n
[lemon@localhost workspace]$ ls
study study01 study02
[lemon@localhost workspace]$ mkdir -p aaa/bbb/ccc
[lemon@localhost workspace]$ rm -ri aaa
rm:是否进入目录"aaa"? y
rm:是否进入目录"aaa/bbb"? y
rm:是否删除目录 "aaa/bbb/ccc"?y
rm:是否删除目录 "aaa/bbb"?y
rm:是否删除目录 "aaa"?y
[lemon@localhost workspace]$ ls
study study01 study02
以上的操作,第一个为删除一个文件rm study_01;第二个为删除一个目录rm aaa,但由于没有加任何选项,所以没有成功删除;第三个加了-p选项rm -p aaa,成功删除目录aaa;第四个提示询问消息rm -i;第五个 rm -ri aaa,即询问且一级一级的询问提示的消息,发现了-r递归删除目录,先进入目录删除目录中的子目录及文件,成为空目录后再删除文件。
rmdir 命令仅删除空的目录,删除的目录无法取消,也灭有回收站,所以大家需要谨慎使用
[lemon@localhost workspace]$ ls -R
.:
aaa study study01 study02
./aaa:
bbb
./aaa/bbb:
./study:
study_00
[lemon@localhost workspace]$ rmdir aaa
rmdir: 删除 "aaa" 失败: 目录非空
[lemon@localhost workspace]$ rmdir aaa/bbb
[lemon@localhost workspace]$ ls -R
.:
aaa study study01 study02
./aaa:
./study:
study_00
5. ls命令:查看当前目录下内容
常用选项:
-a 查看隐藏文件(标准解释:查看所有文件,并不忽略以 . 开头的文件) Linux以 . 开头的文件都是隐藏文件 . 当前目录 … 上一层目录(每一个目录下都有这一个目录)
-l 列出目录下内容的详细信息
-t 按时间排序
-r 对排序进行逆序(一般与-t一起使用)
-h 人性化显示 (一般和-l在一起使用)
举例:
[lemon@localhost workspace]$ ls -R
.:
aaa study study01 study02
./aaa:
./study:
study_00
[lemon@localhost workspace]$ ls -a
. .. aaa study study01 study02
[lemon@localhost workspace]$ ls -l
总用量 16
drwxrwxr-x. 2 lemon lemon 4096 10月 20 19:44 aaa
drwxrwxr-x. 2 lemon lemon 4096 10月 20 18:01 study
-rw-rw-r--. 1 lemon lemon 1641 10月 20 17:54 study01
-rw-rw-r--. 1 lemon lemon 2585 10月 20 17:53 study02
[lemon@localhost workspace]$ ls -t
aaa study study01 study02
[lemon@localhost workspace]$ ls -r
study02 study01 study aaa
[lemon@localhost workspace]$ ls -lh
总用量 16K
drwxrwxr-x. 2 lemon lemon 4.0K 10月 20 19:44 aaa
drwxrwxr-x. 2 lemon lemon 4.0K 10月 20 18:01 study
-rw-rw-r--. 1 lemon lemon 1.7K 10月 20 17:54 study01
-rw-rw-r--. 1 lemon lemon 2.6K 10月 20 17:53 study02
在这里需要对-l选项的结构分析一下,大家需要知道。
-l选项显示出一系列的消息,我们可以看到第一竖列文件类型,d代表什么文件类型呢?
d 目录文件。
l 符号链接文件(指向另一个文件,类似于windows的快捷方式)。
s 套接字文件。
b 块设备文件。
c 字符设备文件。
p 命名管道文件。
- 普通文件。
6. pwd命令:打印当前用户所在目录
先了解一下绝对路径和相对路径:
绝对路径:完整路径,从根目录开始到达要进入目录,/home/lemon
相对路径:从本目录下进入到下一个目录,…/lemon
pwd打印的是绝对路径
[lemon@localhost workspace]$ pwd
/home/lemon/workspace
我们可以了解到,我们在根目录下的home目录下的当前用户lemon目录下的workspace目录。
7. cd命令:改变工作目录
cd 将当前工作目录改变到指定的目录下。
常用选项:
cd … 返回上一级目录 ~ 进入当前用户所在的家目录
– 返回最近访问的目录