Config files (.cfg) are text files which contain settings, scripts and binds for Quake III. The one config file everyone has is q3config.cfg, located in the baseq3 folder and also in every mod folder. The q3config.cfg files contain all the user settings and variables for Quake III and/or a particular mod. Edit these files manually using a text file viewer which supports Unicode Text Files (do not open up the q3config.cfg file in Notepad as you'll notice all carriage returns have disappeared, so be sure to use WordPad instead).
You can also compile your own config files (no need to save them as unicode text files). In these config files you can place variables, key binds and just about anything one can do through the console. Here's an example of a possible config file:
set name "Player"
set r_mode 4
bind mouse1 "+attack"
Save your config file as a text file with a .cfg extension instead of .txt, and save the file into your baseq3 folder. To execute your config file, open the console and enter
/exec [config name]
(where [config name] is the filename of your custom cfg file).
You should always use a separate config file for your scripts, since they often won't be saved by Quake III into q3config.cfg automatically. If you want to execute custom config file(s) or settings every time you start Quake III, you can create a config file called autoexec.cfg and put this in the baseq3 folder. The autoexec.cfg will automatically be executed first thing each time Quake III is started and is handy to execute additional config files, scripts and/or aliases.