Hey, I’ve recently designed a Poster about the FHS since I often forget where I should place or find things. Do you have any feedback how to make it better?

I updated the poster: https://whimsical.com/fhs-L6iL5t8kBtCFzAQywZyP4X use the link to see online.

Dark mode

Old version

  • cerulean_blue@lemmy.ml
    link
    fedilink
    arrow-up
    12
    ·
    10 months ago

    Super useful, thanks. Actually made a lot of things click in my head about how Linux works.

    When did /home get deprecated? Is /usr/local the replacement?

    Sorry for the n00b question (I’m not a noob, but I have been off Linux for a few years), figured the answer may be useful to other users too

      • dino@discuss.tchncs.de
        link
        fedilink
        English
        arrow-up
        5
        ·
        edit-2
        10 months ago

        then the legend should be fixed its confusing, as is the whole idea of FHS is outdated and a chore for new users to get into (i still don’t fully understand it)

        • difference between /media and /mnt
        • wtf is /run? some glorified /temp?
        • /usr/sbin “non vital system binaries” … aha ok, whatever don’t tell me you understand the difference between 6 (SIX !) differen bin/sbin folders
        • could continue forever…
        • callcc@lemmy.worldOP
          link
          fedilink
          arrow-up
          4
          ·
          10 months ago

          The legend is a bit broken. Will fix it maybe.

          As for the rest, yes, the FHS can be confusing. It’s from a time where mostly professional admins would deal with it and requirements were pretty different from today’s end-user systems. If you want to understand more, I urge you to read the spec. It’s highly readable! https://refspecs.linuxfoundation.org/FHS_3.0/fhs.html

        • AMDIsOurLord@lemmy.ml
          link
          fedilink
          arrow-up
          1
          ·
          10 months ago

          /mnt is for more permanent stuff. /run is for shit like a USB drive some user has connected. It’s the place that most distro automount your attached storage by default (/run/$USER/$DEVICE/)

  • Samueru@lemmy.ml
    link
    fedilink
    arrow-up
    12
    ·
    edit-2
    10 months ago

    We need something like this for home, I hate that programs like steam and firefox place themselves directly into home instead of ~/.config and ~/.llocal.

    I even move my personal themes to /usr/share/themes because not everything works with ~/.local/share/themes and needs a ~/themes directory instead.

  • ancap shark@lemmy.today
    link
    fedilink
    arrow-up
    10
    arrow-down
    1
    ·
    edit-2
    10 months ago

    This is a very useful, very well done chart, congratulations.

    But what a mess is FHS. Easily the worst thing of linux design for me

    • callcc@lemmy.worldOP
      link
      fedilink
      arrow-up
      5
      ·
      10 months ago

      I guess the reason it’s not in FHS is that FHS is concerned about system wide things whereas /home is the opposite. It’s the user’s realm.

      There is XDG for /home/$user though.

  • Max_Power@feddit.de
    link
    fedilink
    English
    arrow-up
    10
    arrow-down
    2
    ·
    10 months ago

    Great but what I’m missing is the information that “usr” does not stand for “user”, like many people think or even say. If it would the name could actually be “user” and not “usr”.

    The chart actually does not say what exactly it stands for. It’s “user resources” AFAIK.

    It’s worth clearing this up in my opinion.

    • Danny M@lemmy.escapebigtech.info
      link
      fedilink
      arrow-up
      4
      ·
      10 months ago

      well nix still uses the same structure, the only difference is that files are symlinked to files in subfolders of the /nix/store folder.

      For example you may find that /etc/hosts is just a symlink to /nix/store/69420aaabbbcccdddfffggghhhiii420-hosts

  • dan@upvote.au
    link
    fedilink
    arrow-up
    4
    ·
    10 months ago

    I’ve never seen /etc/opt used. Usually if an app is in /opt, the entire app is there, including its config which is frequently at /opt/appname/etc/.

    • seaQueue@lemmy.world
      link
      fedilink
      arrow-up
      1
      ·
      10 months ago

      /opt is kinda legacy at this point. That used to be the location where you’d install software manually in the past but I haven’t seen it used for some time, it was more common in the 00’s.

      • dan@upvote.au
        link
        fedilink
        arrow-up
        1
        ·
        10 months ago

        I still put all my standalone apps in there (meaning apps that are often statically compiled and expect the executable, logs, and config to be in the same directory), as well as apps that have their own docker-compose.yml file. Should I be putting them somewhere else? I know /srv exists but I’ve never used it and I don’t think Debian creates it by default.

    • DefederateLemmyMl@feddit.nl
      link
      fedilink
      arrow-up
      5
      ·
      edit-2
      10 months ago

      Binaries in the former are installed by the OS/package manager, binaries in the latter are installed manually by the user, for example by compiling from source and running make install

    • TheEntity@kbin.social
      link
      fedilink
      arrow-up
      7
      ·
      10 months ago

      “Local” in this context means local to this whole machine. From the perspective of a single user, it’s system-wide. But then from the perspective of a sysadmin managing dozens of such systems, it’s local.