rlwrap
Working in Linux, we normally have fairly well-made shell programs to work with. Convenient libraries such as GNU readline (http://tiswww.case.edu/php/chet/readline/rltop.html) developers are able to quickly and effortlessly add command history, movement within the line, and all the other nice things we have been taught to expect. Unfortunately, some programs do not do this, something I unfortunately found I would have to deal with while using sqlplus for my databases class this semester. Fortunately, with a little help from google, I was able to find a nice wrapper program that would add the expected readline functionality to any other program! rlwrap (http://utopia.knoware.nl/~hlub/rlwrap/#rlwrap) has so far been an absolute lifesaver and I am reasonably sure it alone will be making this class bearable for me. I have no idea how it works (I will be checking the source code at some point…maybe…) so I am just going to say it uses magic to add the functionality I expect every program to have to the programs that do not have it.