2024年最全Linux 详解:最完整的入门指南_linux菜鸟入门指南

Linux 最令人兴奋的特性之一是它不是一个商业产品。创建者维护内核,而一组连接的开发人员继续开发。该项目是通过互联网合作的结果。

Linux 架构

Linux 内核具有单一的开放体系结构。Linux 操作系统的基本架构由三层组成:

硬件:机器的物理组成部分,内存(RAM)和处理器(CPU)。
内核:内存软件和CPU控制器,内核充当硬件和进程之间的连接器。
进程:系统上由内核控制的运行程序,进程构成了内核之外的所有任务。

Linux 系统将虚拟内存分成两个不同的空间:

  • **内核空间:**为运行系统内核、内核模块和大多数设备驱动程序而保留的虚拟内存段。
  • 用户空间(或用户区):为运行内核之外的所有代码而保留的虚拟内存段。

内核在 Linux 操作系统中起着中心作用,并与许多不同的体系结构部分一起工作。下面是 Linux 主要组件的简要概述。

引导装载程序

引导加载程序是每次 Linux 系统启动或重新启动时运行的程序。引导加载程序的主要功能是将内核加载到内存中并启动引导过程。

除了定位和加载内核之外,该程序还为内核设置初始启动环境并提供所需的信息。

Linux 上最常见的两个引导加载程序是:

  • GRUB:大统一引导加载程序(GRUB)是各种 Linux 发行版中最常见的默认引导加载程序。该程序允许在多操作系统环境中选择操作系统、配置启动选项、运行 GRUB 拯救模式以及选择备用内核。
  • LILO:Linux LOader (LILO)是一种在某些 Linux 系统上不太常见但仍在使用的引导加载程序。与 GRUB 相比,该程序具有简单的设计和众多配置选项。

完成引导过程后,Linux 内核继续运行操作系统。

内核

内核是操作系统中最底层的软件。它充当硬件和应用程序之间的通信点。Linux 内核是单片的,用C 语言和汇编语言编写。它提供了运行系统所需的所有低级进程。

Linux 内核管理以下组件:

  • **设备驱动程序:**内核充当硬件和进程之间的中介。
  • **内存:**内核跟踪内存使用情况,包括存储的内容和位置。
  • **进程管理:**调度来自进程的CPU请求,并相应地分配处理器时间。
  • **系统调用和安全:**内核处理所有系统调用,并在内核空间中处理请求。

通过管理低级任务,内核在用户和硬件之间提供了一个抽象层,同时允许用户访问硬件信息。库的使用可以打开和关闭内核中的某些功能,使其非常可定制和灵活。
在抽象硬件的同时访问信息的额外灵活性提供了一个非常模块化的内核模型。

初始化系统

init 系统是由内核启动的 Linux 守护进程。init 系统的目的是在引导期间初始化用户空间,并在运行时期间管理系统进程。init系统任务包括:

  • 启动、停止和重启服务。
  • 管理其他守护进程。
  • 协调引导顺序。

最初的 Linux 初始化系统是基于 Unix SystemV (SysV) 初始化系统。SysV 依赖于 /etc/init.d 目录下中的脚本,根据运行级别顺序启动、停止和重启服务。

大多数主要的 Linux 发行版(Ubuntu、CentOS、Fedora、Debian)使用 systemd 实现 init 系统,它向后兼容 SysV。该系统提供更快的引导时间和更好的系统管理功能,例如通过 journalctl 进行详细的日志记录。

有些 Linux 系统允许在安装过程中选择不同的初始化系统。这个选择很关键,会影响整个系统的行为。

守护进程

守护进程是在引导过程中启动的后台进程。并等待特定的事件或请求在没有用户干预的情况下发生。守护进程的一些例子包括:

  • systemd:负责管理其他守护进程的中心守护进程。
  • sshd:SSH服务器守护进程监听传入的SSH连接请求,启用到远程服务器的安全连接,并允许文件传输。
  • httpd:侦听HTTP请求并提供网页服务的web服务器守护进程。
  • cron:在请求时间执行cron表(crontab)中的计划任务或脚本的守护进程。

Linux 包含许多守护进程,每个进程都具有特定的功能。总的来说,守护进程确保程序在系统上顺利运行。

图形化服务

图形服务器是 Linux 上的一个基本框架,用于在监视器上显示图形。该组件实现了 X 窗口系统(X11或X),并支持窗口管理、键盘/鼠标输入和多显示支持。

X 窗口系统不提供用户界面。不同的程序处理用户与之交互的可视化界面的细节。

桌面环境

桌面环境提供实现图形用户界面(GUI)的软件。桌面环境提供了一种合乎逻辑且用户友好的方式来导航各种操作系统组件。

Linux 提供了几种不同的桌面环境可供选择,它们是独立于发行版的。
桌面环境包含几个内置的应用程序,如文本编辑器、配置程序、web 浏览器和其他实用程序。

应用程序

应用程序是 Linux 操作系统的最高层。大多数 Linux 发行版提供集中的应用程序商店环境来搜索和安装应用程序。

注意:对于迁移到 Linux 的 Windows 用户,Wine 等程序允许在 Linux 上运行 Windows 应用程序。

Linux 是如何工作的

Linux 管理硬件资源,并提供与系统资源交互的接口。内核是操作系统与硬件交互的核心组件。
围绕内核构建的支持 Linux 工作的关键组件将在以下部分中介绍。

Linux Shell

Linux 使用称为 shell 的命令行接口与内核通信。shell 使用户能够使用各种 Linux 命令而不是 GUI 与操作系统进行交互。有几种流行的 shel l类型,如 Bash、Zsh、Fish 等。

使用基于文本的命令可以访问各种 Linux 实用程序和工具。shell 支持文件管理、管理任务和配置系统设置。

Linux 文件系统

Linux 文件系统决定了文件和目录在 SSD 或 HDD 上的存储方式。Linux 支持各种文件系统类型,最常见的是扩展文件系统(ext)。

Linux上常见的文件系统包括:
ext2:在许多早期的 Linux 系统上,不包括日志记录。
ext3:是 ext2 的扩展,增加了日志记录功能来跟踪文件系统的更改。
**ext4:**是大多数现代Linux发行版的默认设置。文件系统支持大文件系统,具有更好的性能和可扩展性。
Btrfs: (B-tree文件系统)提供高级特性,如 RAID 支持和自修复。
XFS:是一种健壮的高性能文件系统,适用于大型文件系统和文件。

文件系统的选择取决于具体的需要、需求和用例。

Linux进程

Linux中的进程是操作系统中的单个工作单元。正在运行的命令或程序的任何实例都是具有唯一标识符(进程ID或PID)的进程。

进程有几种不同的状态,例如:

  • Running:当前在CPU中执行的进程的状态。
  • Sleeping:进程正在等待资源或特定事件的状态。
  • Zombie:僵尸进程被停止并且没有被彻底清理。
  • Stopped:进程未运行并准备恢复或终止的状态。
  • Orphaned:父进程结束的进程。

Linux提供了各种实用程序和工具来管理进程:

  • 有几个不同的命令列出正在运行的进程,包括 top 和 ps 命令。
  • 终止(杀死)进程的命令。
  • 进程控制命令,如 exec() 和 fork(),支持并发执行或多任务处理。

处理进程对于 Linux 来说是必不可少的。了解如何管理进程有助于解决软件问题,优化性能,并直接管理系统资源。

Linux 用户权限

Linux 采用文件系统的权限模式。该模型基于三个不同的级别分配不同的权限:

  • **User(u):**文件或目录的用户。
  • **Group(g):**具有相似权限的多个用户。
  • **Others(o):**既不是组的所有者也不是组的成员的所有其他用户。

用户权限允许对文件和目录执行不同的任务。可用的用户权限包括:

  • **Read®:**允许指定的用户查看目录中的文件或文件名。
  • **Write(w):**允许用户修改或删除文件内容。具有写权限的用户可以创建、移动和删除目录。
  • **Execute(e):**赋予用户执行脚本/程序文件、访问和遍历目录的权限。

需要查看文件或目录的权限,使用带-l选项的 ls 命令。输出显示了用户、组和其他用户的权限。例如:

-rw-r--r-- 1 user group 2028 Aug 19 2:00 file.txt

Linux 中的包管理

包是在 Linux 发行版上发布软件的一种标准化方式。包是包含安装某些软件所需的所有数据的压缩归档文件。

Linux 操作系统使用软件包管理系统来安装、删除和更新软件包。包管理器解析依赖关系并更新包存储库以保持一致性。

Linux 发行版为软件安装和维护提供了一个现成的包管理系统。流行的包管理器包括:

  • APT(高级软件包工具):APT包管理器是在基于Debian的发行版(如Ubuntu)中使用的Debian包管理器。包格式使用在包存储库中找到并维护的.deb文件。apt或apt-get等命令有助于安装、更新、删除包,并自动解析依赖项。
  • RPM (Red Hat Package Manager):RPM包管理器出现在基于Red hat的发行版中,比如Fedora和CentOS。rpm和yum等命令有助于管理.rpm格式的包。RPM解决了大多数包依赖关系,但在特定情况下需要人工干预。
  • Pacman:Pacman包管理器出现在Arch Linux和类似的发行版中。轻量级包管理器与.pkg.tar一起工作。Xz文件格式,并自动处理所有依赖项。pacman命令允许从终端管理包。

Linux 发行版还提供了更高级的解决方案,通过 GUI 作为一种用户友好的方法来管理包。

Linux 网络

Linux 包含一个健壮的网络管理、监视和故障排除工具栈。Linux 中的网络选项是高度可定制的,并且支持许多网络协议。

一些关键的 Linux 网络元素包括:

  • IP 地址:IP地址是 Linux 网络中设备的唯一标识符,由四个字节组成(例如192.168.1.1)。标识符对于路由网络中的网络流量至关重要。地址可以手动分配,也可以通过 DHCP 等协议自动分配。
  • 接口:Linux 支持多种组网接口,如 Wi-Fi、以太网、虚拟接口等。每个网络接口都有一个唯一的名称,例如 eth0、lo (loopback) 或 wlan0。ip 或 ifconfig 等命令提供概述和配置网络接口。
  • 配置文件:Linux 使用配置文件定义各种网络设置。例如,基于 debian 的系统使用 /etc/network/ 接口进行网络任务,而基于 Red hat 的系统将配置文件存储在 /etc/sysconfig/network-scripts/ 中。
  • DNS:DNS (Domain Name System)将人类可读的地址转换为 IP 地址。Linux 在 /etc/resolv.conf 文件中手动或动态定义解析。
  • 路由:Linux 支持路由,并存储路由表来定义网关和网络流量。ip route 等命令用于维护和管理路由表。
  • 服务:各种网络服务为设备和用户提供网络功能。例如 web服务器、邮件服务器、DNS服务器、FTP服务器和 SSH服务器。
  • 工具:Linux 有许多用于故障排除和管理网络任务的网络工具,例如 ping 和 traceroute。

可用的程序、工具和定制使 Linux 受到网络管理员的欢迎。

驱动

最后的话

最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!

资料预览

给大家整理的视频资料:

给大家整理的电子书资料:

如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
SfnQ-1714496409899)]

如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值