当前位置: 首页 > article >正文

Linux基础入门

介绍

Linux 是一系列基于 Linux 内核的自由开源操作系统。基于 Linux 的操作系统被称为 Linux 发行版distros。例如 Debian、Ubuntu、Fedora、CentOS、Gentoo、Arch Linux 等等。

Linux 内核自 1991 年以来一直处于活跃开发中,并且被证明非常灵活和适应性强。你可以在世界各地的各种环境中找到运行 Linux 的计算机,从 Web 服务器到手机。如今,90% 的云基础设施和 74% 的全球智能手机都由 Linux 提供支持。

然而,初学者可能会发现 Linux 有些难以接近,因为 Linux 文件系统的结构与 Windows 或 MacOS 上的不同。此外,基于 Linux 的操作系统在很大程度上依赖于使用命令行界面,而大多数个人计算机依赖于图形界面。

本指南旨在介绍重要的命令行概念和技能,并使初学者能够更多地了解 Linux。

先决条件

要按照本指南进行操作,您需要访问运行 Linux 操作系统的计算机。这可以是您通过 SSH 连接的虚拟专用服务器,也可以是您的本地计算机。请注意,本教程是在运行 Ubuntu 20.04 的 Linux 服务器上验证的,但给出的示例应该适用于运行任何 Linux 发行版的任何版本的计算机。

如果您计划使用远程服务器来按照本指南操作,我们建议您首先完成我们的初始服务器设置指南。这样做将为您设置一个安全的服务器环境,包括一个具有 sudo 权限的非 root 用户和使用 UFW 配置的防火墙,您可以使用它来提升您的 Linux 技能。

终端

术语 “终端”、“shell” 和 “命令行界面” 经常被互换使用,但它们之间有细微的区别:

  • 终端 是一个输入和输出环境,它呈现一个仅运行 shell 的文本窗口。
  • shell 是一个将计算机的操作系统暴露给用户或程序的程序。在 Linux 系统中,终端中呈现的 shell 是一个命令行解释器。
  • 命令行界面 是一个用户界面(由命令行解释器程序管理),它处理对计算机程序的命令并输出结果。

当有人在 Linux 的上下文中提到这三个术语中的一个时,他们通常指的是一个终端环境,您可以在其中运行命令并将结果打印到终端上,就像这样:

!终端窗口示例

成为 Linux 专家需要您熟练使用终端。任何管理任务,包括文件操作、软件包安装和用户管理,都可以通过终端完成。终端是交互式的:您指定要运行的命令,终端输出这些命令的结果。要执行任何命令,您只需将其键入提示符并按 ENTER 键。

当访问云服务器时,您通常会通过终端 shell 进行操作。尽管运行 Linux 的个人计算机通常配备大多数计算机用户熟悉的图形桌面环境,但通过在终端中输入命令执行某些任务通常更有效或更实用。

文件系统层次结构标准

几乎所有的 Linux 发行版都符合一个名为文件系统层次结构标准(FHS)的通用标准。FHS 定义了一组目录,每个目录都有其特定的功能。

正斜杠(/)用于表示 FHS 定义的文件系统层次结构中的根目录。

当用户登录到 shell 时,他们会被带到他们自己的用户目录,存储在 /home/ 中。这被称为用户的 主目录。FHS 将 /home/ 定义为包含常规用户主目录的目录。

root 用户有其自己的主目录,由 FHS 指定:/root/。请注意,/ 被称为 “根目录”,它与 root/ 不同,后者存储在 / 中。

由于 FHS 是 Linux 机器上的默认文件系统布局,并且其中的每个目录都包含用于特定目的的特定目录,因此它简化了按其功能组织文件的过程。

导航

Linux 文件系统基于目录树。这意味着您可以在其他目录中创建目录(在其他操作系统中与 文件夹 功能上相同),并且文件可以存在于任何目录中。

要查看您当前活动的目录,可以运行 pwd 命令,它代表 “打印工作目录”:

pwd

pwd 打印当前目录的路径。输出将类似于:

/home/sammy

此示例输出表示当前活动目录是 sammy,它位于 home/ 目录中,位于根目录 / 中。如前所述,由于 sammy/ 目录存储在 home/ 目录中,因此 sammy/ 表示 sammy 用户的主目录。

要查看当前工作目录中存在的文件和目录的列表,请运行 ls 命令:

ls

这将返回当前工作目录中存在的任何文件或目录的名称列表。但是,如果您在新计算机上按照本指南操作,此命令可能不会返回任何输出。

您可以使用 mkdir 命令在当前工作目录中创建一个或多个新目录,该命令代表 “make directory”。例如,要创建两个名为 testdir1testdir2 的新目录,您可以运行以下命令:

mkdir testdir1 testdir2

现在当您运行 ls 命令时,这些目录将出现在输出中:

ls
testdir1
testdir2

要进入这些新目录中的一个,运行 cd 命令(代表 “change directory”)并指定目录的名称:

cd testdir1

这将把您的新当前工作目录更改为您指定的目录。您可以通过 pwd 查看:

pwd
/home/sammy/testdir1

但是,由于 testdir1testdir2 都存储在 sammy 用户的主目录中,它们位于目录树的不同分支中。cd 命令会在当前工作目录中查找目录,因此这意味着您无法直接进入您之前创建的 testdir2 目录,而 testdir1 是您的工作目录:

cd testdir2
bash: cd: testdir2: No such file or directory

但是,无论您当前的工作目录如何,您都可以进入任何现有目录,只要指定您要导航到的目录的完整路径:

cd /home/sammy/testdir2

此外,您可以指定 .. 来切换到您路径中的上一级目录。要返回到原始目录:

cd ..

如果您对导航树中的位置感到困惑,记住您始终可以运行 pwd 命令来查找您当前的目录。许多现代 shell(包括 Bash,许多 Linux 发行版的默认 shell)也会指示您当前的目录,就像本节中的示例命令一样。

文件操作

您不能使用 cd 命令与文件进行交互;cd 代表 “change directory”,只允许您浏览目录。但是,您可以创建、编辑和查看文件的内容。

使用 touch 命令是创建文件的一种方式。要创建一个名为 file.txt 的新文件:

touch file.txt

这将在当前工作目录中创建一个名为 file.txt 的空文件。该文件的内容为空。

如果以后决定重命名 file.txt,可以使用 mv 命令:

mv file.txt newfile.txt

mv 代表 “move”,它可以将文件或目录从一个位置移动到另一个位置。通过指定原始文件 file.txt,您可以将其“移动”到当前工作目录中的新位置,从而重命名它。

还可以使用 cp 命令将文件复制到新位置。如果想要恢复 file.txt 但保留 newfile.txt,可以像这样复制 newfile.txt 并命名为 file.txt

cp newfile.txt file.txt

您可能已经猜到,cp 是 “copy” 的缩写。通过将 newfile.txt 复制到名为 file.txt 的新文件中,您已经在新文件中复制了原始文件并更改了名称。

然而,如果文件不包含任何内容,它们就没有太多用处。要编辑文件,需要一个文件编辑器。

有许多文件编辑器可供选择,都是由专业人士为日常使用而创建的。这些编辑器包括 vimemacsnanopico

对于初学者来说,nano 是一个合适的选择:它相对用户友好,不会用神秘的选项或命令来使您感到不知所措。

要使用 nanofile.txt 添加文本,运行以下命令:

nano file.txt

这将打开一个空间,您可以立即开始输入以编辑 file.txt。添加任何您喜欢的文本,或者您可以复制本示例中的文本:



## 学习的文化

要在 Linux 系统中通过终端窗口自如地进行导航,尤其是对于完全陌生的人来说,需要时间、专注和一种好奇的心态。

当你对如何完成某项任务有疑问时,有几种学习途径可供选择。像 Google 和 DuckDuckGo 这样的搜索引擎是宝贵的资源,还有像 Stack Exchange 或 DigitalOcean 的社区问答等问答网站。如果你有问题,很可能许多其他人已经问过,并得到了答案。

如果你的问题涉及特定的 Linux 命令,手册页面为几乎每个命令提供了详细而富有见地的文档。要查看任何命令的手册页,将命令的名称作为参数传递给 `man` 命令:

```command
man command

例如,man rm 显示了 rm 的用途、如何使用它、可用的选项、使用示例以及更多有用的信息。

结论

本指南作为使用 Linux 环境的简介。然而,完全理解 Linux 及其所有组件远远超出了单个教程的范围。例如,本教程没有提及权限,这是 Linux 系统管理的基本概念之一。

我们鼓励你查看我们的所有入门级 Linux 内容,这些内容可以在我们的Linux Basics标签页面上找到。


http://www.kler.cn/a/232314.html

相关文章:

  • [JAVA]有关MyBatis环境配置介绍
  • 二分搜索的三种方法
  • 计算机视觉 ---常见图像文件格式及其特点
  • String类型
  • JSON.stringify的应用说明
  • 大模型在蓝鲸运维体系应用——蓝鲸运维开发智能助手
  • 相机图像质量研究(9)常见问题总结:光学结构对成像的影响--工厂镜头组装
  • Ubuntu搭建计算集群
  • Redis篇之分布式锁
  • STM32——LCD(1)认识
  • ResizeObserver的使用
  • 网络编程-Socket套接字
  • Netty源码系列 之 HashedWheelTimer源码
  • 《幻兽帕鲁》攻略:0基础入门及游戏基础操作 幻兽帕鲁基础设施 幻兽帕鲁基础攻击力 Mac苹果电脑玩幻兽帕鲁 幻兽帕鲁加班加点
  • Kubernetes基础(十五)-k8s网络通信
  • ubuntu22.04@laptop OpenCV Get Started: 001_reading_displaying_write_image
  • 如何使用宝塔面板搭建MySQL 5.5数据库并实现公网远程连接
  • C++ pair 的使用
  • Elasticsearch:通过 ingest pipeline 对大型文档进行分块
  • MySQL篇----第十五篇
  • C语言:亲密数对
  • 免费生成ios证书的方法(无需mac电脑)
  • Java stream 流的基本使用
  • Cilium CNI深度指南
  • Elasticsearch(四)
  • Kylin下Qt找不到打印机解决方案