For me:<p>tee - for some tasks I want the output saved to disk but I also want to see the output in real time.<p>time - obvious is to kill a process after a period of time. But you can also send other signals to suspend a task or have it behave a certain way (dd for example will output stats with SIGUSER I believe)<p>strace - let's face it,most programs don't communicate unexpected or unusual conditions well. So, when a program hangs,behaves poorly or crashes with a vague error I sometimes use strace to tell what syscalls are being made,what network connections or files are being opened before the trouble creeps.<p>python - wanted to put sed,awk or grep here but I so wish I learned python sooner. These days, I open up a python repl and solve the problem where I would have used awk,sed or grep (for anything that appears a bit complicated to solve). Best part: I find it easy and convenient to integrate whatever I prototypes in repl into a well designed script I can easily include in other scripts. I just find python extremely mallable.