I don't quite understand how the computer reads this command.cat file1 file2 1> file.txt 2>&1If I understand, 2>&1 simply redirect Standard Error to Standard Output.By that logic, the command reads to me as follows: concatenate files file1 and file2. send stdout from this operation to file.txt.send stderr to stdout.end?I'm not sure what the computer's doing. By my logic, the command should be cat file1 file2 2>&1 > file.txt but this is not correct.  
Order of redirections
bash;shell;command line;io redirection;file descriptors
I find it easier to think of using assignments.> is like =& is like $You start out with1 = /dev/tty2 = /dev/ttythen your first example, 1> file.txt 2>&1, does1 = file.txt2 = $1           # and currently $1 = file.txtleaving you with1 = file.txt2 = file.txtIf you did it the other way, again you start with1 = /dev/tty2 = /dev/ttythen 2>&1 > file.txt does2 = $1           # and currently $1 = /dev/tty1 = file.txtso the end result is1 = file.txt2 = /dev/ttyand you've only redirected stdout, not stderr.