1.软链接和硬链接画图,以及代码
图中file1为一个普通的文件 file1_hard为硬链接 file1_svmbolic为软链接
Linux中文件的组成
讲解软硬连接之前我们首先要知道Linux中一个文件是由三部分组成: 目录项(文件名)、inode(元数据)和数据(存放在block模块中)组成
硬链接
①硬链接的概念: 指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户 就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和 其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。
(1) 硬链接,以文件副本的形式存在。但不占用实际空间。
(2) 不允许给目录创建硬链接。
(3) 硬链接只有在同一个文件系统中才能创建。
(4) 删除其中一个硬链接文件并不影响其他有相同 inode 号的文件 ②如何实现硬链接:
命令 ln 原文件 目标文件 下图我先给file1创建了一个硬链接file_hrad,我们查看file1的状态发现他的links变成了2,说明了我们的硬链接已经创建成功了
给file1文件写点东西然后用硬链接查看发现和原文件内容一致,说明硬链接可以访问到原文件 删除file1然后访问硬链接发现仍可以访问到文件这说明 (4) 删除其中一个硬链接文件并不影响其他有相同 inode 号的文件
软连接
①软链接的概念:
类同与windos的快捷方式,给文件创建一个快速的访问路径,它依赖于原文件,与普通文件没什么不同,inode 都指向同一个文件在硬盘中的区块。当原文件出现问题后,该链接不可用。
(1)可以应用于目录
(2)可以跨文件系统
(3)不会增加被链接文件的链接次数
(4)大小为指定的绝对路径所包含的字符总数
(5)有自己的inode号
(6)权限无关紧要
②如何实现软链接:
命令 ln -s 原文件 目标文件 给file1创建一个软连接file_svmbolic,然后访问file_svmbolic发现和原文件内容一致 查看他们的状态发现他们的弄Inode不同, 删除file1发现软链接无法访问file1
2.一级目录的解释(存储什么东西,英文)
1、bin
binary(二进制)的缩写;
含义:此文件下存放的都是二进制可以执行命令文件。
2、sbin
system binary是系统管理员专用的二进制代码存放目录,主要用于系统管理
3、boot
这个单词就是自己本身,有“引导”的意思;
含义:存放Linux系统启动的文件,启动配置以及内核的镜像。
4、dev
device(设备)的缩写;
含义:存放的是系统下的所有设备文件。
5、etc
具有“and so on”(等等)的意思,
含义:存放系统的各种配置文件。
6、home
"家"的意思;
含义:普通用户的家目录,也就是普通用户存放自己东西的地方。
7、lib
libiary(图书馆),在计算机术语中称为“库”更为贴切;
含义:系统使用函数库的目录。放置的是/bin和/sbin目录下程序所需的库文件。
8、media
media(媒体,介质);
含义:软盘或者光盘等的挂载点。系统自动挂载会选择的地方。
9、mnt
mount(嵌入)的意思;
含义:系统中可移动设备的挂载点。手动挂载会选择的地方。
10、opt
optional:“可选择”的意思,作用是安装第三方软件的地方
含义:系统额外安装软件存放的目录。
11、proc
process(进程)
含义:一个虚拟的文件系统(不是实际贮存在磁盘上的),它包括被某些程序使用的系统信息。
12、root
root(根),并不是此根(/),(/ 是系统的根)。
含义:系统管理员所在的“家”目录,能够对它进行操作。
13、run
run(运行)的意思;
含义 : 运行时的临时文件。
14、srv
service(服务)的缩写;
含义:服务启动后,所需要访问的数据目录。
15、sys
system(系统)的缩写。
含义:系统文件
16、tmp
temporary(临时的)的缩写。
含义:系统临时文件目录。
17、usr
Unix Software Resource的意思
含义:操作系统软件资源
18、var
variable(可变的)的缩写;
3.重定向:
标准输入(stdin):代码为0 标准输出(stdout):代码为1 标准错误输出(stderr):代码为2 二、使用 符号:
:一般是指将输出的结果指引到某个文件。
比如:ls /home > 1.txt
将home下的输出内容重定向到文件1.txt中。
注意:文件不存在会创建,存在会覆盖或者说删除再创建
:将输出的结果追加到指定的文件末尾
比如:ls /home >> 1.txt
将home下的输出内容追加到或者说重定向到文件1.txt末尾
注意:文件不存在会创建,存在就会追加。
2>:使用错误流将错误信息重定向到文件中
比如:不存在/xx目录
ls /xx 2> 1.txt
将不存在的xx的错误输出信息重定向到1.txt中
注意:如果文件1.txt不存在会自动创建,也可以使用 2>>,将错误的输出信息追加到末尾,存在会追加。
&>:这个是标准输出和标准错误输出都重定向至一个文件下
&:这个比较特殊的写法是为两边都是重定向文件描述符定制的,例如“2>&1” 的含义就是把标准错误输出(2)整合到标准输出(1)末尾,而标准输出(1)因为没有重定向所以默认输出到控制台上,所以当使用该指令你可以看到的是错误以及标准输出都输出到指定文件
将1重定向到文件,将2重定向到1
将2重定向到文件,将1重定向到2
将文件重定向到0
cat从标准输入读取内容,然后输出到文件中
Optional: cmd >&n 把输出送到文件描述符n cmd m>&n 把输出到文件符m的信息重定向到文件描述符n cmd >&- 关闭标准输出 cmd <&n 输入来自文件描述符n cmd m<&n m来自文件描述符n cmd <&- 关闭标准输入 cmd <&n- 移动输入文件描述符n而非复制它 cmd >&n- 移动输出文件描述符 n而非复制它
4.创建文件,删除文件,创建目录,删除目录
创建文件:touch 文件名 删除文件:rm 文件名
创建目录的命令:mkdir test_dir
创建嵌套目录:可以使用选项-p创建嵌套目录结构。如果父目录不存在,它将为您创建。当您要创建目录结构或要确保目录路径存在时,这特别有用。 mkdir -p dir1/dir2/dir3/dir4
3.删除文件及目录的命令:rm rm命令的用法: rm (-操作符)文件路径
-d:直接把欲删除的目录的硬连接数据删除成0,删除该目录;
-f:强制删除文件或目录(没有提示);
-i:删除已有文件或目录之前先询问用户(默认设置);
-r或-R:递归处理,将指定目录下的所有文件与子目录一并处理(删除目录必须要加);
–preserve-root:不对根目录进行递归操作;
-v:显示指令的详细执行过程
5.cp命令:
复制文件粘贴重命名
复制文件到目录重命名
复制目录到目录
复制文件到目录且不改变文件属性
mv命令的使用 mv的过程中是先cp,cp完成之后再将原来的文件进行删除。经过验证,确实如此,我原来的文件大小没变。
命令参数:
-b :若需覆盖文件,则覆盖前先行备份。 -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖; -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖! -u :若目标文件已经存在,且 source 比较新,才会更新(update) -t :–target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后。
|