usr doesnt mean user, it meant Unix System Resources, and a user of the system usually puts his stuff at home, what would you like it to be otherwise /users ? That would be describing the users of the system and not where their stuff is, and users are described in /etc/passwd together with their passwords, sort of.
/etc isnt called /conf or configuration because it contains examples, scripts and other small stuff as well, which is etcetera.
/var is for variable data like logs and pid files, not meant to be changed by the user directly
/opt sucks and is for losers who dont know about /usr/local or how to install stuff in ~
The Linux way makes much more sense than Windows or MacOSX way. binaries are in bin libraries are in lib, whats not to like?
> usr doesnt mean user, it meant Unix System Resources
It did mean "user" originally. Home directories were usually put there.
However, the root filesystem was typically very small. So very early on in UNIXs evolution things that were large and not needed during system boot ended up finding homes in /usr, simply because it was where the bulk of the disk space was. So you got /usr/bin, /usr/dict, ...
Eventually /usr got so full of non-user content, UNIX-based OSes started putting home directories somewhere else entirely (i.e. /home on linux for example) Because the user to home directory mapping was just held in /etc/passwd, it was much easier to move the users than everything else. Later, the "Unix System Resources" backronym was coined.
So mintplant is right: /usr is very much a historic wart on the UNIX filesystem layout.
> /opt sucks and is for losers who dont know about /usr/local or how to install stuff in ~
I disagree. /opt is for systemwide installations of monolithic software by dumb companies that can't fit their software into the standard layout. In the Linux FHS /usr/local/ is supposed to be for non distribution installed software that nonetheless uses the standard layout with /usr/local/{lib,bin,doc} etc.
In /opt you usually have something like /opt/somesoftware/ and some non-standard hierarchy underneath.
+1 for /opt. We bundled our runtimes and data, and our stuff still works 10 years later (although, yeah, security vulnerabilities, although technically none of it was remote).
Um, good luck with your packages where you relied on the OS. Let's not talk about stdlibc++.
Hint: if you really want your stuff to work for a long time, depend on the kernel and nothing else.
/opt is really where: /opt/importantstuff goes. The stuff where they bundled the libc because Debian changes too fast. Freaky stuff. Telco stuff...
Well thats just wrong, thats what /srv/http is for, to serve http, but historically websites were served from your home, as then they where known as home (personal) sites, and they're still known as "home sites" in many non-english languages.
Now when you have web applications they can be in /srv as well and the database is usually wrongly put in /var (looking at you mysql) but what you gonna do when you need a system user, just like a users stuff is supposed to be in home so put your database there /home/postgresql/its_datas here, as anyway you need to run the db as its own user.
/etc isnt called /conf or configuration because it contains examples, scripts and other small stuff as well, which is etcetera.
/var is for variable data like logs and pid files, not meant to be changed by the user directly
/opt sucks and is for losers who dont know about /usr/local or how to install stuff in ~
The Linux way makes much more sense than Windows or MacOSX way. binaries are in bin libraries are in lib, whats not to like?