File descriptors

File descriptors are shorthand for stdin, stdout and stderr:

File descriptorNameCommon abbreviation
0Standard inputstdin
1Standard outputstdout
2Standard errorstderr

They are typically used when you want to redirect the output of the standard/input /output/error somewhere, e.g a file or as input to another program. A classic case is [some_command] > /dev/null 2>&1

They are all technically “files” which are open and which append themselves to every process that can run in the shell. For any command or program that you run, you will be able to access 0, 1 and 2 for them. In this way they are similar to variables like $0 and $@. They have a universal meaning within the context of the shell runtime.