/home is for every program to store its personal junk in hidden files apaprently
Is Gobo case-insensitive by default? Typing those seems annoying.
I’m pretty sure
sbin
originally meant static binaries and not system binaries lolA 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.
To be more pedantic the correct title would be the Filesystem Hierarchy Standard (FHS)…which describes the directory structures
Right?
I was expecting superiors to the fat & exfat file storage systems
Yep, You are right. Done
Sure but for example I understand that /dev and /proc are actually kind of filesystems on their own
Here’s a higher quality version
Great username
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.
usr did originally mean user and held user data.
Pretty sure this is a bacronym
So where are programs installed?
I was playing with Linux the other day and installed something and was tearing my hair out trying to find where the exe or whatever was to launch the damn program.
None of the folders made any sense to me.
It should be in /bin or /usr/bin or /usr/local/bin. You can use “which” command to know
except nowadays many distro mounts removable media under /run/media instead of /media (for good reason).
Where would you mount non-removable media?
I think there is no rule, but I like to mount them on
/mnt
.A good discussion can be found here: https://www.reddit.com/r/linuxquestions/comments/u0ri07/where_do_you_usually_mount_your_internal_drives/
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.
what a mess
There’s a little historical baggage, but look at Windows: multiple letters for drives, and all of the paths can be modified, so you have to ask Windows where any important directory is physically mapped (like SystemRoot or Documents or Temp or Roaming AppData or many others), because it doesn’t have this nice consistent structure like Linux. Linux presents a logical layer and manages the physical location automatically. Windows makes you do the logical lookup yourself, but doesn’t enforce it, so inexperienced programmers make assumptions and put stuff where the path usually is.
That’s part of why logging in to Windows over a slow connection can take forever if you have a bunch of Electron apps installed: they’ve mismapped their temp/cache directory under the Roaming AppData, so it gets synched at every login, often GiB of data, and they refuse to fix it.
I always thought /usr was for “user”… TIL
It did, let me explain:
On the original (ie Thompson and Ritchie at Bell in 1969-71), I think it was a PDP-11, they installed to a 512kb hard disk.
As their “stuff” grew they needed to sprawl the OS to another drive, so they mounted it under /usr and threw OS components that didn’t fit.
https://landley.net/writing/unixpaths.pdf
I’ve done the same, outgrew so you mount under a tree to keep going, it just never became a historical artifact.
Huh. I did as well. Like /use/bin was for user installed applications and such. You learn something everyday.
Those are directories, not filesystems.
Fun fact: you get more accurate info by simply running
man hier
wait /usr doesn’t mean user?
/etc has to be the worst name in there
usr does mean user. It was the place for user managed stuff originally. The home directory used to be a sub directory of the usr directory.
The meaning and purpose of unix directories has very organically evolved. Heck, it’s still evolving. For example, the new .config directory in the home directory.
For example, the new .config directory in the home directory.
I hope slowly but surely no program will ever dump its config(s) as
~/.xyz.conf
(or even worse in a program specific~/.thisapp/
; The~/.config/
scheme works as long as the programs don’t repeat the bad way of dumping files as~/.config/thisconfig.txt
. (I’m looking at you kde folks…) A unique dir in .config directory should be mandatory.If I ever need to shed some cruft accumulated over the years in ~/.config/ this would make it a lot easier.
Per the graphic, it means Unix System Resources…
I don’t trust a graphic which explains /boot as “system boot loader files”…
Well that’s a shame for me. This graphic finally made the Linux file directory structure make sense to me
Why? What’s inaccurate about it? I have no idea and would like to learn.
It’s not wrong, but it feels a bit like some tech articles you’ll see which are obviously just created to fluff up a CV. I wouldn’t say avyttring here is flat out wrong, just kinda… lacking.
But yeah, /boot holds “system boot loader files”, sure, but that’s a bit vague. It should contain your kernel and initramcpio and IIRC Grub also had its config here. That’s pretty much it. I would’ve rather said /boot contains the kernel.
“device files” it’s so vague that it’s almost wrong IMO. At first glaze I would’ve thought that it means drivers rather than, say, “interfaces to devices”
It meant user, as in user-installed programs and libraries for this system over the core system programs and libraries of the operating system in /bin and /lib.
Someone learned it wrong, but otherwise I think the image is right.
Visualizing it like this makes it so clear how incredibly outdated this design is.
What is outdated?
https://lemmy.world/post/9437525
My version of this with a bit more detail
Cool. Thanks for sharing!
Thanks! I’ll save this, tell myself I’m going to strictly follow it this time and forget about it (again) lol
Much better, thanks!
Edit: Thank you, found it on your shared link ! 😄
Oh wow thank you ! Would it be to much to ask for a dark mode version? If there’s a one hit button to change into a more eye friendly color mode :)
Either way, thank your for sharing your work :))
Look at the post behind the link. There is a dark mode version.
I still have no clue where permanently attached USB SSDs are supposed to be mounted. I just shove them into LVM2 and put the mapper under /mnt since putting them under /home wouldn’t let other users access them.
permanently attached USB SSDs are supposed to be mounted
Just mount them somewhere under
/
device, so if a disk/mount fails the mounts depended on the path can´t also fail.I keep my permanent mounts at
/media/
and I have a udev rule, that all auto mounted media goes there, so/mnt
stays empty. A funny case is that my projects BTRFS sub-volume also is mounted this way, although it is technically on the same device.
It can fits as a desktop wallpaper.