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

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

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

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

内核

内核是操作系统中最底层的软件。它充当硬件和应用程序之间的通信点。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 受到网络管理员的欢迎。

驱动

驱动程序使操作系统能够与连接的硬件进行交互。usb、图形卡、声卡和网络适配器等设备需要驱动程序正常工作。

驱动程序通常在 Linux 上作为内核模块工作。

注: 查看 modprobe 命令如何添加和删除内核模块

Linux 的优缺点

在研究 Linux 时,需要考虑许多优点和缺点。大多数优点和缺点取决于个人的喜好和要求。

下面概述了Linux的主要优点和缺点。

Linux 优点

作为当今最流行的操作系统之一,Linux 有很多优点。Linux 的一些重要的积极特性是:

  • **开源:**作为一个开源系统,Linux 可以自由使用、修改和分发。开发是透明和协作的。开放系统鼓励学习技术和创新。
  • **稳定性:**Linux 被称为稳定可靠的系统。它适用于关键系统、服务器和实时应用程序。Linux 可以长时间运行,无需重新启动。
  • **安全性:**有限的恶意软件暴露,强大的系统权限,并通过补丁快速解决漏洞。
  • **定制:**操作系统体验是完全可配置的。在各种桌面环境、软件包和窗口管理器之间进行选择。
  • **软件可用性:**尽管商业软件选项较少,但开源软件解决方案和替代品不断增加。
Linux 缺点

Linux 有几个缺点,特别是对于不熟悉环境的用户。Linux 的一些缺点包括:

  • **学习曲线:**Linux 以具有更陡峭的学习曲线而闻名,尤其是对于从 Windows 迁移的用户。对于新用户来说,学习新命令、文件系统的工作原理和整体配置是一项挑战。
  • **兼容性:**软件兼容性是迁移到 Linux 之前要考虑的关键因素。尽管存在许多开源替代方案,但某些专有软件不适用于 Linux。
  • **游戏:**尽管 Linux 上的游戏正在增长并变得越来越流行,但该系统仍然需要赶上 Windows 的游戏支持和兼容性。
  • **技术支持:**Linux 专注于拥有可靠的在线社区存在和广泛的文档。很难找到专门的技术支持来排除故障和协助解决特定问题。

Linux 和开源

Linux 内核是免费软件,这意味着它是使用 GNU 通用公共许可证的开源代码。用户可以下载并更改原始源代码。唯一的义务是更改的分发需要具有相同的开源许可证和可用的源代码。

Linux 的开源方面在系统的广泛成功和实现中起着至关重要的作用。开源原则在很多方面影响着 Linux,用自由软件创建了一个协作和创造性的社区。

Linux操作系统用途

由于其多功能性,Linux 操作系统出现在许多上下文中。Linux 操作系统的一些常见用途包括:

  • **服务器:**Linux 是一种广泛使用的操作系统,适用于 Web 服务器、数据库服务器、文件服务器等。稳定性、安全性和可扩展性使 Linux 成为支持不同服务器类型的绝佳选择。
  • **云计算和虚拟化:**云服务通常依靠基于 Linux 的操作系统来提供可靠且可扩展的基础架构。虚拟化平台还经常使用 Linux 作为虚拟化平台(如 Docker)中的主机操作系统。
  • **台式电脑:**Linux 为台式计算机和笔记本电脑提供了几种不同的桌面环境和发行版,它们提供了所有必要的桌面实用程序和应用程序。
  • **移动设备:**Linux 内核是 Android 的核心,Android 是最流行的移动操作系统之一。该操作系统适用于智能手机、平板电脑、智能电视和其他设备。
  • **嵌入式系统:**路由器、智能家电、物联网设备和汽车系统主要使用 Linux。
  • **科学研究:**生物信息学、计算模拟、数据分析和高性能计算(HPC) 等领域由于稳定性、性能和软件可用性而使用 Linux。
  • **开发:**Linux 提供了广泛的开发工具。开发人员通常更喜欢 Linux,因为它具有强大的命令行功能、脚本和开发库的可用性。
  • **教育:**Linux 是教授计算机科学和其他 IT 相关科目的一种经济高效的方式。该操作系统可根据特定要求进行定制,并且有几个发行版是专门为教育目的而设计的。

Linux 发行版

Linux 发行版(发行版)是 Linux 操作系统的不同变体。每个发行版都将 Linux 内核与软件、工具、库和桌面环境相结合,以服务于特定的用例。

以下是最流行的 Linux 发行版列表:

  • **Ubuntu:**Ubuntu 是最常用和最知名的 Linux 发行版。该发行版专注于用户友好,安装过程简单,并具有出色的桌面体验。
  • **Debian的:**Debian 是一个稳定的发行版,也是许多 Linux 发行版(如 Ubuntu)的基础。该发行版支持多种架构和各种软件包。
  • Mint。Mint 是一个基于 Ubuntu 的用户友好型 Linux 发行版。该发行版具有多个桌面环境,适合新的 Linux 用户。
  • **红帽企业 Linux (RHEL)。**RHEL 是一个商业开源发行版,以对企业系统的可靠支持和稳定性而闻名。由于长期支持以及与软件和硬件供应商的广泛联系,该发行版用于关键任务系统。
  • Fedora。Fedora 是一个由 Red Hat 赞助的基于社区的发行版。该发行版旨在提供最新的软件解决方案和创新,同时坚持开源原则。
  • CentOS 操作系统。CentOS 是基于 RHEL 源代码的广泛发行版。由于对企业友好,服务器部署通常依赖于 CentOS。最新版本的 CentOS 已达到 EOL,但有许多 CentOS 替代品可供考虑。
  • Arch。Arch Linux 是一个最小的、高度可定制的发行版,采用 DIY 方法。基本安装很轻,允许用户构建定制的 Linux 体验。
  • Kali。Kali Linux 是用于渗透测试网络安全审计的专用发行版。该发行版带有各种安全工具,在黑客和安全专家中很受欢迎。

如何选择 Linux 发行版?

最全的Linux教程,Linux从入门到精通

======================

  1. linux从入门到精通(第2版)

  2. Linux系统移植

  3. Linux驱动开发入门与实战

  4. LINUX 系统移植 第2版

  5. Linux开源网络全栈详解 从DPDK到OpenFlow

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

第一份《Linux从入门到精通》466页

====================

内容简介

====

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。

需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论

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

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

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

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值