#!/usr/bin/env bash
alias sudo='sudo '
alias _='sudo su'
alias cd..='cd ..'
alias ..='cd ..'
alias ...='cd ../../'
alias rm='\rm -Iv'
alias e='f(){ [[ -z "$1" ]] && env || env | grep -i "$1"; };f'
alias h='f(){ [[ -z "$1" ]] && history || history | grep -i "$1"; };f'
alias p='f(){ [[ -z "$1" ]] && ps -ef || ps -ef | grep -v grep | grep -i "$1"; };f'
alias n='f(){ [[ -z "$1" ]] && \ss -tulnp || \ss -tulnp | grep -i "$1"; };f'
alias path='f(){ [[ -z "$1" ]] && echo -e "${PATH//:/\\n}" | nl || echo -e "${PATH//:/\\n}" | nl | grep -i "$1"; };f'
alias path+='f(){ [[ -z "$1" ]] && _p="$PWD" || _p="$1"; [[ -d "$_p" ]] && { [[ ":$PATH:" =~ ":$_p:" ]] && echo "$_p already exists." || { export PATH="$_p:$PATH";echo "$_p Added."; }; } || echo "Err, $_p not found."; };f'
alias path-='f(){ [[ -z "$1" ]] && echo Err, parameter missing || { echo "Removing: $1" && export PATH=$(echo $PATH | sed s,:"$1",,); }; };f'
# Colorize grep output (good for log files)
alias grep='grep --color=auto'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
# easier to read disk (human-readable sizes)
alias df='df -h'
alias free='free -h'
# Web Clipboard
alias cw='nc termbin.com 9999'
alias pw='f(){ curl -s "https://termbin.com/$1"; };f'
## Utils =====================================================================
cmd_exist() { command -v "$1" &> /dev/null; }
dir_exist() { [[ -d "$1" ]]; }
mini_t() { echo -e " \e[31m--\e[0m \e[34m${@}\e[0m \e[31m--\e[0m"; }
## Programs ===================================================================
# IP command --------------------------
cmd_exist ip && alias ip='ip --color=auto'
# EZA - https://eza.rocks/ ------------
if cmd_exist eza; then
alias ls='eza --group-directories-first --icons'
alias l='ls -HlgF --git --color-scale'
alias ll='l -aa'
alias lt='f(){ ls --tree --git-ignore -L${1:-2}; };f'
else
alias ls='ls --color=auto'
alias ll='ls -halF'
fi
# BatCat - https://github.com/sharkdp/bat
if cmd_exist bat; then
export MANPAGER="sh -c 'col -bx | bat -l man -p'"
alias bathelp='bat --plain --language=help' # Highlighting --help
alias cat='bat -pp' #= --plain --paging=never
tf() { tail -f "$1" | cat -l log; } # Tail Follow
fi
# SystemCTL - https://systemd.io/ ---------------------------
if cmd_exist systemctl; then
__msg() { echo -e "\e[31m>>\e[0m Using systemctl as ${1}\e[0m"; }
systemctl_aliases() {
local _base_cmd="systemctl --user"
[[ "$1" == "sudo" ]] && _base_cmd="sudo systemctl"
alias s="${_base_cmd} list-units --no-pager --type=service --plain --legend=false"
alias s.="${_base_cmd} start"
alias s-="${_base_cmd} stop"
alias s,="${_base_cmd} restart"
alias s1="${_base_cmd} enable"
alias s0="${_base_cmd} disable"
alias se="${_base_cmd} show-environment"
alias s\?="${_base_cmd} --no-pager status"
alias s_="mini_t daemon-reload; ${_base_cmd} daemon-reload"
alias st="${_base_cmd} list-timers --all"
}
systemctl_aliases # load USER aliases as default
alias sw='f(){ [[ -z $1 ]] && { __msg "\e[34mUser"; systemctl_aliases; } || { __msg "\e[1;31mSystem"; systemctl_aliases sudo; }; };f'
fi
# Docker - https://www.docker.com/get-started
if cmd_exist docker; then
alias d='docker'
alias dps='d ps -a --format "table {{.ID}}\t{{.Image}}\t{{.Status}}\t{{.Names}}"'
alias di='d image ls'
alias dp='d system prune --volumes'
fi
## Functions ==================================================================
update() {
# Debian/Ubuntu based systems
cmd_exist nala && sudo nala upgrade -y && return 0
cmd_exist apt && sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y
}
Comments