7

How to redirect all commands executed on the bash to /dev/null ?

It's obvious that for a command we have to do:

command > /dev/null  2>&1

How about all commands that will be executed further on ?

TheForbidden
  • 1,533
  • 4
  • 22
  • 30

3 Answers3

5

Simply start a new shell:

bash >/dev/null 2>&1

Now you can type commands blind :) If you want to leave that mode type: exit

But typing commands blind will normally not what you want. So I would suggest to create a text file like script.sh, place your commands in it:

command1 foo 
command2 bar

and than execute it using:

bash script.sh >/dev/null 2>&1

The ouput of all commands in that script will be redirected to /dev/null now

hek2mgl
  • 152,036
  • 28
  • 249
  • 266
3

Use exec without a command:

exec > /dev/null 2>&1

As hex2mgl pointed out, if you do this in an interactive shell, you won't even see your prompt anymore, as the shell prints that to standard error. I assume this is intended for a script, as it doesn't make a lot of sense to ignore all output from commands run interactively :)

chepner
  • 497,756
  • 71
  • 530
  • 681
  • It's not blocked; all output (both standard output and standard error, which includes your prompt) has been redirected to `/dev/null`, as requested. – chepner May 22 '13 at 16:12
  • `exec 2>/dev/null`. But that will still redirect your typing and the prompt to `/dev/null`/. – chepner May 22 '13 at 16:21
0

for scripting or other practical purpose, grouping the command is a nice solution. check http://www.gnu.org/software/bash/manual/html_node/Compound-Commands.html It says specifically Any redirections (see Redirections) associated with a compound command apply to all commands within that compound command unless explicitly overridden.

abasu
  • 2,454
  • 19
  • 22