×


Process to save terminal output to a file under Linux

Are you have troubles saving the terminal output to a file when using BASH/KSH/CSH/TCSH in your Linux operating systems?

This guide is for you.

A terminal is an interface in which you can type and execute text based commands to carry out a particular action on a Server or system.
Here at LinuxAPT, we regularly help our Customers to perform Linux related Tasks as part of our Server Management Services.
In this context, we shall look into the steps to save terminal output to file for your Linux Server.

More about Terminal command output?

Basically, command output can be saved by redirecting it to a file. The standard streams for input, output, and error are as follows (also known as file descriptors):

i. stdin (numeric value 0) – Keyboard
ii. stdout (numeric value 1) – Screen/display
iii. stderr (numeric value 2) – Screen/display

Here, 1 represents stdout and 2 represents stderr. Based upon the information we can:

1. Redirect stdout/stderr to a file.
2. Redirect stdout to a stderr OR redirect stderr to a stdout.
3. To redirect stderr and stdout to a file.
4. We can redirect stderr and stdout to stdout too.
5. Finally you can redirect stderr and stdout to stderr.

How to save terminal output to a file?

To save terminal output to a file (Lets say file name is file1.txt), you can use the following command which will send outputs to stdout and can be redirected to the fileas shown below:

command > file1.txt

To view the file, you can execute the cat command as shown below;

cat file1.txt

How to input data from a file to our commands?

Basically, you can read input from a file (lets call the file input.txt) using the following command and the file must already exist as shown below;

command < input.txt
cat < /etc/passwd
wc -l < /etc/passwd

How to append output to a file?

To append output to a an already existing file (Lets say file2.txt), it will get overwritten when the command is executed as shown below;

command >> file2.txt
echo "------------------" >> mydate.txt
ls -l /etc/resolv.conf >> mydate.txt

To verify the file, simply run;

cat mydate.txt

What is happening here is that the file (mydate.txt) as shown above will be overwritten unless the bash noclobber option is set using the set command. For instance, turn off noclobber option by running the command;

set -o noclobber
echo "some data" > mydata.txt

How to redirect stderr to a file?

Let say the name of the file is file5.txt, then simply execute the following command to redirect stderr;

command &> file5.txt
command &>> file5.txt

Alternatively, you can use the command;

command 2> file5.txt
command 2>> file5.txt

How to suppress error messages on Linux Terminal?

To suppress error messages, simply run the following command as shown below;

command 2>&-
find . -iname "*.txt" 2>&-

Alternatively, you can redirect error messages (stderr) to standard output (stdout), by executing the command:

command 2>&1
echo "foo" 2>&1
kill $target_pid 2>&1 > /dev/null

How to redirect both stdout and stderr to a file?

In order to redirect both stdout and stderr to a file (output.txt), simply execute;

command 2>&1 | tee output.txt

How to combine redirections of a file in a terminal?

To combines input and output redirection, the following command can be used. The file "output.txt" is checked for spelling mistakes, and the output is redirected to an error log file named err.log:

spell error.log

How to redirect screen output (stdout) and errors (stderr) to /dev/null?

In order to redirect screen output, simply run the following command;

command > /dev/null 2>&1
/path/to/script.py > /dev/null 2>&1

To Redirect both standard error and standard out messages to a log file, execute:

command > log.txt 2>&1
/path/to/my-appname.py > my-appname.log 2>&1


[Need urgent support to install Software on your Linux Server? We are available to help you today.]


Conclusion

This extract will guide you on how to save terminal output to a file when using Linux or Unix-like operating system with modern shell such as Bash or KSH including POSIX syntax.