Linux基础知识
Linux基础知识
- Linux 系统 是一种基于 Unix 的开源操作系统内核,由 Linus Torvalds 于 1991 年首次发布。Linux 以其高度的可定制性、稳定性和安全性而闻名,广泛应用于服务器、嵌入式设备、超级计算机以及个人电脑等领域。
- Linux系统里一切都被映射为文件,都是用文件进行管理
- Linux下的隐藏文件是以
.开头的
Linux安装过程
- 选择合适的Linux版本
- 下载 Linux 镜像
- 下载虚拟机加载iso镜像
- 配置相关信息,包括桌面组件和包管理工具,分区设置等等
- 安装Vmware Tools
- 需要gcc即上面配置的包管理工具
- 如果Vmware安装为灰色则关闭虚拟机重启的时候进行安装
- 解压tar.gz压缩包到opt文件夹下,解压之后进入到文件内执行vmware-install.pl文件即可
- VMware Tools 提供了许多功能,使虚拟机与主机之间的交互更加顺畅,包括文件夹共享,鼠标集成等等。
- 配置完共享文件夹后会在mnt文件目录下找到该共享文件夹(本机上的虚拟机)
Linux 系统的核心组成
Linux 系统由以下几个核心部分组成:
- Linux 内核(Kernel)
- 定义:内核是操作系统的核心,负责管理硬件资源(如 CPU、内存、磁盘、网络等)并为应用程序提供基础服务。
- 功能:
- 进程管理:创建、调度和终止进程。
- 内存管理:分配和回收内存。
- 文件系统管理:支持多种文件系统(如 ext4、XFS、Btrfs 等)。
- 设备驱动:管理硬件设备(如磁盘、网卡、显卡等)。
- 网络管理:支持 TCP/IP 协议栈,提供网络通信功能。
- Shell
- 定义:Shell 是用户与内核交互的命令行接口。
- 常见 Shell:
- Bash(Bourne Again Shell):最常用的 Shell。
- Zsh:功能强大的 Shell,支持插件和主题。
- Fish:用户友好的 Shell,具有自动补全功能。
- 作用:用户通过 Shell 输入命令,Shell 将命令翻译成内核可以理解的指令。
- 文件系统
- 定义:文件系统是操作系统用于组织和管理文件的一种机制。
- 常见文件系统:
- ext4:Linux 默认的文件系统,支持大文件和分区。
- XFS:高性能文件系统,适合大容量存储。
- Btrfs:支持快照、压缩和动态卷管理。
- 目录结构:
/:根目录。/bin:存放基本命令(如ls、cp)。/etc:存放配置文件。/home:用户主目录。/var:存放日志和动态数据。/dev:设备文件。
- 工具和实用程序
- GNU 工具:Linux 系统包含大量的 GNU 工具(如
grep、awk、sed),用于文本处理、文件操作等。 - 包管理器:用于安装、更新和删除软件包。
- Debian/Ubuntu:
apt。 - Red Hat/CentOS:
yum或dnf。 - Arch Linux:
pacman。
- Debian/Ubuntu:
- GNU 工具:Linux 系统包含大量的 GNU 工具(如
Linux远程登录
- 使用Xshell软件使用SSH协议连接远程Linux服务器
- SSH协议默认端口号为22
- 使用ipconfig查看Linux系统的IP地址
Linux 系统的特点
- 开源:
- Linux 内核和大多数 Linux 发行版是开源的,用户可以自由查看、修改和分发源代码。
- 多用户、多任务:
- 支持多个用户同时登录,并可以同时运行多个任务。
- 稳定性:
- Linux 系统以稳定性著称,适合长时间运行。
- 安全性:
- Linux 提供了强大的安全机制(如 SELinux、AppArmor)。
- 可移植性:
- Linux 可以运行在多种硬件平台上(如 x86、ARM、RISC-V)。
Linux 发行版本
Linux 发行版是基于 Linux 内核的操作系统,通常包含内核、工具链、桌面环境和应用程序。常见的 Linux 发行版包括:
-
Debian 系列
- Debian:以稳定性和自由软件著称。
- Ubuntu:基于 Debian,用户友好,适合初学者。
- Linux Mint:基于 Ubuntu,提供更简洁的桌面环境。
-
Red Hat 系列
- Red Hat Enterprise Linux (RHEL):企业级发行版,提供商业支持。
- CentOS:基于 RHEL 的免费版本(已转向 CentOS Stream)。
- Fedora:社区驱动的发行版,注重新技术。
Linux虚拟机网络连接
- 虚拟机网络连接的方式决定了虚拟机如何与主机、其他虚拟机以及外部网络通信。
虚拟机网络连接模式主要有以下几种:
- NAT 模式(Network Address Translation)
- 工作原理:
- 虚拟机通过主机的 IP 地址访问外部网络。
- 虚拟机与外部网络的通信由主机进行地址转换。
- 特点:
- 虚拟机可以访问外部网络,但外部网络无法直接访问虚拟机。
- 虚拟机之间默认无法直接通信。
- 适用场景:
- 虚拟机需要访问互联网,但不需要被外部网络访问。
- 适合个人开发或测试环境。
- 工作原理:
- 桥接模式(Bridged Networking)
- 工作原理:
- 虚拟机直接连接到主机的物理网络,就像一台独立的物理机。
- 虚拟机会获得与主机同一网段的 IP 地址。
- 特点:
- 虚拟机可以访问外部网络,外部网络也可以直接访问虚拟机。
- 虚拟机之间可以直接通信。
- 适用场景:
- 虚拟机需要与外部网络或其他设备直接通信。
- 适合服务器环境或需要对外提供服务的场景。
- 工作原理:
- 仅主机模式(Host-Only Networking)
- 工作原理:
- 虚拟机与主机之间形成一个私有网络。
- 虚拟机只能与主机通信,无法访问外部网络。
- 特点:
- 虚拟机之间可以直接通信。
- 虚拟机无法访问互联网。
- 适用场景:
- 虚拟机只需要与主机通信,不需要访问外部网络。
- 适合隔离测试环境。
- 工作原理:
- 内部网络模式(Internal Networking)
- 工作原理:
- 虚拟机之间形成一个私有网络,与主机和外部网络完全隔离。
- 特点:
- 虚拟机之间可以直接通信。
- 虚拟机无法与主机或外部网络通信。
- 适用场景:
- 虚拟机之间需要完全隔离的网络环境。
- 适合模拟内部网络或安全测试。
- 工作原理:
虚拟机的迁移和备份
- 虚拟机本质上就是一个文件,将该相关文件进行剪切或者拷贝就可以完成迁移和备份
- 虚拟机迁移是指将虚拟机从一台物理主机迁移到另一台物理主机,或者在同一主机上迁移到不同的存储位置。迁移通常分为两种类型:冷迁移 和 热迁移
- 冷迁移
- 定义:
- 在虚拟机关闭状态下进行迁移。
- 步骤:
- 关闭虚拟机。
- 将虚拟机的磁盘文件和配置文件复制到目标主机或存储。
- 在目标主机上重新注册虚拟机。
- 启动虚拟机。
- 优点:
- 实现简单,兼容性好。
- 缺点:
- 需要停机,影响业务连续性。
- 适用场景:
- 对业务连续性要求不高的场景。
- 虚拟机配置或存储需要变更。
- 定义:
- 热迁移(Live Migration)
- 定义:
- 在虚拟机运行状态下进行迁移,业务不中断。
- 步骤:
- 源主机和目标主机建立连接。
- 虚拟机的内存状态逐步迁移到目标主机。
- 虚拟机的磁盘文件迁移到目标存储(如果存储不同)。
- 虚拟机在目标主机上恢复运行。
- 优点:
- 业务不中断,适合高可用性场景。
- 缺点:
- 对硬件和软件环境要求较高(如 CPU 兼容性、网络带宽)。
- 适用场景:
- 对业务连续性要求高的场景。
- 负载均衡、硬件维护或升级。
- 定义:
- 冷迁移
- 虚拟机备份是指将虚拟机的磁盘文件、配置文件和状态保存到备份存储中,以便在数据丢失或系统故障时恢复。
- 备份类型
- 完整备份:
- 备份虚拟机的所有数据和配置。
- 优点:恢复简单。
- 缺点:备份时间长,占用存储空间大。
- 增量备份:
- 只备份自上次备份以来发生变化的数据。
- 优点:备份时间短,占用存储空间小。
- 缺点:恢复时需要依次应用所有增量备份。
- 差异备份:
- 备份自上次完整备份以来发生变化的数据。
- 优点:恢复时只需应用完整备份和最新的差异备份。
- 缺点:备份时间和存储空间介于完整备份和增量备份之间。
- 完整备份:
- 备份方法
- 基于快照的备份:
- 创建虚拟机的快照,备份快照文件。
- 优点:备份速度快,不影响虚拟机运行。
- 缺点:快照文件可能占用大量存储空间。
- 基于文件的备份:
- 直接备份虚拟机的磁盘文件(如
.vmdk、.qcow2)。 - 优点:备份文件可直接用于恢复。
- 缺点:备份期间虚拟机可能需要停机。
- 直接备份虚拟机的磁盘文件(如
- 基于代理的备份:
- 在虚拟机内部安装备份代理,备份虚拟机内的文件系统。
- 优点:支持文件级恢复。
- 缺点:需要在虚拟机内安装代理,可能影响性能。
- 基于快照的备份:
Linux分区
-
在 Linux 系统中,分区是磁盘的逻辑划分,用于存储不同的数据和文件系统。常见的分区包括 boot 分区、交换分区(swap) 和 根分区(/)。
-
Boot 分区
-
作用:
- 存放启动 Linux 系统所需的文件,包括:
- 内核文件(如
vmlinuz)。 - 引导加载程序(如 GRUB 配置文件)。
- 初始化内存盘(
initramfs)。
- 内核文件(如
- 存放启动 Linux 系统所需的文件,包括:
-
特点:
- 通常是一个独立的分区,文件系统类型为
ext4。 - 分区大小一般为 200MB 到 1GB,具体取决于内核和引导文件的大小。
- 如果使用 UEFI 引导,还需要一个 EFI 系统分区(ESP),文件系统类型为
vfat。
- 通常是一个独立的分区,文件系统类型为
-
为什么需要 Boot 分区:
- 将启动文件与系统文件分离,避免系统文件损坏导致无法启动。
- 在某些硬件上,Boot 分区需要位于磁盘的前 2TB 空间内。
-
-
交换分区(Swap)
-
作用:
- 作为虚拟内存使用,当物理内存不足时,系统会将部分数据转移到交换分区。
- 支持休眠功能(Hibernation),将内存中的数据保存到交换分区。
-
特点:
- 分区类型为
swap。 - 分区大小通常为物理内存的 1 到 2 倍,但具体大小取决于系统需求。
- 如果物理内存较大(如 16GB 以上),交换分区可以较小(如 2GB)。
- 如果物理内存较小(如 2GB),交换分区可以较大(如 4GB)。
- 也可以使用交换文件(Swap File)代替交换分区。
- 分区类型为
-
为什么需要交换分区:
- 扩展系统的可用内存,避免物理内存不足导致系统崩溃。
- 支持休眠功能。
-
-
根分区(/)
- 作用:
- 存放 Linux 系统的所有文件和目录(除了
/boot和/home等独立分区)。 - 包括系统程序、配置文件、用户数据等。
- 存放 Linux 系统的所有文件和目录(除了
- 特点:
- 文件系统类型通常为
ext4、XFS或Btrfs。 - 分区大小取决于系统用途:
- 桌面系统:20GB 到 50GB。
- 服务器系统:50GB 以上,具体取决于应用程序和数据量。
- 根分区是必须的,其他分区(如
/boot、/home)可以选择是否独立。
- 文件系统类型通常为
- 为什么需要根分区:
- 存储操作系统和应用程序的核心文件。
- 是文件系统的起点,所有其他目录(如
/home、/var)都挂载在根分区下。
- 作用:
-
总结
-
分区 作用 文件系统类型 分区大小 是否必需 Boot 分区 存放启动文件(内核、引导加载程序)。 ext4或vfat200MB 到 1GB 可选 交换分区 作为虚拟内存使用,支持休眠功能。 swap物理内存的 1 到 2 倍 可选 根分区 存放系统文件、应用程序和用户数据。 ext4、XFS等20GB 以上 必需
Linux文件类型
Linux 文件系统是操作系统用于组织和管理文件的一种机制。不同的文件系统类型具有不同的特性,适用于不同的场景。
- ext4(Fourth Extended File System)
- 特点:
- 是 Linux 最常用的文件系统,稳定且性能良好。
- 支持大文件和分区(最大文件大小为 16TB,最大分区大小为 1EB)。
- 支持日志功能,确保数据一致性。
- 适用场景:
- 桌面系统、服务器系统。
- 优点:
- 成熟稳定,兼容性好。
- 支持日志功能,数据安全性高。
- 缺点:
- 功能相对简单,不支持高级特性(如快照、压缩)。
- 特点:
- XFS
- 特点:
- 高性能文件系统,适合大文件和高并发场景。
- 支持大文件和分区(最大文件大小为 8EB,最大分区大小为 16EB)。
- 支持在线调整分区大小(只能增大,不能缩小)。
- 适用场景:
- 大数据存储、高并发服务器。
- 优点:
- 高性能,适合处理大文件。
- 支持在线调整分区大小。
- 缺点:
- 对小文件的支持不如 ext4。
- 特点:
- Btrfs(B-Tree File System)
- 特点:
- 新一代文件系统,支持高级特性(如快照、压缩、RAID)。
- 支持动态调整分区大小(可增大或缩小)。
- 支持数据校验,确保数据完整性。
- 适用场景:
- 需要高级特性的场景(如快照、压缩)。
- 优点:
- 功能丰富,支持快照、压缩等特性。
- 支持动态调整分区大小。
- 缺点:
- 相对较新,稳定性不如 ext4。
- 特点:
- ZFS
- 特点:
- 高级文件系统,支持快照、压缩、RAID 和数据校验。
- 支持大文件和分区(最大文件大小为 16EB,最大分区大小为 256ZB)。
- 需要额外的内核模块支持。
- 适用场景:
- 大数据存储、企业级存储。
- 优点:
- 功能强大,支持快照、压缩、RAID 等特性。
- 数据安全性高。
- 缺点:
- 资源占用较高,不适合低性能设备。
- 特点:
- FAT32 和 exFAT
- 特点:
- FAT32 是传统的文件系统,兼容性好,但最大文件大小为 4GB。
- exFAT 是 FAT32 的改进版本,支持大文件和大分区。
- 适用场景:
- 移动设备(如 U 盘、SD 卡)。
- 优点:
- 兼容性好,支持 Windows 和 Linux。
- 缺点:
- 功能简单,不支持日志和权限管理。
- 特点:
- NTFS
- 特点:
- Windows 默认的文件系统,支持大文件和大分区。
- 在 Linux 中需要额外的工具(如
ntfs-3g)支持。
- 适用场景:
- 与 Windows 系统共享数据。
- 优点:
- 兼容 Windows 系统。
- 缺点:
- 在 Linux 中的性能不如原生文件系统。
- 特点:
- JFS(Journaled File System)
- 特点:
- IBM 开发的文件系统,性能稳定。
- 支持日志功能,确保数据一致性。
- 适用场景:
- 需要高稳定性的场景。
- 优点:
- 性能稳定,资源占用低。
- 缺点:
- 功能相对简单,社区支持较少。
- 特点:
- ReiserFS
- 特点:
- 高效的文件系统,适合处理大量小文件。
- 支持日志功能。
- 适用场景:
- 处理大量小文件的场景(如邮件服务器)。
- 优点:
- 对小文件的处理效率高。
- 缺点:
- 开发停滞,社区支持较少。
- 特点:
| 文件系统 | 最大文件大小 | 最大分区大小 | 日志功能 | 快照 | 压缩 | 适用场景 |
|---|---|---|---|---|---|---|
| ext4 | 16TB | 1EB | 支持 | 不支持 | 不支持 | 桌面、服务器 |
| XFS | 8EB | 16EB | 支持 | 不支持 | 不支持 | 大数据、高并发 |
| Btrfs | 16EB | 16EB | 支持 | 支持 | 支持 | 高级特性需求 |
| ZFS | 16EB | 256ZB | 支持 | 支持 | 支持 | 企业级存储 |
| FAT32 | 4GB | 2TB | 不支持 | 不支持 | 不支持 | 移动设备 |
| exFAT | 16EB | 128PB | 不支持 | 不支持 | 不支持 | 移动设备 |
| NTFS | 16EB | 256TB | 支持 | 不支持 | 不支持 | Windows 兼容 |
| JFS | 4PB | 32PB | 支持 | 不支持 | 不支持 | 高稳定性需求 |
| ReiserFS | 8TB | 16TB | 支持 | 不支持 | 不支持 | 大量小文件处理 |
如何选择文件系统
- 桌面系统:推荐使用 ext4,稳定且性能良好。
- 服务器系统:推荐使用 XFS 或 ext4,适合高并发和大文件。
- 需要高级特性:推荐使用 Btrfs 或 ZFS,支持快照、压缩等功能。
- 移动设备:推荐使用 exFAT 或 FAT32,兼容性好。
- 与 Windows 共享数据:推荐使用 NTFS。
Linux目录结构
-
Linux 目录结构 是 Linux 文件系统的组织方式,它采用一种层次化的树形结构,所有文件和目录都从根目录(
/)开始。Linux 目录结构的设计遵循 Filesystem Hierarchy Standard (FHS),这是一种定义了目录结构和用途的标准。 -
根目录 (
/)- 定义:根目录是整个文件系统的起点,所有其他目录和文件都从根目录开始。
- 特点:
- 根目录是唯一的,没有父目录。
- 所有绝对路径都以
/开头。
-
其他主要目录及其作用
-
/bin -
- 作用:存放系统的基本命令(二进制可执行文件)。
- 示例:
ls、cp、mv、rm等。 - 特点:
- 这些命令是所有用户都可以使用的。
- 在单用户模式下仍然可用。
-
/boot- 作用:存放启动 Linux 系统所需的文件。
- 内容:
- 内核文件(如
vmlinuz)。 - 引导加载程序(如 GRUB 配置文件)。
- 初始化内存盘(
initramfs)。
- 内核文件(如
-
/dev- 作用:存放设备文件。
- 内容:
- 硬件设备(如磁盘、键盘、鼠标)在 Linux 中被抽象为文件。
- 示例:
/dev/sda:第一块硬盘。/dev/tty:终端设备。/dev/null:空设备(丢弃所有写入的数据)。
-
/etc- 作用:存放系统的配置文件。
- 内容:
- 系统配置文件(如
/etc/passwd、/etc/network/interfaces)。 - 应用程序配置文件(如
/etc/nginx/nginx.conf)。
- 系统配置文件(如
-
/home- 作用:存放用户的主目录。
- 特点:
- 每个用户都有一个独立的子目录(如
/home/username)。 - 用户可以在自己的主目录中存储个人文件。
- 每个用户都有一个独立的子目录(如
-
/lib和/lib64- 作用:存放系统库文件。
- 内容:
- 共享库文件(如
.so文件)类似windows中的DLL文件。 - 内核模块(如
/lib/modules)。
- 共享库文件(如
- 区别:
/lib:32 位系统的库文件。/lib64:64 位系统的库文件。
-
/media- 作用:挂载可移动设备(如 U 盘、光盘)。
- 特点:
- 设备插入后会自动挂载到
/media下的子目录。
- 设备插入后会自动挂载到
-
/mnt- 作用:临时挂载文件系统。
- 特点:
- 通常用于手动挂载设备或网络文件系统。
-
/opt- 作用:存放第三方应用程序。
- 特点:
- 通常用于安装大型软件(如 Oracle 数据库)。
-
/proc- 作用:虚拟文件系统,提供内核和进程的信息。
- 特点:
- 文件内容动态生成,不占用磁盘空间。
- 示例:
/proc/cpuinfo:CPU 信息。/proc/meminfo:内存信息。/proc/[pid]:特定进程的信息。
-
/root- 作用:超级用户(root)的主目录。
- 特点:
- 普通用户无法访问。
-
/run- 作用:存放运行时数据(如进程 ID 文件、套接字文件)。
- 特点:
- 系统启动时创建,重启后清空。
-
/sbin- 作用:存放系统管理命令。
- 示例:
fdisk、ifconfig、reboot。 - 特点:
- 这些命令通常需要超级用户权限。
-
/srv- 作用:存放服务相关的数据。
- 示例:
- Web 服务器的数据(如
/srv/www)。 - FTP 服务器的数据(如
/srv/ftp)。
- Web 服务器的数据(如
-
/sys- 作用:虚拟文件系统,提供内核和设备的信息。
- 特点:
- 用于管理和配置硬件设备。
-
/tmp- 作用:存放临时文件。
- 特点:
- 所有用户都可以读写。
- 系统重启后文件可能会被删除。
-
/usr- 作用:存放用户程序和只读数据。
- 子目录:
/usr/bin:用户命令。/usr/lib:用户库文件。/usr/local:本地安装的软件。/usr/share:共享数据(如文档、字体)。
-
/var- 作用:存放可变数据(如日志、缓存)。
- 子目录:
/var/log:系统日志。/var/cache:缓存数据。/var/spool:队列数据(如邮件、打印任务)。
-
总结
| 目录 | 作用 | 示例内容 |
|---|---|---|
/ |
根目录,文件系统的起点。 | 所有其他目录和文件都从根目录开始。 |
/bin |
存放系统的基本命令(二进制可执行文件)。 | ls、cp、mv、rm 等。 |
/boot |
存放启动 Linux 系统所需的文件。 | 内核文件(vmlinuz)、引导加载程序(GRUB)、初始化内存盘(initramfs)。 |
/dev |
存放设备文件。 | /dev/sda(硬盘)、/dev/tty(终端)、/dev/null(空设备)。 |
/etc |
存放系统的配置文件。 | /etc/passwd(用户信息)、/etc/network/interfaces(网络配置)。 |
/home |
存放用户的主目录。 | 每个用户有一个独立的子目录(如 /home/username)。 |
/lib |
存放系统库文件(32 位)。 | 共享库文件(.so 文件)、内核模块。 |
/lib64 |
存放系统库文件(64 位)。 | 共享库文件(.so 文件)、内核模块。 |
/media |
挂载可移动设备(如 U 盘、光盘)。 | 设备插入后会自动挂载到 /media 下的子目录。 |
/mnt |
临时挂载文件系统。 | 通常用于手动挂载设备或网络文件系统。 |
/opt |
存放第三方应用安装程序。 | 大型软件(如 Oracle 数据库)。 |
/proc |
虚拟文件系统,提供内核和进程的信息。 | /proc/cpuinfo(CPU 信息)、/proc/meminfo(内存信息)、/proc/[pid](进程信息)。 |
/root |
超级用户(root)的主目录。 | 普通用户无法访问。 |
/run |
存放运行时数据(如进程 ID 文件、套接字文件)。 | 系统启动时创建,重启后清空。 |
/sbin |
存放系统管理命令。 | fdisk、ifconfig、reboot。 |
/srv |
存放服务相关的数据。 | Web 服务器数据(/srv/www)、FTP 服务器数据(/srv/ftp)。 |
/sys |
虚拟文件系统,提供内核和设备的信息。 | 用于管理和配置硬件设备。 |
/tmp |
存放临时文件。 | 所有用户都可以读写,系统重启后文件可能会被删除。 |
/usr |
存放用户程序和只读数据。 | /usr/bin(用户命令)、/usr/lib(用户库文件)、/usr/local(本地安装的软件)。 |
/var |
存放可变数据(如日志、缓存)。 | /var/log(系统日志)、/var/cache(缓存数据)、/var/spool(队列数据)。 |

浙公网安备 33010602011771号