Science and technology

My favourite Bash hacks | Opensource.com

When you’re employed with computer systems all day, it is incredible to search out repeatable instructions and tag them for simple use in a while. They all sit there, tucked away in ~/.bashrc (or ~/.zshrc for Zsh users), ready to assist enhance your day!

In this text, I share a few of my favourite of those helper instructions for issues I neglect quite a bit, in hopes that they are going to prevent, too, some heartache over time.

Say when it is over

When I am utilizing longer-running instructions, I usually multitask after which have to return and test if the motion has accomplished. But not anymore, with this useful invocation of say (that is on MacOS; change on your native equal):

operate looooooooong bc)
    RES=$(python -c "diff = $DIFF; min = int(diff / 60); print('%s min' % min)")
    consequence="$1 completed in $RES, exit code $EXIT_CODE."
    echo -e "n⏰  $result"
    ( say -r 250 $consequence 2>&1 > /dev/null & )

This command marks the beginning and finish time of a command, calculates the minutes it takes, and speaks the command invoked, the time taken, and the exit code. I discover this tremendous useful when a easy console bell simply will not do.

Install helpers

I began utilizing Ubuntu again within the Lucid days, and one of many first issues I wanted to study was methods to set up packages. And one of many first aliases I ever added was a helper for this (named primarily based on the memes of the day):

alias canhas="sudo apt-get install -y"

GNU Privacy Guard (GPG) signing

On the off likelihood I’ve to signal a GPG e mail with out having an extension or utility to do it for me, I drop down into the command line and use these terribly dorky aliases:

alias gibson="gpg --encrypt --sign --armor"
alias ungibson="gpg --decrypt"

Docker

There are many Docker instructions, however there are much more docker compose instructions. I used to neglect the –rm flags, however not anymore with these helpful aliases:

alias dc="docker-compose"
alias dcr="docker-compose run --rm"
alias dcb="docker-compose run --rm --build"

This one is comparatively new to me, but it surely’s heavily documented. gcurl is an alias to make sure you get all the right flags when utilizing native curl instructions with authentication headers when working with Google Cloud APIs. 

Git and ~/.gitignore

I work quite a bit in Git, so I’ve a particular part devoted to Git helpers.

One of my most helpful helpers is one I take advantage of to clone GitHub repos. Instead of getting to run:

git clone [email protected]:org/repo /Users/glasnt/git/org/repo

I arrange a clone operate:

clone()
    echo Cloning $1 to ~/git/$1
    cd ~/git
    git clone [email protected]:$1 $1
    cd $1

Even although I at all times neglect and giggle any time I am diving into my ~/.bashrc file, I even have my “refresh upstream” command:

alias yoink="git checkout master && git fetch upstream master && git merge upstream/master"

Another helper for Git-ville is a worldwide ignore file. In your git config –global –list it’s best to see a core.excludesfile. If not, create one, and fill it filled with issues that you just at all times put into your particular person .gitignore information. As a Python developer on MacOS, for me that is:

.DS_Store     # macOS muddle
venv/         # I by no means wish to commit my virtualenv
*.egg-info/*  # ... nor any domestically compiled packages
__pycache__   # ... or supply
*.swp         # ... nor any information open in vim

You can discover different ideas over on Gitignore.io or on the Gitignore repo on GitHub.

Your flip

What are your favourite helper instructions? Please share them within the feedback.

Most Popular

To Top