I am using Ubuntu 12.04. Is there any way to lock the screen or session from a terminal command or script?
The following can also work, if the screensaver is set to lock when activate (see screensaver settings), since the command activates the screensaver:
You can add an alias to the command by editing the file
.bash_aliases) in your home directory:
and adding the following line:
alias lock='gnome-screensaver-command -l'
Then from terminal:
This will activate the alias.
From now on, the alias
lock in a terminal will have the effect of locking the screen.
In addition to what January said, this also works:
According to the
gnome-screensaver-command man page...
-l, --lock Tells the running screensaver process to lock the screen immediately -a, --activate Turn the screensaver on (blank the screen)
For further clarification, here is another question/answer (also by January) which describes the differences between invoking the lock and activating your screensaver:
Starting in Ubuntu 14.04, Unity's lock screen no longer uses gnome-screensaver. The command
gnome-screensaver-command -l will still work in most cases, but see this question for exceptions.
If that command does not work (say, for instance, that gnome-screensaver is not installed), bringing up the proper Unity lock screen (not the greeter where you can switch users) can be done via this command in a terminal:
dbus-send --type=method_call --dest=org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock
In case that you need to lock the screen on a terminal in a non-GUI environment you could make use of screen
screen press the following key combinations to lock the terminal.
Ctrl + a
Ctrl + x
For LightDM users, try
A dirty hack of using the shortcut Ctrl+Alt+L for the locking the screen from a terminal:
Install xdotool from the software center or from the terminal as follows:
sudo apt-get install xdotool
Type the following to lock the screen from the terminal:
xdotool key Ctrl+alt+l
Refer to the manual page for xdotool for more.