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 ?
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.
Related: man hier
it bothers me a little the entry is not called fhs
: man fhs
Added to new version. Thanks for the suggestion.
I really like this, but can I have a black background version please?
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.
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
/home is not deprecated, it's optional but common. Here is the section from FHS: https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch03s08.html
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...
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
I'm surprised to hear /home is non standard.
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.
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
I don't understand the ambiguity of where to put your projects.
I've typically always put things under /opt/ TIL /etc/opt was where the config should go.
laughs in guix
does guix go the same was as nixos in that regard? where can I find info regarding FHS in guix?
Afaik guix is very similar to nixos in that respect. The store where applications are installed is called /gnu there.
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.
Thanks for the input. Things are complicated: https://askubuntu.com/a/135679 . Apparently it originally meant "user" but then slowly was used for system stuff. So people invented backcronyms.
That's just retconning/backronyming it.
/usr does historically stand for user. It's where the user home directories were on old Unix versions.
Nicely done! Do you perchance have any hi res version?
Thanks! Unfortunately I've used closed source whimsical.com for this and don't have a paid subscription. They only offer low-res for those accounts since recently :(
Laughs in Nix
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
how is /usr/local local and not system-wide? i though it was for programs you compiled yourself?
"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.
thanks for the explanation!
Many FHS things don't make much sense for single-user (human user) systems on modern hardware. /usr/local does though. It's for you (as admin) to install software that doesn't come with the os.
So why does my system mount my drives to /run/user/1000…?
1000 might by your user's user-id
1000 is the default ID given to the first-created user on Debian-based systems.
May or may not be the case with other distros. Haven't checked.
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/
.
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