The ini file is part of your machine configuration. You can have multiple machine configs installed on one computer. When you create a machine configuration or open a demo config that comes with Linuxcnc, that configuration is saved in a folder in your user's home (~/linuxcnc/configs/*config's name*/)
The machines I'm running with Linuxcnc are cnc routers, used primarily for wood carving and engraving. The g-code we run on them is pretty generic g-code output by the cam program we use (Enroute), then I modify the pre- and post- ambles of the files to suit each individual machine. This is the way it's been done here where I work since before my time here. Since then I have taken some steps to make the code less machine specific, and I've arranged it now so that most of the machines I've converted to Linuxcnc can all run off of the same g-code, but that is only about half of our carving machines and none of the larger cnc routers we mill with.