aboutsummaryrefslogtreecommitdiff
path: root/bash/bashrc
blob: cdfcaffebe734fe73b62fb8ed70e80384d5600a2 (plain) (blame)
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
# Don't do anything if not running interactively
[[ -z "$PS1" ]] && return

# Keep plenty of history
HISTFILESIZE=1000000
HISTSIZE=1000000

# Ignore duplicate commands and whitespace in history
HISTCONTROL=ignoreboth

# Keep the times of the commands in history
HISTTIMEFORMAT='%F %T  '

# Don't tell me about mail
unset MAILCHECK
shopt -u mailwarn

# Autocorrect fudged paths in cd calls
shopt -s cdspell &>/dev/null

# Update the hash table properly
shopt -s checkhash &>/dev/null

# Warn me about stopped jobs when exiting
shopt -s checkjobs &>/dev/null

# Update columns and rows if window size changes
shopt -s checkwinsize &>/dev/null

# Put multi-line commands onto one line of history
shopt -s cmdhist &>/dev/null

# Expand globbing and variables for directory completion
shopt -s direxpand &>/dev/null

# Autocorrect fudged paths during completion
shopt -s dirspell &>/dev/null

# Include dotfiles in pattern matching
shopt -s dotglob &>/dev/null

# Enable advanced pattern matching
shopt -s extglob &>/dev/null

# Enable double-starring paths
shopt -s globstar &>/dev/null

# Append rather than overwrite Bash history
shopt -s histappend &>/dev/null

# Ignore me if I try to complete an empty line
shopt -s no_empty_cmd_completion &>/dev/null

# Never beep at me
setterm -bfreq 0 &>/dev/null

# Turn off annoying and useless flow control keys
stty -ixon &>/dev/null

# Use completion, if available
[[ -e /etc/bash_completion ]] && source /etc/bash_completion

# I always want a unified diff
alias diff='diff -u'

# I actually use ed now and then, go figure
alias ed='ed -p:'

# Make gdb shut up
alias gdb='gdb -q'

# Protect innocent MySQL databases from my stupidity
alias mysql='mysql --safe-updates'

# I always do this, and I hate slow train
alias sl='ls'

# Load any supplementary scripts
if [[ -d "$HOME/.bashrc.d" ]]
then
    for file in $HOME/.bashrc.d/*
    do
        source $file
    done
fi