I'm looking for a command line Linux distro that runs under 128Mb of RAM and works with i386. All the distros that I've looked at so far seem to be too big, don't support that old of a processor, or are GUI OSs. I've looked at Arch Linux, Tiny Core, Gentoo, SuSE JEOS, and Slitaz. It will be mostly used for running GCC, Mono, Wine, and such.
I would use Damn Small Linux, Puppy Linux, or similar. I would avoid any of the more general-purpose distros like Arch or Gentoo, purely because they are bigger. Basically, you want the sort of distro that purposely doesn't include many packages, so you're forced on an individual basis to compile and install anything not essential to the core OS's operation. That will help you keep control of the OS footprint, both in terms of RAM and disk.
Yes, both of my recommended choices include a GUI option. I think you should not use that as an immediate disqualifier, because with Linux, the GUI is always optional. If the installer doesn't give the option of disabling it, it's trivial to disable it after install: change the
initdefault line in
/etc/inittab to have a 2 or 3 in the second field. (The behavior difference between runlevel 2 and 3 varies depending on the Linux distro. Typically you get a GUI on boot only at level 5.)
I'm also aware that the specs for these systems recommend a 486+ or more RAM. You can ignore this by choosing not to use all of the features available in the distro. You've already made a big leap in this direction by opting out of a GUI. Another big step is starting with a parsimonious distro in the first place.
I don't think you'll be very successful at running mono, and specially WINE with so little memory and slow CPU regardless of the distro you use.
Anyway, if you really want to use that i386, have Linux installed and work w/o any pain, you are probably better off downloading an old distro with an old kernel. A distro from the 90s should work, Slackware 95 comes to mind. Maybe you can find the install CDs online.