HackTheBox-Linux基础

Linux 结构


历史

      许多事件导致了第一个 Linux 内核的创建,并最终创建了 Linux 操作系统 (OS),从 1970 年 Ken Thompson 和 Dennis Ritchie(当时都在 AT&T 工作)发布 Unix 操作系统开始。伯克利软件发行版 (BSD) 于 1977 年发布,但由于它包含 AT&T 拥有的 Unix 代码,因此由此产生的诉讼限制了 BSD 的发展。Richard Stallman 于 1983 年启动了 GNU 工程。他的目标是创建一个自由的类Unix操作系统,他的部分工作导致了GNU通用公共许可证(GPL)的创建。多年来,其他人的项目未能产生一个有效的、自由的内核,直到 Linux 内核的创建才被广泛采用。

      起初,Linux 是 1991 年由一位名叫 Linus Torvalds 的芬兰学生发起的个人项目。他的目标是创建一个新的、自由的操作系统内核。多年来,Linux 内核已经从少量用 C 语言编写的文件,在禁止商业分发的许可下发展到拥有超过 2300 万行源代码(不包括注释)的最新版本,根据 GNU 通用公共许可证 v2 获得许可。

      Linux 有 600 多个发行版(或基于 Linux 内核的操作系统以及支持软件和库)。一些最受欢迎和最知名的是 Ubuntu、Debian、Fedora、OpenSUSE、elementary、Manjaro、Gentoo Linux、RedHat 和 Linux Mint。

      Linux 通常被认为比其他操作系统更安全,虽然它过去存在许多内核漏洞,但它变得越来越少。它比 Windows 操作系统更不容易受到恶意软件的攻击,并且更新频率非常高。Linux 也非常稳定,通常为最终用户提供非常高的性能。但是,对于初学者来说,它可能更加困难,并且没有 Windows 那么多的硬件驱动程序。

      由于 Linux 是免费和开源的,任何人都可以修改源代码并以商业或非商业方式分发。基于 Linux 的操作系统可在服务器、大型机、台式机、嵌入式系统(如路由器、电视、视频游戏机等)上运行。在智能手机和平板电脑上运行的整个 Android 操作系统基于 Linux 内核,因此,Linux 是安装最广泛的操作系统。

      Linux 是一种类似于 Windows、iOS、Android 或 macOS 的操作系统。操作系统是管理与我们的计算机关联的所有硬件资源的软件。这意味着操作系统管理软件和硬件之间的整个通信。此外,还存在许多不同的发行版(发行版)。它就像 Windows 操作系统的一个版本。

通过交互式实例,我们可以访问 Pwnbox,这是 Parrot OS 的定制版本。这将是我们将通过模块使用的主要操作系统。Parrot OS 是一个基于 Debian 的 Linux 发行版,专注于安全、隐私和开发。

哲学

Linux 遵循五个核心原则:

原则                          描述

Everything is a file    Linux 操作系统上运行的各种服务的所有配置文件都存储在一个或多个文本文件中。

Small, single-purpose programs    Linux 提供了许多不同的工具,我们将使用这些工具,这些工具可以组合在一起工作。

Ability to chain programs together to perform complex tasks    不同工具的集成和组合使我们能够执行许多大型和复杂的任务,例如处理或过滤特定的数据结果。

Avoid captive user interfaces    Linux 被设计为主要与 shell(或终端)一起使用,这使用户能够更好地控制操作系统。

Configuration data stored in a text file    此类文件的一个示例是文件,它存储在系统上注册的所有用户。/etc/passwd


组件

元件描述
Bootloader运行以指导启动过程以启动操作系统的一段代码。Parrot Linux 使用 GRUB Bootloader。
OS Kernel内核是操作系统的主要组件。它在硬件级别管理系统 I/O 设备的资源。
Daemons后台服务在 Linux 中称为“守护进程”。其目的是确保调度、打印和多媒体等关键功能正常工作。这些小程序在我们启动或登录计算机后加载。
OS Shell操作系统 shell 或命令语言解释器(也称为命令行)是操作系统和用户之间的接口。此界面允许用户告诉操作系统要做什么。最常用的 shell 是 Bash、Tcsh/Csh、Ksh、Zsh 和 Fish。
Graphics server这提供了一个名为“X”或“X-server”的图形子系统(服务器),允许图形程序在X-windowing系统上本地或远程运行。
Window Manager也称为图形用户界面 (GUI)。有很多选项,包括 GNOME、KDE、MATE、Unity 和 Cinnamon。桌面环境通常具有多个应用程序,包括文件和 Web 浏览器。这些允许用户访问和管理操作系统的基本和经常访问的功能和服务。
Utilities应用程序或实用程序是为用户或其他程序执行特定功能的程序。

Linux 架构

Linux 操作系统可以细分为几层:

描述
Hardware外围设备,例如系统的 RAM、硬盘驱动器、CPU 等。
KernelLinux 操作系统的核心,其功能是虚拟化和控制常见的计算机硬件资源,如 CPU、分配的内存、访问的数据等。内核为每个进程提供自己的虚拟资源,并防止/缓解不同进程之间的冲突。
Shell命令行界面 (CLI),也称为 shell,用户可以在其中输入命令以执行内核的功能。
System Utility向用户提供操作系统的所有功能。

路径描述
/顶级目录是根文件系统,包含挂载其他文件系统之前启动操作系统所需的所有文件,以及启动其他文件系统所需的文件。启动后,所有其他文件系统都作为根目录的子目录挂载到标准挂载点。
/bin包含基本命令二进制文件。
/boot由静态引导加载程序、内核可执行文件和引导 Linux 操作系统所需的文件组成。
/dev包含设备文件,以便于访问连接到系统的每个硬件设备。
/etc本地系统配置文件。已安装应用程序的配置文件也可以保存在此处。
/home系统上的每个用户都有一个子目录用于存储。
/lib系统引导所需的共享库文件。
/media外部可移动介质设备(如 USB 驱动器)安装在此处。
/mnt常规文件系统的临时挂载点。
/opt可选文件(如第三方工具)可以保存在此处。
/rootroot 用户的主目录。
/sbin此目录包含用于系统管理的可执行文件(二进制系统文件)。
/tmp操作系统和许多程序使用此目录来存储临时文件。此目录通常在系统启动时清除,并可能在其他时间删除,而不会发出任何警告。
/usr包含可执行文件、库、man 文件等。
/var此目录包含可变数据文件,例如日志文件、电子邮件收件箱、Web 应用程序相关文件、cron 文件等。

Linux 发行版

       Linux 发行版 - 或发行版 - 是基于 Linux 内核的操作系统。它们用于各种用途,从服务器和嵌入式设备到台式计算机和移动电话。每个 Linux 发行版都是不同的,都有自己的一组功能、包和工具。

一些流行的例子包括:

  • Ubuntu的

  • 软呢帽

  • CentOS 操作系统

  • Debian 的

  • 红帽企业 Linux

       许多用户为他们的台式计算机选择 Linux,因为它是免费的、开源的和高度可定制的。Ubuntu 和 Fedora 是桌面 Linux 和初学者的两个热门选择。它也被广泛用作服务器操作系统,因为它安全、稳定、可靠,并且经常定期更新。最后,作为网络安全专家,我们通常更喜欢 Linux,因为它是开源的,这意味着它的源代码可用于审查和定制。由于这种定制,我们可以按照我们想要的方式优化和定制我们的 Linux 发行版,并仅在必要时针对特定用例进行配置。

      我们可以在任何地方使用这些发行版,包括(Web)服务器、移动设备、嵌入式系统、云计算和桌面计算。对于网络安全专家来说,一些最流行的 Linux 发行版包括但不限于:

鹦鹉操作系统Ubuntu的Debian 的
树莓派操作系统CentOS 操作系统底箱
黑拱门彭图

        各种 Linux 发行版之间的主要区别在于包含的软件包、用户界面和可用的工具。Kali Linux 是网络安全专家最受欢迎的发行版,包括各种以安全为重点的工具和软件包。Ubuntu 在桌面用户中很普遍,而 Debian 在服务器和嵌入式系统中很受欢迎。最后,Red Hat Enterprise Linux 和 CentOS 在企业级计算中很受欢迎。


Debian 的

       Debian 是一个广泛使用且备受推崇的 Linux 发行版,以其稳定性和可靠性而闻名。它用于各种用途,包括桌面计算、服务器和嵌入式系统。它使用高级包工具 () 包管理系统来处理软件更新和安全补丁。软件包管理系统通过在安全更新可用时立即自动下载和安装,帮助保持系统的最新和安全。这可以手动执行,也可以自动设置。apt

        Debian 的学习曲线可能比其他发行版更陡峭,但它被广泛认为是最灵活和可定制的 Linux 发行版之一。配置和设置可能很复杂,但它也提供了对系统的出色控制,这对高级用户来说是件好事。我们对 Linux 系统的控制越多,感觉就越复杂。然而,与我们获得的选择和可能性相比,它只是感觉如此。如果没有所需的深度学习它,我们可能会花更多的时间来配置“简单”的任务和流程,而不是学习更深入地使用一些命令和工具。我们将在 和 部分中看到它。Filter ContentsFind Files and Directories

      稳定性和可靠性是 Debian 的主要优势。该发行版以其长期支持版本而闻名,该版本可以提供长达五年的更新和安全补丁。这对于必须 24/7 全天候启动和运行的服务器和其他系统尤其重要。它有一些漏洞,但开发社区已经迅速发布了补丁和安全更新。此外,Debian 对安全和隐私有着坚定的承诺,并且该发行版拥有完善的安全记录。Debian 是一个多功能且可靠的 Linux 发行版,广泛用于各种目的。它的稳定性、可靠性和对安全性的承诺使其成为包括网络安全在内的各种用例的有吸引力的选择。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/733774.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Vue-内容渲染,属性渲染指令

内容渲染 在Vue中渲染元素&#xff0c;用双花括号{{}}的语法进行插值&#xff0c;称之为插值表达式 双花括号会渲染hi里面的值 <body><div id"app">{{hi}}</div> <script>const vm{data(){return{hi:hello world}}}const appVue.createAp…

【Java】已解决java.nio.channels.OverlappingFileLockException异常

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决java.nio.channels.OverlappingFileLockException异常 在Java的NIO&#xff08;New I/O&#xff09;编程中&#xff0c;java.nio.channels.OverlappingFileLockException是一…

LQR 控制算法应用分析

参考 Optimization Based Control 从基础到复杂地介绍最优控制理论 麻省理工大学机器人算法第八章 LQR 大概说了 lqr 的推导过程&#xff0c;主页有更多算法介绍 wiki LQR 控制器 LQR 多种公式说明 Formulas for discrete time LQR, LQG, LEQG and minimax LQG optimal con…

C语言程序设计-2 程序的灵魂—算法

【例 2.1】求 12345。 最原始方法&#xff1a; 步骤 1&#xff1a;先求 12&#xff0c;得到结果 2。 步骤 2&#xff1a;将步骤 1 得到的乘积 2 乘以 3&#xff0c;得到结果 6。 步骤 3&#xff1a;将 6 再乘以 4&#xff0c;得 24。 步骤 4&#xff1a;将 24 再乘以 5&#xf…

grafana 通过自定义API获取数据

一、安装插件 安装infinity插件 二、配置数据源 三、配置图表 1、数据 这边提供一个go的demo package mainimport ("math/rand""net/http""time""github.com/gin-gonic/gin" )func main() {router : gin.Default()rand.Seed(time.…

Redis数据过期、淘汰策略

数据过期策略&#xff1a; 惰性删除&#xff1a; 设置该key过期时间后&#xff0c;我们不去管它&#xff0c;当需要该key时&#xff0c;我们在检查其是否过期&#xff0c;如果过期&#xff0c;我们就删掉它&#xff0c;反之返回该key。 这种方式对cpu友好&#xff08;只在用…

【从0实现React18】 (二) JSX 的转换 jsx到底是什么?React是如何把jsx转换为ReactElement?

react项目结构 React(宿主环境的公用方法)React-reconciler(协调器的实现&#xff0c;宿主环境无关)各种宿主环境的包shared(公用辅助方法&#xff0c;宿主环境无关) 当前实现的JSX转换属于 react****包 初始化react包 先创建react package并初始化 更新package.json文件&a…

Linux终端玩转bastet俄罗斯方块小游戏

Linux终端玩转bastet俄罗斯方块小游戏 一、bastet小游戏介绍1.1 bastet小游戏简介1.2 项目预览 二、本次实践介绍2.1 本地环境规划2.2 本次实践介绍 三、检查系统镜像源3.1 检查系统镜像源3.2 更新软件列表3.3 查询软件 四、安装bastet小游戏4.1 安装bastet4.2 启动bastet游戏 …

2024最新版DataGrip安装教程-全网最全教程!!!

1.DataGrip下载安装 1.打开DataGrip官网&#xff0c;选择自己需要的版本下载即可&#xff1a; 2.进行安装&#xff1a; 3.重启打开&#xff1a; 我这个是正版激活码激活的&#xff0c;需要教程可以关注留言

打字侠,中小学生暑期的打字练习神器

亲爱的家长们&#xff0c;暑假来临&#xff0c;孩子们又要开始“沙发上的咸鱼”模式了&#xff01;与其看着他们抱着手机、平板不放&#xff0c;不如让他们成为“打字侠”&#xff0c;在快乐中提升打字技能&#xff01; “打字侠”是一款为中小学生量身打造的打字练习神器。别…

[保姆级教程]uniapp自定义标签页切换组件

文章目录 导文样式改成动态列表切换点击效果加上点击自动滑动scroll-view加上切换组件效果 导文 unaipp自带的标签页和ui设计相差太大&#xff0c;直接修改组件比手写一个还麻烦&#xff0c;下面手写一个。 样式 先用scroll-view做一个滑动&#xff0c;不然多的话滑动不了。 &l…

【C++实验】多项式加减

题目&#xff1a;一元多项式运算 基本要求&#xff1a; &#xff08;1&#xff09; 输入并建立多项式; &#xff08;2&#xff09; 输出多项式; &#xff08;3&#xff09; 多项式加法 &#xff08;4&#xff09; 多项式减法。 测试数据&#xff1a; 代码展示&#xff1a; #i…

1.1 数据采集总览

正所谓巧妇难为无米之炊&#xff0c;数据采集是数据处理的第一步。 什么是数据采集 数据采集&#xff0c;也称为数据收集&#xff0c;是将原始数据从各种来源获取并存储起来的过程。这个过程是数据分析和数据仓库建设的第一步&#xff0c;涉及到从不同的数据源中提取数据&…

Redis-数据类型-Hash

文章目录 1、查看redis是否启动2、通过客户端连接redis3、切换到db3数据库4、插入新数据返回15、获取指定哈希&#xff08;hash&#xff09;对象的所有字段&#xff08;field&#xff09;名6、获取存储在指定哈希&#xff08;hash&#xff09;对象中的所有字段&#xff08;fiel…

51单片机STC89C52RC——6.3 定时器/计数器 实现计时功能(定时器+中断系统+LCD1602液晶显示器)

目录 目的/效果 一&#xff0c;STC单片机模块 二&#xff0c;定时器 中断系统LCD1602显示 三&#xff0c;创建Keil项目 四&#xff0c;代码 五&#xff0c;代码编译、下载到51单片机 ​ 目的/效果 用定时器实现系统中断&#xff0c;计时信息显示在LCD1602上。效果如下 …

最优化第六讲练习题

使用牛顿法 def f(vec):x1,x2vec[0],vec[1]return x1*x1/22*x2*x2def first_order(vec):x1,x2vec[0],vec[1]return np.array((x1,4*x2))x0np.array((2,1)) #初始点 secnp.array([[1,0],[0,4]]) #二阶导 try:invnp.linalg.inv(sec) except:print("矩阵不存在逆矩阵")…

如何让表格标题栏具有粘性?

让表格标题栏具有粘性 什么意思呢&#xff1f; 就是当表格的内容&#xff08;行数&#xff09;比较多的时候&#xff0c; 滚动屏幕&#xff0c;看下面的内容的时候&#xff0c; 表格标题栏可以一直显示在屏幕最上方&#xff0c; 以前呢&#xff0c; 我会通过JSCSS 的 pos…

ffmpeg音视频开发从入门到精通——ffmpeg实现音频抽取

文章目录 FFmpeg 实现音频流抽取1. 包含FFmpeg头文件与命名空间声明2. 主函数与参数处理3. 打开输入文件4. 获取文件信息5. 查找音频流6. 分配输出文件上下文7. 猜测输出文件格式8. 创建新的音频流9. 打开输出文件10. 写入文件头信息11. 读取并写入音频数据12. 写入文件尾部信息…

STM32读取芯片内部温度

基于stm32f103cbt6这款芯片&#xff0c;原理部分请参考其他文章&#xff0c;此文章为快速上手得到结果&#xff0c;以结果为导向。 1.基础配置 打开stm32cubemx只需要勾选中 ADC1 Temperature Sensor Channel 2.代码分析 /** 函数名&#xff1a;float GetAdcAnlogValue(voi…

05 - matlab m_map地学绘图工具基础函数 - 设置比例尺指北针

05 - matlab m_map地学绘图工具基础函数 - 设置比例尺指北针 0. 引言1. 关于m_scale2. 关于m_ruler3. 关于m_northarrow4. 结语 0. 引言 本篇介绍下m_map中添加指北针(m_northarrow)、比例尺(m_ruler)和进行比例缩放(m_scale)的函数及其用法 。 1. 关于m_scale m_scale用于图件…