Why Shells are Awesome

I'm a developer, I think shells are awesome. When I was in ninth grade I took a class in typing with the 10-finger system, which was a full year of typing dull things into an incredibly old DOS interface. I took these classes, because I had a couple of those Linux magazines and the authors occasionally brought up how much faster things were if you just could use your keyboard, instead of your mouse. My problem was, that I couldn't type perfectly without looking at the keyboard. Recently, about a decade later, I just told my girlfriend that when she started talking to me I did the following:

12
CTRL+left_arrow
SPACE

In human language it means: open the fullscreen terminal, switch to the correct bash instance, pause mplayer, which was playing a podcast.

Sounds crazy to you? It really isn't. It actually is faster than clicking, even if it's only two times. Anyways this only is a little anecdote and what I wanted to write about is how I spend more of my day in the terminal again, which is helps my workflow a lot.

Essential Terminal Tools

I'm trying to run my own company and work in two professional fields at once. At the same time I'm studying, writing a book and got in on a part-time teaching job. This means I have a lot of projects to work on. To keep track of these projects I use git, which comes as a pretty powerful tool on the command line.

I use vim in a GUI container, because I test and copy stuff around once in a while. Also vim is not my only editor, but it's wonderful for typing and navigating through files. ;) It's become much more natural to me to use JKLH instead of the arrow keys.

You can Replicate

Having a system that remembers stuff for you becomes pretty important. Sure, you have to remeber some commands, but you can be pretty sure that a command you have learned, will not really change, you can just make up new ways to use them better. configuration files and scripts you write, will remain functional after going to another computer or even platform. If this wasn't true, I would be paranoid that my hard drive crashes all day, because let's face it: hardware breaks.

To be able to set up the same system by copying files contra having to click through a lot of windows is just crazy cool. I've started putting some of my config files on github to show fellow Linux user how optimised things or made them work in the first place.

Bash is not for elitist jerks only

If you're on Windows you're unlucky if you want to get more into shells, programming and understanding Linux server environments, which you probably would, if you're interested in building networked applications. Linux, *BSD and even MacOS have fairly nice terminal environments, which you can do most of anything with.

If you type a lot and are either front/back/any-end developer, a writer, blogger or just enjoy chatting at insane speeds and write some code once in a while, take a look at what the terminal can offer you. It's a lot and it's worth your time, because learning itself is fun.

Some scripts that make my life better

I've fiddled with a couple of things to automate common problems I have. One of them is hitting a character limit on reports, which you can easily automate with a combination of wc and ls. A little bonus is, that this script actually also counts image for 700 characters, which is my academies specification on how figures and graphics impact on your character count.

I just blogged about it here: Quick & Dirty: Character Counting

Another one is slightly cooler and helps me to create PDFs from a bunch of markdown files, because I like writing markdown, but my education requires documents with tables of content, page numbers and footnotes.

Check out how to build academical PDFs from markdown: Quick & Dirty: MarkDown to PDF.

Tagged with: #bash #git #gvim #macvim #shell #Terminal #vim

Thank you for reading! If you have any comments, additions or questions, please tweet or toot them at me!