Last active
October 27, 2021 19:59
-
-
Save JakubTesarek/8840983 to your computer and use it in GitHub Desktop.
.bashrc file with useful shortcuts. The file can update itself using `updaterc`. Also contains detection of platform it's running on
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
# if not running interactively, don't do anything | |
[ -z "$PS1" ] && return | |
# Detect platform | |
platform='unknown' | |
unamestr=`uname` | |
if [[ "$unamestr" == 'Linux' ]]; then | |
platform='linux' | |
elif [[ "$unamestr" == 'FreeBSD' ]]; then | |
platform='freebsd' | |
fi | |
# load global configuration | |
if [ -f /etc/bashrc ]; then | |
source /etc/bashrc | |
fi | |
# Easy extract | |
extract () { | |
if [ -f $1 ] ; then | |
case $1 in | |
*.tar.bz2) tar xvjf $1 ;; | |
*.tar.gz) tar xvzf $1 ;; | |
*.bz2) bunzip2 $1 ;; | |
*.rar) rar x $1 ;; | |
*.gz) gunzip $1 ;; | |
*.tar) tar xvf $1 ;; | |
*.tbz2) tar xvjf $1 ;; | |
*.tgz) tar xvzf $1 ;; | |
*.zip) unzip $1 ;; | |
*.Z) uncompress $1 ;; | |
*.7z) 7z x $1 ;; | |
*) echo "don't know how to extract '$1'..." ;; | |
esac | |
else | |
echo "'$1' is not a valid file!" | |
fi | |
} | |
# Creates directory then moves into it | |
function mkcdr { | |
mkdir -p -v $1 | |
cd $1 | |
} | |
# Creates an archive from given directory | |
mktar() { tar cvf "${1%%/}.tar" "${1%%/}/"; } | |
mktgz() { tar cvzf "${1%%/}.tar.gz" "${1%%/}/"; } | |
mktbz() { tar cvjf "${1%%/}.tar.bz2" "${1%%/}/"; } | |
# Listing | |
if [[ $platform == 'linux' ]]; then | |
alias ls='ls --color=auto' | |
elif [[ $platform == 'freebsd' ]]; then | |
alias ls='ls -G' | |
fi | |
alias ll='ls -lA' | |
alias la='ls -A' | |
alias tree='tree -Cs' | |
# Files and directories | |
alias cp='cp -i' | |
alias mv='mv -i' | |
alias mkdir='mkdir -p -v' | |
# Navigation | |
alias back='cd $OLDPWD' | |
alias home='cd ~/' | |
alias ..="cd .." | |
alias ...="cd ../.." | |
alias ....="cd ../../.." | |
alias .....="cd ../../../.." | |
alias ......="cd ../../../../.." | |
# Editor | |
alias nano='nano -W -m' | |
alias edit='nano' | |
# .bashrc | |
alias reloadrc='source ~/.bashrc' | |
alias updaterc='mv ~/.bashrc ~/.bashrc! -f; wget -P ~/ https://gist.github.com/JakubTesarek/8840983/raw/.bashrc --no-check-certificate; source ~/.bashrc' | |
# load user configuration | |
if [ -f ~/.bashrcu ]; then | |
source ~/.bashrcu | |
fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Nice, I will share some of my tips:
uname
returns Darwin. You can usecd -
instead ofcd $OLDPWD
.cd ..
alias and chain them..;..;..
.Something I have learnt only recently (regrettably) - sharing prompt history among multiple terminals:
You may want to force editor to be used in more applications:
Well it should actually read
vim
and notnano
;-) There is even more fun hidden in .vimrc - https://github.com/brablc/dotvim . You are still young and can become vim hero (unlike me).