在您的主要桌面计算机上安装和使用Linux将帮助您快速熟悉所需的工具和方法。这是我们关于迁移到Linux的系列文章中的第二篇。如果你错过了第一个,你可以在这里找到它。如前所述,您应该迁移到Linux的原因有多种。您可以在工作中为Linux开发和使用代码,或者您可能只是想尝试一些新的东西。无论出于何种原因,在您的主要台式计算机上安装Linux将帮助您快速熟悉所需的工具和方法。在本文中,我将介绍Linux文件、文件系统和磁盘。我的C:\在哪里?如果你是Mac用户,Linux应该对你来说非常熟悉。Mac使用的文件、文件系统和磁盘与Linux非常接近。另一方面,如果您的经验主要是Windows,那么在Linux下访问磁盘可能看起来有点混乱。通常,Windows会为每个磁盘分配一个驱动器号(如C:\)。Linux不是这种情况。而在您的Linux系统上,它是文件和目录的单一层次结构。让我们看一个例子。假设你的电脑有一个主硬盘,一个有BooksandVideos目录的CD-ROM,一个有Transfer目录的U盘,在你的WIndows中,你应该看到:C:\[HardDisk]├System├System32├ProgramFiles├ProgramFiles(x86)└D:\[CD-ROM]├Books└VideosE:\[UDisk]└Transfer而一个典型的Linux系统是这样的:/(最顶层目录,称为rootdirectory)[harddisk]├bin├etc├lib├sbin├usr├└media└├cdrom[CD-ROM]│├Books│└Videos└Kingme_USB[U盘]└Transfer如果你使用图形环境,通常,Linux中的文件管理器会显示CD-ROM和USB便携式驱动器,并带有看起来像驱动器的图标,所以你根本不需要知道介质所在的目录。文件系统Linux将这些东西称为文件系统。文件系统是一组结构,用于跟踪介质(例如硬盘)上的所有文件和目录。如果没有用于存储数据的文件系统,我们所有的信息都会一团糟,我们也不知道哪个块属于哪个文件。您可能听说过ext4、XFS和Btrfs等名称,它们都是Linux文件系统。每个保存文件和目录的介质上都有一个文件系统。不同的媒体类型可能会使用为其优化的特定文件系统。例如,CD-ROM使用ISO9660或UDF文件系统类型。USB便携式驱动器通常使用FAT32,以便可以轻松地与其他计算机系统共享。Windows也使用文件系统。但是,我们不会过多地讨论它。例如,当你插入一张CD-ROM时,Windows会读取ISO9660文件系统结构,为其分配一个盘符,然后显示该盘符下的文件和目录(如D:\)。当然,如果你深入了解细节,Windows在技术上会为文件系统分配一个驱动器号,而不是整个驱动器。使用相同的示例,Linux也读取ISO9660文件系统结构,但不是分配驱动器号,而是将文件系统附加到目录(此过程称为挂载)。然后Linux将显示CD-ROM上挂载目录下的文件和目录(例如,/media/<您的用户名>/cdrom)。所以要回答“我的C:\在哪里?”这个问题在Linux上,答案是没有C:\,它们的工作方式不同。文件Windows在其文件系统中存储文件和目录(也称为文件夹)。但是,Linux还允许您将其他内容放在文件系统上。这些其他类型的东西是文件系统的原生对象,它们实际上与普通文件不同。除了普通的文件和目录,Linux还允许你创建和使用硬链接hardlink、symboliclink符号链接、namedpipe命名管道、devicenode设备节点和socket套接字。在这里,我们不讨论所有类型的文件系统对象,但这里有一些常用的需要了解的。硬链接用于为文件创建一个或多个别名。每个指向磁盘上相同内容的别名的名称都不同。如果您编辑一个文件名下的文件,更改也会出现在其他文件名上。例如,您有一个MyResume_2017.doc,它还有一个名为JaneDoeResume.doc的硬链接。(请注意,硬链接是使用ln命令从命令行创建的)。您可以找到并编辑MyResume_2017.doc,然后再编辑JaneDoeResume.doc,您会发现它一直在跟踪——它包含您的所有更新。符号链接有点像Windows中的快捷方式。文件系统条目包含到另一个文件或目录的路径。在许多方面,它们的工作方式类似于硬链接,因为它们创建了另一个文件的别名。但是,符号链接也可以像文件一样为目录创建别名,符号链接可以指向不同媒体上的不同文件系统,而硬链接则不能做到这一点。(请注意,您可以使用带-s选项的ln命令来创建符号链接。)权限Windows和Linux之间的另一个重大差异与文件系统对象(文件、目录等)的权限有关。Windows对文件和目录实施了一组非常复杂的权限。例如,用户和用户组可以具有读取、写入、运行、修改等权限。用户和用户组可以授予对目录中除例外之外的所有内容的访问权限,或禁止访问目录中除例外之外的所有内容的权限。但是,大多数使用Windows的人并不使用特定权限;所以他们惊讶地发现在Linux上强制执行了一组默认权限!Linux可以通过使用SELinux或AppArmor强制执行一组更复杂的权限。但是,大多数Linux安装仅使用内置的默认权限。在默认权限中,文件系统中的每个条目都为其文件所有者、文件组和其他所有人设置了一组权限。这些权限允许他们:读取、写入和运行。赋予它们的权限是分层继承的。首先,它检查(登录)用户是否是文件的所有者和权限。如果不是,则检查此用户是否与该文件在同一组中以及该组具有的权限。如果没有,则它会检查其他人拥有的权限。其他人的权限在这里设置。但是,大多数情况下会使用此处设置的三组权限中的一组。如果使用命令行,输入ls-l,可以看到权限如下:rwxrw-r--1standndgrp25Oct33rd25:01rolldice.sh第一个字母,rwxrw-r--,权限是显示。在这个例子中,所有者(stan)可以读取、写入和运行文件(前三个字母,rwx);dndgrp组的成员可以读写文件,但不能运行它(第二组,rw-);其他人只能读取此文件(最后三个字母,r--)。(注意,要在Windows中生成一个可运行的脚本,你生成的文件必须有一个特定的扩展名,比如.bat,而在Linux中,扩展名在操作系统中没有意义。相反,你需要为这个文件设置权限运行)如果您收到“权限被拒绝”错误,您可能试图运行需要管理员权限的程序或命令,或者您可能试图访问您的帐户无权访问的文件。如果您尝试执行需要管理员权限的操作,则必须切换到名为root的用户帐户。或者通过在命令行中使用名为sudo的帮助程序。它暂时允许您以root身份运行。当然,sudo工具也会让你输入密码,以确保你真的有权限。硬盘文件系统Windows主要使用称为NTFS的硬盘文件系统。在Linux上,您还可以选择要使用的硬盘文件系统。不同的文件系统类型表现出不同的特征和不同的性能特征。目前主流的原生Linux文件系统是Ext4。不过,在安装Linux时,你也有丰富的文件系统类型可供选择,比如Ext3(Ext4的前身)、XFS、Btrfs、UBIFS(针对嵌入式系统)等等。如果您不确定使用哪一个,Ext4是一个不错的选择。