Your shell comes with three file descriptors as follows:
- stdin – 0 – Standard Input (usually keyboard or file)
- stdout – 1 – Standard Output (usually screen)
- stderr – 2 – Standard Error (usually screen)
Tutorial details | |
---|---|
Difficulty | Easy (rss) |
Root privileges | No |
Requirements | None |
Time | 1m |
What is a null (/dev/null) file in a Linux or Unix-like systems?
/dev/null is nothing but a special file that discards all data written to it. The length of the null device is always zero. In this example, first, send output of date command to the screen and later to the /dev/null i.e. discards date command output:
### Show on screen ### date ### Discards date command output ### date > /dev/null
Syntax: Standard Error (stderr -2 no) to a file or /dev/null
The syntax is as follows:
command 2>/dev/null command arg1 arg2 2>/dev/null date bar 2>/dev/null ls -foo 2>/dev/null
In this example, send output of find command to /dev/null:
$ find /etc -type f -name '*' 2>/dev/null
The following example will cause the stderr ouput of a program to be written to a file called errors.txt:
$ find /etc/ -type f -name "*" 2> errors.txt
Linux and Unix redirect all output and error to file
The syntax is:
## send command output to output.txt and error message to error.txt ## command > output.txt 2> error.txt command -arg1 -arg2 > output.txt 2> error.txt
If you want both stderr and stdout in same file, try:
command > log.txt 2>&1
Use cat command to display log.txt on screen:
cat log.txt
See man pages for more information – ksh(1).
🐧 4 comments so far... add one ↓
Category | List of Unix and Linux commands |
---|---|
File Management | cat |
Firewall | Alpine Awall • CentOS 8 • OpenSUSE • RHEL 8 • Ubuntu 16.04 • Ubuntu 18.04 • Ubuntu 20.04 |
Network Utilities | dig • host • ip • nmap |
OpenVPN | CentOS 7 • CentOS 8 • Debian 10 • Debian 8/9 • Ubuntu 18.04 • Ubuntu 20.04 |
Package Manager | apk • apt |
Processes Management | bg • chroot • cron • disown • fg • jobs • killall • kill • pidof • pstree • pwdx • time |
Searching | grep • whereis • which |
User Information | groups • id • lastcomm • last • lid/libuser-lid • logname • members • users • whoami • who • w |
WireGuard VPN | Alpine • CentOS 8 • Debian 10 • Firewall • Ubuntu 20.04 |
How about?
Your command will send output to both screen and file.
Typo:
command 2>&1 > log.txt
Should be:
command > log.txt 2>&1
Thanks for the heads up!