Is there a way to completely restart Bash and reload
.profile and the like? I'd like to make sure my changes worked out properly after editing these files.
Have it replace itself with itself.
exec bash -l
Note that this won't affect things such as the cwd or exported variables.
I urgently suggest to log in on a separate window/screen. This way you still have a working session if something goes wrong with your changes to startup files. Also you are sure to have a clean environment.
Reason: I saw too many people locking themselves out of a system because of a simple typo in their .profile (or such).
If your goal is simply to read the modified files again, you don't have to restart it. You can simply source it.
. filename # notice the dot
Note that this won't give you a "clean state" in a sense that it won't unset any set variables or defined functions...
su -l yourOwnUserName
Will open a fresh shell for
yourOwnUserName user with all the settings re-loaded. This is shell-independent, as it refers to system settings, not your specific shell. It also loads some system-wide settings that
bash -l does not (like user groups).