那么...Linux?

2025-05-24

那么...Linux?

介绍

你知道 Linux 是世界上最流行的操作系统吗?没错!它适用于服务器和超级计算机。数百万台托管我们访问的网站的服务器很可能运行着某个版本的 Linux。在本文中,我们将了解 Linux 是什么、它从何而来,以及开始使用这个激动人心的平台所需的词汇和命令。

什么是 Linux?

Linux 是一个操作系统,就像 Windows 或苹果的 mac OS 一样。操作系统是管理计算机中各种设备和应用程序的软件集合。这些软件负责诸如关闭计算机、启动计算机以及为程序提供与键盘和鼠标等设备交互的界面等操作。

学习使用 Linux 系统是熟悉命令行(与机器通信的最直接方式)的绝佳机会。此外,随着你尝试不同的项目,你将开始学习仓库、包管理、文件权限、用户管理等等。如果你有使用 npm 和 GitHub 的经验,那么包管理和仓库这些概念你可能已经很熟悉了。

Linux 为何如此受欢迎?

Linux 在企业计算、大数据和科学(比如超级计算机!)领域脱颖而出。为什么?

  • Linux 是免费的。它以多种方式免费,您无需付费即可使用 Linux,并且可以自由查看、编辑和分发源代码。当您购买搭载 Windows 或 macOS 的计算机时,创建和维护这些操作系统的成本已包含在价格中。
  • Linux 非常灵活。Linux 广泛应用于各种类型的计算机。例如智能烤面包机和冰箱、其他物联网设备、互联网路由器、安卓智能手机等等,不胜枚举。您现在就可以在笔记本电脑或台式机上安装 Linux,只需进行少量设置即可运行!更多内容见文末。这种灵活性之所以能够实现,是因为 Linux 操作系统的设计理念是将众多不同的工具整合在一起,这些工具可以高效地完成一项任务。您可以自行拼凑一个适合您的设备并针对您的需求进行优化的Linux 版本

Unix 哲学

Linux 是一个“类 Unix”操作系统,这意味着它的大部分功能源自 Unix 操作系统,并且通常遵循 Unix 的设计原则。理想的 Unix 程序应该简洁、模块化且可扩展。Unix 程序能够出色地完成一些任务,并且能够与其他程序良好协作,而无需依赖太多其他程序。该系统的强大源于组成它的程序之间的协作,而非程序本身的强大。

我最喜欢 Linux 的地方在于,系统中的一切都以文件的 形式存在。你在终端中运行的那些命令和程序?文件。桌面上那些可以快速打开常用应用的图标?文件。系统检查应用程序更新的仓库呢?都写在一个文件中!所有这些都可以随意操作。透明!强大!简直太棒了。想象一下,有一天,你可以安装自己的 Linux,里面装着你想要的一切,没有你不需要的,同时还能完全掌控你的系统……很酷,不是吗?

这些原则确实体现了Linux的灵活性。难怪它被如此多的应用程序所采用!

一切都是文件,这里就是它们居住的地方

我想向您展示 Linux 安装中典型的系统树,或者说文件系统层次结构。在我的另一篇文章中了解更多关于树状数据结构的内容!如果您在自己的 Linux 系统中继续学习,请注意,您的目录可能更多或更少。如果您想详细了解这些目录(文件夹),请man hier在 Linux 终端中运行并继续阅读!我个人会随身携带我常用的搜索引擎,以便查找许多我不认识的单词。

/这是根目录(文件夹),树的根(是的,数据结构😄)

/bin包含系统启动所需的二进制文件、可执行程序

/boot包含机器启动时所需的内核和文件

/dev包含设备节点、与机器连接的物理设备一起使用的指令/接口

/etc包含系统范围的配置文件(发音为etsy)。大型软件包(例如gtkpython和 )X11也在此处存储配置文件。

/home包含系统用户的目录(每个用户的下载、图片等)

/lib包含启动机器所需的核心程序共享的库

/lost+found包含系统崩溃期间或由于驱动器错误而丢失的数据

/media包含 USB、CD 和 DVD 等媒体设备的挂载点。

/mnt是临时文件系统的挂载点(例如,您可能用来构建安装的文件系统)

/opt包含程序的附加包。在我的电脑上,Google Chrome 和 Minecraft 启动器将文件保存在这里。

/proc包含与内核和正在运行的进程相关的文件

/tmp包含在执行程序时可能创建的临时文件

/usr包含一个辅助的只读系统树,用于与某些程序共享或挂载到其他 Linux 系统。上述许多目录都包含此处的其他文件。

/var包含大小随时间变化的文件,如日志和备份

如果您经常使用 Linux,有时您会发现需要编辑或写入一些奇怪的目录中的文件。我希望了解这些名称通常的含义能对您有所帮助!

命令行基础知识

我之前说过“与 Linux 机器通信最直接的方式是命令行”,我是认真的。让我们学习一些基本的命令行或终端命令,它们能让你开始熟悉你的系统。如果你目前使用图形用户界面进行开发,你可能会发现从终端执行操作更快捷、更安全(差不多)。

在你和终端之间有一个叫做 shell 的程序。shell 是一个解释文本命令并将其发送到操作系统执行的程序。最常见的 shell 程序是Bash,它包含在大多数 Linux 安装中。对于 macOS 用户,Apple 最近将 shell 程序切换为zsh。macOS 实际上也是一个类 Unix 操作系统。你也可以更改你的 shell!

终端命令的结构

我不会在这篇文章中分享太多命令,篇幅已经够长了,而且学习模式更重要。通常,终端命令遵循非常相似且可预测的结构:

program_name [--optional flags] [optional arguments]

标志可以位于参数之后,通常缩写为一个字母加一个短划线,例如-f。标志是改变程序行为方式的选项。-h或者--help是常用标志,用于告诉程序您想要查看哪些标志可用。

参数通常是文件,但也可以是字符串和数字。

您可以从系统中的任意目录调用程序,也可以使用系统中任意目录中的文件作为参数。之所以可以这样做,是因为文件命名可以使用相对路径或绝对路径。相对路径是相对于当前目录的,您可以使用 来引用当前目录.绝对路径从系统根目录开始/,逐个目录命名,直到找到所需的文件。

导航

  • pwd打印您当前所在的目录(打印工作目录)

  • cd将目录更改为您指定的参数。如果您未提供任何参数,则默认情况下将带您到您的用户目录。您可以在路径中使用~..和来引用该目录,..前者代表当前目录,后者代表父目录,它们也是有效的参数。

  • ls列出您指定参数目录中的文件,默认情况下为.。该-a标志对于查看隐藏文件非常有用。例如,您可以通过以 开头的文件名称来隐藏文件..gitignore以减少混乱。

ls -a ~/Documents

文件操作

  • mv将文件或目录移动到指定的目录。
mv fun-letter.text ~/Documents/letters/

您还可以使用mv重命名文件和目录:

mv fun-letter.txt hilarious-letter.txt

就像用新名字将它移到自己身上一样!

  • cp在指定目录中复制文件。使用-r标志复制目录,并且可以使用 重命名文件和目录,cp就像我们使用 操作一样mv

  • mkdir创建新目录,其名称作为参数。您还可以使用该标志在尚不存在的目录中创建目录-p

mkdir -p code/web-stuff/html notes
  • touch创建新文件,其名称就是您的参数。

您很快就会发现自己想要做更复杂的事情,因此请阅读有关这些命令的更多信息并保留一份备忘单😉。

Linux 的日常使用

我不会说 2020 年会成为 Linux 桌面时代的元年,但我要说的是,现在有很多 Linux 发行版开箱即用,安装方法也很简单。如果您被 Shell 的强大功能所吸引,担心使用其他操作系统时会泄露隐私,或者您只是喜欢进行一些黑客攻击,那么 Linux 或许就是您的理想之选。作为开发者,Linux 也是一个很棒的平台,因为它在设计时就考虑到了其他开发者的需求。像 Ubuntu、Linux Mint 和 Fedora 这样的 Linux 发行版可以让您快速上手。这些“发行版”都拥有庞大的社区,社区里有很多乐于助人的人。请务必记住备份所有重要文件!

感谢阅读!欢迎大家评论和反馈 :)

封面照片由Pixabay拍摄,来自Pexels

文章来源:https://dev.to/emtes/so-linux-3i9k
PREV
如何让 ChatGPT 调用应用中的函数
NEXT
如何在 2025 年成为 AI 开发者