I am following the following details from another question on this site

You can add an alias to the command by editing the file .profile in your home directory:

gedit $HOME/.profile

and adding the following line:

alias lock='gnome-screensaver-command -l'

Then from terminal:

source .profile

This will activate the alias. From now on, the alias lock In a terminal will have the effect of locking the screen.

But I have to hit source .profile every time I open a new terminal. I want to make this permanent. What should I do?

  • Could you please edit your question to include a link to the original post cited in your question? Thanks. Aug 29, 2017 at 16:43

3 Answers 3


After changing the .profile file, you have to logout from your account and login, then it will be sourced once automatically.

Also make sure these file does not exist in your home directory:


If you've got these files, the .profile will be ignored.

  • Alternatively, have ~/.bash_profile and/or ~/.bash_login evaluate ~/.profile. Aug 29, 2017 at 16:47
  • 1
    Look also for ~/.bashrc.
    – Redbob
    Aug 29, 2017 at 16:56
  • .bashrc doesn't have any effect on .profile being sourced or not, actually it's .profile which sources the .bashrc.
    – Ravexina
    Aug 29, 2017 at 17:00

~/.profile is evaluated (or “sourced”) automatically whenever a new interactive shell is started. The suggestion to run

source .profile

only refers to shell sessions that were started before the changes to ~/.profile were made.

Therefore you don't need to do anything in addition for these changes to take effect in new/future shell sessions.


I'd say aliases should go in ~/.bash_aliases rather then in ~/.profile, this way you have a nice own file for them and every new opened terminal will have them executed without the need to logout/login.

But to answer you question: To make your changes permanent, you need to do nothing but login once again. source ~/.profile won't be needed any more then.

Not the answer you're looking for? Browse other questions tagged .