Unity keyboard Shortcuts

unity keyboard shortcuts

Your Unity keyboard shortcuts documentation is here! Bookmark this page for future reference or download the wallpaper containing all unity keyboard shortcuts, download link in later half of this page.

A “Super” user will make most out of his keyboard with less/no use of mouse as it slows one down. Here we have documented some keyboard shortcuts for Unity which can help you get your task done more efficiently and quickly. Unity shortcuts, well most of them, start with tapping SUPER key. Since 12.04, tapping Entershows up following screen:

unity keyboard shortcuts 12.04

Launcher Shortcuts

The launcher can be started with Super key.
Super can be used along with numbers to invoke or focus an application. Numbers run from top to bottom on dash such as top most icon corresponds to number 1. For example, to open or to set your focus on second icon from top : Super + 1
Using Shift will open the second instant of an application if one is already open.
To open the trash: Super + T
To put focus on Launcher, use Alt + F1. Henceforth Enter will open the application, arrow keys can be used to move focus like they always do.
Terminal window launches open with Ctrl + Alt + T

Dash Shortcuts

Open the dash by tapping Super key. It opens when the key is released and when it is pressed so it might feel a bit slow.
Move to the next lens: Tab (11.10+ only)
Move to the previous lens: Shift + Tab
Dash’s special mode for running commands: Alt + F2
When the dash starts, the focus is on search box. When search results are in, arrow keys can be used to do usual and Enter launches the choice. It also has its own version of “I’m feeling lucky”. When the search is still going on, tapping Enter twice will invoke the first search result.
To open application lens: Super + A
To open Files and Folders: Super + F
For music lens: Super + M(11.10+ only)

Panel Shortcuts

Open the first menu on panel: F10. Arrow keys for moving through menus.
You can get to session menu by hitting F10 followed by left arrow key.
Get out of menus with Esckey.

Window Management Shortcuts

Spread mode: Super + W (It zooms out all windows on all workspaces)
Minimize all windows: Super + D. Restore by hitting it again.
Switch between applications: Alt + Tab
Switching between an application’s windows: Alt + `. It switches only between windows related to that application.

Window placement Shortcuts

Maximize window: Ctrl + Alt + 0
Position window in bottom-left: Ctrl + Alt + 1
Position window in bottom-half: Ctrl + Alt + 2
Position window in bottom-right: Ctrl + Alt + 3
Position window in left side of screen: Ctrl + Alt + 4
Position window in middle of screen: Ctrl + Alt + 5
Position window in right side of screen: Ctrl + Alt + 6
Position window in left top: Ctrl + Alt 7
Position window in top half: Ctrl + Alt + 8
Position window in right top: Ctrl + Alt + 9

Workspace Management Shortcuts

(Expo mode) Zoom out on all windows which makes management easier: Super + s
Expo mode in current workspace only: Shift + Alt + ↑
Change workspace: Ctrl + Alt + ↑/↓/←/→
Position window on new workspace: Ctrl + Alt + Shift +↑/↓/←/→
Lock current screen: Ctrl + Alt + L

Screenshot Shortcuts

Screenshot of current screen: PrtScn
Screenshot of current window: Alt + PrtScn


These unity keyboard shortcuts can be found in following wallpaper:

unity keyboard shortcuts

Above wallpaper is in English, we also have its Spanish translation:

unity keyboard shortcuts spanish

KDE 4.8 is out!

kde 4.8

KDE development team revealed the latest version- KDE 4.8 and will be available for users to install and taste the all new KDE 4.8 loaded with features and enhancements. Major portion of update is occupied by Plasma Workspace. Changes introduced with this update are listed below:

  •          Image scrolling made easy is  Gwenview
  •          You can choose from different window switcher layouts (Six of them).
  •          KMail goes more stable
  •          File loading in Dolphin is even more faster
  •          Secured password sharing with KSecretService
  •          Improved power management

KDE 4.8 screenshot

How to install KDE 4.8 in Ubuntu

Users with Ubuntu 12.04 wait for it show up in update manager, few hours to go!
Kubuntu users will enjoy KDE 4.8 in few weeks, stay tuned.

sudo command

sudo command

sudo command is required when executing a command with some other user’s permission. Other user can either be root or else. Why we need to execute command with root’s permission? There are some commands that do some change in the system which are dangerous and can bring the system down, only root has such permissions.

sudo command


One can also switch user via su command and then execute the desired command but sudo is much more secure than su. Commands (along with arguments) executed with sudo are logged in a file. For Red Hat distros, /var/log/secure saves all the logs and for debian based, its /var/log/auth.log.

The file /etc/sudoers can be edited for configuring sudo and giving privileges to individual users or group of users.

Setting up sudo

For an individual user

Syntax for allowing an individual user (here Ayush) is:

ayush ALL=(ALL) ALL

“ayush” here is username of the user you want to allow
“ALL” specifies that sudo is accessible from all terminals
“(ALL)” specifies all users
“ALL” for all commands

For a group

Entry in sudoers file goes like:

%linuxstall ALL=(ALL) ALL

“linuxstall” can be replaced by the name of group.

Execute commands as root

Once the sudoers file is all set, you can now execute commands as root. For an instance, mount command can only be executed by root, but things go well with sudo.

 sudo mount /dev/sda1 /mnt


Use sudo command on the fly while editing in vim

There are some files that only root can save (say /etc/group) but having sudo in hand, it can be done as follows:

sudo vim /etc/group

But, if you have opened the file as a normal user and wish to save but unable as only root can do that- sudo is your friend:

:w !sudo tee %

Above command will the save the file for you as a root even when you didn’t use it while opening. sudo just doesn’t mind!


If a user is not listed in sudoers file and tries to use sudo, admin will be notified by making a log entry and user will get following error:

<user> is not in the sudoers file. This incident will be reported.

View log files in real time

log files in realtime in linux

Most of the log files in linux can be found in /var/log . You can go to this directory with cd command but root permission is required.

cd /var/log

To view the log files in real time:

tail -f /path/toFile.log

For example, to view the live version of yum log files execute tht following command:

tail -f /var/log/yum.log

Microsoft’s attack on Linux: The hardware way

Microsoft restricts Linux on ARM

Microsoft did it again! This time by putting the gun on shoulders of ARM hardware makers. Their hatred for Linux is not a new issue, they have always been figuring out ways to edge out Linux. It has been in news that, Microsoft wishes ARM hardware manufacturers to make it impossible disabling UEFI secure boot feature which is required by Windows 8.

What is secure boot?

Secure boot is a scheme that checks all the stages of booting cryptographically maintaining the integrity of code under execution. It restricts the malicious or unauthorized software from running.

A Walkthrough

Later in the last year, Microsoft stated that secure boot would be required in order to boot Windows 8. Secure boot, as mentioned above, keeps ‘keys’ by itself inside the system. These keys are required if a software needs to run, Operating systems included. If the operating system is not ‘signed’ by a respective key, it cannot boot!

Microsoft is totally using secure boot the wrong way, with the prime intention of locking out Linux. Microsoft made crystal clear instructions for vendors:

MANDATORY: Disabling Secure MUST NOT be possible on ARM systems.

Which is in contrast to statement they made it on their blog:

Who is in control?
At the end of the day, the customer is in control of their PC. Microsoft’s philosophy is to provide customers with the best experience first, and allow them to make decisions themselves.

How the customer is in control if he is not allowed to disable features on the device he paid for! If it goes on this way, Linux users would be ‘forced’ to buy a Windows license which is so not fair.

Difference between Unix and Linux

difference between Unix and Linux

When it comes to operating systems, Unix is the mother of operating systems. Members of rich Unix family are:

  • SVR4 (by AT&T)
  • BSD 4.4 (by University of California)
  • HP-UX (Hewlett-Packard)
  • Solaris (Sun Microsystems)

Mostly, Linux is considered to be a copy of UNIX. Lets hear the actual story now. Linux was actually a late addition to the family. It was written by Linus Torvalds back in 1991 and it was meant for IBM computers. As a matter of fact, in the world of operating systems, Linux has come up as a great operating system and it is welcomed with huge popularity. Commercial enterprise servers are running on Linux. Another cherry on the cake, Laptop and PC companies are also providing GNU Linux as a pre-installed OS on their systems so that individual users can also get a bite of it.

An extensive brain storming confusion is if Linux a kernel or Operating System. After some time, people just start ignoring this doubt as it never gets answered, well keep reading for the solution. What Linus Torvalds wrote was Linux kernel and it had a lot of features similar to UNIX one. Why it is confused with OS, actually commercially available distributions that provide graphical interface, compilers and other utilities along with Linux kernel are referred to as Linux Operating System.

Linux is, as they say, a UNIX-like kernel, because it has ‘some’ common features but still there are areas where they are not same. Difference between Unix and Linux can be understood by going through following points.

1. The difference in approach: There is a class of kernels that fall in Monolithic category, Monolithic ones are those which operate in one and only one process, they don’t have any other process for any kind of task. Another category is called Micro-kernel where core of the kernel is assigned one process while other processes are there for its side tasks like drivers, etc. Linux lies within Monolithic category with few exceptions in Micro-kernel.

2. Loadable kernel Modules: Unix systems are bound to have static links of new modules to be added or recently added. Linux differs here too, it supports new additions on the fly. For example, drivers can be loaded dynamically whenever they are needed. This feature is recognized as Loadable kernel Modules (LKM). This feature enables us to add any component dynamically without arising the need of compiling the whole kernel again. Unloading can also be performed in similar fashion. This adds to the flexibility of Linux.

3. Kernel threads: Kernel thread is an independent execution flow. It can be used to execute some user process or any kernel code. Most of the UNIX-like systems constitute kernel thread sets. Threads always operate in same address space, so it is not expensive to perform context switching on kernel threads in comparison to processes- this explains why Unix-like systems have kernel threads. Kernel threads are used, on linux, to execute kernel code.

4. Multi-threading: Multi-threaded applications are those which create multiple execution flows. These flows are also known as threads and are light weight processes. Nowadays all operating systems have support for multi-threading. Most of the UNIX-like operating systems LWP (read light weight process) are kernel thread based, while on the other hand Linux handles them a bit differently. In linux, LWP are created by calling the clone() function which leads to creation of separate processes. Same task can also be carried out with fork() function but clone() lets recently created processes share their memory, address space etc. Their working in shared environment gave them a name “threads”. Hence, multi-threading is supported by both of them but they differ in internal handling of it.

5. Preemption and non-preemption: We have a category of kernels which are able to pre-empt currently executing process and hence we call the preemptive kernels. Processes are run on a priority basis. If currently executing process is a low-priority one and a high-priority one process comes up, it can interrupt the current process and start executing itself. Non-preemptive kernels are those which don’t forcibly interrupt the current process even if a high-priority process has to wait. Linux based operating systems are non-preemptive while UNIX systems are fully preemptive. Linux based Realtime operating systems are found to be fully-preemptive.

Bottom line, despite taking the basic idea from UNIX it still differs in some aspects because it has inherited a lot from it and will always be considered a part of Unix family.

How to install rpm package on linux ?

install rpm package

install rpm package

RPM was the most famous way of installing packages on a Red Hat based linux box, nowadays other distros are also using RPM to support their software, Suse and Mandriva fall in the zone. RPM stands for Red Hat Package Manager. RPM lets you install a package, upgrade and uninstall the same. It also allows a querying functionality which lets one know about already packages installed on the system.

RPM packages are those with a .rpm extension. RPM packages contains the actual software to be installed and other files that are needed to carry out its installation. RPM packages are distributed distro specifically. Any attempt to install one distro-specific package on another distro might result in undesired consequences. You have been warned !

Graphical installation tools install a package in few clicks but here discussed is old school command line method which has its own legacy.

From here on, you need to have root’s privileges.

To install rpm package, rpm command is used along with -i option which clearly stands for “install”:

rpm -i package.rpm

Packages are subjected to regular upgradations, to update an installed rpm package, engage following code.

rpm -U package.rpm

On a fine day, everything will go well and the rpm package will be installed on your system ready to be launched from command line. Installed software, rather than creating its own directory, goes into pre-created linux directories. Executable files find their path to specific bin directories. To shoot the program from command line, the whole path is not needed just the program name is sufficient.

If things go south during installation, it can be very irritating. Most famous error that comes up is due to failed dependency. Dependencies are the packages that are needed for installing package to mover further in installation process. They are just software that are needed for proper functioning of the package being installed. While installing, the database is checked for needed packages, if not present, it stops the installation process due to failed dependency.

To rectify, one way is to install/upgrade those missing packages (don’t worry it will tell you which packages are not present ) then continue with the current installation. Some times, this error is as meaningless as ‘ay’ in ‘okay’. An entry is made in database only when the package is installed via rpm. If any other method is used, the entry is not made and despite presence of files, “failed dependency” error shows up.

When you are sure that the needed files are already on your system, you can skip the dependency check and install rpm package anyway.

rpm -i package.rpm --nodeps –nodeps option installs it without checking for dependency.

If you try to fool your system by going with –nodeps right away, the program won’t work at all.

Removing the rpm package

rpm command along with -e option is used to remove a package installed with rpm.

rpm -e package.rpm -e is for “erase”

Note: While installing rpm package we included the whole package name but at the time of removing- only the program name can be used ignoring the extension.

rpm -e package This code works the same as above.

It removes all the files related to that package and also deletes the entry from database. Manually removing individual files will not affect database which can lead to dependency errors in future.

Making a query to database:

As mentioned earlier in the very article, the database knows what packages are installed on the system. The database can be queried to check if certain package exists on the database. For a single package query, command goes like:

rpm -q package

If the package is present, it returns the version of package installed, else, it says the package is not installed.

To list all the rpm packages installed on the system, run :

rpm -qa

To check for certain package in the list, “grep” can be used. We will cover that later, stay tuned.

How to install software in linux from source file (.zip, .tar.gz, .tar.bz2) ?

Before getting your hands on it, here is a heads up, installing package from source is not the most preferred method. Few might find in a difficult method. It is recommended for experienced Linux users or those who have a thing for exploring more. Generally mostly used software are shipped with the OS and the rest can be easily installed from their respective package managers.

Moving forward, standing by the definition of open source, some packages are in the form of source code. They are distributed this way. One can download the source file for the desired application, it is then unpacked, compiled to turn it into binary. Upon completion you would find that it is not that tough job. Most of the software you would require are still distributed in source form.

The source files all over the Internet are found (not only) in the zip file for tarball. Extensions like “tar.gz” or “tar.bz2” or “.zip” are a common view. It is recommended to follow this procedure from your home directory. From now on, it is assumed that the downloaded file resides in “src” in home directory. Lets create one:

mkdir $HOME/src

Navigate to “src” direcotry through “cd” command.
cd $HOME/src

Lets see what we have in their by using “ls” command which is used for listing directory contentss.

We can see our recently downloaded source file. We now need to unpack it. Different methods are employed to unpack different kinds of files.

For .zip :

For .tar.gz :
tar -xvzf

For .tar.bz2 :
tar -jxvf

Now you will see a new directory having all source files. Use ls to see if it exists.

Now go in that direcotry.

At this stage, few applications have an INSTALL file and some don’t.
If it is there(use ls command to check) then you can read it by “more” command.

Lets proceed with installation, it is completed in three stages:

  • Configure
  • Compile
  • Install

For pre-installation configuration:
This will check your system for essential requirements and is responsible for creation on “makefile”. “MakeFile” is needed by “make” utility and directs it for how the compilation should be carried out.

If you encounter an error, forums are always at your disposal. Be sure to search for it before posting. Also include the output you are getting in the post along with your system specifications. OR you can post in here in comments as we will be pleased to help you with that.

When you are done with configuration phase, next comes Compilation. Use “make” to compile it, compilation is carried out by following the instructions in “MakeFile”.

Final step, install binaries in the system. To do so, you need to be root. “su” command is used to switch user. Enter the password when prompted.

To finalize the installation, execute:
make install

And voila ! Now you know how to install software in linux. You might want to check the software documentation.

How to run a Linux Shell Script?

Have you ever wondered how you can run a script in Linux?
Every script that needs to run should have a execute permission. By default it is refrained from such permission. One has to assign execute bit manually. In order to do so execute following command:

#chmod +x SomeScriptFile
#chmod 0755 SomeScriptFile

ls command can be used to check permissions on files:
# ls -l /bin/uname

-rwxr-xr-x. 1 root root 25948 Feb 8 2011 /bin/uname

[uname is being used for an example, it can be replaced with any script]

To run script:
$ ./SomeScriptFile [Enter]

You can also execute by specifying its full path
$ /full/path/here/SomeScriptFile.sh

For executing it in ksh shell:
$ ksh SomeScriptFile

For executing in bash shell :
$ bash SomeScriptFile


Creating a test shell script test.sh, any text editor can be used.
echo “ Hello, Free World”
echo “ You are at : $(pwd)”

After saving this file, set the execute bit:
$ chmod +x test.sh
$ ./test.sh

./ can be omitted if current directory has its entry in PATH variable. It is advised to have your own bin directory. Add this directory to PATH variable using export command. Move your recently created script in this directory and save all the hassle of writing whole path, now you can execute this command from anywhere. This procedure is shown below:

$ mkdir $HOME/bin
$ export PATH=$PATH:$HOME/bin
$ mv test.sh $HOME/bin
$ test.sh

How to install RPM package on Ubuntu?

install rpm on ubuntu

Ubuntu users are used to using Synaptic for their software needs and the other user chunk has apt-get via command line. But Ubuntu users don’t have to be sad for those packages which are still distributed in RPM format. Installation of RPM packages can be checked here.

If an Ubuntu user wishes to install a RPM package, a utility is created for this purpose and is called Alien. This doesn’t guarantees that the package will work, its actually a software that converts format of the package. In order to install Alien some prerequisite software are also required including gcc and make.

To install Alien utility, following code should be executed:

sudo apt-get install alien dpkg-dev debhelper build-essential


For performing conversion, run the following command:

sudo alien SomePackage.rpm

To continue with the installation, dpkg tool can be used as follows.

sudo dpkg -i SomePackage.deb