Skip to content

Instantly share code, notes, and snippets.

@demoive
Last active December 15, 2015 02:21
Show Gist options
  • Save demoive/11163607 to your computer and use it in GitHub Desktop.
Save demoive/11163607 to your computer and use it in GitHub Desktop.
My Bash Stuff
# .bash_logout
# Executed after logout of bash shells
clear
# .bash_profile
# Executed for login bash shells
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# .bashrc
# Executed for interactive bash shells
#mydate=`date "+%H:%M:%S %m/%d/%y"`
#cal_history=`calendar -l 0 -f /usr/share/calendar/calendar.history`
#echo
#echo "On this day in history..."
#echo "$cal_history"
#echo
#echo `curl -s -m 5 http://www.familyguyquotes.com/random-plaintext.php`
#echo
# Increase the user limit of concurrent open files (default is 256)
ulimit -n 1024
# Sets the editor to (hopefully) be used by programs
export EDITOR=vim
# Increase the bash history
export HISTSIZE=1000
export HISTFILESIZE=1000
# Set the window title to the current directory
# PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"'
PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "\007"'
# Aliases
#alias rm="mv ~./Trash" # OS X only
alias rm="rm -i"
alias rmdir="rm -iR"
alias srm="rm -iP" # (-P OS X only)
alias srmdir="rm -RiP" # like "ripping" a piece of paper :-P
alias mv="mv -i"
alias cp="cp -ip"
alias cpdir="cp -Rip"
#alias ls="ls -G"
alias ll="ls -lhG"
alias la="ls -lhAG"
alias lr="ls -RF | less"
alias lR="ls -lhR | less"
alias h="history | less +G"
#alias h="history | tail -n 15"
#alias hh="history | less"
alias hgrep="history | grep $1"
#alias htail="history | tail if[$1]; then -n $1 fi"
#alias cd..='cd ..'
#alias ..='cd ..'
#alias ...='cd ../../../'
#alias ....='cd ../../../../'
#alias .....='cd ../../../../'
#alias ..2='cd ../../'
#alias ..3='cd ../../../'
#alias ..4='cd ../../../../'
#alias ..5='cd ../../../../../'
alias j='jobs -l'
alias hr='echo "##################################################"'
alias server='open http://localhost:8000 && python -m SimpleHTTPServer'
#alias cpe461="cd ~/Sites/Projects/SeniorProject/; enscript -E --color -Whtml --toc -p source/index.html *.php *.inc *.html"
#export JAVA_HOME=/Library/Java/Home
# Sets the prompt:
#PS1='\h:\w \u\$ '
#PS2='> '
#PS1='[\!] \h:\w \$ '
#PS1='\[\033[$(($RANDOM % 6 + 40))m\]\h\[\033[0m\]:\W \u\$ ' # Random background color
## || ++++++++++++++++++++++||^^|| ++||^^^^^^^^^
# \A - The current time in 24-hour HH:MM format
# \a - The ASCII bell character (you can also type \007)
# \d - Date in "Wed Sep 06" format
# \e - ASCII escape character (you can also type \033)
# \h - First part of hostname (such as "mybox")
# \H - Full hostname (such as "mybox.mydomain.com")
# \j - The number of processes you've suspended in this shell by hitting ^Z
# \l - The name of the shell's terminal device (such as "ttyp4")
# \n - Newline
# \r - Carriage return
# \s - The name of the shell executable (such as "bash")
# \t - Time in 24-hour format (such as "23:01:01")
# \T - Time in 12-hour format (such as "11:01:01")
# \@ - Time in 12-hour format with am/pm
# \u - Your username
# \v - Version of bash (such as 2.04)
# \V - Bash version, including patchlevel
# \w - Current working directory (such as "/home/pravila")
# \W - The "basename" of the current working directory (such as "pravila")
# \! - Current command's position in the history buffer
# \# - Command number (this will count up at each prompt, as long as you type something)
# \$ - If you are not root, inserts a "$"; if you are root, you get a "#"
# \xxx - Inserts an ASCII character based on three-digit number xxx (replace unused digits with zeros, such as "\007")
# \\ - A backslash
# \[ - This sequence should appear before a sequence of characters that don't move the cursor (like color escape sequences). This allows bash to calculate word wrapping correctly.
# \] - This sequence should appear after a sequence of non-printing characters.
# !m
# !-5
# !?-L?!
# ^-l^-la^
# mail [email protected] < message.txt
##
# DELUXE-USR-LOCAL-BIN-INSERT
# (do not remove this comment)
##
echo $PATH | grep -q -s "/usr/local/bin"
if [ $? -eq 1 ] ; then
PATH=$PATH:/usr/local/bin
export PATH
fi
# .inputrc
# Customize Readline library keybindings
# Uses what's already typed as filters for up/down history navigation
"\e[A": history-search-backward
"\e[B": history-search-forward
set show-all-if-ambiguous on
set completion-ignore-case on
# .profile
# Executed for any login shell
@demoive
Copy link
Author

demoive commented Apr 22, 2014

Just logging this here until I figure out where to put it:

# These "defaults" commands help adjust (usually hidden) settings in Mac OS X

# defaults domains
# defaults read [domain]
# defaults read-type [domain] [key]
# defaults delete [domain] [key]

# Dock
# defaults write com.apple.dock no-glass -boolean [yes]                 - doesn't use the deafult glass tray look of Leopard when Dock is on the bottom
# defaults write com.apple.dock mineffect -string [suck]                - defines the minimization effect of windows
# defaults write com.apple.dock pinning -string [middle | start | end]  - defines the alignment of the dock
# defaults write com.apple.dock orientation -string [top]               - defines location of the dock
# defaults write com.apple.dock showhidden -boolean [yes]               - enable transparent icons for hidden applications
# defaults write com.apple.dock showshadow -boolean [yes]               - show dock shaddow
# defaults write com.apple.dock AppleShowAllFiles -boolean [yes]        - show hidden items in folders and disks
# defaults write com.apple.dock largesize -int [512]                    - change magnification size
# defaults write com.apple.dock single-app -boolean [yes]               - toggles only one program visible (same as Cmd + Opt + clicking a program in the dock)

# Finder
# defaults write com.apple.finder AppleShowAllFiles -boolean [yes]      - show hidden files in finder
# defaults write com.apple.finder ProhibitEmptyTrash -boolean [yes]     - prohibits the Trash from being emptied (prank)
# defaults write com.apple.finder CreateDesktop -int 0                  - no icons displayed on desktop (prank)

# Expose
# defaults write com.apple.dock wvous-floater -boolean [yes]            - shows the useless "Expose blob"
# defaults write com.apple.dock wvous-showcorners -boolean [yes]        - shows the active screen corners of Expose
# defaults write com.apple.dock wvous-olddesktop -boolean [no]          - defines the "desktop" feature of Expose (buggy)

# Dashboard
# defaults write com.apple.dashboard mcx-disabled -boolean [yes]        - disables the dashboard

# Safari
# defaults write com.apple.Safari IncludeDebugMenu -bool [yes]          - show Debug menu
# defaults write.com.apple.Safari WebIconDatabaseEnabled -bool NO       - dissable favicons

# iTunes
# defaults write com.apple.iTunes invertStoreLinks -bool YES            - little arrows search your library rather than the Music Store (v4.5)

# Global (USE WITH CAUTION)
# defaults write com.apple.screencapture type -string [extension]           - file type that screen shot is saved as (bmp/gif/jpg/jp2/pdf/pict/png/psd/sgi/tga/tiff)
# defaults write com.apple.screencapture location -string [path]        - location screenshot is saved
# defaults write com.apple.screencapture name -string [name]            - name of file
# killall SystemUIServer; open /System/Library/CoreServices/SystemUIServer.app/
# defaults write -g AppleScrollBarVarient -string DoubleMin             - put both scroll arrows on top (left)
# defaults write -g AppleScrollBarVarient -string DoubeMax              - put both scroll arrows on bottom (right)
# defaults write -g AppleScrollBarVarient -string DoubleBoth            - put both scroll arrows on both sides
# defaults write -g AppleScrollBarVarient -string Single                - put single scroll arrows

# Login Window (USE WITH CAUTION)
# defaults write /Library/Preferences/com.apple.loginwindow LoginwindowText -string "Login Greeting"
# defaults write /Library/Preferences/com.apple.loginwindow LoginwindowText-FontSize -int 12
# defaults write /Library/Preferences/com.apple.loginwindow Kiosk -int 1    - doesn't allow anyone to shutdown/restart/logout (unless: sudo shutdown -h now)
# defaults write /Library/Preferences/com.apple.loginwindow RetriesUntilHint -int 1     - 0 means won't ever show hints
# defaults write /Library/Preferences/com.apple.loginwindow DesktopPicture "/Path/to/picture/you/want/to/use/image.jpg"

# (note, you can click on the grayed txt above greeting to see different info about the computer)




# Good Finder Keyboard Shortcuts:

# Ctr+F2                Access Apple Menu Toolbar
# Cmd+Shift+C           Open Computer
# Cmd+Shift+H           Open Home Directory
# Cmd+Shift+A           Open Applications Folder
# Cmd+Shift+U           Open Utilities Folder (Open URL in Camino)
# Cmd+Shift+G           Go to...
# Cmd+Shift+Y           Open up Stickies
# Cmd+Shift+F           Perform Spotlight search on highlighted txt
# Cmd+Shift+L           Open up Safari (searches highlighted txt with Google)
# Cmd+Shift+K           Open Networks
# Cmd+Shift+C           Open Computer
# Cmd+Shift+I           Connect to iDisk
# Cmd+Opt+D             Toggle Dock hiding

# Universal Access
# Cmd+Opt+*             Turn on Zoom
    # Cmd+Opt++         Zoom in
    # Cmd+Opt+-         Zoom out
# Cmd+Opt+Ctr+*         Negative colors on screen
# Ctr+F1                Turn on Full Keyboard Access (allows the following commands):
    # Ctr+F2            Focus to Apple Menu
    # Ctr+F3            Focus to Dock
    # Ctr+F4            Toggle between all windows
    # Ctr+F5            Focus to Toolbar
    # Ctr+F6            Focus to Utility Palette (if open in an application)

# Cmd+D                 Duplicate
# Cmd+L                 Create an Alias
# Cmd+R                 Show Original

# Cmd+Opt+Eject         Sleep
# Cmd+Ctr+Eject         Restart
# Cmd+Opt+Ctr+Eject     Shutdown
# Cmd+Shift+Q           Logout
# Cmd+Opt+Shift+Q       Immediate Logout



# Startup

# Cmd+V         - Verbose Mode: shows console messages during boot & shutdown
# Cmd+S         - Single User Mode
# Shift         - Safe Mode: disables login items and non-essential kernel extensions
# C             - Boot from internal CD-ROM drive
# D             - Boot from internal disc (if the default boot device has been set to something else)
# X             - Force Mac OS X Start up
# N             - Boot from Network
# T             - Boot into Firewire Target Mode (boots as external HD when connected to another machine)
# Mouse Button  - Eject floppy disc before starting up

# Cmd+Opt+O+F   - Boot into "Open Firmware" mode to configure various properties of your system related to booting.
#   ls          - lists the devices below the current node in the device tree (similar to ls in a filesystem)
#   pwd         - lists the location of the current node in the device tree (similar to pwd in a filesystem)
#   printenv    - prints the current and default values of the settings in the Open Firmware environment
#   eject fd    - eject a floppy disk
#   eject cd    - eject the CD-ROM drive
#   shut-down   - permanently store the Open Firmware environment variables and power down the computer
#   mac-boot    - Boot Mac OS on an Open Firmware 3 system



# Classic UNIX multi-user login mode

# At the OS X login window, type
# >console
# for the user and leave the password field blank.




# Hide the menu bar and dock for any application.
# Add the following 2 lines to the "info.plist" of any Cocoa application
# right below the <dict> entry:
#
# <key>LSUIPresentationMode</key>
# <integer>4</integer>



# fs_usage



# tidy
# tidy -ic -asxhtml -wrap 9999 -o out.html in.html
# tidy -ic -asxhtml -wrap 9999 -m replace.html




# System Preference Titles
# /Applications/System Preferences.app/Contents/Resources/English.lproj/NSPrefPaneGroups.strings




# Dock files
# /System/Library/CoreServices/Dock/Contents/Resources



# Extract all the email addresses from the Address Book
# sqlite3 ~/Library/Application\ Support/AddressBook/AddressBook-v22.abcddb "select ZADDRESSNORMALIZED from ZABCDEMAILADDRESS;" | sort | uniq



# Location of the default wallpaper
# /System/Library/CoreServices/DefaultDesktop.jpg




# Terminal login greeting:
# /etc/motd




# Batch changes in vim
# vim -c "argdo %s/ABC/DEF/ge | x" *.c
# vim -e -s file.txt < thefilter




# runs screen saver as desktop (use kill to stop)
# /System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine -background &




# show your routing table
# netstat -r -f inet -n



# backup
# cd ~/
# rsync -n -auEv --delete --exclude=/.Trash/ --exclude=/Music/ ./ /Volumes/iPaul/bkup/Tiger/ | grep -v "/._" | grep -v "/$" | tee /Volumes/iPaul/bkup/2006.05.08.log



# Show Login Window (Lock Computer)
# /System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend



# http://www.macworld.com/weblogs/macosxhints/2007/03/peekinstall/index.php?lsrc=mwrss
# List the contents of an installer file
# (inside the "Content" folder of a package:
#
# lsbom Archive.bom | more
#         or
# gzip -cd archive.pax.gz | pax | more




# Applescript
# do shell script "rsync -aE --delete "What to backup" "Where to backup" || echo -n"



# redirect specific outputs on the command line shell (with sh)
#
#1>                               stdout
#2>                               stderr
#0>                               stdin
#
# ls > file 2>&1                   send stderr (2) to the same place as stdout(1)
# ls 1>file1 2>file2               redirect stdout to file1 and stderr to file2
# ls >&output.txt                  redirect both stdout & stderr
#





# Great system monitoring commands (originally used in Geektool)

# top -FR -cd -o cpu -n 7 -l2 | tail -n14
# ps -racx -o command,%cpu | head -n7 | grep -v '%'
# netstat -ab -f inet | grep -i 'established' | sort +4
# grep -h "^$(date '+%m/%d')" /usr/share/calendar/calendar.* | cut -f2
# ps -arcx -o %cpu,command | awk ' { if (FNR &lt;= 6 &amp;&amp; $1 != "%CPU" &amp;&amp; $1 != "0.0") { printf("%c%c%3.1f%% ", ($1 &lt; 100 ? " " : ""), ($1 &lt; 10 ? " " : ""), $1); for (i= 2; i &lt;= NF; i++) { printf("%s ", $i); } printf("\n"); } }'
# ifconfig | grep "inet [0-9]" | grep -v 127.0.0.1 | awk '{print $2}'; ifconfig | grep "ether" | awk '{print $2}'
# ifconfig en1 | grep " active"     (en1 is usually airport, en0 is ethernet)

# Airport Stregnth meter:
# while x=1; do /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I | grep CtlRSSI; sleep 0.5; done
#
# The value is in dBm, which is a logarithmic scale so that an increase of 10
# units means a factor of 10 increase in power; an increase of 20 means a factor
# of 100 increase in power; etc. Watching this reading, I was able to position
# the router and antenna for maximum signal strength at various places in the
# shed. 



# calendar -f /usr/share/calendar/
# /usr/share/misc/



# create iso disk image from file/directory
# hdiutil makehybrid -verbose -iso -joliet -o <target.iso> <directory> 



# Hides a file from showing up in the finder.
# /Developer/Tools/SetFile -a V /Volumes/Untitled/
# /Developer/Tools/SetFile -a v /Volumes/Untitled/



# telnet towel.blinkenlights.nl


# for user installed binaries, put them in /usr/local/bin (and add to PATH)
# man curl_unescape
# man getopt
# man iswalnum, iswalpha, iswascii, iswblank, iswcntrl, iswdigit, iswgraph, iswhexnumber, iswideogram, iswlower, iswnumber, iswphonogram, iswprint, iswpunct, iswrune, iswspace, iswspecial, iswupper, iswxdigit


####### Fricken really useful (and probably not well known) #######

# tidy              - validate, correct, and pretty-print HTML files
# expand/unexpand   - expand tabs to spaces, and vice versa (
# fmt               - simple text formatter
# aspell            - NOT INCLUDED WITH OS
# htpasswd          - Create and update user authentication files

# textutil          - manipulate text files ( textutil -convert html /Users/Paulo/Desktop/ProjectOutline.rtf )
#                                           ( textutil -convert txt /Users/Paulo/Desktop/ProjectOutline.rtf )
# pstopdf           - convert PostScript input into a PDF document
# enscript          - convert text files to PostScript ( enscript -E --color -Whtml --toc -p OUTPUT.html *.h *.c )
#                                                      ( enscript -G2rE -U2 -p OUTPUT.ps INPUT.c )
#                                                      ( enscript -B -E --color -p - INPUT.FILE | pstopdf -i -o OUTPUT.pdf )
#                                                      ( textutil -stdout -convert txt INPUT.rtf | enscript -B -E --color -p - | pstopdf -i -o OUTPUT.pdf )



# lsbom             - list contents of a bom file
# pax               - read and write file archives and copy directory hierarchies


# zipgrep           - search files in a ZIP archive for lines matching a pattern
# sips              - scriptable image processing system

# nmap              - network port scanner (NOT INCLUDED WITH OS)
# vmstat            - display virtual memory statistics (NOT INCLUDED WITH OS)
# readefl           - show information and statistics about a designated elf binary (NOT INCLUDED WITH OS)
# watch             - run a command repeatedly, at specified time intervals (NOT INCLUDED WITH OS)

# size              - print the size of the sections in an object file

# curl              - transfer a URL
# lynx              - NOT INCLUDED WITH OS
# links             - NOT INCLUDED WITH OS

# split             - split a file into pieces
# cat               - concatenate and print files
# cmp               - compare two files byte by byte
# uniq              - report or filter out repeated lines in a file

# bc                - arbitrary precision calculator language
# dc                - an arbitrary precision calculator (reverse-polish)
# units             - conversion program
# expr              - evaluate expression
# look              - display lines beginning with a given string
# dd                - convert and copy a file

# find              - walk a file hierarchy     ( find / -name '\.DS_Store' -exec rm -f {} \; )
#                                               ( find ~ -name \.DS_Store )
#                                               ( find ~ -name *\.app -type d )
# tee               - pipe fitting
# strings           - find the printable strings in a object, or other binary, file
# nm                - display name list (symbol table)
# otool             - object file displaying tool

# stat              - display file status
# srm               - securely remove files or directories
# rs                - reshape a data array
# rev               - reverse lines of a file


### Pretty interesting, and maybe even cool, but probably not common for day-to-day use
# lock              - reserve a terminal
# leave             - remind you when you have to leave
# banner            - print large banner on printer
# figlet            - convert text into a signature (NOT INCLUDED WITH OS)
# wait4path         - wait for given path to show up in the namespace

# tiffutil          - manipulates tiff files
# tiff2icns         - converts TIFF to icns format
# ar                - create and maintain library archives
# cscope            - interactively examine a C program
# column            - columnate lists
# apropos           - search the whatis database for strings
# lam               - laminate files

# cut               - select portions of each line of a file
# csplit            - split files based on context
# comm              - select or reject lines common to two files
# colrm             - remove columns from a file
# xmllint           - command line XML tool

# screencapture     - capture and manipulate clipboard contents
# say               - convert text to audible speech

# uptime            - show how long system has been running
# last              - indicate last logins of users and ttys
# dmesg             - display the system message buffer
# ac                - display connect time accounting

# id                - return user identity
# w                 - display who is logged in and what they are doing
# who               - display who is on the system
# whoami            - display effect user id
# logname           - display user's login name (maybe different from whoami if su is used)
# finger            - user information lookup program

# hostname          - print the name of current host system
# hostinfo          - host information
# uname             - print Operating System name
# sw_vers           - print Mac OS X operating system version information
# machine           - print machine type
# arch              - print architecture type

# manpath           - format and display the on-line manual pages

# netstat           - show network status
# top               - display and update sorted information about processes
# ps                - process status
# df -h/H           - display free disk space
# du -hd 0          - display disk usage statistics
# lsof              - list open files
# cksum             - display file checksums and block counts

# pbcopy/pbpaste    - provide copying and pasting to the pasteboard (the Clipboard) from command line
#                   - pbpaste | wc
#                   - pbpaste | xmllint -- noout -      // see if clipboard contents are well XML formed
#                   - ls ~/Pictures pbcopy



# Shell                                     tcsh                bash
# Display all shell variables           set                 set
# Create a shell variable               set name value      name=value
# Remove a shell variable               unset name          unset name
# List all environment variables        env                 env
# Create an environment variable        setenv name value   export name=value
# Remove an environment variable        unsetenv name       unset name







####### System Tools #######

# mdfind            - finds files matching a given query
# mdls              - lists the metadata attributes for the specified file
# mdutil            - manage the metadata stores used by Spotlight
# mdimport          - import file hierarchies into the metadata datastore

# at                - queue, examine, or delete jobs for later execution
# cron              - daemon to execute scheduled commands (Vixie Cron)
# crontab           - maintain crontab files for individual users
# nice              - execute a utility with an altered scheduling priority

# asr               - Apple Software Restore; copy volumes (e.g. from disk images)
# softwareupdate    - system software update tool
# defaults          - access the Mac OS X user defaults system

# SetFile           - get attributes of files and directories (MAC OS X)
# GetFileInfo       - set attributes of files and directories (MAC OS X)





### Dangerously Administrative
# su                - substitute user identity
# sudo              - execute a command as another user
# passwd            - modify a user's password
# mount             - mount file systems
# logger            - make entries in the system log
# hdiutil           - manipulate disk images (attach, detach, verify, create, convert, burn)
# deafults          - access the Mac OS X user defaults system
# bless             - set volume bootability and startup disk options
# diskutil          - modify, verify and repair local disks
# fdisk             - DOS partition maintenance program
# pmset             - modify power management settings
# shutdown          - close down the system at a given time
# iostat            - report I/O statistics
# quotaon/quotaoff  - turn filesystem quotas on and off
# quota             - display disk usage and limits
# edquota           - edit user quotas
# quot              - display total block usage per user for a file system
# repquota          - summarize quotas for a file system
# pwpolicy          - gets and sets password policies
# leaks             - search a process's memory for unreferenced malloc buffers






####### You really should know these (if not, learn them cause they're good) #######

# grep              - print lines matching a pattern
# awk               - pattern-directed scanning and processing language
# sed               - stream editor
# head              - display first lines of a file
# tail              - display the last part of a file
# diff              - compare files line by line
# diff3             - compare three files line by line

# sftp              - secure file transfer program
# scp               - secure copy (remote file copy program)
# ssh               - OpenSSH SSH client (remote login program)
# rsync             - faster, flexible replacement for rcp
# dig               - DNS lookup utility
# host              - DNS lookup utility
# whois             - Internet domain name and network number directory service

# xxd               - make a hexdump or do the reverse
# time              - time command execution
# file              - determine file type
# jot               - print sequential or random data
# yes               - be repetitively affirmative
# zip/unzip
# gzip/gunzip
# tar
# compress/uncompress

# traceroute        - print the route packets take to network host
# ping              - send ICMP ECHO_REQUEST packets to network hosts
# spray             - send many packets to host

# wc                - word, line, character, and byte count
# date              - display or set date and time
# cal               - displays a calendar
# ditto             - copy files and directories to a destination directory
# pwd               - return working directory name

# jobs/fg/bg        - control process execution
# alias/unalias     - create or remove a pseudonym or shorthand for a command or series of commands
# source            - 

# talk              - talk to another user
# write             - send a message to another user
# wall              - write a message to users
# mesg              - display (do not display) messages from other users

# touch             - change file access and modification times
# sort              - sort lines of text files

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment