How to copy the terminal output?

Solution 1:

There are 2 options,

  1. Either you can copy-paste the selected text using Ctrl + Shift + C and Ctrl + Shift + V in which you have freedom what things to copy OR

  2. Redirect the text to a file using redirection

    program1 >outputfile.txt 2>errorfile.txt

    here, all the stdout will go to outputfile.txt while all the stderr will go to errorfile.txt.

P.S. from the comments below,

  1. Select the text to be pasted, and use mouse middle button (scroll wheel button) to paste it at desired place.

Solution 2:

Save console output into a file:

  1. tee command

tee command - read from standard input and write to standard output and files.

It automatically creates file and save, all the output of cmd ps -ax into a file named as processes_info in the same folder from where the cmd has run.

user@admin:~$ ps -ax | tee processes_info
  1. script command

script command - make typescript of terminal session.

user@admin:~$ script my_console_output.txt

This creates a file named as my_console_output.txt and will open a subshell and records all information through this session. After this, script get started and whatever the console output, it will get stored in the file my_console_output.txt; unless and until the script ends when the forked shell exits. (e.g., when the user types exit or when CTRLD is typed.)

user@admin:~$ script -c "ps ax" processes_info.txt
  • it starts the script;

  • creates the file processes_info.txt;

  • stores the console output into the file;

  • end (close) the script.

    Other example:

     script -c 'echo "Hello, World!"' hello.txt
    

Solution 3:

As opposed to the solutions suggested above, you may get into a situation where the output was already printed and you weren't smart enough to know beforehand that you'd like to record it somehow.

In that case, you can at least save to a file the text that can be seen at the moment in your TTY using the backlog via /dev/vcs#. For example if you were using /dev/tty1, this terminal's backlog is available in /dev/vcs1 so for example:

# cat /dev/vcs1 > tty1.log

Credits are reserved for The Arch Wiki: https://wiki.archlinux.org/index.php/Copying_text_from_a_terminal#Accessing_Linux_terminal_backlog