个人 usr 目录

个人 usr 目录

我最近开始将所有点文件放入 VCS 中,为了完整的组织,我想到创建一个个人“ ”文件夹,就像主文件夹中的一个文件夹一样,每当在 PATH 中查找命令时,该文件夹就会与该目录usr“合并”usr甚至手册页。现在回答问题:

  1. 有什么理由我不应该正在做这个?有没有我没有看到的缺点,或者更好的选择?
  2. 如果没有任何缺点,如何实现这一目标?

我已经知道了这个问题,但据我了解,最上面的答案建议了一个实际上将文件放入 中的选项/usr,虽然我更喜欢类似于将文件夹添加到 中的方法PATH,但它实际上并不移动任何文件,只是在不同的位置查找它们。

我还研究了overlayfs,但它看起来像是在启动时运行的。虽然它可能会更快,但我更希望在登录时合并我的文件。

答案1

做一次:

cd
mkdir -p usr/bin usr/man

添加到您的~/.profile或其他 shell 初始化文件中:

PATH="$PATH:~/usr/bin"
MANPATH="$MANPATH:~/usr/man"

...然后将内容放入这些目录中。

笔记:

  • PATH 是从左到右搜索的。如果您开发了一个名为 的程序robot,那么顺序可能并不重要。如果您开发了一个名为 的程序cat,并且您想运行它而不是/bin/cat,那么您需要将in放在~/usr/bin前面;例如,通过/bin$PATH

    PATH="~/usr/bin:$PATH"
    

    请注意,这可能会带来安全风险。如果您这样做,并且攻击者可以获得对您的主目录的写入权限,他就可以在您的目录中留下特洛伊木马~/usr/bin并接管您的帐户。

  • 如果您想变得更奇特,您可以查看 的当前值$PATH 并将其放在~/usr/bin中间的某个位置。这可能更难维护。
  • 虽然上述内容没有什么严重的错误,但您可能更愿意使用~/bin而不是~/usr/bin.事实上,根据您拥有的系统,您可能会发现~/bin(aka $HOME/bin) 已经$PATH默认存在。

答案2

这就是整个/usr/local结构的用途。/usr旨在由系统包管理器管理,但/usr/local系统管理员可以添加自定义内容的地方除外。

甚至很可能/usr/local/bin已经存在了PATH

相关内容