You can do a lot with free open-source software, also known as FOSS. Musicians with a yen for Linux are in luck; the array of choices for creating, editing, producing, and publishing music using nothing but FOSS software is staggering.
One way to get your hands on a plethora of audio tools is to run the Ubuntu Studio distro, which comes preconfigured for real-time audio processing and includes every studio tool under the sun. Failing that, there are the ubuntustudio-audio and ubuntustudio-audio-plugins virtual packages in Ubuntu, which will install 54 and 18 specialized packages, respectively. Other alternatives include the Musix distribution and the low-end hardware distro dyne:bolic, but Ubuntu Studio has the largest toolkit in the genre and enjoys the widest support as well.
Pick your favorite multimedia distro and go nuts, or just install the applications you want to try out, one RPM or DEB package at a time.
To cover it all in useful detail would take a book, so we'll spare you most of the gory details. Instead, this article will focus on a few of the leading suites used to actually make music—multi-track MIDI sequencers with the ability to add live audio tracks such as guitar strums and voice.
You still don't know JACK
Having a lot of tools available lets you work in the grand tradition of Unix-like operating systems, chaining specialized programs together to perform complicated tasks. The pipe operator in the audio world is the JACK audio server, which lets you route inputs and outputs of myriad different flavors to whatever JACK-enabled tool you like. For example, you can use JACK to route MIDI inputs to a software synthesizer, then a flangers and a compression effect, and then on to your sequencer suite of choice. From there, you'd then pipe the finished song to a separate mixer program and an output tool to write the song to disk in your favorite audio file format. And all of this is accomplished in real time, without adding ugly latency anywhere in the process chain. That's the magic of JACK.