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
    10
    ·
    1 year 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
        1 year 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
          ·
          1 year 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
          ·
          1 year 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/)

  • ancap shark@lemmy.today
    link
    fedilink
    arrow-up
    10
    arrow-down
    1
    ·
    edit-2
    1 year 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

  • Samueru@lemmy.ml
    link
    fedilink
    arrow-up
    9
    ·
    edit-2
    1 year 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.

  • Max_Power@feddit.de
    link
    fedilink
    English
    arrow-up
    10
    arrow-down
    2
    ·
    1 year 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
      ·
      1 year 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
    ·
    1 year 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
      ·
      1 year 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
        ·
        1 year 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
      1 year 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
      6
      ·
      1 year 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.

  • Admax@lemmy.world
    link
    fedilink
    arrow-up
    0
    ·
    1 year ago

    Damn that’s some great work ! When I started linux I wish I had found such ressources, I was really curious what each of these directories were for.

    Would you mind if your material was reused (with credit) for education purposes ?

    • callcc@lemmy.worldOP
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      I’d be more than happy if this was used. Do whatever you want with it as long as you abide by the CC BY-SA-4.0 license. This means you can share freely and modify as long as you keep the authorship information and share with same license.