mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2026-01-02 02:19:06 +01:00
Added dot-env plugin
Dot-env is a cross-platform, cascading Zsh environment system for those who work on different hardware and OS environments. See: https://github.com/midwire/.env
This commit is contained in:
parent
f4944d5a95
commit
ae2db75f3e
20 changed files with 629 additions and 0 deletions
53
plugins/dot-env/dot-env.plugin.zsh
Normal file
53
plugins/dot-env/dot-env.plugin.zsh
Normal file
|
|
@ -0,0 +1,53 @@
|
||||||
|
# Skip all this for non-interactive shells
|
||||||
|
[[ -z "$PS1" ]] && return
|
||||||
|
|
||||||
|
export DOT_ENV_PATH="$( cd "$( dirname "${0}" )" && pwd )"
|
||||||
|
|
||||||
|
OS=`uname`
|
||||||
|
if [[ $OS == 'Darwin' ]]; then
|
||||||
|
x=1
|
||||||
|
elif [[ $OS == 'SunOS' ]]; then
|
||||||
|
x=1
|
||||||
|
elif [[ $OS == 'Linux' ]]; then
|
||||||
|
x=1
|
||||||
|
else
|
||||||
|
echo "Sorry, no portable environment support for your platform: '$OS'"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
OS_DIR=$DOT_ENV_PATH/os/$OS
|
||||||
|
|
||||||
|
# Make sure globals are sourced before OS specifics
|
||||||
|
if [[ "$SHLVL" == "1" ]]; then
|
||||||
|
echo "Sourcing Global Environment"
|
||||||
|
fi
|
||||||
|
for i in $DOT_ENV_PATH/global/global_*.sh ; do
|
||||||
|
if [ -r "$i" ]; then
|
||||||
|
. $i
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Now source OS specifics
|
||||||
|
if [[ "$SHLVL" == "1" ]]; then
|
||||||
|
echo "Sourcing $OS Environment"
|
||||||
|
fi
|
||||||
|
for i in $OS_DIR/*.sh ; do
|
||||||
|
if [ -r "$i" ]; then
|
||||||
|
. $i
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Source Host specifics if there are any for the current host
|
||||||
|
if [[ ! -z "$HOST" ]]; then
|
||||||
|
HOST_DIR=$DOT_ENV_PATH/host/`hostname`
|
||||||
|
if [[ "$SHLVL" == "1" ]]; then
|
||||||
|
echo "Sourcing '$HOST' Environment"
|
||||||
|
fi
|
||||||
|
for i in $HOST_DIR/*.sh ; do
|
||||||
|
if [ -r "$i" ]; then
|
||||||
|
. $i
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
unset i
|
||||||
|
|
||||||
9
plugins/dot-env/global/alias/chmod.sh
Normal file
9
plugins/dot-env/global/alias/chmod.sh
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
# Alias chmod commands
|
||||||
|
alias 000='chmod 000'
|
||||||
|
alias 600='chmod 600'
|
||||||
|
alias 644='chmod 644'
|
||||||
|
alias 755='chmod 755'
|
||||||
|
alias mgid='chmod g+s'
|
||||||
|
alias mx='chmod a+x'
|
||||||
|
alias rgid='chmod g-s'
|
||||||
|
alias rx='chmod a-x'
|
||||||
12
plugins/dot-env/global/alias/git.sh
Normal file
12
plugins/dot-env/global/alias/git.sh
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
# Git aliases
|
||||||
|
alias add='git add'
|
||||||
|
alias branch='git branch'
|
||||||
|
alias co='git checkout'
|
||||||
|
alias commit='git commit'
|
||||||
|
alias fetch='git fetch'
|
||||||
|
alias gadd='git add .'
|
||||||
|
alias gt='gittower'
|
||||||
|
alias merge='git merge'
|
||||||
|
alias pull='git pull'
|
||||||
|
alias push='git push'
|
||||||
|
alias st='git status'
|
||||||
14
plugins/dot-env/global/alias/ls.sh
Normal file
14
plugins/dot-env/global/alias/ls.sh
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
# Directory Listing aliases
|
||||||
|
alias dir='ls -hFx'
|
||||||
|
alias l.='ls -d .* --color=tty'
|
||||||
|
alias l='ls -lathF'
|
||||||
|
alias L='ls -latrhF'
|
||||||
|
alias la='ls -Al' # show hidden files
|
||||||
|
alias lc='ls -lcr' # sort by change time
|
||||||
|
alias lk='ls -lSr' # sort by size
|
||||||
|
alias ll='ls -lFh'
|
||||||
|
alias lm='ls -al |more' # pipe through 'more'
|
||||||
|
alias lo='ls -laSFh'
|
||||||
|
alias lr='ls -lR' # recursive ls
|
||||||
|
alias lt='ls -ltr' # sort by date
|
||||||
|
alias lu='ls -lur' # sort by access time
|
||||||
5
plugins/dot-env/global/alias/misc.sh
Normal file
5
plugins/dot-env/global/alias/misc.sh
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
# Miscellaneous aliases
|
||||||
|
alias c='clear'
|
||||||
|
alias cls='clear'
|
||||||
|
alias h='history'
|
||||||
|
alias path='echo $PATH'
|
||||||
8
plugins/dot-env/global/alias/navigation.sh
Normal file
8
plugins/dot-env/global/alias/navigation.sh
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
# ChDir aliases
|
||||||
|
alias ..='cd ..'
|
||||||
|
alias ...='cd ../..'
|
||||||
|
alias 1..='cd ..'
|
||||||
|
alias 2..='cd ../..'
|
||||||
|
alias 3..='cd ../../..'
|
||||||
|
alias 4..='cd ../../../..'
|
||||||
|
alias 5..='cd ../../../../..'
|
||||||
20
plugins/dot-env/global/alias/rails.sh
Normal file
20
plugins/dot-env/global/alias/rails.sh
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
# Rails & Development Aliases
|
||||||
|
alias a='autotest -rails'
|
||||||
|
alias b="bundle"
|
||||||
|
alias be="bundle exec"
|
||||||
|
alias bi="bundle install --path vendor"
|
||||||
|
alias bil="bi --local"
|
||||||
|
alias binit="bi && bundle package && echo 'vendor/ruby' >> .gitignore"
|
||||||
|
alias bu="bundle update"
|
||||||
|
alias p='pry'
|
||||||
|
alias rc='rails c'
|
||||||
|
alias rd='rails destroy'
|
||||||
|
alias re='echo $RAILS_ENV'
|
||||||
|
alias rg='rails g'
|
||||||
|
alias rp='rails plugin'
|
||||||
|
alias rs='rails s'
|
||||||
|
alias sc='./script/console'
|
||||||
|
alias sd='./script/destroy'
|
||||||
|
alias sg='./script/generate'
|
||||||
|
alias sp='./script/plugin'
|
||||||
|
alias ss='./script/server'
|
||||||
7
plugins/dot-env/global/global_alias.sh
Normal file
7
plugins/dot-env/global/global_alias.sh
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
# Now source global aliases
|
||||||
|
for i in $DOT_ENV_PATH/global/alias/*.sh ; do
|
||||||
|
if [ -r "$i" ]; then
|
||||||
|
. $i
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
unset i
|
||||||
27
plugins/dot-env/global/global_env.sh
Normal file
27
plugins/dot-env/global/global_env.sh
Normal file
|
|
@ -0,0 +1,27 @@
|
||||||
|
# Some of this is taken from matt.blissett.me.uk
|
||||||
|
# Thanks Matt!
|
||||||
|
|
||||||
|
# Command History
|
||||||
|
export HISTIGNORE="&:ls:[bf]g:exit:reset:clear:cd:cd ..:cd.."
|
||||||
|
export HISTSIZE=25000
|
||||||
|
setopt INC_APPEND_HISTORY
|
||||||
|
setopt HIST_IGNORE_ALL_DUPS
|
||||||
|
setopt HIST_IGNORE_SPACE
|
||||||
|
setopt HIST_REDUCE_BLANKS
|
||||||
|
setopt HIST_VERIFY
|
||||||
|
|
||||||
|
# Say how long a command took, if it took more than 30 seconds
|
||||||
|
export REPORTTIME=30
|
||||||
|
|
||||||
|
# Prompts for confirmation after 'rm *' etc
|
||||||
|
# Helps avoid mistakes like 'rm * o' when 'rm *.o' was intended
|
||||||
|
setopt RM_STAR_WAIT
|
||||||
|
|
||||||
|
# Background processes aren't killed on exit of shell
|
||||||
|
setopt AUTO_CONTINUE
|
||||||
|
|
||||||
|
# Watch other user login/out
|
||||||
|
watch=notme
|
||||||
|
export LOGCHECK=60
|
||||||
|
|
||||||
|
export LSCOLORS="gxfxcxdxbxegedabagacad"
|
||||||
86
plugins/dot-env/global/global_functions.sh
Normal file
86
plugins/dot-env/global/global_functions.sh
Normal file
|
|
@ -0,0 +1,86 @@
|
||||||
|
# Add your public SSH key to a remote host
|
||||||
|
function add_ssh_key_to_host {
|
||||||
|
if [[ $# -lt 1 ]]; then
|
||||||
|
echo_warn "Usage: add_ssh_key_to_host [user@]HOSTNAME"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
if [[ -r ~/.ssh/id_dsa.pub ]]; then
|
||||||
|
cat ~/.ssh/id_dsa.pub | ssh $1 "cat >> .ssh/authorized_keys"
|
||||||
|
elif [[ -r ~/.ssh/id_rsa.pub ]]; then
|
||||||
|
cat ~/.ssh/id_rsa.pub | ssh $1 "cat >> .ssh/authorized_keys"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Propagate your entire environment system to a remote host
|
||||||
|
function propagate_env_to_host {
|
||||||
|
if [[ $# -lt 1 ]]; then
|
||||||
|
echo_warn "Usage: propagate_env_to_host [user@]HOSTNAME"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
host=$1
|
||||||
|
shift 1
|
||||||
|
ENVFILE=$HOME/env.tar.gz
|
||||||
|
PWD=`pwd`
|
||||||
|
cd $HOME
|
||||||
|
echo_info "Compressing local environment..."
|
||||||
|
tar cfvz $ENVFILE .env/ &> /dev/null
|
||||||
|
echo_info "Copying environment to $host..."
|
||||||
|
scp $ENVFILE $host:
|
||||||
|
if [[ $? != 0 ]]; then echo "Copy failed!"; return; fi
|
||||||
|
echo_info "Installing environment on $host..."
|
||||||
|
ssh $host "rm -rf ~/.env/ && gunzip < env.tar.gz |tar xfv -" &> /dev/null
|
||||||
|
echo_warn "Don't forget to add this your .bashrc file:"
|
||||||
|
echo_warn 'if [[ -n "$PS1" ]]; then'
|
||||||
|
echo_warn ' [[ -r $HOME/.env/source.sh ]] && . $HOME/.env/source.sh'
|
||||||
|
echo_warn 'fi'
|
||||||
|
cd $PWD
|
||||||
|
}
|
||||||
|
|
||||||
|
# Configure environment settings for your local machine.
|
||||||
|
function configthis.env {
|
||||||
|
DIR="$DOT_ENV_PATH/host/$HOSTNAME"
|
||||||
|
mkdir -p "$DIR"
|
||||||
|
touch "$DIR/env.sh"
|
||||||
|
touch "$DIR/functions.sh"
|
||||||
|
if [[ ! -f "$DIR/alias.sh" ]]; then
|
||||||
|
echo "# Add your specific aliases here:\n# Example: alias home='cd \$HOME' " >> "$DIR/alias.sh"
|
||||||
|
fi
|
||||||
|
if [[ ! -f "$DIR/prompt.sh" ]]; then
|
||||||
|
echo "# Define your prompt here:\n# Example: PS1=\$BLUE\u@\H\$NO_COLOR " >> "$DIR/prompt.sh"
|
||||||
|
fi
|
||||||
|
if [[ ! -f "$DIR/path.sh" ]]; then
|
||||||
|
echo "# Add paths like this:\n# pathmunge \"/Developer/usr/bin\"" >> "$DIR/path.sh"
|
||||||
|
fi
|
||||||
|
cd "$DIR"
|
||||||
|
echo_info "Edit these files to customize your local environment."
|
||||||
|
ls -1AtF
|
||||||
|
}
|
||||||
|
|
||||||
|
# Configure environment settings for a specified HOSTNAME
|
||||||
|
function confighost.env {
|
||||||
|
if [[ $# -lt 1 ]]; then
|
||||||
|
echo_warn "Usage: confighost.env HOSTNAME"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
host=$1
|
||||||
|
shift 1
|
||||||
|
DIR="$DOT_ENV_PATH/host/$host"
|
||||||
|
mkdir -p "$DIR"
|
||||||
|
touch "$DIR/env.sh"
|
||||||
|
touch "$DIR/functions.sh"
|
||||||
|
if [[ ! -f "$DIR/alias.sh" ]]; then
|
||||||
|
echo "# Add your host specific aliases here:\n# Example: alias home='cd \$HOME' " >> "$DIR/alias.sh"
|
||||||
|
fi
|
||||||
|
if [[ ! -f "$DIR/prompt.sh" ]]; then
|
||||||
|
echo "# Define your prompt here:\n# Example: PS1=\$BLUE\u@\H\$NO_COLOR " >> "$DIR/prompt.sh"
|
||||||
|
fi
|
||||||
|
if [[ ! -f "$DIR/path.sh" ]]; then
|
||||||
|
echo "# Add paths like this:\n# pathmunge \"/Developer/usr/bin\"" >> "$DIR/path.sh"
|
||||||
|
fi
|
||||||
|
cd "$DIR"
|
||||||
|
echo_info "Edit these files to customize your [$host] environment."
|
||||||
|
echo_info "When you are finished run 'propagate_env_to_host $host'."
|
||||||
|
ls -1AtF
|
||||||
|
}
|
||||||
|
|
||||||
31
plugins/dot-env/global/global_path.sh
Normal file
31
plugins/dot-env/global/global_path.sh
Normal file
|
|
@ -0,0 +1,31 @@
|
||||||
|
paths="${DOT_ENV_PATH}/bin
|
||||||
|
/sbin
|
||||||
|
/bin
|
||||||
|
/usr/X11/bin
|
||||||
|
/usr/local/bin
|
||||||
|
/usr/sbin
|
||||||
|
/usr/bin"
|
||||||
|
|
||||||
|
EGREP=`which egrep`
|
||||||
|
function pathmunge () {
|
||||||
|
if ! echo $PATH | $EGREP "(^|:)$1($|:)" > /dev/null ; then
|
||||||
|
if [ -d "$1" ]; then
|
||||||
|
if [ "$2" = "before" ] ; then
|
||||||
|
PATH="$1:$PATH"
|
||||||
|
else
|
||||||
|
PATH="$PATH:$1"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
for p in $paths; do
|
||||||
|
pathmunge $p
|
||||||
|
done
|
||||||
|
|
||||||
|
# Prepend path with $HOME/bin
|
||||||
|
pathmunge "$HOME/bin" before
|
||||||
|
|
||||||
|
PATH=`echo $PATH | sed -e 's/^\://' -e 's/\:\:/:/g'`
|
||||||
|
unset paths
|
||||||
|
export PATH
|
||||||
2
plugins/dot-env/os/Darwin/alias.sh
Normal file
2
plugins/dot-env/os/Darwin/alias.sh
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
# Process Find Aliases
|
||||||
|
alias pfn='ps -e -o euser,pid,args|grep'
|
||||||
22
plugins/dot-env/os/Darwin/editor.sh
Normal file
22
plugins/dot-env/os/Darwin/editor.sh
Normal file
|
|
@ -0,0 +1,22 @@
|
||||||
|
# Textmate Editing and Sourcing aliases
|
||||||
|
# export EDITOR="$HOME/bin/mate"
|
||||||
|
|
||||||
|
# Textmate 2 Editor
|
||||||
|
# export EDITOR="$HOME/bin/mate2"
|
||||||
|
|
||||||
|
# Sublime Text 2 Editor
|
||||||
|
export EDITOR="$HOME/bin/subl"
|
||||||
|
|
||||||
|
alias e="$EDITOR ."
|
||||||
|
alias ea="$EDITOR $DOT_ENV_PATH/host/$HOSTNAME/alias.sh"
|
||||||
|
alias eas=". $DOT_ENV_PATH/host/$HOSTNAME/alias.sh"
|
||||||
|
alias eb="$EDITOR $HOME/bin"
|
||||||
|
alias ee="$EDITOR $DOT_ENV_PATH $HOME/.bashrc"
|
||||||
|
alias ees=". $DOT_ENV_PATH/source.sh"
|
||||||
|
alias ef="$EDITOR $DOT_ENV_PATH/host/$HOSTNAME/functions.sh"
|
||||||
|
alias efs=". $DOT_ENV_PATH/host/$HOSTNAME/functions.sh"
|
||||||
|
alias eh="$EDITOR $HOME/.ssh"
|
||||||
|
alias ep="$EDITOR $DOT_ENV_PATH/host/$HOSTNAME/path.sh"
|
||||||
|
alias eps=". $DOT_ENV_PATH/host/$HOSTNAME/path.sh"
|
||||||
|
alias m="$EDITOR"
|
||||||
|
alias vi="$EDITOR"
|
||||||
288
plugins/dot-env/os/Darwin/functions.sh
Normal file
288
plugins/dot-env/os/Darwin/functions.sh
Normal file
|
|
@ -0,0 +1,288 @@
|
||||||
|
# cdf: cd's to frontmost window of Finder
|
||||||
|
cdf () {
|
||||||
|
currFolderPath=$( /usr/bin/osascript <<"EOT"
|
||||||
|
tell application "Finder"
|
||||||
|
try
|
||||||
|
set currFolder to (folder of the front window as alias)
|
||||||
|
on error
|
||||||
|
set currFolder to (path to desktop folder as alias)
|
||||||
|
end try
|
||||||
|
POSIX path of currFolder
|
||||||
|
end tell
|
||||||
|
EOT
|
||||||
|
)
|
||||||
|
echo "cd to \"$currFolderPath\""
|
||||||
|
cd "$currFolderPath"
|
||||||
|
}
|
||||||
|
|
||||||
|
# File Finders
|
||||||
|
# ff: to find a file under the current directory
|
||||||
|
ff () { /usr/bin/find . -name "$@" ; }
|
||||||
|
# ffs: to find a file whose name starts with a given string
|
||||||
|
ffs () { /usr/bin/find . -name "$@"'*' ; }
|
||||||
|
# ffe: to find a file whose name ends with a given string
|
||||||
|
ffe () { /usr/bin/find . -name '*'"$@" ; }
|
||||||
|
|
||||||
|
# SPOTLIGHT
|
||||||
|
# locatemd: to search for a file using Spotlight's metadata
|
||||||
|
function locatemd { mdfind "kMDItemDisplayName == '$@'wc"; }
|
||||||
|
# locaterecent: to search for files created since yesterday using Spotlight
|
||||||
|
# This is an illustration of using $time in a query
|
||||||
|
# See: http://developer.apple.com/documentation/Carbon/Conceptual/SpotlightQuery/index.html
|
||||||
|
function locaterecent { mdfind 'kMDItemFSCreationDate >= $time.yesterday'; }
|
||||||
|
|
||||||
|
# list_all_apps: list all applications on the system
|
||||||
|
list_all_apps() { mdfind 'kMDItemContentTypeTree == "com.apple.application"c' ; }
|
||||||
|
|
||||||
|
# find_larger: find files larger than a certain size (in bytes)
|
||||||
|
find_larger() { find . -type f -size +${1}c ; }
|
||||||
|
|
||||||
|
#------------
|
||||||
|
# Processes:
|
||||||
|
#------------
|
||||||
|
alias pstree='/usr/local/bin/pstree -g 2 -w'
|
||||||
|
|
||||||
|
# findPid: find out the pid of a specified process
|
||||||
|
# Note that the command name can be specified via a regex
|
||||||
|
# E.g. findPid '/d$/' finds pids of all processes with names ending in 'd'
|
||||||
|
# Without the 'sudo' it will only find processes of the current user
|
||||||
|
findPid () { sudo /usr/sbin/lsof -t -c "$@" ; }
|
||||||
|
|
||||||
|
# to find memory hogs:
|
||||||
|
alias mem_hogs_top='top -l 1 -o rsize -n 10'
|
||||||
|
alias mem_hogs_ps='ps wwaxm -o pid,stat,vsize,rss,time,command | head -10'
|
||||||
|
|
||||||
|
# to find CPU hogs
|
||||||
|
alias cpu_hogs='ps wwaxr -o pid,stat,%cpu,time,command | head -10'
|
||||||
|
|
||||||
|
# continual 'top' listing (every 10 seconds) showing top 15 CPU consumers
|
||||||
|
alias topforever='top -l 0 -s 10 -o cpu -n 15'
|
||||||
|
|
||||||
|
# recommended 'top' invocation to minimize resources in thie macosxhints article
|
||||||
|
# http://www.macosxhints.com/article.php?story=20060816123853639
|
||||||
|
# exec /usr/bin/top -R -F -s 10 -o rsize
|
||||||
|
|
||||||
|
# diskwho: to show processes reading/writing to disk
|
||||||
|
alias diskwho='sudo iotop'
|
||||||
|
|
||||||
|
#------------
|
||||||
|
# Networking:
|
||||||
|
#------------
|
||||||
|
# lsock: to display open sockets (the -P option to lsof disables port names)
|
||||||
|
alias lsock='sudo /usr/sbin/lsof -i -P'
|
||||||
|
|
||||||
|
# airportMtu: set the MTU on Airport to be a value that makes SMTP to DSL work
|
||||||
|
# (I determined the value empirically by using 'ping -s' to the SMTP server)
|
||||||
|
alias airportMtu='sudo ifconfig en1 mtu 1364'
|
||||||
|
|
||||||
|
# airport: Apple's command-line tool. For status info, use -I, for help use -h
|
||||||
|
# See: http://www.macosxhints.com/article.php?story=20050715001815547
|
||||||
|
alias airport='/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport'
|
||||||
|
# Note also the tool that I compiled: airport_info (in my Tools dir)
|
||||||
|
|
||||||
|
# ip_info: to get info on DHCP server, router, DNS server, etc (for en0 or en1)
|
||||||
|
alias ip_info='ipconfig getpacket en1'
|
||||||
|
|
||||||
|
# browse_bonjour: browse services advertised via Bonjour
|
||||||
|
# Note: need to supply a "type" argument- e.g. "_http._tcp"
|
||||||
|
# See http://www.dns-sd.org/ServiceTypes.html for more types
|
||||||
|
# Optionally supply a "domain" argument
|
||||||
|
alias browse_bonjour='dns-sd -B'
|
||||||
|
|
||||||
|
# hostname_lookup: interactive debugging mode for lookupd (use tab-completion)
|
||||||
|
alias hostname_lookup='lookupd -d'
|
||||||
|
|
||||||
|
# debug_http: download a web page and show info on what took time
|
||||||
|
debug_http () { /usr/bin/curl $@ -o /dev/null -w "dns: %{time_namelookup} connect: %{time_connect} pretransfer: %{time_pretransfer} starttransfer: %{time_starttransfer} total: %{time_total}\n" ; }
|
||||||
|
|
||||||
|
# http_headers: get just the HTTP headers from a web page (and its redirects)
|
||||||
|
http_headers () { /usr/bin/curl -I -L $@ ; }
|
||||||
|
|
||||||
|
# Note: 'active_net_iface' is my script that echos the active net interface
|
||||||
|
# pkt_trace: for use in the following aliases
|
||||||
|
alias pkt_trace='sudo tcpflow -i `active_net_iface` -c'
|
||||||
|
|
||||||
|
# smtp_trace: to show all SMTP packets
|
||||||
|
alias smtp_trace='pkt_trace port smtp'
|
||||||
|
|
||||||
|
# http_trace: to show all HTTP packets
|
||||||
|
alias http_trace='pkt_trace port 80'
|
||||||
|
|
||||||
|
# tcp_trace: to show all TCP packets
|
||||||
|
alias tcp_trace='pkt_trace tcp'
|
||||||
|
|
||||||
|
# udp_trace: to show all UDP packets
|
||||||
|
alias udp_trace='pkt_trace udp'
|
||||||
|
|
||||||
|
# ip_trace: to show all IP packets
|
||||||
|
alias ip_trace='pkt_trace ip'
|
||||||
|
|
||||||
|
# can use 'scselect' to find out current network "location"
|
||||||
|
# can use 'scutil' for other system config stuff
|
||||||
|
|
||||||
|
# to do socket programming in bash, redirect to /dev/tcp/$host/$port
|
||||||
|
# Example:
|
||||||
|
osaClient ()
|
||||||
|
{
|
||||||
|
exec 5<> /dev/tcp/localhost/4321
|
||||||
|
cat $1 >&5
|
||||||
|
echo "-- end of file" >&5
|
||||||
|
cat <&5
|
||||||
|
exec 5>&-
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#------
|
||||||
|
# Misc:
|
||||||
|
#------
|
||||||
|
# epochtime: report number of seconds since the Epoch
|
||||||
|
alias epochtime='date +%s'
|
||||||
|
|
||||||
|
# screensaverdesktop: run a screensaver on the Desktop
|
||||||
|
alias screensaverdesktop='/System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine -background'
|
||||||
|
|
||||||
|
# consoleapp: launch the Console app from Terminal
|
||||||
|
alias consoleapp='/Applications/Utilities/Console.app/Contents/MacOS/Console &'
|
||||||
|
|
||||||
|
#---------------------------
|
||||||
|
# System operations & info:
|
||||||
|
#---------------------------
|
||||||
|
# repairpermissions
|
||||||
|
alias repairpermissions='sudo diskutil repairpermissions /'
|
||||||
|
|
||||||
|
# install all software updates from the command line
|
||||||
|
alias software_update_cmd='COMMAND_LINE_INSTALL=1 export COMMAND_LINE_INSTALL; sudo softwareupdate -i -a'
|
||||||
|
|
||||||
|
# third_party_kexts: to check for non-Apple kernel extensions
|
||||||
|
alias third_party_kexts='kextstat | grep -v com.apple'
|
||||||
|
|
||||||
|
# show_optical_disk_info - e.g. what type of CD & DVD media is supported
|
||||||
|
alias show_optical_disk_info='drutil info'
|
||||||
|
|
||||||
|
# remove_disk: spin down unneeded disk
|
||||||
|
# diskutil eject /dev/disk1s3
|
||||||
|
alias nd0='diskutil eject /dev/disk0s3'
|
||||||
|
alias nd1='diskutil eject /dev/disk1s3'
|
||||||
|
|
||||||
|
# mount_read_write: for use when booted into single-user
|
||||||
|
alias mount_read_write='/sbin/mount -uw /'
|
||||||
|
|
||||||
|
# herr: shows the most recent lines from the HTTP error log
|
||||||
|
alias herr='tail /var/log/httpd/error_log'
|
||||||
|
|
||||||
|
# use vsdbutil to show/change the permissions ignoring on external drives
|
||||||
|
# To ignore ownerships on a volume, do: sudo vsdbutil -d /VolumeName
|
||||||
|
# To restore ownerships on a volume, do: sudo vsdbutil -a /VolumeName
|
||||||
|
# To check the status of ownerships, do: sudo vsdbutil -c /VolumeName
|
||||||
|
alias ignore_permissions='sudo vsdbutil -d'
|
||||||
|
|
||||||
|
# to change the password on anencrypted disk image:
|
||||||
|
# hdiutil chpass /path/to/the/diskimage
|
||||||
|
|
||||||
|
# netparams: to show values of network parameters in the kernel
|
||||||
|
alias netparams='sysctl -a | grep net'
|
||||||
|
|
||||||
|
# swapinfo: to display info on swap
|
||||||
|
alias swapinfo='sysctl vm.swapusage'
|
||||||
|
|
||||||
|
# get info about system via AppleScript
|
||||||
|
# Note: this is rather slow - it is faster to run 'system_profiler'
|
||||||
|
# Note: to get computer name use: computer name of (system info)
|
||||||
|
applescript_info ()
|
||||||
|
{
|
||||||
|
info=$( /usr/bin/osascript <<" EOT"
|
||||||
|
system info
|
||||||
|
EOT
|
||||||
|
)
|
||||||
|
echo $info
|
||||||
|
}
|
||||||
|
|
||||||
|
# to mount a read-only disk image as read-write:
|
||||||
|
# hdiutil attach example.dmg -shadow /tmp/example.shadow -noverify
|
||||||
|
|
||||||
|
# mounting a removable drive (of type msdos or hfs)
|
||||||
|
# mkdir /Volumes/Foo
|
||||||
|
# ls /dev/disk* to find out the device to use in the mount command)
|
||||||
|
# mount -t msdos /dev/disk1s1 /Volumes/Foo
|
||||||
|
# mount -t hfs /dev/disk1s1 /Volumes/Foo
|
||||||
|
|
||||||
|
# to create a file of a given size: /usr/sbin/mkfile or /usr/bin/hdiutil
|
||||||
|
# e.g.: mkfile 10m 10MB.dat
|
||||||
|
# e.g.: hdiutil create -size 10m 10MB.dmg
|
||||||
|
# the above create files that are almost all zeros - if random bytes are desired
|
||||||
|
# then use: ~/Dev/Perl/randBytes 1048576 > 10MB.dat
|
||||||
|
|
||||||
|
# making a hard-link backup of a directory
|
||||||
|
# rsync -a --delete --link-dest=$DIR $DIR /backup/path/for/dir
|
||||||
|
|
||||||
|
# starting AFP file sharing
|
||||||
|
alias startFileSharing='sudo /usr/sbin/AppleFileServer'
|
||||||
|
|
||||||
|
# hidden command line utilities: networksetup & systemsetup
|
||||||
|
alias networksetup='/System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Support/networksetup'
|
||||||
|
alias systemsetup='/System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Support/systemsetup'
|
||||||
|
alias ardkickstart='/System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart'
|
||||||
|
|
||||||
|
|
||||||
|
#--------
|
||||||
|
# Finder:
|
||||||
|
#---------
|
||||||
|
# show hidden files in Finder
|
||||||
|
alias finderShowHidden='defaults write com.apple.finder ShowAllFiles TRUE'
|
||||||
|
alias finderHideHidden='defaults write com.apple.finder ShowAllFiles FALSE'
|
||||||
|
|
||||||
|
# finderTurnOffDesktop: turn off display of files on the Desktop
|
||||||
|
alias finderTurnOffDesktop='defaults write com.apple.finder CreateDesktop FALSE'
|
||||||
|
|
||||||
|
# to stop Finder writing .DS_Store files on network volumes
|
||||||
|
# defaults write com.apple.desktopservices DSDontWriteNetworkStores true
|
||||||
|
|
||||||
|
# lsregister: utility for looking at the Launch Services database
|
||||||
|
# e.g. 'lsregister -dump' to display database contents
|
||||||
|
# use 'lsregister -h' to get usage info
|
||||||
|
alias lsregister='/System/Library/Frameworks/ApplicationServices.framework/Frameworks/LaunchServices.framework/Support/lsregister'
|
||||||
|
|
||||||
|
# disable and re-enable Dashboard Widgets
|
||||||
|
alias disableDashboard='defaults write com.apple.dashboard mcx-disabled -bool YES; killall Dock'
|
||||||
|
alias enableDashboard='defaults delete com.apple.dashboard mcx-disabled; killAll Dock'
|
||||||
|
|
||||||
|
# ql: show a "Quick Look" view of files
|
||||||
|
ql () { /usr/bin/qlmanage -p "$@" >& /dev/null & }
|
||||||
|
|
||||||
|
# locateql: search using Spotlight and show a "Quick Look" of matching files
|
||||||
|
locateql ()
|
||||||
|
{
|
||||||
|
locatemd "$@" | enquote | xargs qlmanage -p >& /dev/null &
|
||||||
|
}
|
||||||
|
|
||||||
|
#--------
|
||||||
|
# Safari:
|
||||||
|
#--------
|
||||||
|
# cleanup_favicons: clean up Safari favicons
|
||||||
|
alias cleanup_favicons='find $HOME/Library/Safari/Icons -type f -atime +30 -name "*.cache" -print -delete'
|
||||||
|
|
||||||
|
|
||||||
|
#-----------------
|
||||||
|
# Misc Reminders:
|
||||||
|
#-----------------
|
||||||
|
|
||||||
|
# To find idle time: look for HIDIdleTime in output of 'ioreg -c IOHIDSystem'
|
||||||
|
|
||||||
|
# to set the delay for drag & drop of text (integer number of milliseconds)
|
||||||
|
# defaults write -g NSDragAndDropTextDelay -int 100
|
||||||
|
|
||||||
|
# URL for a man page (example): x-man-page://3/malloc
|
||||||
|
|
||||||
|
# to read a single key press:
|
||||||
|
alias keypress='read -s -n1 keypress; echo $keypress'
|
||||||
|
|
||||||
|
# to compile an AppleScript file to a resource-fork in the source file:
|
||||||
|
osacompile_rsrc () { osacompile -x -r scpt:128 -o $1 $1; }
|
||||||
|
|
||||||
|
# alternative to the use of 'basename' for usage statements: ${0##*/}
|
||||||
|
|
||||||
|
# graphical operations, image manipulation: sips
|
||||||
|
|
||||||
|
# numerical user id: 'id -u'
|
||||||
|
# e.g.: ls -l /private/var/tmp/mds/$(id -u)
|
||||||
|
|
||||||
1
plugins/dot-env/os/Darwin/path.sh
Normal file
1
plugins/dot-env/os/Darwin/path.sh
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
pathmunge "/Developer/usr/bin"
|
||||||
22
plugins/dot-env/os/Linux/alias.sh
Normal file
22
plugins/dot-env/os/Linux/alias.sh
Normal file
|
|
@ -0,0 +1,22 @@
|
||||||
|
# Vi Editing and Sourcing aliases
|
||||||
|
alias ea='vi ~/.env/os/Linux/alias.sh'
|
||||||
|
alias eas='. ~/.env/os/Linux/alias.sh'
|
||||||
|
alias ees='. ~/.env/source.sh'
|
||||||
|
alias ef='vi ~/.env/os/Linux/functions.sh'
|
||||||
|
alias efs='. ~/.env/os/Linux/functions.sh'
|
||||||
|
alias ep='vi ~/.env/os/Linux/path.sh'
|
||||||
|
alias eps='. ~/.env/os/Linux/path.sh'
|
||||||
|
alias eh="vi ~/.env/host/$HOSTNAME/*.sh"
|
||||||
|
alias ehs=". ~/.env/host/$HOSTNAME/*.sh"
|
||||||
|
|
||||||
|
# Directory Listing aliases
|
||||||
|
alias dir='ls -hFx'
|
||||||
|
alias l.='ls -d .* --color=auto'
|
||||||
|
alias l='ls -lathF --color=auto'
|
||||||
|
alias L='ls -latrhF'
|
||||||
|
alias ll='ls -lFh'
|
||||||
|
alias lo='ls -laSFh'
|
||||||
|
alias vdir='ls --color=auto --format=long'
|
||||||
|
|
||||||
|
# Process Find Aliases
|
||||||
|
alias pfn='ps -e -o user,pid,args|grep'
|
||||||
5
plugins/dot-env/os/Linux/env.sh
Normal file
5
plugins/dot-env/os/Linux/env.sh
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
# Misc
|
||||||
|
export EDITOR="vi"
|
||||||
|
export CVSEDITOR="$EDITOR"
|
||||||
|
export SVN_EDITOR="$EDITOR"
|
||||||
|
export VISUAL="$EDITOR"
|
||||||
0
plugins/dot-env/os/Linux/functions.sh
Normal file
0
plugins/dot-env/os/Linux/functions.sh
Normal file
4
plugins/dot-env/os/SunOS/alias.sh
Normal file
4
plugins/dot-env/os/SunOS/alias.sh
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
# Solaris Environment Aliases
|
||||||
|
|
||||||
|
# Editing and Sourcing aliases
|
||||||
|
alias ees='. ~/.env/source.sh'
|
||||||
13
plugins/dot-env/os/SunOS/functions.sh
Normal file
13
plugins/dot-env/os/SunOS/functions.sh
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
function rgrep {
|
||||||
|
if [[ $# -lt 1 ]]; then
|
||||||
|
echo "Usage: rgrep PATTERN [PATH]"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
pattern="$1"
|
||||||
|
if [[ -z "$2" ]]; then
|
||||||
|
path=`pwd`
|
||||||
|
else
|
||||||
|
path="$2"
|
||||||
|
fi
|
||||||
|
find -L "$path"|xargs grep "$pattern"
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue