Here are a few commands I keep handy:
Bash
// root login ssh
ssh root@my-ip-here
// find PID
sudo lsof -i :
// kill port
sudo kill -9
// To remove a directory that contains other files or directories
rm -r mydir
// don't receive a prompt for each file being removed
rm -rf mydir
Brew
brew update && brew upgrade && brew cleanup && brew doctor
Git
// remove a repo
find . -type f | grep -i ".git" | xargs rm
cd ..
rm -rf
//sets your name and email for commit messages
git config --global user.name 'John Doe'
git config --global user.emailjohndoe@example.com
// helps recover from mess ups! a log of your last few actions
git reflog
Top comments(20)

- Email
- LocationNY
- EducationMount Allison University
- PronounsHe/him
- WorkCo-founder at Forem
- Joined
Remove all local branches except master...
git branch |grep-v"master" | xargs git branch-D

Inspired by yours but adapted for my use case: delete all branches that are already merged into the current branch safely (doesn't delete branches that aren't fully merged and shows warning):
git branch--merged |grep-v"$(git rev-parse--abbrev-ref HEAD)" | xargs git branch-d
I use this on develop to delete old feature and bugfix branches.

- Email
- Locationmiami beach/new york
- EducationMasters Degree Systems
- WorkSenior Frontend Software Engineer at AChickAndAClick
- Joined
OMG yes! very important to have handy :)

- LocationPeoria, Illinois
- WorkPython Dev
- Joined
Nice one!

- Email
- LocationMontréal, Québec, Canada
- EducationUniversity of New Brunswick
- PronounsHe/Him
- WorkDeveloper Advocate at Pomerium
- Joined
I rely heavily on git aliases. I find it really speeds up my workflow. For those interested, here’s my git aliases.

- Email
- Locationmiami beach/new york
- EducationMasters Degree Systems
- WorkSenior Frontend Software Engineer at AChickAndAClick
- Joined
Great list! You reminded me of how tweaks to my config have helped a lot too! Here's how to add colors to your console by adding this to your config:
Add colors to your ~/.gitconfig file:
[color]
ui = auto
[color "branch"]
current = yellow reverse
local = yellow
remote = green
[color "diff"]
meta = yellow bold
frag = magenta bold
old = red bold
new = green bold
[color "status"]
added = yellow
changed = green
untracked = cyan
And add this too:
Highlight whitespace in diffs
[color]
ui = true
[color "diff"]
whitespace = red reverse
[core]
whitespace=fix,-indent-with-non-tab,trailing-space,cr-at-eol

- LocationEarth, Milky Way
- WorkSenior Performance Engineer at platformOS
- Joined
gitbranch-r|awk'{print $1}'|egrep-v-f/dev/fd/0<(gitbranch-vv|greporigin)|awk'{print $1}'|xargsgitbranch-d
Removes branches that are marked as remote on your machine, but dont exist on origin.
If it complains, replace-d
with-D
at the end.
Used aftergit fetch prune
.
It keeps branch list tidy and real.

- Email
- Locationmiami beach/new york
- EducationMasters Degree Systems
- WorkSenior Frontend Software Engineer at AChickAndAClick
- Joined
excellent!

Hi!
Just as an advice, take real care with this:
// remove a repofind . -type f | grep -i ".git" | xargs rmcd ..rm -rf
I've made a quick setup just to illustrate, but let me explain the inner workings of these commands, specially the find and grep combination, that is the dangerous part here.
The tree I have here is:
Where the blue items are folders and the gray are files.
find . -type f
will search and print all the files, starting on the actual folder up to all levels downward. And thegrep -i ".git"
will match to anything that has<any_ character>[gG][iI][tT]
, at any part of the name.
So, on my special and quick setup, I'll get this result::
» find . -type f | grep -i '.git'./.git/configure./.git/HEAD./folder1/agitos./.gitignore./.gitattributes./agitar/aaa./agitar/a/1./agitar/a/2./agitar/a/3./agitar/a/4./agitar/a/5./agitar/a/6./agitar/b/1./agitar/b/2./agitar/b/3./agitar/b/4./agitar/b/5./agitar/b/6./agitar/c/1./agitar/c/2./agitar/c/3./agitar/c/4./agitar/c/5./agitar/c/6
This is definitely not the expected behavior, and is quite easy to be achieved (believe me :) ). If you pass this result into thexargs rm
you may end up removing a lot of undesired files. And you have to take extra care wit this, because asking file by file if you want it to be deleted isn't the default behavior of therm
command. On RedHat, CentOS and Fedora there is an aliasrm=rm -i
, to make the confirmation mandatory by default.
cd ..
is going up one level on the folders, and therm -rf
without any other arguments is doing absolutely nothing, but leaves space for a disaster.
My advice, when you want to remove a repository from a folder, is to make sure you are removing the right folder, so pass the complete path to therm
command, like so:
rm -rf /home/user/dev/my_program/.git
Always, when usingrm -rf
pass the complete path to the file/folder you want to remove.
Also, while I'm around, thefind
command is a real swiss knife. To find and remove the.git
folder and remove it you can use (but is hardly not advised to):
find /home/user/dev/my_program -type d -name '.git' -delete
You may want to, for example, find all the repositories inside you home folder:
find /home/user -type d -name '.git'
You can also search for folders/files older than, newer than, ..., ..., ...
Have fun and take care! :)

- Email
- Locationmiami beach/new york
- EducationMasters Degree Systems
- WorkSenior Frontend Software Engineer at AChickAndAClick
- Joined
Thank you! That is very very helpful.
Namaste!

- LocationOakland, TN
- WorkSenior Software Engineer at Quantum Edge, LLC
- Joined
A few handy snippets that I've made into aliases
# Get OS X Software Updates, and update installed Ruby gems, Homebrew, npm, and their installed packagesaliasupdate='sudo softwareupdate -i -a; brew update; brew upgrade; brew cleanup; npm install npm -g; npm update -g; sudo gem update --system; sudo gem update'# Clear out node_modules and re-install everythingaliasyarn.please="printf 'Removing node_modules folder...' && rm -rf node_modules && yarn"aliasnpm.please="printf 'Removing node_modules folder...' && rm -rf node_modules && npm i"

- Email
- Locationmiami beach/new york
- EducationMasters Degree Systems
- WorkSenior Frontend Software Engineer at AChickAndAClick
- Joined
great suggestions!

- LocationCamrose, AB
- WorkWeb Applications Specialist at University of Alberta
- Joined
Snippets I've made aliases for
List flag aliases
aliasll='ls -l'alias ls='ls --color'aliaslh='ll -h'aliasla='ls -a'aliaslla='la -l'
cd
alias because I don't always get that space in time
aliascd..='cd ..'

- Email
- Locationmiami beach/new york
- EducationMasters Degree Systems
- WorkSenior Frontend Software Engineer at AChickAndAClick
- Joined
awesome!

- LocationPeoria, Illinois
- WorkPython Dev
- Joined
I love those little ones, where I don't really need this, but my fingers automatically do it in a bit of haste so why not.

- Email
- LocationCanada
- WorkChief Technical Officer
- Joined
When I want to transfer a file to a remote server without going through the security headaches of installing ftp servers:
cat file.txt | ssh me@ip_address "cat > newfile.txt"

- LocationPeoria, Illinois
- WorkPython Dev
- Joined
I am really bad at storing aliases, and heavily rely on my command line history hand 🤭. I heavily usefzf and its Ctrl-R functionality to fuzzy search my past commands. I can typically get to a previous command within a few keystrokes.
For further actions, you may consider blocking this person and/orreporting abuse