欢迎光临散文网 会员登陆 & 注册

深度学习面试28-linux

2023-10-28 22:06 作者:岩学长  | 我要投稿

01 Windows和Linux的区别 

02 什么是 Linux 内核

03 什么是root帐户

04 什么是硬链接和软链接

05 Shell 脚本是什么

06 什么叫 CC 攻击?什么叫 DDOS 攻击?

07  请问当用户反馈网站访问慢,你会如何处理?

08 什么是网站数据库注入

09 什么是CLI

10 基本命令

01 Windows和Linux的区别 

Windows和Linux是两种不同的操作系统,它们有许多区别,包括以下几个方面: 内核和架构:

Windows使用NT内核,而Linux使用Linux内核。这两个内核的设计和架构方式不同,因此它们在底层的工作原理上有很大的差异。

开放源代码 vs. 专有软件:

Linux是开源的,意味着任何人都可以查看、修改和分发其源代码。 Windows是专有操作系统,其源代码不公开,只能由微软公司进行开发和维护。

软件兼容性:

Windows拥有大量专有软件和游戏的支持,因为它是一种常见的桌面操作系统。相比之下,Linux的应用程序生态系统相对较小,尤其是在专有软件方面,虽然有许多免费和开源的替代品。

用户界面:

Windows通常使用Windows桌面环境,而Linux有各种不同的桌面环境,如GNOME、KDE、XFCE等,用户可以选择适合自己的桌面环境。

命令行界面:

Linux系统强调命令行界面,使用户可以通过终端窗口执行各种任务。 Windows也有命令行界面,但在日常使用中,用户更倾向于使用图形用户界面(GUI)。

文件系统:

Windows使用NTFS(New Technology File System)作为主要文件系统,而Linux使用多种文件系统,包括Ext4、Btrfs、XFS等。这些文件系统在性能、稳定性和功能上有所不同。

安全性:

由于开源性质和广泛的社区支持,Linux在安全性方面通常被认为更强大。 Windows也有强大的安全特性,但由于其广泛的使用,也成为了攻击目标。

02 什么是 Linux 内核

Linux内核是Linux操作系统的核心组件,它是操作系统的基本部分,负责管理硬件资源、文件系统、进程管理、内存管理和安全性等核心功能。Linux内核的主要职责包担负了操作系统的底层任务,使用户能够与计算机硬件进行交互,并在不同的应用程序之间协调资源分配。 下面是Linux内核的一些主要功能: 硬件管理:Linux内核与计算机硬件之间的通信,包括驱动程序的加载、硬件设备的初始化和管理。这涵盖了处理器、内存、存储设备、网络接口、图形卡等硬件资源。

进程管理:内核负责创建、终止、暂停、恢复和调度进程。它为每个运行的程序分配资源,确保它们能够互不干扰地运行。

内存管理:Linux内核管理系统内存的分配和释放,以确保各个进程之间不会相互干扰。它还处理虚拟内存、交换空间和内存保护。

文件系统:内核管理文件和目录的创建、读取、写入、删除和权限控制。它还支持各种不同的文件系统,如Ext4、Btrfs、XFS等。

网络支持:Linux内核提供了网络协议栈,允许计算机进行网络通信,包括TCP/IP、UDP和其他网络协议的支持。

安全性:内核实施了各种安全机制,包括权限控制、用户身份验证、安全策略等,以保护系统不受未经授权的访问。

设备驱动程序:内核包括许多设备驱动程序,以支持各种硬件设备,如打印机、摄像头、键盘、鼠标等。

03 什么是root帐户

"root帐户" 是指在类Unix操作系统中的超级用户帐户。这个帐户通常拥有系统上最高的权限,可以执行系统的关键任务,包括对文件系统、进程和系统配置的完全控制。在不同的操作系统中,"root帐户"有不同的称呼,例如在Linux系统中叫做"root",而在BSD系统中通常称为"superuser"。 "root帐户"拥有以下权限和特征: 全权访问:"root帐户"可以访问系统上的任何文件和目录,而不受文件权限的限制。这意味着"root"可以查看、修改、删除系统中的任何文件。

进程控制:"root"可以查看和控制系统上运行的所有进程,包括终止它们。

系统配置:"root"可以更改系统的配置设置,包括网络设置、用户帐户、安全策略等。

安装和升级软件:"root"可以安装、升级和删除软件包,而不受普通用户的限制。

系统维护:"root"通常负责系统的维护任务,如备份、恢复、日志查看等。

04 什么是硬链接和软链接

硬链接(Hard Links)和软链接(Symbolic Links,也称为符号链接)是两种在文件系统中用于创建文件链接的概念,它们有一些重要的区别。

硬链接(Hard Links):

硬链接是指多个文件目录项(文件名)指向同一个索引节点(inode)的文件。索引节点包含了文件的实际数据和元数据(例如权限、拥有者、文件大小等)。

所有硬链接都共享相同的索引节点,因此它们实际上是同一个文件的不同名称。

如果你删除一个硬链接,文件的内容不会被删除,只有当所有硬链接都被删除后,文件的内容才会被释放。

硬链接只能在同一个文件系统中创建,并且不能链接到目录。

例如,假设你有一个名为file.txt的文件,你可以创建一个硬链接link.txt,这两个文件将共享相同的数据块和inode。

软链接(Symbolic Links):

软链接是一个特殊的文件,它包含了指向另一个文件或目录的路径信息。软链接本身是一个独立的文件,它拥有自己的inode,而不是与原始文件共享inode。

如果原始文件被删除,软链接将失效,因为它只包含了路径信息,而不是实际数据。

软链接可以链接到不同文件系统中的文件或目录。

例如,你可以创建一个软链接link.txt,它指向文件file.txt,并且如果file.txt被删除,link.txt将变得无效。

05 Shell 脚本是什么

Shell脚本是一种文本文件,其中包含一系列用于自动化任务和系统管理的命令。这些命令是由操作系统的Shell解释器执行的。Shell是一个命令行解释器,它允许用户与操作系统进行交互,执行各种命令和操作。 Shell脚本可以包括以下内容:

命令序列:

一系列命令按照顺序执行,可以执行文件操作、进程管理、数据处理等任务。

变量:

脚本可以定义和使用变量,用于存储数据和参数,并在脚本中进行计算和处理。

条件语句:

脚本可以包括条件语句(如if语句),根据条件的真假执行不同的命令块。

循环:

脚本可以包括循环结构(如for循环、while循环),以便多次执行相同或类似的命令。

函数:

脚本可以定义函数,将一系列命令封装在一个可重复使用的单元中。

输入和输出:

脚本可以读取输入(从用户或文件)并将结果输出到终端或文件。

Shell脚本通常以.sh为文件扩展名,它们可以在Unix、Linux和类Unix系统上运行。常见的Shell解释器包括Bash(Bourne Again Shell)、sh、csh、ksh等。Bash是最常用的Shell解释器之一,它是Linux默认的Shell,也在其他Unix系统中广泛使用。

06 什么叫 CC 攻击?什么叫 DDOS 攻击?

CC攻击(Challenge Collapsar Attack)和DDoS攻击(Distributed Denial of Service Attack)都是网络安全领域中的攻击类型,它们有不同的特征和目的。

CC攻击(Challenge Collapsar Attack):

CC攻击是一种网络攻击,通常针对Web服务器或网络应用程序。它的主要目标是通过发送大量的请求来压倒目标服务器的性能,使其无法正常工作。

CC攻击的名称"Challenge Collapsar Attack"意味着它试图挑战服务器的处理能力,使其崩溃或变得不可用。

攻击者通常会利用多个计算机(通常是僵尸计算机或机器人网络)来发送大量请求,这些请求可能是HTTP请求,如GET或POST请求。攻击者可能会使用不同的IP地址,以避免被服务器的IP封锁机制阻止。

CC攻击的目标通常是通过服务器上的资源耗尽来使其无法响应合法用户的请求,而不是通过直接瘫痪整个网络来达到目的,这是与DDoS攻击不同的地方。

DDoS攻击(Distributed Denial of Service Attack):

DDoS攻击是一种网络攻击,其目标是通过向目标服务器或网络发送大量伪造的请求,以消耗其带宽、处理能力或其他资源,从而使其无法正常工作。

DDoS攻击通常涉及大量计算机(通常是僵尸计算机或机器人网络)的协同工作,以协同攻击目标。

这些攻击可以采用不同的方式,包括UDP洪泛、SYN泛洪、HTTP GET/POST请求泛洪等,攻击者旨在通过创建大量网络流量来淹没目标,使其无法响应合法用户的请求。

DDoS攻击可能是一种分散的攻击,以分散网络防御,从而使攻击更难被阻止。

总之,CC攻击旨在通过压倒服务器的处理能力来使其变得不可用,而DDoS攻击旨在通过消耗网络资源来使目标无法正常工作。两者都是网络攻击的一种形式,通常需要采取网络安全措施来减轻其影响或防止其发生。

07 请问当用户反馈网站访问慢,你会如何处理?

当用户反馈网站访问慢时,处理这个问题通常需要进行一系列的诊断和改进操作,以提高网站的性能和响应速度。以下是一些处理网站访问慢的一般步骤:

监控和分析

使用监控工具来收集有关网站性能的数据,包括服务器资源利用率、响应时间、带宽利用率等。

分析监控数据以确定性能问题的具体原因,例如,是服务器资源不足、网络问题还是应用程序问题。

优化服务器资源

如果服务器资源不足,可以考虑升级硬件,增加内存、CPU或存储容量。

针对服务器的操作系统和Web服务器软件进行调优,以提高性能。

缓存和CDN

使用缓存技术,将常用的页面和资源缓存起来,减少服务器负载和加速响应时间。

使用内容分发网络(CDN)来分发网站内容,减少服务器和网络的负载,以加速页面加载速度。

数据库优化

优化数据库查询,确保数据库索引的使用和查询的效率。

使用数据库缓存,减少对数据库的频繁访问。

代码优化

优化前端和后端代码,删除不必要的代码、减少HTTP请求和响应时间。

压缩资源,如CSS和JavaScript文件,以减小页面加载时间。

网络优化

检查网络连接和带宽,确保它们不是导致慢速访问的瓶颈。

优化网络配置,确保正确的路由和防火墙规则。

08 什么是网站数据库注入

网站数据库注入(Website Database Injection),通常称为SQL注入(SQL Injection),是一种常见的网络安全漏洞,允许攻击者将恶意SQL代码插入到网站的输入字段或参数中,从而执行未经授权的数据库操作。这种攻击通常会针对使用SQL数据库(如MySQL、Oracle、SQL Server等)存储数据的网站和应用程序。 SQL注入攻击通常发生在具有用户输入的网页表单、搜索框、URL参数或其他输入字段上,攻击者试图在这些输入字段中插入恶意SQL代码,以利用漏洞进行数据库操作,可能包括以下行为:

数据泄露:

攻击者可以利用SQL注入来检索敏感数据,如用户名、密码、信用卡信息等,从而威胁用户隐私和数据泄露。

数据篡改:

攻击者可以修改数据库中的数据,包括删除、修改或插入新数据,从而破坏数据的完整性。

拒绝服务:

SQL注入可能导致数据库服务器超载,从而导致拒绝服务攻击,使网站不可用。

SQL注入攻击发生的原因通常是由于网站应用程序未能正确验证和过滤用户输入,导致攻击者能够将恶意SQL代码注入到数据库查询中。为防止SQL注入攻击,开发人员和管理员可以采取以下措施: 使用参数化查询或预备语句:通过使用参数化查询或预备语句,可以确保用户输入不会被解释为SQL代码。

输入验证和过滤:对用户输入进行验证和过滤,以删除或转义潜在的恶意字符,如单引号和分号。

最小权限原则:数据库连接应以最小权限原则运行,确保数据库用户仅能执行必要的操作,而不是具有完整的数据库管理员权限。

定期更新和漏洞扫描:定期更新数据库管理系统和应用程序,同时进行漏洞扫描,以及时发现和修复潜在的漏洞。

09 什么是CLI

CLI代表

命令行界面

(Command Line Interface)。它是一种计算机用户界面,通过命令行或文本界面与计算机系统进行交互。与图形用户界面(GUI)不同,CLI不依赖于图形元素,而是通过键入文本命令来执行操作。 CLI具有以下特点:

文本命令:

用户通过键盘输入文本命令,这些命令通常由操作系统或应用程序提供。每个命令通常具有一组选项和参数,用于执行特定任务。

脚本:

CLI允许用户编写脚本文件,其中包含一系列命令。这些脚本可以用于自动化重复性任务。

高度可配置:

CLI通常非常灵活,用户可以根据需要进行配置和自定义,以执行各种任务。

系统资源效率:

CLI通常占用较少的系统资源,因此在资源受限的环境中运行效果良好,例如服务器或嵌入式系统。

远程管理:

CLI允许通过远程连接来管理远程计算机,使其在服务器管理和远程维护方面非常有用。

多平台支持:

大多数操作系统都提供了CLI,包括Unix、Linux、macOS和Windows等,因此CLI命令和技能在各种平台上通用。

10 基本命令

ls:

列出当前目录中的文件和子目录

cd:

切换到另一个目录。

pwd:

显示当前工作目录的路径。

rmdir 或 rm -r:

删除目录。

touch:

创建一个新空文件或更新文件的时间戳。

rm:

删除文件。

cp:

复制文件或目录。

mv:

移动文件或重命名文件或目录。

cat:

查看文件的内容。

less:

逐页查看文件的内容,支持向上和向下滚动。

chmod:

修改文件或目录的权限。

who:

显示当前登录的用户列表。

深度学习面试28-linux的评论 (共 条)

分享到微博请遵守国家法律