On linux, where the config file for a specific program is, can vary annoyingly greatly depending on what distro you’re using and sometimes the same config file exists in several places and somehow certain parts of the configuration parameters get taken from several of those files, so if you think you’ve found what the actual config file should be and remove the duplicates, suddenly the program uses defaults or doesn’t even work at all.
Yup. Is it in /usr /var /etc or /opt? Maybe in some hidden home folder? Sure, you can Google it, but there’s no guarantee you’ll find the right answer.
There are only a handful of places Windows sticks stuff, and it’s pretty predictable.
Brother scanner utilities: /opt
Pretty sure I had to change something in /usr once, but I forgot what.
Now, /var would be very unusual.
But most of the time, all the configuration files happen to be somewhere in /etc.
Docker on RHEL saves everything in /var/lib, for example. Tenable and Nessus stick it in /opt. I’m currently doing a rhel7->8 upgrade, and that shit gets stuck everywhere.
But, I also have issues on my Pis. For a lot of the packages I use, I’m lucky if they actually put their .service file in /etc/systemd. Having to run a find / command on a pi can take forever.
Generally /usr should be managed by the package manager, /etc is for global custom configs and the user home is user specific.
/var shouldn’t really be config, mostly logs or webservers for some reason.
Disagree. Take game saves on windows. They can be in appdata\local, appdata\roaming, documents\company-name, documents\savedgames\company-name
I’m sure there are more.
Savegame folder is then placed either ina folder with game name or studio name, so easy to check all these locations within minutes.
Let’s not talk about rpgmaker games tho. I’ve seen them do some wacky shit with gamesaves.
Edit: To make my point clearer, I disagree with person above me about their disagreement. Savegames on windows are predictable as hell. Thanks to person below for pointing out I didn’t convey. :<
Long read ahead, this resulted in a pretty big rant, but I feel better now:
Windows has way more silly places. From registry to ini files, assemblies, common files, services, drivers…it’s everywhere.
Do you know how an MSI packages for software installation work? Let me tell you, it’s a mess. An utter and complete garbage format. A database with hundreds of buggy functions, empty lines and internal inconsistencies. There wasn’t even a way to create them comfortably without paying for expensive software back then. Yea, im looking at you, flexera admin studio.
I automated hundreds of custom software installations on 2000 clients from windows 2000 to XP to Windows 7 to Windows 10… for >10 years, so I know what I’m talking about.
On Linux 99% of apps save global settings in /etc and usersettings in /home/user/.* or the newer way XDG_CONFIG_HOME.
But since all is a file on Linux every config can simply be copied to restore or backup settings. Almost every tool has man pages. How hard is it to run man tool and read the specifics if you need help? Windows? Sometimes you got some help files in a strange format (.hlp?). Other then that, start the browser and ask Google.
Linux package managing since 2003 has been better then it ever has been on Windows to this day.
One command to update all components? Packages will be installed and removed automatically to fulfill the dependencies of the software you want to install? Every package is build by a trusty maintainer of the OS instead of some overworked windows engineer that needs to create profit.
Do you know how Deb files work? They are simpel zips of the folder structure and files the software consists of. A textfile with metadata like maintainer, name, version and, very important: dependencies. Last but not least there are a two or three files that can contain scripts that need to be executed prior or past installation. That’s it. And you can do everything with it.
On Windows you often are forced to find the right combination of weird parameters to ensure a program starts. commandlines like “c:\windows\powershell.exe -e cmd /c program name”, happen way more often then you would expect.
On Linux I get: Global package manager and updates with trusted packages, no telemetry, more safety, no ads, better privacy…and many more.
My personal opinion: I don’t understand how people can even question the superiority of Linux for personal devices.
I don’t know what Tenable and Nessus are. I’m guess you have to install them from outside the package manager or build them from source, in which case, yeah, using /opt for config would be acceptable.
Trust me, that is not Linux specific, Windows has that bullshit as well. Everything depends on how the devs wanted to solve the local settings problem, and if you have devs that work 1 or 2 years on the project and then quit, which in turn are replaced by other devs, you get this bullshit. The new ones usually don’t wanna touch the old one’s code, or if they do, they only make minor changes, just enough to make something that’s not working, work.
This is major league bullshit tho.
On linux, where the config file for a specific program is, can vary annoyingly greatly depending on what distro you’re using and sometimes the same config file exists in several places and somehow certain parts of the configuration parameters get taken from several of those files, so if you think you’ve found what the actual config file should be and remove the duplicates, suddenly the program uses defaults or doesn’t even work at all.
Yup. Is it in /usr /var /etc or /opt? Maybe in some hidden home folder? Sure, you can Google it, but there’s no guarantee you’ll find the right answer.
There are only a handful of places Windows sticks stuff, and it’s pretty predictable.
You should never be expected to edit anything in /usr, /opt or /var. That’s highly unusual. For which software did you have to do this?
Brother scanner utilities:
/opt
Pretty sure I had to change something in/usr
once, but I forgot what. Now,/var
would be very unusual. But most of the time, all the configuration files happen to be somewhere in/etc
.Docker on RHEL saves everything in /var/lib, for example. Tenable and Nessus stick it in /opt. I’m currently doing a rhel7->8 upgrade, and that shit gets stuck everywhere.
But, I also have issues on my Pis. For a lot of the packages I use, I’m lucky if they actually put their .service file in /etc/systemd. Having to run a find / command on a pi can take forever.
Generally /usr should be managed by the package manager, /etc is for global custom configs and the user home is user specific.
/var shouldn’t really be config, mostly logs or webservers for some reason.
Disagree. Take game saves on windows. They can be in appdata\local, appdata\roaming, documents\company-name, documents\savedgames\company-name I’m sure there are more.
Nah. 3 places.
Savegame folder is then placed either ina folder with game name or studio name, so easy to check all these locations within minutes.
Let’s not talk about rpgmaker games tho. I’ve seen them do some wacky shit with gamesaves.
Edit: To make my point clearer, I disagree with person above me about their disagreement. Savegames on windows are predictable as hell. Thanks to person below for pointing out I didn’t convey. :<
Yes but appdata subfolder is local, locallow or roaming so the poster above you is still correct.
Lol, appdata subfolder is already 3 different places 😂
TLDR; Windows crap, I love Linux
Long read ahead, this resulted in a pretty big rant, but I feel better now:
Windows has way more silly places. From registry to ini files, assemblies, common files, services, drivers…it’s everywhere.
Do you know how an MSI packages for software installation work? Let me tell you, it’s a mess. An utter and complete garbage format. A database with hundreds of buggy functions, empty lines and internal inconsistencies. There wasn’t even a way to create them comfortably without paying for expensive software back then. Yea, im looking at you, flexera admin studio.
I automated hundreds of custom software installations on 2000 clients from windows 2000 to XP to Windows 7 to Windows 10… for >10 years, so I know what I’m talking about.
On Linux 99% of apps save global settings in /etc and usersettings in /home/user/.* or the newer way XDG_CONFIG_HOME.
But since all is a file on Linux every config can simply be copied to restore or backup settings. Almost every tool has man pages. How hard is it to run man tool and read the specifics if you need help? Windows? Sometimes you got some help files in a strange format (.hlp?). Other then that, start the browser and ask Google.
Linux package managing since 2003 has been better then it ever has been on Windows to this day.
One command to update all components? Packages will be installed and removed automatically to fulfill the dependencies of the software you want to install? Every package is build by a trusty maintainer of the OS instead of some overworked windows engineer that needs to create profit.
Do you know how Deb files work? They are simpel zips of the folder structure and files the software consists of. A textfile with metadata like maintainer, name, version and, very important: dependencies. Last but not least there are a two or three files that can contain scripts that need to be executed prior or past installation. That’s it. And you can do everything with it.
On Windows you often are forced to find the right combination of weird parameters to ensure a program starts. commandlines like “c:\windows\powershell.exe -e cmd /c program name”, happen way more often then you would expect.
On Linux I get: Global package manager and updates with trusted packages, no telemetry, more safety, no ads, better privacy…and many more.
My personal opinion: I don’t understand how people can even question the superiority of Linux for personal devices.
To add to this, Dotfiles is a very helpful Arch Wiki page.
What system wide software stores their configs in anything but /etc? Data, sure, but not configs.
Docker installs in /var/lib. Tenable and Nessus use /opt.
There are tons of packages that store config files in places other than /etc.
I don’t know what Tenable and Nessus are. I’m guess you have to install them from outside the package manager or build them from source, in which case, yeah, using /opt for config would be acceptable.
Docker’s config file is located at:
It’s not in RHEL. Tenable and Nessus are vulnerability scanners, and Nessus at least can be installed via yum.
nginx at the very least, but there’s way more
Nginx’ default config location is
Yeah I missed the “anything but”, sorry
XDG Base Directory & XDG User Directories will help you immensely. At least, for the programs that follow the XDG specs. Also, check out XDG Ninja.
Trust me, that is not Linux specific, Windows has that bullshit as well. Everything depends on how the devs wanted to solve the local settings problem, and if you have devs that work 1 or 2 years on the project and then quit, which in turn are replaced by other devs, you get this bullshit. The new ones usually don’t wanna touch the old one’s code, or if they do, they only make minor changes, just enough to make something that’s not working, work.