-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.aliases
229 lines (185 loc) · 7.18 KB
/
.aliases
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
# Easier navigation: .., ..., ~ and -
alias ..="cd .."
alias ...="cd ../.."
alias ~="cd ~" # `cd` is probably faster to type though
alias -- -="cd -"
# Shortcuts
alias d="cd ~/Dropbox"
alias w="cd ~/Workspace"
alias g="git"
alias v="vim"
# List all files colorized in long format, including dot files
alias la="ls -Gla"
# List only directories
alias lsd='ls -l | grep "^d"'
# Always use color output for `ls`
if [[ "$OSTYPE" =~ ^darwin ]]; then
alias ls="command ls -G"
else
alias ls="command ls --color"
export LS_COLORS='no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.ogg=01;35:*.mp3=01;35:*.wav=01;35:'
fi
# Enable aliases to be sudo’ed
alias sudo='sudo '
# Get OS X Software Updates, update Homebrew itself, and upgrade installed Homebrew packages
alias update='sudo softwareupdate -i -a; brew update; brew upgrade'
# IP addresses
alias ip="dig +short myip.opendns.com @resolver1.opendns.com"
alias localip="ipconfig getifaddr en1"
alias ips="ifconfig -a | perl -nle'/(\d+\.\d+\.\d+\.\d+)/ && print $1'"
# Flush Directory Service cache
alias flush="dscacheutil -flushcache"
# View HTTP traffic
alias sniff="sudo ngrep -d 'en1' -t '^(GET|POST) ' 'tcp and port 80'"
alias httpdump="sudo tcpdump -i en1 -n -s 0 -w - | grep -a -o -E \"Host\: .*|GET \/.*\""
# Canonical hex dump; some systems have this symlinked
type -w hd > /dev/null || alias hd="hexdump -C"
# OS X has no `md5sum`, so use `md5` as a fallback
type -w md5sum > /dev/null || alias md5sum="md5"
# Trim new lines and copy to clipboard
alias c="tr -d '\n' | pbcopy"
# Recursively delete `.DS_Store` files
alias cleanup="find . -type f -name '*.DS_Store' -ls -delete"
# File size
alias fs="stat -f \"%z bytes\""
# ROT13-encode text. Works for decoding, too! ;)
alias rot13='tr a-zA-Z n-za-mN-ZA-M'
# Empty the Trash on all mounted volumes and the main HDD
# Also, clear Apple’s System Logs to improve shell startup speed
alias emptytrash="sudo rm -rfv /Volumes/*/.Trashes; sudo rm -rfv ~/.Trash; sudo rm -rfv /private/var/log/asl/*.asl"
# Show/hide hidden files in Finder
alias show="defaults write com.apple.Finder AppleShowAllFiles -bool true && killall Finder"
alias hide="defaults write com.apple.Finder AppleShowAllFiles -bool false && killall Finder"
# Hide/show all desktop icons (useful when presenting)
alias hidedesktop="defaults write com.apple.finder CreateDesktop -bool false && killall Finder"
alias showdesktop="defaults write com.apple.finder CreateDesktop -bool true && killall Finder"
# URL-encode strings
alias urlencode='python -c "import sys, urllib as ul; print ul.quote_plus(sys.argv[1]);"'
# Disable Spotlight
alias spotoff="sudo mdutil -a -i off"
# Enable Spotlight
alias spoton="sudo mdutil -a -i on"
# PlistBuddy alias, because sometimes `defaults` just doesn’t cut it
alias plistbuddy="/usr/libexec/PlistBuddy"
# One of @janmoesen’s ProTip™s
for method in GET HEAD POST PUT DELETE TRACE OPTIONS; do
alias "$method"="lwp-request -m '$method'"
done
# Root ssh
alias rssh='ssh -l root'
# Stuff I never really use but cannot delete either because of http://xkcd.com/530/
alias stfu="osascript -e 'set volume output muted true'"
alias pumpitup="osascript -e 'set volume 10'"
alias hax="growlnotify -a 'Activity Monitor' 'System error' -m 'WTF R U DOIN'"
# OSX doesn't come with ssh_copy_id. This does the same.
function ssh_copy_id {
cat ~/.ssh/id_rsa.pub | ssh $1 "(cat > tmp.pubkey ; mkdir -p .ssh ; touch .ssh/authorized_keys ; sed -i.bak -e '/$(awk '{print $NF}' ~/.ssh/id_rsa.pub)/d' .ssh/authorized_keys; cat tmp.pubkey >> .ssh/authorized_keys; rm tmp.pubkey)";
}
# Rebuild SSH completion
alias sshcomp='source ~/.ssh_completion'
function find_aws_key {
if [[ -z "$1" ]];then
echo "NEED ACCESS KEY"
else
aws --output text iam list-users | awk '{print $NF}' | xargs -P10 -n1 aws --output text iam list-access-keys --user-name | grep "$1"
fi
}
function backmeup {
if [[ -z "$1" ]]; then
echo "NEED TARGET FILE"
else
cd ~ && tar -czvf "$1" ./.ssh ./.aws ./.fog ./.extra ./.git* ./.s3cfg
fi
}
# Prevent csshx from dropping hosts because of stale host keys
# (not the greatest thing ever to do, but hosts come and go and IPs get reused)
alias csshX='/usr/local/bin/csshX --ssh_args "-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" '
# Remove a specific line from known_hosts
function known_hosts_rehab {
if [[ -z "$1" ]]; then
echo "What line?"
else
sed -i bak "${1}d" ~/.ssh/known_hosts
fi
}
# Ping prepended with datestamps
function dping {
if [[ -z "$1" ]]; then
echo "What host?"
else
ping $1 | while read pong; do echo "$(date): $pong"; done
fi
}
# Cleanup merged branches
alias clean_branches="git branch --merged | egrep -v \"(^\*|master|dev)\" | xargs git branch -d"
# Reverse a space separated list
function reverse {
tac=$(which tac || which gtac); echo "$@" | tr ' ' '\n'| tac - | tr '\n' ' '
}
# ssh without all the complaining (and timeout)
alias shh="ssh -o ConnectTimeout=5 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"
# Display SSL cert from site
function check_ssl {
if [[ -z "$1" ]]; then
echo "What site?"
else
echo | openssl s_client -servername ${1} -connect ${1}:443 2>/dev/null | openssl x509 -noout -text
fi
}
# Confirm SSL cert and key match
function check_ssl_cert_key {
if [ "$#" -ne 2 ]; then
echo "Need cert and key"
else
MATCH=$((openssl x509 -noout -modulus -in ${1} | openssl md5;openssl rsa -noout -modulus -in ${2} |openssl md5) | uniq | wc -l)
if [ "${MATCH}" -eq 1 ]; then
echo "Certificate and Key match"
else
echo "Certificate and Key do not match"
fi
fi
}
# Open github PR for current branch
function git_pr {
gh_path="$(git remote get-url origin | awk -F':' '{print $2}' | sed 's/.git//')"
git_branch="$(git rev-parse --abbrev-ref HEAD)"
open "https://github.com/${gh_path}/pull/new/${git_branch}"
}
# Push a new branch
function gpb {
git_branch="$(git rev-parse --abbrev-ref HEAD)"
git push --set-upstream origin ${git_branch}
}
# Switch to master and pull latest, trimming deleted branches
function gppm { # "git pull prune master"
git checkout master
git pull -p
}
# Run git status on all subdirectories of provided path
function gsrecurse {
find ${1} -type d | while read -r dir; do
if [[ -d ${dir}/.git ]]; then
echo "${dir} :"
git -C ${dir} status
echo
fi
done
}
function gdrecurse {
find ${1} -type d | while read -r dir; do
if [[ -d ${dir}/.git ]]; then
echo "${dir} :"
git -C ${dir} --no-pager diff ${2}
echo
fi
done
}
# Create a function to make a dir and then cd into it
function mkcd() {
mkdir -p $1 && cd $1;
}
# Fix history with oh-my-zsh to include timestamps
unalias history
alias history="fc -i -l 1"
# ag, but only for terraform
alias tfag="ag -G '.*\.tf'"