找回密码
 立即注册
首页 业界区 安全 云计算运维-SRE基础篇之安装VMware

云计算运维-SRE基础篇之安装VMware

狭踝仇 3 天前
一、首先简单总结计算机发展相关历史,详细总结服务器硬件和计算机分类相关知识。
计算机发展简史

  • 早期计算工具:从古至今,人类使用过多种计算工具,如算盘、计算尺等。这些工具为后来的机械计算器奠定了基础。
  • 机械计算机时代(17世纪-19世纪):随着技术的发展,出现了更加复杂的机械装置来完成数学运算任务。查尔斯·巴贝奇设计了差分机和分析机,被认为是现代计算机概念的先驱。
  • 电子管时代(20世纪40年代):第二次世界大战期间及之后,第一代电子计算机出现,它们主要采用电子管作为开关元件。ENIAC是这一时期的标志性产品之一。
  • 晶体管时代(20世纪50年代末至60年代):晶体管取代了体积庞大且耗电量大的电子管,使得计算机变得更小、更快也更可靠。这促进了个人电脑前体——小型计算机的发展。
  • 集成电路时代(20世纪60年代中期开始):随着微电子学的进步,单个硅芯片上可以集成越来越多的晶体管,从而实现了更高程度的小型化与性能提升。微型计算机和个人电脑逐渐普及开来。
  • 个人电脑革命(20世纪80年代):苹果II、IBM PC等产品的推出标志着个人电脑时代的到来,家用计算机成为可能。
  • 互联网时代(20世纪90年代至今):随着网络技术的发展,计算机之间的连接变得更加紧密。Web服务兴起,云计算等新型计算模式逐步形成。
服务器硬件概述
1. 处理器(CPU)
多核处理:现代服务器通常配备多个处理器或每个处理器具有多个核心,这使得它们能够同时执行多个任务。
线程数:一些处理器支持超线程技术,允许每个物理核心运行多个线程,从而提高并行处理能力。
频率与缓存:高时钟频率和大容量的缓存可以提升处理器的性能。
2. 内存(RAM)
类型:服务器通常使用ECC(Error-Correcting Code)内存,它可以检测并修正单比特错误,提高数据完整性。
容量与速度:更大的内存容量和更快的速度有助于提高服务器的响应时间和整体性能。
双通道/四通道:通过多条内存通道来增加带宽,进一步优化内存访问速度。
3. 存储
硬盘驱动器(HDD):传统的机械硬盘适用于大容量存储需求,但读写速度较慢。
固态硬盘(SSD):基于闪存技术的SSD提供更快的数据访问速度,适合对I/O性能要求较高的应用场景。
NVMe SSD:采用NVMe协议的SSD通过PCIe总线直接连接到CPU,提供比传统SATA接口SSD更高的传输速率。
RAID配置:通过将多个磁盘组合成一个逻辑卷,RAID技术可以实现数据冗余和性能提升。
4. 网络接口
千兆以太网:基本标准,提供1 Gbps的数据传输速率。
万兆以太网:更高级的标准,提供10 Gbps甚至更高(如25G, 40G, 100G)的数据传输速率。
网络适配器:包括NIC(Network Interface Card)和TOE(TCP Offload Engine),后者可以在硬件级别上加速TCP/IP协议栈的处理。
5. 扩展插槽
PCIe插槽:用于扩展各种功能卡,比如额外的网络控制器、图形处理单元(GPU)、存储控制器等。
USB端口:虽然不如PC常见,但在某些情况下也可能会用到,例如外部存储设备或诊断工具。
6. 电源供应
冗余电源:为了保证服务器的高可用性,许多企业级服务器都配备了至少两个电源模块,以防止单点故障。
能效:高效的电源转换率有助于减少能耗和运营成本。
7. 散热系统
风扇:服务器内部安装有多个风扇以确保良好的空气流通,帮助散热。
液冷系统:对于高性能计算环境,可能还会采用液体冷却方案来更好地管理热量。
8. 机箱
外形规格:常见的有塔式、机架式(如1U, 2U, 4U)和刀片式服务器。
安全性:设计有锁具或其他安全机制来防止未经授权的访问。
9. 远程管理
iLO/BMC:集成灯光服务(Integrated Lights-Out, iLO)或基板管理控制器(Baseboard Management Controller, BMC)提供了远程管理和监控的能力,即使操作系统未启动也能进行操作。
计算机分类
按照用途和规模,计算机大致可以分为以下几类:
超级计算机:专用于执行高度复杂的科学计算任务。
大型机/主机:主要用于大规模商业交易处理及关键业务应用。
工作站:针对图形密集型应用的专业用户设计,如视频编辑、CAD建模等。
个人电脑 (PC):包括台式机和笔记本电脑,广泛应用于家庭、办公室等多个场景。
移动设备:智能手机和平板电脑,集成了通信、娱乐等多种功能于一体的小型便携式终端。
嵌入式系统:指那些被整合到其它设备内部并承担特定控制任务的计算机系统,如汽车导航仪、智能家电等。
二、接下来将说明vmware软件如何下载安装。安装rocky 系统, ubuntu 系统,并结合xshell演示如何通过虚拟IP登入系统。
rockey linux下载
1.网盘下载:[](https://pan.baidu.com/s/1iDQXDocVE1_78JP5w6v3Dw?pwd=mebg
提取码:mebg
2.(速度慢不推荐)官网下载:[](https://blogs.vmware.com/workstation/2022/11/announcing-vmware-workstation-17-pro-and-player.html
(1)vmware官网现已无法直接下载vmware,点击下载时会跳转到broadcom网站进入[](https://support.broadcom.com/group/ecx/productdownloads?subfamily=VMware Workstation Pro)
将自动跳转至登陆界面,需注册账号并登录才可以访问该网址(username是注册时用的邮箱)
1.png

(2)登录后,重新打开第(1)步中的网址,选择最新版17.5.2,如下图所示:
2.png

3.png

4.png

5.png

6.png

7.png

8.png

9.png

10.png

通用批量永久激活秘钥(选其一):
a :JU090-6039P-08409-8J0QH-2YR7F
b:ZA5RU-6FYD5-48EPY-3XXEE-PAUGD
11.安装完成,退出即可 (许可证秘钥验证成功后,需重启计算机)
11.png

2.rockey linux 下载安装
官网下载:https://rockylinux.org/zh-CN/download
12.png

DVD/完整ISO
内容丰富:完整的ISO文件包含了大量的软件包、驱动程序和支持多种硬件的固件。它通常包括了桌面环境、办公套件、媒体播放器等常用软件。
适合新手:由于预装了大量常用的软件,对于新用户来说更加友好,可以直接使用而无需额外下载软件。
较大的镜像文件:完整ISO文件较大,通常在2GB到4GB之间,这取决于具体的版本和所包含的软件。
较长的下载时间:由于文件较大,下载可能需要较长时间,尤其是在网络连接速度较慢的情况下。
最小安装(Minimal Install)
精简核心系统:最小安装只包含最基本的系统组件,不包括任何额外的软件或桌面环境(除非特别选择了一个桌面环境)。
占用空间少:安装后的系统占用的磁盘空间较少,这对于存储空间有限的情况非常有用。
自定义程度高:用户可以根据自己的需求手动安装所需的软件,从而创建一个高度个性化的系统。
较小的镜像文件:最小安装的ISO文件相对较小,下载速度快,占用的存储空间也少。
适合有经验的用户:由于需要手动配置和安装额外的软件,这种方式更适合有一定Linux使用经验的用户。
适用场景
DVD/完整ISO: 适用于那些希望快速设置好一个功能齐全的系统的新用户,或者是在没有稳定互联网连接的情况下进行安装。
最小安装: 适用于希望从头开始构建一个轻量级、定制化系统的用户,或者是那些想要节省磁盘空间并控制系统中软件数量的人。
3、rockey linux系统安装
13.png

14.png

15.png

16.png

17.png

18.png

19.png

20.png

21.png

22.png

23.png

24.png

25.png

26.png

27.png

28.png

29.png

30.png

31.png

32.png

33.png

34.png

35.png

36.png

37.png

38.png

39.png

40.png

41.png

42.png

43.png

44.png

4、ubuntu系统安装
45.png

46.png

47.png

48.png

49.png

50.png

51.png

52.png

53.png

54.png

55.png

56.png

57.png

58.png

59.png

60.png

61.png

62.png

63.png

5、使用xshell远程连接rockey和ubuntu
首先去xshell官网下载:https://www.xshell.com/zh/xshell/
想要使用xshell远程连接rockey,则需要把rockey设置一个静态ip,因为之前创建rockey的时候我们选择
的是nat模式,所以,第一步是先获取vmnet8的ip信息,然后才能在rockey里配置静态ip。
64.png

65.png

66.png

67.png

68.png

69.png

70.png

71.png

72.png

73.png

74.png

ubuntu同理也是如此
结合man命令总结linux常用基本命令用法,以及查看帮助文档的方法。
查看命令信息
  1. whereis COMMAND #列出命令或系统文件路径
  2. whatis COMMAND #提供命令或文件的简短描述
  3. help COMMAND #查看内部命令
  4. COMMAND --help #查看外部命令
  5. info COMMAND #查看更详细的帮助信息
  6. type COMMAND #查看命令类型及路径
复制代码
man命令基本用法
  1. -k keyword:搜索包含关键字的手册页
  2. -a, --all:显示所有相关手册页,而不仅仅是第一个匹配项
  3. -f, --whatis:等同于 whatis 命令,显示简短描述
  4. -l, --local-file:指定本地文件作为手册页源
  5. -P pager:指定使用的分页程序(如 less 或 more)
  6. -S list, --sections=list:限制搜索到特定部分(如 1, 2, 3, 4, 5, 6, 7, 8)
复制代码
man导航页
  1. 空格键 或 Page Down:向下翻页。
  2. b 或 Page Up:向上翻页。
  3. /关键字:搜索关键字。
  4. n:跳到下一个匹配项。
  5. N:跳到上一个匹配项。
  6. q:退出 man 页面。
  7. h 或 ?:显示帮助信息。
  8. g:跳转到页面顶部。
  9. G:跳转到页面底部。
  10. Ctrl + L:刷新屏幕。
复制代码
man手册页
  1. NAME:命令或函数的名称和简短描述。
  2. SYNOPSIS:命令或函数的语法概述。
  3. DESCRIPTION:详细描述命令或函数的功能。
  4. OPTIONS:命令或函数的所有可用选项及其说明。
  5. EXAMPLES:示例用法。
  6. FILES:与命令相关的文件。
  7. SEE ALSO:相关命令或函数的手册页。
  8. AUTHOR:作者信息。
  9. BUGS:已知的问题或错误。
复制代码
常用命令
  1. [root@localhost ~]#lscpu #查看cpu信息
  2. [root@localhost ~]#cat /proc/cpuinfo #也可以查看cpu信息
  3. [root@localhost ~]#free -h #查看内存
  4. [root@localhost ~]#lsblk #查看硬盘和分区情况
  5. [root@localhost ~]#arch #查看系统架构
  6. [root@localhost ~]#uname -r #查看内核版本
  7. [root@localhost ~]#cat /etc/os-release #查看发行版本
复制代码
日期和时间
  1. [root@localhost ~]#date #显示系统时间
  2. [root@localhost ~]#date -R #显示默认时区
  3. [root@localhost ~]#date +%s #显示当前时间的时间戳
复制代码
总结linux文件系统相关知识,并结合操作演示文件操作常见的命令
75.png

/:
/ 是根目录,包含了系统启动和运行所必要的关键文件
/bin:
bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。
/boot:
这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。
/dev :
dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备(一般是放磁盘),在 Linux 中访问设备的方式和访问文件的方式是相同的。
/etc:
etc 这个目录用来存放所有的系统管理所需要的配置文件和子目录。
/home:
用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
/lib:
lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。
/lost+found:
这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
/media:
linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。
/mnt:
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。
/opt:
opt 是 optional 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
/proc:
proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:
/root:
该目录为系统管理员,也称作超级权限者的用户主目录。
/sbin:
s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。
/selinux:
这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,这个目录就是存放selinux相关的文件的。
/srv:
该目录存放一些服务启动之后需要提取的数据。
/sys:
类似于/proc,它是一个虚拟文件系统,用于展示硬件设备的状态和参数。
/tmp:
tmp 是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的。
/usr:
应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。
/usr/bin:
系统用户使用的应用程序。
/usr/sbin:
超级用户使用的比较高级的管理程序和系统守护程序。
/usr/src:
内核源代码默认的放置目录。
/var:
var 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,可以将那些经常被修改的目录放在这个目录下。包括各种日志文件。
/run:
是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。
linux的文件类型



    • 普通文件:用于存放存储数据,如文本和二进制文件。

  • d 目录文件directory:用于存放其他文件和目录。
  • l 符号链接文件link:用于引用文件包含软连接和硬链接。
  • b 块设备block :表示块设备。
  • c 字符设备character:表示字符设备。
  • p 管道文件pipe:表示管道文件,用于进程间通信。
  • s 套接字文件socket:表示套件字文件,用于网络通信。
文件操作常用命令
ls命令
  1. ls [选项] [文件或目录]
  2. 常用选项
  3. * -a, --all:显示所有文件,包括隐藏文件(以.开头的文件)。
  4. * -A, --almost-all:显示所有文件,但不包括 . 和 ..。
  5. * -l, --format=long:使用长格式显示文件信息。
  6. * -h, --human-readable:以人类可读的方式显示文件大小(例如,KB、MB、GB)。
  7. * -H, --dereference-command-line:符号链接本身会显示,但如果出现在命令行中,则显示其指向的文件。
  8. * -R, --recursive:递归地列出子目录中的内容。
  9. * -t, --sort=time:按修改时间排序,最新的在前。
  10. * -r, --reverse:逆序排列。
  11. * -S, --sort=size:按文件大小排序。
  12. * -d, --directory:显示目录本身的信息,而不是目录的内容。
  13. * -1, --format=single-column:每行显示一个条目。
  14. * -C, --format=vertical:多列输出,这是默认格式。
  15. * -F, --classify:在每个条目的末尾添加指示符(/ 表示目录,* 表示可执行文件,@ 表示符号链接等)。
  16. * -color[=WHEN]:使用颜色区分不同类型的文件(默认情况下,大多数现代发行版已经启用了这个选项)。
复制代码
touch命令
  1. touch [选项] 文件
  2. 常用选项
  3. * -a, --time=atime:只更新访问时间(Access Time)。
  4. * -c, --no-create:如果文件不存在,则不创建该文件。
  5. * -d, --date=字符串:使用指定的日期和时间而不是当前时间。
  6. * -m, --time=mtime:只更新修改时间(Modification Time)。
  7. * -r, --reference=文件:使用指定文件的时间属性来更新目标文件的时间属性。
  8. * -t, --time=[[[CC]YY]MMDDhhmm[.ss]]:使用指定的时间格式 [CC]YYMMDDhhmm[.ss] 来设置时间。
复制代码
mv命令
  1. mv [选项] 源文件/目录  目标文件/目录
  2. 常用选项
  3. * -i, --interactive:交互式模式,在覆盖目标文件之前提示用户确认。
  4. * -f, --force:强制模式,如果目标文件已经存在,则直接覆盖而不提示。
  5. * -u, --update:更新模式,只有当源文件比目标文件新或者目标文件不存在时才进行移动。
  6. * -v, --verbose:详细模式,显示详细的处理信息。
  7. * -b, --backup[=CONTROL]:在覆盖目标文件之前创建备份。
  8. * -n, --no-clobber:不要覆盖已存在的文件。
复制代码
cp命令
  1. cp [选项] 源文件/目录  目标文件/目录
  2. 常用选项
  3. * -i, --interactive:交互式模式,在覆盖目标文件之前提示用户确认。
  4. * -f, --force:强制模式,如果目标文件已经存在,则直接覆盖而不提示。
  5. * -u, --update:更新模式,只有当源文件比目标文件新或者目标文件不存在时才进行复制。
  6. * -v, --verbose:详细模式,显示详细的处理信息。
  7. * -r, -R, --recursive:递归地复制目录及其内容。
  8. * -p, --preserve:保留文件的属性(如修改时间、访问时间和权限)。
  9. * -l, --link:创建硬链接而不是复制文件。
  10. * -s, --symbolic-link:创建符号链接而不是复制文件。
  11. * -b, --backup[=CONTROL]:在覆盖目标文件之前创建备份。
  12. * -d, --no-dereference:复制符号链接本身,而不是它们指向的文件。
  13. * -a, --archive:递归地复制目录并保留所有属性。
复制代码
rm命令
  1. rm [选项] 文件或目录
  2. 常用选项
  3. * -i, --interactive:交互式模式,在删除每个文件之前提示用户确认。
  4. * -f, --force:强制删除,忽略不存在的文件,并且不提示用户确认。
  5. * -r, -R, --recursive:递归地删除目录及其内容。
  6. * -v, --verbose:详细模式,显示详细的处理信息。
  7. * -d, --dir:删除目录。
  8. * --preserve-root:不要删除根目录(/)。
  9. * -I:当删除超过三个文件或递归删除时,提示用户确认。
复制代码
mkdir命令
  1. mkdir [选项] 目录
  2. 常用选项
  3. * -p, --parents: 递归创建父目录。
  4. * -m, --mode: 设置目录权限。
  5. * -v, --verbose: 显示创建过程。
  6. rmdir [选项] 目录
  7. 常用选项
  8. * -p, --parents:递归删除父目录。
  9. * -v, --verbose:显示删除过程。
复制代码
tree命令
  1. tree [选项] 目录
  2. 常用选项
  3. * -a, --all:显示所有文件,包括隐藏文件(以点 . 开头的文件)。
  4. * -d, --directory:只显示目录,不显示文件。
  5. * -f, --files-first:在每个目录中先显示文件,然后是子目录。
  6. * -L, --level=NUM:指定显示的层级深度。例如 -L 2 表示只显示两层目录。
  7. * -P, --prune=PATTERN:不显示与给定模式匹配的文件或目录。
  8. * -I, --ignore-case:忽略大小写。
  9. * -h, --human-readable:以人类可读的格式显示文件大小(例如 KB、MB)。
  10. * -D, --dirsfirst:在每个目录中先显示子目录,然后是文件。
  11. * -p, --permission:显示每个文件和目录的权限。
  12. * -u, --uid:显示每个文件和目录的所有者用户ID。
  13. * -g, --gid:显示每个文件和目录的所有者组ID。
  14. * -s, --size:显示每个文件和目录的大小。
  15. * -t, --time:显示每个文件和目录的最后修改时间。
  16. * -r, --reverse:以相反的顺序显示文件和目录。
  17. * -x, --sort=file:按文件名排序。
  18. * -S, --sort=size:按文件大小排序。
  19. * -T, --sort=time:按最后修改时间排序。
复制代码
stat命令
  1. stat [选项] 文件
  2. 常用选项
  3. * -c, --format: 指定格式显示文件信息。
  4. * -f, --file-system: 显示文件系统信息。
  5. * -t, --terse: 以简洁的格式输出信息。
  6. 格式字符串(-c 参数)
  7. -c 参数允许您自定义输出格式。以下是一些常用的格式说明符:
  8. %n:文件名
  9. %s:文件大小(字节)
  10. %b:文件块数(512 字节为一个块)
  11. %f:文件类型和模式
  12. %u:文件所有者的用户ID
  13. %U:文件所有者的用户名
  14. %g:文件所属组的组ID
  15. %G:文件所属组的组名
  16. %a:文件的访问权限(八进制)
  17. %A:文件的访问权限(符号形式)
  18. %m:文件的最后修改时间
  19. %c:文件的状态更改时间
  20. %y:文件的最后访问时间
复制代码
总结操作系统概念相关
操作系统(Operating System, OS)是计算机系统中的一种软件,它管理和控制计算机硬件与软件资源,为用户提供一个方便、高效和安全的计算环境。操作系统充当用户与计算机硬件之间的接口,负责管理计算机的各种资源,如处理器、内存、存储设备和输入/输出设备。
操作系统的主要功能
进程管理:
创建和销毁进程。
进程调度:决定哪个进程在何时运行。
通信与同步:提供进程间通信机制,确保进程间的同步。
内存管理:
分配和回收内存空间。
虚拟内存管理:通过页表和分页机制扩展可用内存。
内存保护:防止一个进程访问另一个进程的内存空间。
文件系统管理:
提供文件的创建、删除、读写等功能。
文件目录结构:组织和管理文件。
文件权限管理:控制用户对文件的访问权限。
设备管理:
管理各种输入/输出设备,如键盘、鼠标、打印机、磁盘等。
设备驱动程序:提供与硬件设备交互的接口。
网络通信:
支持网络协议栈,如TCP/IP。
提供网络服务,如DNS、HTTP、FTP等。
安全与保护:
用户认证与授权。
访问控制:限制用户对系统资源的访问。
安全策略:实施安全策略以防止恶意攻击。
用户接口:
命令行接口(CLI):通过命令行与用户交互。
图形用户界面(GUI):通过图形界面与用户交互。
常见的操作系统类型
桌面操作系统:
Windows:由微软开发,广泛用于个人电脑。
macOS:苹果公司开发的操作系统,用于Macintosh系列计算机。
Linux:开源操作系统,有多种发行版,如Ubuntu、Fedora、Debian等。
服务器操作系统:
Linux:广泛用于服务器,具有高稳定性和安全性。
Windows Server:微软开发的服务器操作系统。
Unix:历史悠久的多用户、多任务操作系统,包括Solaris、AIX等。
移动操作系统:
Android:基于Linux内核,由Google开发,广泛用于智能手机和平板电脑。
iOS:苹果公司开发的移动操作系统,用于iPhone、iPad等设备。
嵌入式操作系统:
实时操作系统(RTOS):用于需要实时响应的嵌入式系统,如VxWorks、FreeRTOS。
特定用途的嵌入式系统:如汽车中的车载娱乐系统、医疗设备等。
操作系统的重要性
资源管理:操作系统有效地管理和分配计算机资源,提高系统的整体性能。
用户友好:提供了用户友好的界面,使得用户能够方便地使用计算机。
安全性:提供了多层次的安全机制,保护系统免受恶意攻击。
兼容性:支持多种硬件和软件,提高了系统的兼容性和可扩展性。
76.png

77.png

78.png

79.png

80.png

总结通配符,管道,重定向,inode知识点
1.通配符是用来匹配一系列字符的符号,在Linux命令行中经常用来指代一组文件名或目录名。
常见的通配符如下:
81.png

例子:
82.png

2.管道是一种特殊形式的输入输出机制,它可以将一个命令的输出作为另一个命令的输入。
例子:
83.png

3.重定向可以改变命令的标准输入、标准输出或标准错误输出的目标。

  • :覆盖写入文件。

  • :追加写入文件。

  • :重定向错误输出。
  • &> 或 >&:同时重定向标准输出和标准错误输出。
    例子:
    84.png

4.inode 是 Linux 文件系统中的一个数据结构,它存储了关于文件的一些元数据,如文件的大小、创建时间、访问权限等。每个文件或目录都有一个唯一的inode号,即使文件名更改,inode号也不会改变。
软硬链接的区别
硬链接(Hard Link)
硬链接是指指向文件索引节点(inode)的一个链接。一个文件可以有多个硬链接,每个硬链接都是指向同一个inode。这意味着修改任何一个硬链接都会影响到所有其他指向该inode的链接。
特点:

  • 每个硬链接都指向同一个inode。
  • 删除一个硬链接不会删除文件的内容,只有当最后一个硬链接被删除后,文件才会被删除。
  • 硬链接不能跨越文件系统(即不能指向不同物理设备上的文件)。
  • 对硬链接所做的任何改变都会反映在所有其他指向相同inode的链接上。
  • 硬链接可以指向目录,但这样做可能会导致循环引用的问题,因此通常避免对目录创建硬链接。
软链接(Symbolic Link)
软链接,也称为符号链接,实际上是一个特殊的文件,它包含指向另一个文件的路径信息。软链接类似于Windows中的快捷方式。当读取软链接时,系统会自动将其解析为指向的实际文件。
特点:

  • 软链接包含指向实际文件的路径信息。
  • 删除软链接本身不会影响实际文件。
  • 软链接可以跨越文件系统,指向不同物理设备上的文件。
  • 软链接可以指向目录,甚至是跨文件系统的目录。
  • 软链接可以指向不存在的文件或目录。
区别总结
指向对象:
硬链接指向同一个inode。
软链接指向文件路径。
删除行为:
删除硬链接中的一个链接,不会删除文件内容,只有最后一个硬链接被删除后,文件才会被删除。
删除软链接本身不会影响实际文件。
文件系统限制:
硬链接不能跨越文件系统。
软链接可以跨越文件系统。

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册