I use the terminal a lot and aliases are a great way to both personalise my command line experience, but also to make some tasks a little easier (and sometimes, smarter 😎).
READER DISCOUNTSave $50 on terminal.training
I've published 38 videos for new developers, designers, UX, UI, product owners and anyone who needs to conquer the command line today.
This isn't rocket science, but I've got special aliases for my copy and paste commands. Since I use a Mac, the command line paste command is
pbpaste, which…well doesn't immediately sprint to mind. Equally, copy is
pbcopy and quite often I want to copy to my clipboard but also see what was copied.
There's just one addition that I like to add to the copy command: I find it useful to also copy the contents of files occasionally. So
copy for me is actually a function:
# make copy a function that checks whether there's an
# argument being passed, and if so, cat the file and pipe
# through copy. otherwise, pipe stdin into copy, then
# finally paste to stdout
if [ -t 0 ]; then
cat $@ | pbcopy
pbcopy < /dev/stdin
# and now alias paste to pbpaste, because gosh darnit!
Now I can pipe commands to copy or pass it a filename:
$ ps | copy
# copies and shows output from `ps`
$ copy blog-post.md
# copies and shows contents of `blog-post.md` via `cat`
Caution: there is an existing
paste command which this will overwrite. If you want to invoke the original command use
I hope that's useful. If you want to learn more, check out my terminal.training course.