Test

Increase your terminal productivity

Article featured image

The terminal

Most developers and designers use the terminal everyday but it can be tough to learn all the pre-written aliases that speed things up for you.

I'll go over some of the aliases and techniques I use to speed things up a bit 🚀

Assumptions

I'm on OSX and using Homebrew, ZSH and iTerm2 as my terminal.

Install Homebrew

/usr/bin/ruby -e "$(curl -fsSL
	https://raw.githubusercontent.com/Homebrew/install/master/install)"

Install iTerm2

brew cask install iterm2

Install ZSH

brew install zsh

Out of the box

Now that you have these three things installed, it is already easier to do a lot of stuff

Homebrew

As you saw above, installing applications is really simple with Homebrew. It's also as easy to update and remove them.

ZSH

Now that you're using ZSH, auto_cd will be enabled by default.

This means that instead of typing cd mydir/anotherdir, you can omit the cd altogether.

Tab completion should also be set up so if you start typing a command or a filepath, hit tab and options will be shown to autocomplete your command.

iTerm2 themes

You can customise iTerm2's themes so that they look pretty cool:

iTerm2 Theme

Check out this link for instructions on how to style yours.

Aliases

You may find yourself typing the same commands over and over again, maybe even a sequence of commands.

Aliases allow you to write your string that will perform any given command.

Now that you're using ZSH, in your home directory (cd ~) there will be a hidden file .zshrc.

Open that file:

open ~/.zshrc

In there you'll see a bunch of config code, most of it commented out. Have a look through it to see if there's anything in there you'd like to enable.

Once you're done, scroll right to the bottom and you'll see some aliases.

You'll now be able to write your own aliases using the following syntax.

alias myaliasname = "command(s)"

My own .zshrc file looks like this:

# Set personal aliases, overriding those provided by
oh-my-zsh libs, # plugins, and themes. Aliases can be placed here, though
oh-my-zsh # users are encouraged to define aliases within the ZSH_CUSTOM folder.
# For a full list of active aliases, run `alias`. # # Example aliases # alias
zshconfig="mate ~/.zshrc" # alias ohmyzsh="mate ~/.oh-my-zsh" alias installRun =
"npm i && npm run dev" alias ls = "ls -a" alias share = "php -S
'10.54.4.120:3000'"

You'll can see my installRun alias contains more than one command that I've strung together using the && operator.

Git

I find the built in alias gcam particularly useful when commiting files to my git repositories.

It means that instead of writing:

git add . git commit -m "My commit message" git push

I can simply write:

gcam "My commit message" && gp

Some other useful built in aliases that speed up your git workflow:

# Check the status of your working tree gst [git status] #
Pull from origin gl [git pull] # Push to origin gp [git push] # Switch to branch
gco
<branchname>
	[git checkout
	<branchname
		>] # Switch to new branch gcb branchname [git checkout -b
		<branchname
			>] # Push new branch and set origin to a new branch of the same name gpsup
			[git push --set-upstream origin $(current_branch)] # Fetch origin gfo [git
			fetch origin] # Stage all changes gaa [git add --all] # Commit with
			message gcmsg "Your commit message" [git commit -m "Your commit message"]
			# Stage and commit everything in your working tree gcam "Your message
			here" [git add --all && cit commit -m "Your message here"]

The list of git aliases is huge so it's worth looking them up to decide which are most useful to you.

Have fun!

Tags:

Terminal, Productivity, zsh, shell, aliases, git, iTerm2, Homebrew