Linux 基础知识
date
Dec 31, 2022
slug
linux-knowledge-fundamentals
status
Published
tags
Linux
Interview
summary
操作系统基础知识
type
Post
Created Time
Oct 28, 2023 01:45 PM
Updated Time
Oct 28, 2023 01:45 PM
AI summary
Linux基础知识包括Linux发行版的概念和关系,GNU计划的目标和核心许可证,以及Linux的网络连接方式和目录结构。Linux发行版是将Linux内核与其他软件组合在一起形成完整操作系统的软件包集合。GNU计划旨在创建一个自由的操作系统,核心是GNU通用公共许可证。Linux的网络连接方式包括桥接模式、NAT模式和主机模式,每种方式都有优缺点。Linux的目录结构是一个树形结构,包含了各种重要目录和其作用,如/bin、/sbin、/home、/root等。
Status
Linux 学习的几个阶段
- 熟悉基本操作命令。
- 能够进行配置管理。
- 能够进行环境的搭建和部署。
- 能够编写和看懂 shell 脚本。
- 能够进行安全设置和系统调优。
- 深入理解 Linux 内核。
Linux 学习方法:
- 首先建立整体的框架,再抠细节。
- 熟悉基本操作命令,能够在需要的时候,查询手册找到对应的命令。
- 先 know how 再 know why,逐渐形成深刻的理解和认知。
- 在实践中学习。
- 适当的囫囵吞枣。
基础篇
Linux 是什么?
Linux 是一种自由、开放源代码的操作系统,它的内核(kernel)由林纳斯·托瓦兹(Linus Torvalds)在 1991 年创建。Linux 操作系统具有很高的灵活性和可定制性,因为它的源代码是开放的,任何人都可以自由地使用、修改和重新分发。
Linux 操作系统被广泛地应用于服务器、超级计算机、移动设备、路由器等领域,同时也有许多桌面版的 Linux 操作系统,如 Ubuntu、Fedora、Debian 等。由于 Linux 操作系统的稳定性、安全性和可扩展性等优点,越来越多的人开始选择使用 Linux 操作系统来满足他们的计算需求。
Linux 的吉祥物是什么?
Linux 的吉祥物是一只名叫 Tux 的企鹅。Tux 的形象是一只胖乎乎的黑白相间的企鹅,它已经成为了 Linux 社区的标志之一。Tux 的设计不仅有趣,而且也具有象征意义,它代表着 Linux 操作系统所依赖的自由和开源软件社区的合作精神。
Linux 和发行版之间是什么关系?
Linux 内核本身只是一个操作系统的核心,它并不能够独立地运行,因此需要其他软件的支持才能够构建成一个完整的操作系统。Linux 的发行版(Distribution,简称 “distro”)是指将 Linux 内核与其他软件组合在一起,形成一个完整的操作系统的软件包集合。Linux 发行版的存在,方便了用户使用 Linux 操作系统,因为它们提供了完整的操作系统环境,并且通常包括了一些常用的软件和工具。
Linux 发行版之间的关系可以被描述为一种层次结构,其中一些发行版是基于其他发行版而开发的。例如,许多流行的 Linux 发行版,如 Ubuntu、Debian、Fedora、CentOS、openSUSE 等都是基于 Linux 内核和 GNU 工具集(GNU Utilities)的。这些发行版通常在软件包管理、用户界面、软件包选择和配置等方面有所不同。
此外,许多 Linux 发行版也有自己的特定目标和用户群体,例如专门用于网络安全的 Kali Linux,专门用于开发者的 Arch Linux,专门用于专业音视频制作的 AV Linux 等。这些发行版通常会预装一些适合特定用途的软件包和工具,以方便用户使用。
什么是 GNU 计划?
GNU 计划是一个由自由软件活动家理查德·斯托曼(Richard Stallman)发起的计划,旨在创建一个完全自由的操作系统。GNU 代表“GNU's Not Unix”,突显了该项目的目标是创建一个类 UNIX 操作系统的自由软件版本。
GNU 计划于 1983 年启动,当时斯托曼为了避免使用专有软件而创建了一个自由软件基金会。该计划旨在为计算机用户提供一种自由的替代方案,使他们能够掌握他们使用的软件,而不是被软件所控制。
GNU 计划的核心是 GNU 通用公共许可证(GNU GPL),它是一种开源软件许可证,可以保证软件自由使用,分发和修改。自由软件运动的许多其他项目和组织都与 GNU 计划有联系,其中包括 GNU / Linux 操作系统,Emacs 编辑器和 GCC 编译器等。
Linux 有哪些网络连接的方式?各有什么优缺点?
- 桥接模式(Bridged Mode)
- 优点
- 与主机网络完全集成:虚拟机将作为独立设备加入到主机所在的网络中,拥有独立的 IP 地址。
- 通信性能较高:虚拟机与主机之间的通信不需要进行地址转换,减少了额外的处理开销。
- 更好的网络兼容性:支持所有基于 IP 协议的网络服务,包括广播和组播。
- 缺点
- 可能发生 IP 地址冲突:每个虚拟机都需要在主机所在的网络中分配一个 IP 地址。
- 安全性较低:虚拟机直接连接到主机网络,可能导致安全隐患。
- NAT 模式(Network Address Translation Mode)
- 优点
- 节省 IP 地址:虚拟机共享主机的 IP 地址,减少了 IP 地址的消耗。
- 自动网络连接:虚拟机可以自动连接到主机网络,无需进行额外的网络配置。
- 较好的安全性:NAT 模式为虚拟机提供了一定程度的网络隔离,降低了网络攻击的风险。
- 缺点
- 通信性能较低:虚拟机与主机之间的通信需要进行地址转换,增加了额外的处理开销。
- 网络兼容性较差:不支持所有基于 IP 协议的网络服务,例如广播和组播。
- 配置复杂:需要对虚拟机的网络进行额外的 NAT 规则配置,以支持特定的网络服务。
- 主机模式(Host-only Mode)
- 优点
- 网络隔离:虚拟机与主机构建了一个独立的网络环境,提高了安全性。
- 节省 IP 地址:在主机模式下,虚拟机使用独立的 IP 地址,但不消耗主机网络中的 IP 地址。
- 简化配置:无需配置额外的网络规则,易于管理。
- 缺点
- 仅限于主机与虚拟机之间的通信:虚拟机无法直接访问外部网络,只能与主机进行通信。
- 通信性能一般:虽然不需要进行地址转换,但是由于网络隔离,通信性能受到一定程度的影响。
Linux 的目录结构是怎样的?
Linux 的目录结构是一个树形结构,以根目录“/”为起点,向下分支出多个目录,每个目录都包含了不同的文件和子目录。下面是 Linux 目录结构的一些重要目录和它们的作用:
- /bin:binary 的缩写,这个目录存放着系统启动和运行所需的基本命令,如ls、cp、mv、rm等。
- /sbin:s 就是 Super User 的意思,这个目录存放着系统管理命令,只能由超级用户 root 使用,如 iptables、fdisk、ifconfig等。
- /home:存放普通用户的主目录,在 Linux 中每个用户都在该目录下有一个自己的子目录,一般该目录是以用户的账号命名的。
- /root:系统管理员,也被称为超级用户 root 的用户主目录。
- /lib:系统开机所需要的最基本的动态连接库,这些库文件被所有程序共享使用。
- /lost+found:这个目录一般情况下是空的,只有在文件系统出现问题时才会被占用,比如,当系统非法关机后,这个目录就会存储一些文件系统中损坏或遗失的文件和目录。
- /etc:包含系统管理所需要的配置文件和子目录,如网络配置、用户账户、打印机配置等。
- /usr:这是一个非常重要的目录,这个目录包含了系统软件和用户软件的安装目录,如应用程序、库文件、帮助文件等。
- /boot:这个目录包含启动 Linux 操作系统所需的一些核心文件,如内核文件、引导程序等,另外,还包含一些连接文件以及镜像文件。
- /proc【不能动】:这个目录是一个目录,它是内存系统的映射,可以通过访问这个目录来获取系统信息,包含系统运行时的进程、内存映像、CPU信息等。
- /srv【不能动】:service 的缩写,该目录存放了一些服务启动之后需要提取的数据。
- /sys【不能动】:这个目录是 Linux 2.6 内核的一个很大的变化,该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs。
- /tmp:用于存放临时文件的目录。
- /dev:这个目录包含硬件设备文件,如硬盘、光驱、USB设备等,它们在 Linux 中被视为文件。
- /media:这个目录包含可移动媒体设备,如光盘、U盘、移动硬盘等,Linux 会把识别的设备挂载到这个目录。
- /mnt:临时挂载文件系统的目录,比如,可以将外部的存储挂载到这个目录。
- /opt:第三方软件安装的目录,通常存放那些不是系统自带软件的应用程序,如 ORACLE 数据库。
- /usr/local:这是另一个给主机额外安装软件所安装的目录。一般是通过编译源码方式安装的程序。
- /var:这个目录包含经常变化的文件,如日志文件、邮件、缓存文件等。
- /selinux【security-enhanced linux】selinux 是一种安全子系统,它能够控制程序只访问特定文件,有三种工作模式,可以自行设置。