When I launch an application from terminal related to the window system, for example gnome or kde, then usually these applications send all sorts of junk messages in my terminal. How do I make these applications shut up?

For example if I type:

 okular somepdf.pdf & 

a window which shows the pdf file pops up and I can read the pdf next to my terminal, and when I am done I close.

Here is a typical example:

:~$ cd Documents
:~/Documents$ okular equi.dvi &
[1] 5823

and when I close it sends this junk to the terminal:

:~/Documents$ okular(5823)/kdeui (kdelibs) KXMLGUIClient::~KXMLGUIClient: 0x2322528 deleted without having been removed from the factory first. This will leak standalone popupmenus and could lead to crashes. 

d: command not found
[1]+  Done                    okular equi.dvi
[1]+  Done                    okular equi.dvi

The only thing I would like to see is:

:~$ cd Documents
:~/Documents$ okular equi.dvi &

Perhaps that message was some bug, I do not care and I do not want to know about it.

Is it possible to suppress these messages?

Some people flagged this question as a duplicate to a question on "how to suppress output", but this is only partially what I want:

I want to automatically suppress all output of certain applications. For instance okular is a graphical application, so I will never care about what it has to say in my terminal.

So like I said above, I want the behavior to be :

:~$ cd Documents
:~/Documents$ okular equi.dvi &

and not something like

:~$ cd Documents
:~/Documents$ okular equi.dvi > whatever &

4 Answers 4


To suppress STDOUT:

yourcommand  1>/dev/null 

To supress STDERR

yourcommand  2>/dev/null

Since bash 4 you can suppress both:

yourcommand &>/dev/null

You could also disable KDE's debug information with kdedebugdialog tool and disable output for selected modules (or all debug output).


You can send the STDOUT and STDERR of the program to the dummy device /dev/null:

$ okular equi.dvi &> /dev/null &

To supress the job control messages, you can disable monitor mode in bash (maybe in your .bashrc):

$ set +m

I wouldn't recommend this, though. To enable it again, use set -m.


If you want to suppress all text, just use the following command:

$> yourcommand >/dev/null &

If you also want to redirect stderr, you can do so like this:

$> yourcommand >/dev/null 2>&1 &

Use this:

okular equi.dvi > /dev/null 2>&1 & 

this will send all output (error messages and regular output) to /dev/null.

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