Created
July 26, 2017 09:02
-
-
Save anonymous/7dee037102399551777ba41c946dec8c to your computer and use it in GitHub Desktop.
My bashrc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
export VISUAL="subl" | |
# powerline config | |
if [ -f `which powerline-daemon` ]; then | |
powerline-daemon -q | |
POWERLINE_BASH_CONTINUATION=1 | |
POWERLINE_BASH_SELECT=1 | |
. /usr/share/powerline/bash/powerline.sh | |
fi | |
# Source global definitions | |
if [ -f /etc/bashrc ]; then | |
. /etc/bashrc | |
fi | |
# if [[ -f /etc/bash_completion ]]; then | |
# /etc/bash_completion | |
# fi | |
# if [[ $- != *i* ]] ; then | |
# # Shell is non-interactive. Be done now! | |
# return | |
# fi | |
if [ $TILIX_ID ] || [ $VTE_VERSION ]; then | |
source /etc/profile.d/vte.sh | |
fi | |
# xhost +local:root > /dev/null 2>&1 | |
complete -cf sudo | |
# Bash won't get SIGWINCH if another process is in the foreground. | |
# Enable checkwinsize so that bash will check the terminal size when | |
# it regains control. #65623 | |
# http://cnswww.cns.cwru.edu/~chet/bash/FAQ (E11) | |
shopt -s checkwinsize | |
shopt -s extglob | |
shopt -s expand_aliases | |
alias cp="cp -i" # confirm before overwriting something | |
alias df="df -h" # human-readable sizes | |
alias free="free -m" # show sizes in MB | |
alias ls='ls --color=auto' | |
alias grep='grep --colour=auto' | |
alias egrep='egrep --colour=auto' | |
alias fgrep='fgrep --colour=auto' | |
alias more=less | |
alias inst="sudo dnf install" | |
alias update="sudo dnf upgrade" | |
alias search="dnf search" | |
alias ipext="curl -s http://checkip.dyndns.org/ | grep -o '[0-9][0-9]*.[0-9][0-9]*.[0-9][0-9]*.[0-9]*'" | |
alias sysinfo="inxi -Fzxc0" | |
alias speedtest="wget -O /dev/null http://speedtest.wdc01.softlayer.com/downloads/test500.zip" | |
# # ex - archive extractor | |
# # usage: ex <file> | |
ex () | |
{ | |
if [ -f $1 ] ; then | |
case $1 in | |
*.tar.bz2) tar xjf $1 ;; | |
*.tar.gz) tar xzf $1 ;; | |
*.bz2) bunzip2 $1 ;; | |
*.rar) unrar x $1 ;; | |
*.gz) gunzip $1 ;; | |
*.tar) tar xf $1 ;; | |
*.tbz2) tar xjf $1 ;; | |
*.tgz) tar xzf $1 ;; | |
*.zip) unzip $1 ;; | |
*.Z) uncompress $1;; | |
*.7z) 7z x $1 ;; | |
*) echo "'$1' cannot be extracted via ex()" ;; | |
esac | |
else | |
echo "'$1' is not a valid file" | |
fi | |
} | |
# Bash Functions | |
# Compile and execute a C source on the fly | |
com() { | |
[[ $1 ]] || { echo "Missing operand" >&2; return 1; } | |
[[ -r $1 ]] || { printf "File %s does not exist or is not readable\n" "$1" >&2; return 1; } | |
local output_path=${TMPDIR:-/tmp}/${1##*/}; | |
g++ "$1" -o "$output_path" && "$output_path"; | |
rm "$output_path"; | |
return 0; | |
} | |
# The following function will extract a wide range of compressed file types. and use it with the syntax extract <file1> <file2>... | |
extract() { | |
local c e i | |
(($#)) || return | |
for i; do | |
c='' | |
e=1 | |
if [[ ! -r $i ]]; then | |
echo "$0: file is unreadable: \`$i'" >&2 | |
continue | |
fi | |
case $i in | |
*.t@(gz|lz|xz|b@(2|z?(2))|a@(z|r?(.@(Z|bz?(2)|gz|lzma|xz))))) | |
c=(bsdtar xvf);; | |
*.7z) c=(7z x);; | |
*.Z) c=(uncompress);; | |
*.bz2) c=(bunzip2);; | |
*.exe) c=(cabextract);; | |
*.gz) c=(gunzip);; | |
*.rar) c=(unrar x);; | |
*.xz) c=(unxz);; | |
*.zip) c=(unzip);; | |
*) echo "$0: unrecognized file extension: \`$i'" >&2 | |
continue;; | |
esac | |
command "${c[@]}" "$i" | |
((e = e || $?)) | |
done | |
return "$e" | |
} | |
# cd and ls continously to the given directory. If directory does not exist, show error | |
cl() { | |
local dir="$1" | |
local dir="${dir:=$HOME}" | |
if [[ -d "$dir" ]]; then | |
cd "$dir" >/dev/null; ls | |
else | |
echo "bash: cl: $dir: Directory not found" | |
fi | |
} | |
# IP info | |
ipif() { | |
if grep -P "(([1-9]\d{0,2})\.){3}(?2)" <<< "$1"; then | |
curl ipinfo.io/"$1" | |
else | |
ipawk=($(host "$1" | awk '/address/ { print $NF }')) | |
curl ipinfo.io/${ipawk[1]} | |
fi | |
echo | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment