Beehaw
  • Communities
  • Create Post
  • search
    Search
  • Login
  • Sign Up
sag ( sag@lemm.ee )  to Linux@lemmy.ml ·
edit-2
2 years ago

Linux Directory Structure - FHS

lemm.ee

message-square
87
link
fedilink
  • cross-posted to:
  • coolguides@lemmy.ca
719

Linux Directory Structure - FHS

lemm.ee

sag ( sag@lemm.ee )  to Linux@lemmy.ml ·
edit-2
2 years ago
message-square
87
link
fedilink
  • cross-posted to:
  • coolguides@lemmy.ca
alert-triangle
You must log in or # to comment.
  • FQQD ( FQQD@lemmy.ohaa.xyz ) 
    link
    fedilink
    English
    arrow-up
    156
    ·
    2 years ago

    i always thought /usr stood for “user”. Please tell me I’m not the only one

    • Kuunha ( Kuunha@lemmy.eco.br ) 
      link
      fedilink
      arrow-up
      50
      ·
      2 years ago

      Ken Thompson and Dennis Ritchie created Unix on a PDP-7 in 1969. Well around 1971 they upgraded to a PDP-11 with a pair of RK05 disk packs (1.5 megabytes each) for storage.

      When the operating system grew too big to fit on the first RK05 disk pack (their root filesystem) they let it leak into the second one, which is where all the user home directories lived (which is why the mount was called /usr). They replicated all the OS directories under there (/bin, /sbin, /lib, /tmp…) and wrote files to those new directories because their original disk was out of space. When they got a third disk, they mounted it on /home and relocated all the user directories to there so the OS could consume all the space on both disks and grow to THREE WHOLE MEGABYTES. And thereafter /usr is used to store user programs while /home is used to store user data.

      source: http://lists.busybox.net/pipermail/busybox/2010-December/074114.html

    • lascapi ( lascapi@jlai.lu ) 
      link
      fedilink
      arrow-up
      39
      ·
      2 years ago

      You’re not the only one 😅 🙋

    • superkret ( superkret@feddit.org ) 
      link
      fedilink
      arrow-up
      27
      ·
      2 years ago

      I thought it was United System Resources.
      And I still don’t know what’s the point in separating /bin, /sbin, /usr/bin and /usr/sbin.
      Also /mnt and /media
      Or why it’s /root and not /home/root

      • Magiilaro ( DarkMetatron@feddit.org ) 
        link
        fedilink
        arrow-up
        28
        ·
        2 years ago

        Mostly historical reasons, /home was often a network mounted directory, but /root must be local.

        And only regular users have their home in /home

      • Magiilaro ( DarkMetatron@feddit.org ) 
        link
        fedilink
        arrow-up
        15
        ·
        2 years ago

        And I still don’t know what’s the point in separating /bin, /sbin, /usr/bin and /usr/sbin.

        This goes back to the olden days when disk space was measured in kilo and megabytes. /sbin/ and /usr/sbin have the files needed to start a bare bone Unix/Linux system, so that you could boot from a 800kb floppy and mount all other directories via network or other storage devices as needed.

        • tromars ( tromars@feddit.org ) 
          link
          fedilink
          English
          arrow-up
          1
          ·
          2 years ago

          Is there a reason to keep this structure other than „we’ve always been doing it like that“/backwards compatibility?

          • Magiilaro ( DarkMetatron@feddit.org ) 
            link
            fedilink
            arrow-up
            2
            ·
            2 years ago

            The structure is changing, many distributions already are merging more and more of the duplicated subdirectories in /usr/ with the counterparts in / but it takes time to complete that and at the moment those subdirectories are often still there but as symlinks to be compatible with older software (and sysadmins).

      • jacobc436 ( jacobc436@lemmy.ml ) 
        link
        fedilink
        arrow-up
        9
        ·
        2 years ago

        They hold “system binaries” meant for root user. It’s not a hard distinction but many if not most Linux fundamentals have their roots in very early computing, mainframes, Bell and Xerox, and this good idea has been carried into the here&now. Not sure about the provenance of this one, but it makes sense. isn’t /mnt /media different between distros? These aren’t hard and fast rules - some distros choose to keep files elsewhere from the “standard”.

        /bin and /usr/bin, one is typically a symbolic link to another - they used to be stored on disks of different size, cost, and speed.

        https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch03s16.html

        https://unix.stackexchange.com/questions/5915/difference-between-bin-and-usr-bin

      • 4am ( 4am@lemm.ee ) 
        link
        fedilink
        arrow-up
        5
        ·
        2 years ago

        I think /mnt is where you manually mount a hard drive or other device if you’re just doing it temporarily, and /media has sub folders for stuff like cdrom drives or thumb drives?

        • superkret ( superkret@feddit.org ) 
          link
          fedilink
          arrow-up
          4
          ·
          2 years ago

          Yeah, but why?
          You can mount a hard drive anywhere, and why not put all the cdrom and thumbdrive folders in /mnt, too?

          • Magiilaro ( DarkMetatron@feddit.org ) 
            link
            fedilink
            arrow-up
            7
            ·
            2 years ago

            It gets even more complicated nowadays because most DE will mount removable drives somewhere in folders like /run/$USER/

          • Dalaryous ( Dalaryous@lemmy.ml ) 
            link
            fedilink
            English
            arrow-up
            6
            ·
            2 years ago

            /media is for removable drives. If you mount something there, file managers like Gnome will show you the “eject” or “disconnect” button.

            /mnt drives show up as regular network drives without that “eject” functionality.

      • taaz ( taaz@biglemmowski.win ) 
        link
        fedilink
        English
        arrow-up
        3
        ·
        2 years ago

        /sbin are system binaries, eg root only stuff, dunno the rest but I would guess there are some historical reasons for the bin usr/bin separation

        • superkret ( superkret@feddit.org ) 
          link
          fedilink
          arrow-up
          2
          ·
          2 years ago

          I know the distinction between /bin and /sbin, I just don’t know what purpose it serves.

          Historically, /bin contained binaries that were needed before /usr was mounted during the boot process (/usr was usually on a networked drive).
          Nowadays that’s obsolete, and most distros go ahead and merge the directories.

    • schnurrito ( schnurrito@discuss.tchncs.de ) 
      link
      fedilink
      arrow-up
      12
      ·
      2 years ago

      I think it originally did under old Unix, it was what /home is nowadays; “Unix System Resources” is a backronym.

      • bubstance ( bubstance@lemmy.sdf.org ) 
        link
        fedilink
        English
        arrow-up
        2
        ·
        edit-2
        2 years ago

        deleted by creator

    • jol ( jol@discuss.tchncs.de ) 
      link
      fedilink
      arrow-up
      3
      ·
      2 years ago

      Yup same. I always wondered why there was a user folder when we already have home.

    • gerryflap ( gerryflap@feddit.nl ) 
      link
      fedilink
      arrow-up
      3
      ·
      2 years ago

      I was just about to post the same thing. I’ve been using Linux for almost 10 years. I never really understood the folder layout anyway into this detail. My reasoning always was that /lib was more system-wide and /usr/lib was for stuff installed for me only. That never made sense though, since there is only one /usr and not one for every user. But I never really thought further, I just let it be.

    • Baku ( Baku@aussie.zone ) 
      link
      fedilink
      English
      arrow-up
      2
      ·
      edit-2
      2 years ago

      deleted by creator

    • Childless Bambino :OhNoBubble: ( kendricklmao8@hachyderm.io ) 
      link
      fedilink
      arrow-up
      0
      ·
      2 years ago

      @FQQD @sag U So Rong 🙂

  • todd_bonzalez ( todd_bonzalez@lemm.ee ) 
    link
    fedilink
    arrow-up
    68
    ·
    edit-2
    2 years ago

    deleted by creator

    • acockworkorange ( acockworkorange@mander.xyz ) 
      link
      fedilink
      arrow-up
      1
      ·
      2 years ago

      Meanwhile the Linux Standards Base cries in a corner.

  • geneva_convenience ( geneva_convenience@lemmy.ml ) 
    link
    fedilink
    arrow-up
    41
    ·
    2 years ago

    wait /usr doesn’t mean user?

    /etc has to be the worst name in there

    • filcuk ( filcuk@lemmy.zip ) 
      link
      fedilink
      arrow-up
      7
      ·
      2 years ago

      I wonder why that isn’t /cfg? Is there a historical reason?

      • Random Dent ( CrabAndBroom@lemmy.ml ) 
        link
        fedilink
        English
        arrow-up
        14
        ·
        2 years ago

        According to this, it’s been around since the 70’s and was originally just a catch-all for files that didn’t fit in the other default directories, but over time has come to be mostly used for config files. I assume it would cause utter mayhem to try and change the name now so I guess it just sticks. Someone suggested “Edit To Configure” as a backronym to try and make it make more sense if that helps anyone lol.

        • ulterno ( ulterno@lemmy.kde.social ) Banned
          link
          fedilink
          English
          arrow-up
          4
          ·
          2 years ago

          I too expected it to be “et cetera”.

      • pixelblut ( pixelblut@feddit.org ) 
        link
        fedilink
        Deutsch
        arrow-up
        2
        ·
        2 years ago

        Try naming a folder “CON” in Windows and learn the magic of old spaghetti code by a multi billion dollar company.

      • Revan343 ( Revan343@lemmy.ca ) 
        link
        fedilink
        arrow-up
        1
        ·
        2 years ago

        It’s probably the standard in both POSIX and the Single UNIX Specification, so I guess ask Ken Thompson?

    • Laser ( Laser@feddit.org ) 
      link
      fedilink
      arrow-up
      2
      ·
      2 years ago

      deleted by creator

  • Hyacin (He/Him) ( hyacin@lemmy.ml ) 
    link
    fedilink
    English
    arrow-up
    33
    ·
    2 years ago

    I learned about 16 years ago on a Solaris course that /usr wasn’t “user”, I still say “user”, but I’m happy to see the information spreading that that isn’t what it actually is.

    • e$tGyr#J2pqM8v ( 96VXb9ktTjFnRi@feddit.nl ) 
      link
      fedilink
      arrow-up
      20
      ·
      2 years ago

      I learned that just now.

      • JokeDeity ( JokeDeity@lemm.ee ) 
        link
        fedilink
        arrow-up
        3
        ·
        2 years ago

        It’s going to be TOUGH to mentally replace.

      • perishthethought ( perishthethought@lemm.ee ) 
        link
        fedilink
        English
        arrow-up
        2
        ·
        2 years ago

        Wow, what an odd coincidence.

    • ulterno ( ulterno@lemmy.kde.social ) Banned
      link
      fedilink
      English
      arrow-up
      7
      ·
      2 years ago

      I used to pronounce it like yuzr, knowing that it wasn’t user, but not knowing what it was.
      Now I have better context. Maybe I’ll go with U.S.R.

      • Malfeasant ( Malfeasant@lemm.ee ) 
        link
        fedilink
        arrow-up
        1
        ·
        2 years ago

        If you want to confuse people… I pronounce /etc as “ets”, but one of my coworkers recently called it “slash e t c” and I had to ask him to repeat it a couple times before I figured out what he meant…

        • ulterno ( ulterno@lemmy.kde.social ) Banned
          link
          fedilink
          English
          arrow-up
          0
          ·
          2 years ago

          Well, considering that I am with coworkers who don’t remember when to and not to put the ‘/’ at the start of the file path (despite me explaining it to them multiple times), “slash e t c” is probably the better way.

  • wvstolzing ( walthervonstolzing@lemmy.ml ) 
    link
    fedilink
    arrow-up
    27
    ·
    2 years ago

    A pedantic thing to say, surely, but the title really should’ve been: “Linux Directory Structure” – ‘Linux filesystems’ (the title in the graphic) refers to a different topic entirely; the title of this post mitigates the confusion a bit, though still, ‘directory structure’ is the better term.

    • guillermohs9 ( guillermohs9@lemmy.ml ) 
      link
      fedilink
      arrow-up
      3
      ·
      2 years ago

      Sure but for example I understand that /dev and /proc are actually kind of filesystems on their own

    • sag ( sag@lemm.ee ) OP
      link
      fedilink
      arrow-up
      2
      ·
      2 years ago

      Yep, You are right. Done

    • EarthShipTechIntern ( EarthShipTechIntern@lemm.ee ) 
      link
      fedilink
      arrow-up
      1
      ·
      2 years ago

      Right?

      I was expecting superiors to the fat & exfat file storage systems

  • Laser ( Laser@feddit.org ) 
    link
    fedilink
    arrow-up
    26
    ·
    2 years ago

    A good first approximation.

    So where in this setup would you mount a network share? Or am additional hard drive for storage? The latter is neither removable nor temporary. Also /run is quite more than what this makes it seem (e.g. user mounts can be located there), there is practically only one system path for executables (/usr/bin)…

    Not saying that the graphic is inherently wrong or bad, but one shouldn’t think it’s the end all be all.

    • unexposedhazard ( unexposedhazard@discuss.tchncs.de ) 
      link
      fedilink
      arrow-up
      3
      ·
      2 years ago

      On debian when i mount an ftp server through my file browser it uses gvfs

      This will mount it to /run/user/1000/gvfs/ftp:host=,port=,user=

  • guillermohs9 ( guillermohs9@lemmy.ml ) 
    link
    fedilink
    arrow-up
    23
    ·
    2 years ago

    I always thought /usr was for “user”… TIL

    • jalkasieni ( jalkasieni@sopuli.xyz ) 
      link
      fedilink
      arrow-up
      13
      ·
      2 years ago

      It is, this infographic is wrong. Or I guess technically some other standard could define it like the infographic, but the Filesystem Hierarchy Standard defines it as a secondary hierarchy specifically for user data.

  • some_guy ( some_guy@lemmy.sdf.org ) 
    link
    fedilink
    arrow-up
    19
    ·
    2 years ago

    I never understood the title for /usr. Now I do. Thanks!

    • davel [he/him] ( davel@lemmy.ml ) 
      link
      fedilink
      English
      arrow-up
      14
      ·
      2 years ago

      It’s just short for “user;” “User System Resources” is probably a backronym.

    • CrumblyLiquid ( CrumblyLiquid@lemmy.ml ) 
      link
      fedilink
      arrow-up
      3
      ·
      2 years ago

      This email explains it in detail: http://lists.busybox.net/pipermail/busybox/2010-December/074114.html

      TLDR: /usr stands for user

      • some_guy ( some_guy@lemmy.sdf.org ) 
        link
        fedilink
        arrow-up
        1
        ·
        2 years ago

        That’s what I’d always thought. Thanks for correcting the bad info from the image. I’d hate to carry that bad info forward.

  • Sonotsugipaa ( Sonotsugipaa@lemmy.dbzer0.com ) 
    link
    fedilink
    English
    arrow-up
    15
    ·
    2 years ago

    It feels like /opt 's official meaning is completely lost on developers/packagers (depending on who’s at fault), every single directory in my /opt belongs to standalone software that should just be put into either /usr/lib or /usr/share with some symlinks or scripts into /usr/bin.

    • Psyhackological ( Psyhackological@lemmy.ml ) 
      link
      fedilink
      arrow-up
      2
      ·
      2 years ago

      I’ve also seen creating there deployment or configuration stack of your choice.

  • velox_vulnus ( velox_vulnus@lemmy.ml ) 
    link
    fedilink
    English
    arrow-up
    12
    ·
    edit-2
    2 years ago

    deleted by creator

  • Geth ( Geth@lemmy.dbzer0.com ) 
    link
    fedilink
    arrow-up
    12
    ·
    2 years ago

    Visualizing it like this makes it so clear how incredibly outdated this design is.

    • thingsiplay ( thingsiplay@beehaw.org ) 
      link
      fedilink
      arrow-up
      4
      ·
      2 years ago

      What is outdated?

  • bionicjoey ( bionicjoey@lemmy.ca ) 
    link
    fedilink
    arrow-up
    11
    ·
    2 years ago

    Fun fact: you get more accurate info by simply running man hier

  • Samueru ( Samueru@lemmy.ml ) 
    link
    fedilink
    arrow-up
    9
    ·
    2 years ago

    I’m pretty sure sbin originally meant static binaries and not system binaries lol

  • Zozano ( Zozano@lemy.lol ) 
    link
    fedilink
    English
    arrow-up
    9
    ·
    2 years ago

    Would like an easy way to remember.

    • mnt = mount
    • opt = optional ?
    • etc = etcetera ?
    • proc = process ?
    • srv = server ?
    • var = variable ?
    • CrumblyLiquid ( CrumblyLiquid@lemmy.ml ) 
      link
      fedilink
      arrow-up
      7
      ·
      2 years ago

      /srv stands probably for serve as in serving static files like static websites. (Source)

      More information here: https://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html

  • baseless_discourse ( baseless_discourse@mander.xyz ) 
    link
    fedilink
    arrow-up
    7
    ·
    edit-2
    2 years ago

    deleted by creator

    • matcha_addict ( matcha_addict@lemy.lol ) 
      link
      fedilink
      English
      arrow-up
      5
      ·
      2 years ago

      What’s the reason?

      • caseyweederman ( caseyweederman@lemmy.ca ) 
        link
        fedilink
        arrow-up
        2
        ·
        2 years ago

        Probably so that you don’t accidentally write to a directory by mistake when it isn’t mounted, and then lose access when you mount something over it, all while services are looking for files that are only there sometimes.

        • Toribor ( Toribor@corndog.social ) 
          link
          fedilink
          English
          arrow-up
          2
          ·
          2 years ago

          I’ve had exactly this happen to me. It was my own fault but it took a bit of work figure out.

      • baseless_discourse ( baseless_discourse@mander.xyz ) 
        link
        fedilink
        arrow-up
        2
        ·
        edit-2
        2 years ago

        deleted by creator

    • Uninvited Guest ( uninvitedguest@lemmy.ca ) 
      link
      fedilink
      arrow-up
      1
      ·
      2 years ago

      Where would you mount non-removable media?

      • baseless_discourse ( baseless_discourse@mander.xyz ) 
        link
        fedilink
        arrow-up
        2
        ·
        edit-2
        2 years ago

        deleted by creator

        • Uninvited Guest ( uninvitedguest@lemmy.ca ) 
          link
          fedilink
          arrow-up
          2
          ·
          2 years ago

          Wow. Talk about ways to skin a cat.

          I mount mine to /media using autofs.

          I was, at one point, using /mnt but ran in to some situation that Proxmox didn’t like that involved bind mounts (can’t remember what) and shifted them all over to /media.

Linux@lemmy.ml

linux@lemmy.ml

Subscribe from Remote Instance

Create a post
You are not logged in. However you can subscribe from another Fediverse account, for example Lemmy or Mastodon. To do this, paste the following into the search field of your instance: !linux@lemmy.ml

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

  • Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
  • No misinformation
  • No NSFW content
  • No hate speech, bigotry, etc

Related Communities

  • !opensource@lemmy.ml
  • !libre_culture@lemmy.ml
  • !technology@lemmy.ml
  • !libre_hardware@lemmy.ml

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

Visibility: Public
globe

This community can be federated to other instances and be posted/commented in by their users.

  • 406 users / day
  • 1.13K users / week
  • 2.83K users / month
  • 6.27K users / 6 months
  • 1.31K local subscribers
  • 68K subscribers
  • 8.1K Posts
  • 108K Comments
  • Modlog
  • mods:
  • AgreeableLandscape ( AgreeableLandscape@lemmy.ml ) 
  • nooter692 ( nooter692@lemmy.ml ) 
  • MarcellusDrum ( MarcellusDrum@lemmy.ml ) 
  • Arthur Besse ( cypherpunks@lemmy.ml ) 
  • Cyclohexane ( cyclohexane@lemmy.ml ) 
  • d3Xt3r ( d3Xt3r@lemmy.nz ) 
  • BE: 0.19.15
  • Modlog
  • Legal
  • Instances
  • Docs
  • Code