当用户共享一台计算机且不知道他们的文件在系统中的存储位置或方式时,UNIX 的主文件夹概念非常棒,但当一台典型的计算机仅由一个人使用时,它真的有意义吗?
今年早些时候我换用了 Mac,我发现这是最难理解的范例,因为我使用 UNIX 作为我的主要桌面系统。(我已经使用 Linux 和 BSD 作为服务器和“游乐场”好几年了,所以我意识到服务器使用的好处)。
作为超级用户,我使用多个外部驱动器、记忆棒、备份设备等。事实上,我的大部分数据都在那里,而不是在主目录中。
我定期重新安装我的系统,所以我不希望我的操作系统和数据驻留在同一个分区上。
即使我将主目录放在单独的分区上,它也不够大,无法存储我想要的所有数据。
主目录也被已经占用大量文件夹的系统和杂项应用程序使用。
诸如此类。总之,我感觉自己是在与系统作对,而不是在与系统合作。我是不是因为多年的 DOS/Windows 而受了伤,无法“理解它”,还是说这种结构根本不适合这种用途?
如何让旧的主文件夹概念发挥作用和考虑到当今计算机的使用方式,您不会反对您,而是会支持您。我是否注意到了提示、技巧和隐藏的好处?
编辑:澄清
首先,感谢您的详尽回复。我意识到我在问题中使用“超级用户”一词是错误的,因为我的意思不是“root”的意思。我没有以 root 身份运行我的机器。
我所说的“超级用户”是指与普通用户相反,我会自己做备份,经常重新安装我的机器,双重启动,开发和运行源代码控制软件,将数据分散到多个驱动器上以实现冗余等等。普通用户将文件放在系统建议的位置,很少甚至从不重新安装,保留所有配置的默认设置等等。两者的区别就是我所说的“超级用户”。抱歉说得不清楚。
我也很清楚可以将驱动器和分区挂载到任何我想要的地方。我已经这样做了,但我问自己——我从这些乱七八糟的事情中得到了什么?我保留了我的主目录,而不是重新安装,没错——但主目录中有一些我可能想删除的东西和我想保留的东西。
从 Windows 开始,我开始讨厌“我的文档”的混乱,它总是让人觉得是从 UNIX 复制“主目录”机制的笨拙尝试。由于我现在使用的是 UNIX 计算机,因此我很惊讶地发现,似乎是机制本身很笨拙。OS X 中的主目录就像 Windows 中的“我的文档”一样令人讨厌。
这不是问题,因为我倾向于完全忽略主目录。但我是不是忽略了什么?
答案1
符号链接。或者 cd 到特定位置。随便什么都可以。
Windows 使用相同的主目录概念,不管它的价值如何。您的用户配置文件就存放在这里 - 所有用户的自定义、配置、书签文件等等。Windows 将其放在 C:\Documents and Settings\%username% 中,Linux 将其放在 /home/$username 中,OSX 使用(什么?/Users/$username?我不确定)。
但主目录实际上并不需要用于存放用户的数据。它用于存放每个用户的配置文件。您的数据可以存放在任何地方。如果您是单个用户,您甚至可以按照自己喜欢的方式将外部驱动器直接安装在 $HOME 目录下。
就我个人而言,我使用符号链接,并将所有面向数据的分区挂载在 /media 下。我有一个 /personal 文件夹,它将符号链接直接组织到 /media 树中,用于存放最常用的数据,并将这些符号链接(或它们的缩短版本)复制到我的 $HOME 目录下。
作为超级用户,您可以使用任何您喜欢的形式。
答案2
“计算机桌面”作为单用户体验的概念显然已经深深地扎根于您的心中。将所有数据“置于”主目录之外并没有什么不妥 - 事实上,这样做完全没问题。我认为您需要做的是决定您提供的主目录中应该包含什么,不应该包含什么。
没有什么可以阻止您创建位于 root 主目录内的空存根目录,然后在那里安装外部数据。 也没有什么可以阻止您保留显示在 /Volumes 下的现有 OS X 安装系统。 您所说的是您正在为自己和如何管理系统而苦苦挣扎。
如果您想成为真正的纯粹主义者,您将拥有一个用于日常活动的普通帐户,并保留 root 帐户作为其本意 - 管理系统的帐户,而不是进行 Web 浏览的帐户。这个想法有助于划定什么是“您的”,什么不是“您的”,并且它使处理您的数据(以及谁拥有它)更加清晰。但是由于想要成为 root,这似乎对您来说也失去了意义。
当你每天都要管理服务器时,一直以 root 身份运行就成了习惯。我知道这一点,因为我就是这么做的——这是工作的一部分。但是当我回到家并启动我的 Linux 安装时,我会使用我的“常规”帐户,而不必以 root 身份运行。一点点自律会帮助你克服这个问题,相信我,你会走得更远。
处理数据存储和分区的后续内容:
这不是 Windows,也不是 DOS。这是最纯粹的力量。您可以在系统的任何位置合并不同的驱动器和卷。任何地方的目录实际上都可以是单独的驱动器,而这种统一的文件系统树视图让您有点困惑。您有点像一个一生都被锁链束缚的人,一旦枷锁被取下,您就不太确定从哪里开始,所以您觉得您应该继续使用您习惯使用的方法。好吧...是时候进行一些横向思考了。:)
系统实际上是属于你的。没有人站在你身后监视你做什么和输入什么,也没有无数程序员在机器中留下幽灵代码来阻止你做某事。 从真正意义上来说,你对硬件拥有绝对和最终的控制权。而绝对的控制权可以带来彻底的解放,也可以带来彻底的腐败。 之前提到不要使用 root 权限执行日常任务 -许多有充分的理由。
数据管理只是系统的一个方面,该系统经过数十年的发展,或多或少由数百人运用他们的洞察力而有机地发展起来。数据管理的一部分是理解可能有其他人住在这里因此,您应该对“我的和你的”有一些基本规则。这就是主目录的作用所在。/home 的全部目的是提供其绰号的含义 -一个用户居住的家、一个“存东西”和“做事情”的地方,一个用户喜好的地方。
Root 需要有一个自己的家,因为,管理员做什么不关别人的事,他们有自己的程序和数据要处理。root 需要自己的主目录这一概念同样适用,因为虽然 root 是一个特殊帐户,但它仍然只是一个帐户,一个拥有特殊超级权力的帐户。
但是还有其他理由不总是使用 root 权限。以 root 权限运行可能存在潜在漏洞的软件,会使您的系统受到与 root 权限相同的攻击 - 即完全控制。因此,特权分离在 Unix 领域是一件非常重要的事情,并且有充分的理由。
如果其他方法都失败了,而且你在尝试全面消化这些概念时遇到了一些问题,你可能需要阅读一篇古老的(有些过时的)文章,名为最开始是命令行,可从作者处免费下载。虽然这本书很老了,但今天仍然具有现实意义,读完这本书,你会开始明白自己将要面对什么。
答案3
作为超级用户,我使用多个外部驱动器、记忆棒、备份设备等。事实上,我的大部分数据都在那里,而不是在主目录中。
嗯,这只是个人选择的一种方式。
我定期重新安装我的系统,所以我不希望我的操作系统和数据驻留在同一个分区上。
您仍然像 Windows 一样思考。在 Linux 中,您可以将任何目录设置为单独的分区。事实上,很多人在安装 Linux 时会创建两个单独的分区,将它们挂载到 / 和 /home。
即使我将主目录放在单独的分区上,它也不够大,无法存储我想要的所有数据。
如果不够大,那就使用外部驱动器。主目录应该代表个人数据在当前机器上,其他任何设备上均无法使用。
主目录也被已经占用大量文件夹的系统和杂项应用程序使用。
嗯,不幸的是,这主要是 Unix 传统的结果。您会注意到,Windows 中的“我的文档”文件夹使用方式相同。(尽管 Windows 在 AppData 中有一个非常好的替代方案。)但是,看到这些文件夹可能是因为您的 Windows 背景让您想查看隐藏文件夹。以点 (.) 开头的目录在 Linux 下是隐藏的——主要是出于这样的原因,而不是为了参与 Windows 让您经历的指导。
答案4
如果你cat /etc/passwd
发现你的系统上有很多其他用户,那么他们就不是人类。=)
此外,主目录的理念是它为你(以及你运行的程序)提供了一个可以做任何你想做的事情的地方。这意味着如果你的 Web 浏览器中存在安全漏洞,它只能写入 $HOME,而不能写入 /sbin 等危险的地方。