|
# Aliases |
|
# To unset alias use: `unalias ...` |
|
alias ll='ls -lG' |
|
alias ss='stat --printf="%A\t%a\t%h\t%U\t%G\t%s\t%.19y\t%n\n"' |
|
#alias traceroute='tracert -d' |
|
alias timestamp='date +%Y%m%d%H%M%S' |
|
alias iso='date +%Y-%m-%dT%H:%M:%S' |
|
# brew install w3m |
|
alias html2text="w3m -dump -T 'text/html'" |
|
alias untar="tar -zxvf" |
|
# zip for mac |
|
alias zip="ditto -c -k --sequesterRsrc --keepParent" |
|
alias npmplease="rm -rf node_modules/ && rm -f package-lock.json && npm install" |
|
alias yarnplease="rm -rf node_modules/ && rm -f yarn.lock && yarn install" |
|
alias yarnci="yarn install --frozen-lockfile --silent --production=false" |
|
alias tree="tree -C" |
|
alias uuid="python -c 'import sys,uuid; sys.stdout.write(uuid.uuid4().hex)' | pbcopy && pbpaste && echo" |
|
alias chromebeta="/Applications/Google\ Chrome\ Beta.app/Contents/MacOS/Google\ Chrome --user-data-dir=~/Library/Application\ Support/Google/Chrome/Beta" |
|
alias myip="curl http://ipecho.net/plain; echo" |
|
alias ip="ifconfig | grep 'inet ' | grep -v 127.0.0.1 | cut -d\ -f2" |
|
alias g=git # Saves 10% of your time! |
|
alias search="grep -rnwe" |
|
# alias docker=podman # Mac not supports volume mount |
|
alias tcpview="lsof -PiTCP -sTCP:LISTEN" |
|
alias tcpview2="lsof -iUDP -P -n | egrep -v '(127|::1)'" |
|
|
|
# Functions |
|
# To unset function use: `unset -f ...` |
|
colordiff () { diff -u "$@" | sed 's/^-/\x1b[41m-/;s/^+/\x1b[42m+/;s/^@/\x1b[34m@/;s/$/\x1b[0m/'; } # http://stackoverflow.com/questions/8800578/colorize-diff-on-the-command-line |
|
tree () { ls -RA "$@" | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/'; } # http://stackoverflow.com/questions/3455625/linux-command-to-print-directory-structure-in-the-form-of-a-tree |
|
dataURI () { cat "$@" | openssl enc -base64 | sed -s 's/\r//gim;s/\n//gim;s/^\(R0lGOD\)/data:image\/gif;base64,\1/g;s/^\(iVBORw\)/data:image\/png;base64,\1/g;s/^\(\/9j\/4\)/data:image\/jpeg;base64,\1/g;s/^\(UklGR\)/data:image\/webp;base64,\1/g;'; } |
|
backup () { zip ~/backup/$@.`date +"%Y%m%d%H%M%S"`.zip $(find $@ -name '*' -print); }; |
|
# mdedit() { marked "$@" --gwf 2>&1 | lynx -stdin; } # Read Markdown files on Linux |
|
# mdedit() { marked "$@" --gwf 2>&1 | open -a Safari -f; } # Read Markdown files on mac |
|
mdedit() { marked "$@" --gwf 2>&1 | browser; } # Read Markdown files on mac `brew install browser` |
|
filetree () { find "$@" | sed -e 's/[^-][^\/]*\//--/g;s/--/ |-/'; } |
|
splitdiff () { sed '/<<<<<<</,/=======/d;/>>>>>>>/d' $1 > $1.REMOTE; sed '/<<<<<<</d;/=======/,/>>>>>>>/d' $1 > $1.LOCAL; } |
|
automerge () { mv $1 $1.BASE; git checkout BASE $1; meld --auto-merge $1.LOCAL $1 $1.REMOTE; echo $1; } |
|
closemerge () { git add $1; rm $1.BASE $1.LOCAL $1.REMOTE; echo $1; } |
|
mergetool () { splitdiff $1 && automerge $1 && closemerge $1; } |
|
call () { xargs -d' ' -t -n1 -P2 bash -c $1' "$@"' _; } |
|
pem () { openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout $1.key.pem -out $1.cert.pem } |
|
rsa () { ssh-keygen -t ed25519 -C $1 } |
|
jpg2png () { for i in `ls -1 $@`; do convert $i ${i%%.jpg}.png ; done; } |
|
png2webp () { for i in `ls -1 $@`; do cwebp $i -o ${i%%.png}.webp ; done; } |
|
preview () { qlmanage -p "$*" >& /dev/null; } # https://clburlison.com/preview-files-from-terminal/ |
|
|
|
# npm i -g dependency-cruiser && cd ~/.npm/bin && ln -s ../lib/node_modules/node/bin/depcruise |
|
# brew install graphviz |
|
dependencygraph () { f="/tmp/graph.$RANDOM.svg"; npx dependency-cruiser --exclude "^node_modules" --output-type dot $@ | dot -T svg > $f && preview $f; } # https://www.netlify.com/blog/2018/08/23/how-to-easily-visualize-a-projects-dependency-graph-with-dependency-cruiser/ |
|
|
|
# deeplink "exp://`ip`:19000/--/foo" |
|
deeplink () { adb shell am start -a android.intent.action.VIEW -d $1; xcrun simctl openurl booted $1; } |
|
|
|
# serve -p 3000 . |
|
serve () { |
|
PORT=3000 |
|
for i in "$@" ; do |
|
case "$i" in |
|
-p|--port ) shift ; PORT=$1 ; shift ;; |
|
-h ) cat <<-EOM |
|
Usage: serve -p [PORT] [DIRECTORY] |
|
Serves static content |
|
EOM |
|
; |
|
esac |
|
done |
|
|
|
ruby -run -ehttpd ${@: -1} -p$PORT |
|
} |
|
# python -m http.server $PORT --directory ${@: -1} |
|
# ruby -rwebrick -e"WEBrick::HTTPServer.new(:Port => ${PORT}, :DocumentRoot => '${@: -1}').start" |
|
# ruby -run -ehttpd ${@: -1} -p$PORT |
|
|
|
# getpem example.com:443 example.pem |
|
getpem () { openssl s_client -showcerts -connect $1 </dev/null 2>/dev/null|openssl x509 -outform PEM > $2 } |
|
|
|
# pem2pin example.pem |
|
pem2pin () { cat $1 | openssl x509 -inform pem -noout -outform pem -pubkey | openssl pkey -pubin -inform pem -outform der | openssl dgst -sha256 -binary | openssl enc -base64 } |
|
|
|
# For WSL |
|
alias open='wsl-open' |
|
say () { /mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe -C "Add-Type –AssemblyName System.Speech; (New-Object System.Speech.Synthesis.SpeechSynthesizer).Speak('"$@"');" } |
|
|
|
# For Docker lovers |
|
node () { docker run -it -v "$PWD":/usr/src/app -w /usr/src/app --rm node:4 node $@; } |
|
npm () { docker run -it -v "$PWD":/usr/src/app -w /usr/src/app --rm node:4 npm $@; } |
|
eval $(docker-machine env --shell sh) |
|
|
|
# Mac OS |
|
flushdns () { sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder; } |
|
# Rosetta on M1 |
|
alias brew="arch -x86_64 brew" |
|
|
|
# Python 3 |
|
alias pip=/usr/local/bin/pip3 |
|
alias python=/usr/bin/python3 |
|
|