Slight correction to the above answer: Jessie using
systemd does not use runlevels.
If, however you are a luddite or not a fan of (the hydra-like)
systemd (like myself) you may have chosen to stick with the System V
init which is a bit more mature (by a couple of decades?) like what I've done - however even then you may not see much difference when you use
sudo telinit # where # is a different run-level number (or letter?).
On my system, I see the only difference for the run-levels 2 to 5 is that 2 does not run
lightdm i.e. the system that starts
X and presents a GUI login screen does not run in that normal level which is the sort of thing I think you are wanting - to configure the differences there are various tools and for the RPi I see that I have
sys-rc-conf(8) which has both a CLI and a GUI - so read the
man page for that or do an
apropos run level and see what else might be relevant.
Actually the reason I do not use
systemd also has a connection to the fact that my RPi is running with an RPi specific UPS and I have written a daemon that communicates vital information to
init ("um, the power has failed and the battery is running out - shutdown now please before it is completely exhausted!") via it's
/run/initctl interface and the
systemd source code for this, instead of doing anything with the messages merely logs:
Received UPS/power initctl request. This is not implemented in systemd. Upgrade your UPS daemon! - and I can't be arsed to do so when the
init API is well defined and works perfectly well for me... 8-)