Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

What is the Linux equivalent of Windows Registry? If there is no equivalent or similar structure in Linux, how are the things that are done by the Windows Registry handled in Linux?

share|improve this question
up vote 43 down vote accepted

Linux applications typically store their config in a text-based file specific to the application. Machine specific configs are typically stored in the /etc directory tree. User specific settings are typically in the users' home directory and often in "hidden" files that start with a "." (use 'ls -a' to see them).

share|improve this answer
We could also add that those text files are human readable and often include comments in them that describe the particular configuration item. So the documentation is often right there in front of you when you need to change something. You can add your own notes as well, for example why you changed something. The Windows registry holds no such "metadata". – Keith Jun 11 '11 at 9:01
Surely this answer is flawed because the purpose of the registry Is not to hold settings but to register components such as dlls and shell extensions with the operating system. Storing program configuration in there Is a frowned upon technique. – Adam Casey Jun 11 '11 at 10:00
Not sure about "frowned upon" but it is regularly done. Most MS programs and many 3rd party store config data there. – uSlackr Jun 11 '11 at 13:26
@Dotmister: That was its purpose indeed... in the days of Windows 3.1. Starting with 32-bit Windows (95 and NT), the Registry became a database for configuration data. – grawity Jun 11 '11 at 19:01
Heh... so Linux essentially does what the Windows Registry was designed to prevent? – Iszi Dec 11 '13 at 19:38

/proc for kernel related stuff

/etc for software related stuff

Gnome config can be considered similar to Windows Registry as well.

But since Linux and Windows core philosophies are diametrically different (Linux ~ open and compatible, Windows ~ closed and obstructive), there is no direct parallel.

Edit: for those who disagree, here is a bit of history for you: (awesome reading, no matter what your background is)

share|improve this answer
I don't see what software design philosophy has to do with the particularities of specific implementations of configuration storage. The reason there isn't a direct parallel is because they're fundamentally different architectures, not just because Microsoft hates freedom. – Shinrai Jun 10 '11 at 21:36
@Shinrai The fundamental design philosophy of Unix (and Linux) is using standardized text formats. Windows Registry is a proprietary binary format. "Microsoft hates freedom" is totally out of context here. Windows was designed to be as much incompatible with Unix as possible and ignored all possible international standards (while creating it's own). This is old history, but this is where Windows registry comes from. – Let_Me_Be Jun 10 '11 at 22:00
@Let_Me_Be - I'm sorry, your wording read me to think that you meant "Open source is the best! Microsoft is evil incarnate!" like so many *nix fanatics on the web, rather than a discussion of the literal format of the content. Comment withdrawn, but you might reword to be a little clearer since a few people seem to have read it just like I did. (I think 'obstructive' especially gives the wrong impression here.) – Shinrai Jun 10 '11 at 22:10
@Let_Me_Be: Standartized text formats? You must be joking. Windows sucks in many ways, but a common Registry API is one thing it does well. – grawity Jun 10 '11 at 22:22
@Let_Me_Be: The word was "standartized", not "documented". I'd rather distribute one .reg file (or .ini, .xml, .json, whatever you wish) over X machines than have to regexp the hell out of twenty different config files in /etc/ while trying to change network-wide settings but retain unrelated local additions... while you won't find perfectly detailed explanation for Windows registry hives, their structure is not entirely a secret. (leaves the flamewar) – grawity Jun 10 '11 at 23:03

System wide settings are located in files in /etc, per user settings are typically located as hidden files (start w/ a .) in the users home directory. For more information about a specific program see it's man page - man [program name].

share|improve this answer
Might want to mention .*rc files in the user's home directory. /etc is just the system-wide stuff. – Mike DeSimone Jun 11 '11 at 4:09

Most applications use text-based configuration files (usually each program has its own format, although some use XML or JSON). System-wide configuration is kept under /etc.

User configuration is usually stored in the user's home directory, in so-called "dot files" (filenames starting with a "."; use ls -a to display them). To avoid "dotfile creep", recently programs have started keeping their configuration in ~/.config/ per XDG Base Directory specification.

Various desktop environments have their own Registry-like APIs: Gconf (deprecated) and dconf/GSettings (new) in GNOME; Xfconf in Xfce.

share|improve this answer

It's split on Linux. There is not one single place.

For programs run by users, it's usually in $HOME/.someprogramrc if it's a file, or $HOME/.somedirname if complicated enough to warrant a subdirectory. KDE apps all find subareas of $HOME/.kde I believe, usually not generating their own dir.

The common action for listing directories is to treat files starting with . as hidden, so you'll need to use ls -A from the command line, or use the show hidden files setting of your gui.

For programs run by the system, it's usually a file someplace in /etc/ There's not a true naming convention in etc, though directories are usually signified by .d at the end.

For the kernel, it's in /etc/sysconfig.conf, or a startup script in /etc/init.d that writes to /proc/sys/*

Most system configs are in /etc to make it easier to back up a system. By holding only config files and not binaries, /etc/ therefore tends to be small.

share|improve this answer

There is no Registry in linux. But you should take a look at gconf-editor and dconf-editor ... and also hidden files/folders inside your home directory (with names starting with dot), mostly plain (TXT) files containing some configuration for a specific program.

share|improve this answer

The Windows registry was created to automate the various .ini and other configuration files for operating system and programs so that it would load faster. All of the information in the registry is also contained elsewhere in the computer but today they are usually write protected. Linux uses Vi (visual editor) or other editor to access these configuration files in Linux to edit them.

share|improve this answer
Hello and welcome to Although I believe what you are trying to tell the poster is correct, it does not come out very well in your answer. Unless you have a decent understanding of how Linux and Windows work, I believe it is difficult to understand what you are trying to get at. Please rethink and rewrite your answer so that anybody can understand it. – Mogget Dec 11 '13 at 19:50

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .