Linux概念和基础使用

一个Linux详解文章

发布:2023-10-15     分类:闲者编程     标签:Linux详解
2023 - 10 - 14

大家好,我是闲者,Linux 的学习对于一个程序员的重要性是不言而喻的。学好它是程序员必备修养之一。同时也是很多公司的面试题。所以整理所学知识及了解,做一个Linux详解系列的文章,以供大家参考。如果有不足的地方,请指出。

一. Linux 基础概念和历史

1. 操作系统和内核的基本概念:

1.1. 操作系统

操作系统 Operating System 简称 OS ,是计算机硬件和应用程序之间的核心软件,它是硬件基础上的第一层软件,是硬件和其它软件沟通的桥梁。它管理计算机的硬件资源,并为应用程序提供一个运行环境。

操作系统会控制其他程序运行,管理系统资源,提供最基本的计算功能,如管理及配置内存、决定系统资源供需的优先次序等,同时还提供一些基本的服务程序。

1.2. 内核

操作系统的核心部分被称为内核(Kernel),它负责管理硬件资源、进程调度、内存管理、文件系统等。内核是操作系统的核心组件,它与硬件直接交互,提供了基本的系统功能。

2. Linux 的起源和发展历史

Linux 是由芬兰计算机科学家 Linus Torvalds 在 1991 年开始开发的。他的目标是创建一个自由开放的类 Unix 操作系统内核,供大家共享和协作开发。Linus 开发的内核最初只包含基本的功能,但随着开发者社区的参与,Linux 内核迅速增长并演变。1992 年,Linux 内核的第一个公开版本(0.12 版)发布。

随着时间的推移,开发者们为 Linux 内核添加了更多功能和驱动程序,使其支持多种硬件平台和设备。这为 Linux 操作系统的发展奠定了基础。Linux 社区的积极参与和开源模式的采用,使得 Linux 能够不断演进,成为一个功能强大且广泛使用的操作系统。

3. GNU 项目和开源软件哲学

GNU 项目(GNU's Not Unix)是一个由理查德·斯托曼(Richard Stallman)发起的计划,旨在创建一个自由的类 Unix 操作系统。该项目的目标是提供一个完全开源的操作系统,使用户能够自由地使用、修改和分发软件。GNU 项目的核心理念是“自由软件”,即用户拥有运行、研究、分享和改进软件的权利。

开源软件哲学强调开放性、透明性和协作。开源软件不仅可以免费使用,还允许用户访问源代码,这使得用户可以理解软件的工作原理并根据需要进行定制和改进。开源社区通过协作开发,使软件得以不断完善和更新。

GNU 项目和 Linux 内核的结合,即 GNU/Linux,成为了现代 Linux 发行版的基础。这种合作模式在开源软件社区中成为范例,也推动了许多其他开源项目的发展。

这些基本概念和历史背景构成了 Linux 操作系统的基础,也反映了开源软件和自由软件的重要性。

4. Linux 对比 Windows

稳定且有效率;
免费(或少许费用);
漏洞少且快速修补;
多任务多用户;
更加安全的用户与文件权限策略;
适合小内核程序的嵌入系统;
相对不耗资源。

二. Linux 发行版

1. 什么是 Linux 发行版(Distribution)

Linux 发行版,通常简称为发行版(Distribution),是一个包含了 Linux 内核以及各种用户空间工具、应用程序和库的完整操作系统。

发行版不仅包括核心的操作系统组件,还包括图形界面、系统工具、软件包管理器等。不同的发行版可以根据用户需求和目标应用领域进行定制,从而适用于各种不同的场景。

Linux 系统内核与 Linux 发行套件的区别

  • Linux 系统内核指的是由 Linus Torvalds 负责维护,提供硬件抽象层、硬盘及文件系统控制及多任务功能的系统核心程序。
  • Linux 发行套件系统是我们常说的 Linux 操作系统,也即是由 Linux 内核与各种常用软件的集合产品。

2. 常见的 Linux 发行版

以下是几个常见的 Linux 发行版,每个发行版都有其特定的特点和适用领域:

Ubuntu: 基于 Debian 开发的发行版,注重易用性和用户友好性,有长期支持(LTS)版本和定期发布版本。

Debian: 是 Linux 社区中最早的发行版之一,以稳定性和开放性而闻名,被许多其他发行版作为基础。

CentOS: 社区企业操作系统,是基于 Red Hat Enterprise Linux (RHEL) 源代码构建的,强调稳定性和服务器使用。

Fedora: 由 Red Hat 主导开发的发行版,强调最新的软件技术和创新,用于开发者和技术爱好者。

openSUSE: 开放式和协作式的发行版,提供稳定版本(Leap)和滚动更新版本(Tumbleweed)。

Arch Linux: 面向高级用户的发行版,以其简单性和自定义性而闻名,采用滚动更新模式。

Linux Mint: 基于 Ubuntu 和 Debian,专注于提供易用且美观的桌面环境。

3. 发行版之间的差异和特点

不同的 Linux 发行版在以下方面可能存在差异和特点:

软件包管理器: 不同发行版使用不同的软件包管理器,如 Debian 系列使用 APT,Red Hat 系列使用 YUM/DNF,Arch 使用 Pacman 等。

版本策略: 一些发行版提供长期支持(LTS)版本,适合服务器和企业应用,而其他发行版追求最新特性和技术。

默认桌面环境: 发行版通常提供不同的桌面环境,如 GNOME、KDE、XFCE 等,以满足不同用户的偏好。

定制程度: 一些发行版如 Arch Linux 提供高度自定义的安装和配置,而其他发行版如 Ubuntu 提供更易用的默认设置。

用户群体: 有些发行版专注于开发者和技术爱好者,而其他发行版更适合桌面用户或服务器管理员。

文化和社区: 每个发行版都有其独特的社区和文化,这可能影响用户体验和支持。

二. Linux 安装与基本使用

1. 安装 Linux 操作系统

安装 Linux 操作系统通常涉及以下步骤:

下载适合你的硬件和需求的 Linux 发行版的安装镜像文件。
制作安装媒体,可以是光盘、USB 驱动器或虚拟机镜像。
启动计算机并从安装媒体引导。
按照安装程序的指导选择语言、时区、分区等选项。
安装引导加载程序(如 GRUB)。
设置用户名、密码等系统配置。
安装完成后,重新启动计算机即可进入安装好的 Linux 系统。

2. 用户界面

Linux 提供命令行界面(CLI)和图形用户界面(GUI)两种主要的用户界面.

命令行界面(CLI): 在终端(Terminal)中输入命令来与系统交互。这种界面通常用于高级用户和管理员,因为它提供了更多的灵活性和控制。
图形用户界面(GUI): 基于窗口、图标和鼠标的界面,类似于 Windows 桌面环境。这种界面更适合新手用户和桌面环境。

3. 文件系统和目录结构

Linux 文件系统是一个层次化的目录结构,类似于树形结构。一些重要的目录包括:

/: 根目录,整个文件系统的起点。
/bin: 存放系统命令。
/home: 用户的主目录。
/etc: 存放系统配置文件。
/var: 存放变化的数据,如日志文件。
/tmp: 临时文件存放目录。

4. 基本的文件和目录操作命令

在 Linux 中,可以使用命令来操作文件和目录,例如:

ls: 列出目录内容。
cd: 切换目录。
mkdir: 创建目录。
rm: 删除文件或目录。
cp: 复制文件或目录。
mv: 移动文件或目录。
cat: 查看文件内容。
nano/vi: 编辑文本文件。

5. 用户和权限管理

Linux 使用权限来控制文件和目录的访问。每个文件和目录都有所有者、所属组和其他用户的权限。常用的权限包括读(r)、写(w)和执行(x)。

chown: 修改文件所有者。
chgrp: 修改文件所属组。
chmod: 修改文件权限。
passwd: 修改用户密码。
useradd/userdel: 添加/删除用户账户。
groupadd/groupdel: 添加/删除用户组。

通过理解这些基本概念和命令,你可以开始在 Linux 系统中进行基本的操作、文件管理和用户管理。这是使用 Linux 的关键基础。

三. 常见命令操作示例

1. 文件和目录操作示例

列出当前目录的内容:

列出当前目录的内容:

ls

切换到家目录:

cd ~

创建一个新的目录:

mkdir my_directory

在当前目录下创建一个新的文本文件:

touch my_file.txt

查看文本文件的内容:

cat my_file.txt

复制一个文件到另一个位置:

cp my_file.txt /path/to/destination/

移动一个文件到另一个位置:

mv my_file.txt /new/path/

删除一个文件:

rm my_file.txt

删除一个目录及其内容:

rm -r my_directory

2. 用户和权限管理示例

创建一个新用户:

sudo useradd newuser

修改用户密码:

sudo passwd newuser

创建一个新用户组:

sudo groupadd newgroup

将用户添加到用户组:

sudo usermod -aG newgroup newuser

更改文件所有者:

sudo chown newuser my_file.txt

更改文件所属组:

sudo chgrp newgroup my_file.txt

更改文件权限,赋予所有者读写权限:

chmod u+rw my_file.txt

更改文件权限,禁止其他人执行:

chmod o-x my_file.txt

注意,上述命令中的 sudo 用于获取管理员权限,这是因为一些操作需要管理员权限。实际使用中,请确保了解你正在执行的操作以及其可能的影响,以避免意外的数据损失或系统问题。

更新:2023-10-15
点击评论
评论区