First Day, current month:
# date -d "-0 month -$(($(date +%d)-1)) days"
First Day, last month:
# date -d "-1 month -$(($(date +%d)-1)) days"
Last Day, current month:
# date -d "-$(date +%d) days +1 month"
Last Day, last month:
# date -d "-$(date +%d) days -0 month"
Last Day, month before last month:
# date -d "-$(date +%d) days -1 month"
%d = day of month.