Peru is a beautiful country but however when it comes to transport it's quite tricky due to the terrain, the country has some mountains as high as 22000ft, rocky coastal lands, and very thick rainforests.
Traveling by bus is quite hectic and time-consuming for instance from Lima to Cusco is about 20hours by bus and less than 2 hours by flight.
There are 4 international airports in Peru, 18 domestic airports and in case you're heading to coast there are 48 more airstrips. You can connect to all these airports and airstrips from Lima.
Even if you're headed to another city all international flights going to Peru must connect through Lima, Lima's Chavez International airport is usually very crowded and quite chaotic hence get at the airport early for your connecting flight or don't leave the airport's premises as you wait for your connecting flight.
Peruvians get discounts on most domestic flights but non-locals are up-charged especially during the busy seasons, get your tickets early, the more you delay, the more you pay.
Don't purchase the discounted Peruvian nationals tickets if you're not a Peru citizen. You'll still pay the extra at the airport.
CAUTION: Though there are chartered flights, they are very unreliable.