i always thought /usr stood for "user". Please tell me I'm not the only one
Linux
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
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
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
You're not the only one 😅 🙋
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
Mostly historical reasons, /home was often a network mounted directory, but /root must be local.
And only regular users have their home in /home
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.
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
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?
Yeah, but why?
You can mount a hard drive anywhere, and why not put all the cdrom and thumbdrive folders in /mnt, too?
It gets even more complicated nowadays because most DE will mount removable drives somewhere in folders like /run/$USER/
/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.
/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
I think it originally did under old Unix, it was what /home is nowadays; "Unix System Resources" is a backronym.
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.
"Linux File Systems"
*List of root directories*
Uh, where are the file systems? EXT4... BTRFS... FAT32...
wait /usr doesn't mean user?
/etc has to be the worst name in there
I wonder why that isn't /cfg? Is there a historical reason?
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.
I too expected it to be "et cetera".
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.
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.
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.
Sure but for example I understand that /dev and /proc are actually kind of filesystems on their own
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.
I always thought /usr was for "user".... TIL
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.
I never understood the title for /usr. Now I do. Thanks!
This email explains it in detail: http://lists.busybox.net/pipermail/busybox/2010-December/074114.html
TLDR: /usr
stands for user
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
.
Visualizing it like this makes it so clear how incredibly outdated this design is.
What is outdated?
Fun fact: you get more accurate info by simply running man hier
Would like an easy way to remember.
- mnt = mount
- opt = optional ?
- etc = etcetera ?
- proc = process ?
- srv = server ?
- var = variable ?
/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
I'm pretty sure sbin
originally meant static binaries and not system binaries lol
Just forwarded this pic to my dad. I'll be guiding him in installing Mint on one of his old Windows desktops this coming Saturday! Wish us luck in the coming years 😂
I have always wondered why there was a developer folder(/dev)
Now i know that the government is trying to make people think it stands for something else so they can replace all programmers with advanced random number generators
immuatables be all about /var
Why is /mnt a "temporary" mounting point? I alwags put my permanent ones there. I'd say /media is temporary...
If my /bin contains exe files, something has gone very wrong somewhere...
Also, all these infographics are a sad casualty of the /usr/bin merge.
honestly /home should has never been created we should have kept user homes in /usr
This needs some modernization and simplification, if Linux ever wants to make it to the mainstream.
This is a much better layout:
/system (contains /boot, /dev, /proc, /run, /sys, /tmp and /var, all the stuff no one ever looks at)
/config (/etc renamed to something sensible)
/apps (contains /bin, /sbin, /usr, /lib and /opt)
/server (renamed /srv, only gets created when needed)
/users (renamed /home, also contains /root now)
No one ever looks at /var? Isn't that where my Apache dir lives? Sorry, I've been off Linux for a while. I think I put Git in there as well.
That's not POSIX