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:存放基本命令(如 lscp)。
      • /etc:存放配置文件。
      • /home:用户主目录。
      • /var:存放日志和动态数据。
      • /dev:设备文件。
  • 工具和实用程序
    • GNU 工具:Linux 系统包含大量的 GNU 工具(如 grepawksed),用于文本处理、文件操作等。
    • 包管理器:用于安装、更新和删除软件包。
      • Debian/Ubuntuapt
      • Red Hat/CentOSyumdnf
      • Arch Linuxpacman

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)
    • 工作原理
      • 虚拟机之间形成一个私有网络,与主机和外部网络完全隔离。
    • 特点
      • 虚拟机之间可以直接通信。
      • 虚拟机无法与主机或外部网络通信。
    • 适用场景
      • 虚拟机之间需要完全隔离的网络环境。
      • 适合模拟内部网络或安全测试。

虚拟机的迁移和备份

  • 虚拟机本质上就是一个文件,将该相关文件进行剪切或者拷贝就可以完成迁移和备份
  • 虚拟机迁移是指将虚拟机从一台物理主机迁移到另一台物理主机,或者在同一主机上迁移到不同的存储位置。迁移通常分为两种类型:冷迁移 和 热迁移
    • 冷迁移
      • 定义
        • 在虚拟机关闭状态下进行迁移。
      • 步骤
        1. 关闭虚拟机。
        2. 将虚拟机的磁盘文件和配置文件复制到目标主机或存储。
        3. 在目标主机上重新注册虚拟机。
        4. 启动虚拟机。
      • 优点
        • 实现简单,兼容性好。
      • 缺点
        • 需要停机,影响业务连续性。
      • 适用场景
        • 对业务连续性要求不高的场景。
        • 虚拟机配置或存储需要变更。
    • 热迁移(Live Migration)
      • 定义
        • 在虚拟机运行状态下进行迁移,业务不中断。
      • 步骤
        1. 源主机和目标主机建立连接。
        2. 虚拟机的内存状态逐步迁移到目标主机。
        3. 虚拟机的磁盘文件迁移到目标存储(如果存储不同)。
        4. 虚拟机在目标主机上恢复运行。
      • 优点
        • 业务不中断,适合高可用性场景。
      • 缺点
        • 对硬件和软件环境要求较高(如 CPU 兼容性、网络带宽)。
      • 适用场景
        • 对业务连续性要求高的场景。
        • 负载均衡、硬件维护或升级。
  • 虚拟机备份是指将虚拟机的磁盘文件、配置文件和状态保存到备份存储中,以便在数据丢失或系统故障时恢复。
  • 备份类型
    • 完整备份
      • 备份虚拟机的所有数据和配置。
      • 优点:恢复简单。
      • 缺点:备份时间长,占用存储空间大。
    • 增量备份
      • 只备份自上次备份以来发生变化的数据。
      • 优点:备份时间短,占用存储空间小。
      • 缺点:恢复时需要依次应用所有增量备份。
    • 差异备份
      • 备份自上次完整备份以来发生变化的数据。
      • 优点:恢复时只需应用完整备份和最新的差异备份。
      • 缺点:备份时间和存储空间介于完整备份和增量备份之间。
  • 备份方法
    • 基于快照的备份
      • 创建虚拟机的快照,备份快照文件。
      • 优点:备份速度快,不影响虚拟机运行。
      • 缺点:快照文件可能占用大量存储空间。
    • 基于文件的备份
      • 直接备份虚拟机的磁盘文件(如 .vmdk.qcow2)。
      • 优点:备份文件可直接用于恢复。
      • 缺点:备份期间虚拟机可能需要停机。
    • 基于代理的备份
      • 在虚拟机内部安装备份代理,备份虚拟机内的文件系统。
      • 优点:支持文件级恢复。
      • 缺点:需要在虚拟机内安装代理,可能影响性能。

Linux分区

  • 在 Linux 系统中,分区是磁盘的逻辑划分,用于存储不同的数据和文件系统。常见的分区包括 boot 分区交换分区(swap)根分区(/)

  • Boot 分区

    • 作用

      • 存放启动 Linux 系统所需的文件,包括:
        • 内核文件(如 vmlinuz)。
        • 引导加载程序(如 GRUB 配置文件)。
        • 初始化内存盘(initramfs)。
    • 特点

      • 通常是一个独立的分区,文件系统类型为 ext4
      • 分区大小一般为 200MB 到 1GB,具体取决于内核和引导文件的大小。
      • 如果使用 UEFI 引导,还需要一个 EFI 系统分区(ESP),文件系统类型为 vfat
    • 为什么需要 Boot 分区

      • 将启动文件与系统文件分离,避免系统文件损坏导致无法启动。
      • 在某些硬件上,Boot 分区需要位于磁盘的前 2TB 空间内。
  • 交换分区(Swap)

    • 作用

      • 作为虚拟内存使用,当物理内存不足时,系统会将部分数据转移到交换分区。
      • 支持休眠功能(Hibernation),将内存中的数据保存到交换分区。
    • 特点

      • 分区类型为 swap
      • 分区大小通常为物理内存的 1 到 2 倍,但具体大小取决于系统需求。
        • 如果物理内存较大(如 16GB 以上),交换分区可以较小(如 2GB)。
        • 如果物理内存较小(如 2GB),交换分区可以较大(如 4GB)。
      • 也可以使用交换文件(Swap File)代替交换分区。
    • 为什么需要交换分区

      • 扩展系统的可用内存,避免物理内存不足导致系统崩溃。
      • 支持休眠功能。
  • 根分区(/)

    • 作用
      • 存放 Linux 系统的所有文件和目录(除了 /boot/home 等独立分区)。
      • 包括系统程序、配置文件、用户数据等。
    • 特点
      • 文件系统类型通常为 ext4XFSBtrfs
      • 分区大小取决于系统用途:
        • 桌面系统:20GB 到 50GB
        • 服务器系统:50GB 以上,具体取决于应用程序和数据量。
      • 根分区是必须的,其他分区(如 /boot/home)可以选择是否独立。
    • 为什么需要根分区
      • 存储操作系统和应用程序的核心文件。
      • 是文件系统的起点,所有其他目录(如 /home/var)都挂载在根分区下。
  • 总结

  • 分区 作用 文件系统类型 分区大小 是否必需
    Boot 分区 存放启动文件(内核、引导加载程序)。 ext4vfat 200MB 到 1GB 可选
    交换分区 作为虚拟内存使用,支持休眠功能。 swap 物理内存的 1 到 2 倍 可选
    根分区 存放系统文件、应用程序和用户数据。 ext4XFS 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,稳定且性能良好。
  • 服务器系统:推荐使用 XFSext4,适合高并发和大文件。
  • 需要高级特性:推荐使用 BtrfsZFS,支持快照、压缩等功能。
  • 移动设备:推荐使用 exFATFAT32,兼容性好。
  • 与 Windows 共享数据:推荐使用 NTFS

Linux目录结构

  • Linux 目录结构 是 Linux 文件系统的组织方式,它采用一种层次化的树形结构,所有文件和目录都从根目录(/)开始。Linux 目录结构的设计遵循 Filesystem Hierarchy Standard (FHS),这是一种定义了目录结构和用途的标准。

  • 根目录 (/)

    • 定义:根目录是整个文件系统的起点,所有其他目录和文件都从根目录开始。
    • 特点
      • 根目录是唯一的,没有父目录。
      • 所有绝对路径都以 / 开头。
  • 其他主要目录及其作用

    • /bin

      • 作用:存放系统的基本命令(二进制可执行文件)。
      • 示例lscpmvrm 等。
      • 特点
        • 这些命令是所有用户都可以使用的。
        • 在单用户模式下仍然可用。
    • /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

      • 作用:存放系统管理命令。
      • 示例fdiskifconfigreboot
      • 特点
        • 这些命令通常需要超级用户权限。
    • /srv

      • 作用:存放服务相关的数据。
      • 示例
        • Web 服务器的数据(如 /srv/www)。
        • FTP 服务器的数据(如 /srv/ftp)。
    • /sys

      • 作用:虚拟文件系统,提供内核和设备的信息。
      • 特点
        • 用于管理和配置硬件设备。
    • /tmp

      • 作用:存放临时文件。
      • 特点
        • 所有用户都可以读写。
        • 系统重启后文件可能会被删除。
    • /usr

      • 作用:存放用户程序和只读数据。
      • 子目录
        • /usr/bin:用户命令。
        • /usr/lib:用户库文件。
        • /usr/local:本地安装的软件。
        • /usr/share:共享数据(如文档、字体)。
    • /var

      • 作用:存放可变数据(如日志、缓存)。
      • 子目录
        • /var/log:系统日志。
        • /var/cache:缓存数据。
        • /var/spool:队列数据(如邮件、打印任务)。

总结

目录 作用 示例内容
/ 根目录,文件系统的起点。 所有其他目录和文件都从根目录开始。
/bin 存放系统的基本命令(二进制可执行文件)。 lscpmvrm 等。
/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 存放系统管理命令。 fdiskifconfigreboot
/srv 存放服务相关的数据。 Web 服务器数据(/srv/www)、FTP 服务器数据(/srv/ftp)。
/sys 虚拟文件系统,提供内核和设备的信息。 用于管理和配置硬件设备。
/tmp 存放临时文件。 所有用户都可以读写,系统重启后文件可能会被删除。
/usr 存放用户程序和只读数据。 /usr/bin(用户命令)、/usr/lib(用户库文件)、/usr/local(本地安装的软件)。
/var 存放可变数据(如日志、缓存)。 /var/log(系统日志)、/var/cache(缓存数据)、/var/spool(队列数据)。
posted @ 2025-03-26 18:41  QAQ001  阅读(113)  评论(0)    收藏  举报