# Detect distribution if [ -f /etc/os-release ]; then . /etc/os-release fi # Application management case "$ID" in ubuntu|debian) # Install something bypassing the prompts alias inst='sudo apt-get install -y' # Do a basic update alias update='sudo apt-get update -y && sudo apt-get upgrade -y' # Upgrade everything alias upgrade_all='sudo apt-get update -y && sudo apt-get upgrade -y && sudo apt-get dist-upgrade -y && sudo apt-get autoremove -y && sudo apt-get autoclean -y && sudo apt-get --with-new-pkgs upgrade -y' # Search packages alias pacs='apt-cache search' # Uninstall alias burn='sudo apt-get autoremove' ;; arch|archlinux) # Check if yay is installed if command -v yay >/dev/null 2>&1; then # Install something bypassing the prompts alias inst='yay -S --noconfirm' # Do a basic update alias update='yay -Syu --noconfirm' # Upgrade everything alias upgrade_all='yay -Syu --noconfirm && yay -Rns $(pacman -Qdtq) --noconfirm && sudo paccache -r' # Search packages alias pacs='yay -Ss' # Uninstall alias burn='yay -Rns --noconfirm' else # Install something bypassing the prompts alias inst='sudo pacman -S --noconfirm' # Do a basic update alias update='sudo pacman -Syu --noconfirm' # Upgrade everything alias upgrade_all='sudo pacman -Syu --noconfirm && sudo pacman -Rns $(pacman -Qdtq) --noconfirm && sudo paccache -r' # Search packages alias pacs='pacman -Ss' # Uninstall alias burn='sudo pacman -Rns --noconfirm' fi ;; alpine) # Install something bypassing the prompts alias inst='sudo apk add' # Do a basic update alias update='sudo apk update && sudo apk upgrade' # Upgrade everything alias upgrade_all='sudo apk update && sudo apk upgrade && sudo apk cache clean' # Search packages alias pacs='apk search' # Uninstall alias burn='sudo apk del' ;; *) # Add any other distribution-specific aliases here ;; esac # General # Get $HOME quick alias ~='cd ~/;clear' # A Nice display of all files in a directory alias ll='ls -hog' # Above but...different I'm sure alias lsa='ls -lah' # List stuff sorted by size alias lt='ls --human-readable --size -1 -S --classify' # Grep command history fast-like alias gh='history|grep' # lol alias please='sudo !!' # sometimes it feels good alias fucking='sudo' # Install bat. It's better. alias cat='bat' # Source this very file alias src='source ~/.bashrc' # Big Boy edit something alias svim='sudo vim' # Ping but with sounds alias ding='ping -i 5 -a' # An extremely useful benchmark script alias yabs='curl -sL yabs.sh | bash' # Utilities # A faster way to do the thing it does alias sysres='sudo systemctl restart' # This one too alias sysup='sudo systemctl enable --now' # Also this one alias sysdn='sudo systemctl disable --now' #opens specified command in new window in screen session alias s='screen -X screen ' # Resume screen or create a new one named main alias scr='screen -r || screen -S main' # press enter to continue. Occasionally useful alias cnfrm='read -p "Press enter to proceed" ' # A more intense ping for the professional on the go alias pang='ping -i 10 -v -a' # List the mounted things alias mnts='mount | column -t' # The history command but shorter alias h='history' # Lazy docker composing. Set the variable somewhere. alias doco="$DOCKER_COMPOSE_COMMAND" alias redoco="$DOCKER_COMPOSE_COMMAND down && $DOCKER_COMPOSE_COMMAND up -d" alias redog="$DOCKER_COMPOSE_COMMAND down && $DOCKER_COMPOSE_COMMAND up -d; $DOCKER_COMPOSE_COMMAND logs -f" alias dolog="$DOCKER_COMPOSE_COMMAND up -d; $DOCKER_COMPOSE_COMMAND logs -f" alias watchtower="docker run -d --restart unless-stopped --name 'watch-$(date +%H%M)' -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower " alias onetower="docker run --rm -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --run-once" alias docport='docker container ls --format "table {{.ID}}\t{{.Names}}\t{{.Ports}}" -a' # Regain all that space taken up by projects you abandoned alias docprune='echo "Pruning images"; docker image prune -f && echo "Pruning networks"; docker network prune -f && echo "Pruning containers"; docker container prune -f && echo "Pruning Volumes"; docker volume prune -f' # Send things instantly to a pastebin. Pipe other commands into this to share their output. alias bin='nc termbin.com 9999' # Quicker Docker exec alias dex='docker exec' alias dps="docker ps --format 'CONTAINER ID: {{.ID}}\nIMAGE: {{.Image}}\nCOMMAND: {{.Command}}\nCREATED: {{.CreatedAt}}\nSTATUS: {{.Status}}\nPORTS: {{.Ports}}\nNAMES: {{.Names}}\n'|cat" alias lzd='docker run --rm -it -v /var/run/docker.sock:/var/run/docker.sock -v ~/lzd:/.config/jesseduffield/lazydocker lazyteam/lazydocker' alias glance='docker run --rm -e TZ="${TZ}" -v /var/run/docker.sock:/var/run/docker.sock:ro -v /run/user/1000/podman/podman.sock:/run/user/1000/podman/podman.sock:ro --pid host --network host -it nicolargo/glances:latest-full' alias ytdlp='docker run --rm -v "/nasty/ytdl:/media" -it jauderho/yt-dlp:latest ' # Misc # Get the weather. Put your location after the command alias wttr='ansiweather -u imperial -s false -l' #Read the fucking manual rtfm() { help $@ || info $@ || man $@ || curl "http://cheat.sh/$@"; } # Get your public IP extip(){ ip=$(curl -s http://api.ipify.org); echo "Public IP address is $ip" } # Cheatsheet for linux commands ch() { curl "http://cheat.sh/$@"; } # You can go to noti.toad.city and generate your own code to get browser notifications. It's all explained there. You'll need to modify this value notica() { curl --data "d:$*" "https://noti.toad.city/?VFvu53" ; } # A quick lil speedyboi alias speedTest='curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python3 -' # If you're runnng my exact mastodon setup, this will be useful alias tootctl='docker exec -it -w /app/www mastodon bin/tootctl' # HAHAHA Go for it. Hours of fun and profit or ruining all your stuff alias hackingtool='docker run -it --net=host --security-opt seccomp=unconfined --privileged blackarchlinux/blackarch:latest' # Do you need to reboot? Find out here! alias needrs='[ -f /var/run/reboot-required ] && echo "You need to reboot"' alias gitgraph='git log --graph --oneline --decorate' # Countdown Timer countdown() { start="$(( $(date '+%s') + $1))" while [ $start -ge $(date +%s) ]; do time="$(( $start - $(date +%s) ))" printf '%s\r' "$(date -u -d "@$time" +%H:%M:%S)" sleep 0.1 done } # Random quote to avoid making useful commit messages function rgcm() { api="https://whatthecommit.com/index.txt" message=$(curl -s $api) if [[ -z $message ]]; then echo "Error: Failed to retrieve a random commit message" return 1 fi git add . git commit -m "$message" echo "Git commit submitted with message: $message" } function cntdn() { local count=$1 while [ $count -gt 0 ]; do echo -en "\n$count... " if [ $count -eq 3 ]; then echo "You've still got a few seconds to live it up before your time runs out!" elif [ $count -eq 2 ]; then echo "Tick-tock, tick-tock, time's running out!" elif [ $count -eq 1 ]; then echo "You had a good run, but it's time to face the music!" fi sleep 1 ((count--)) done echo "Time's up!" } function ramdisk() { if [ -z "$1" ]; then echo "Error: Ramdisk size not specified." return 1 fi if [ ! -d "$HOME/ramdown" ]; then mkdir "$HOME/ramdown" fi size="$1" sudo mount -t tmpfs -o size="$size" tmpfs "$HOME/ramdown" } ipin() { local ip=$1 local endpoint="https://ipinfo.io" # Append IP to the endpoint if provided if [[ -n $ip ]]; then endpoint+="/$ip" fi endpoint+="/json?token=4ea2457429bf23" # Make the API call and prettify the JSON response curl -s "$endpoint" | jq . } # Tere function tere() { local result=$(command tere "$@") [ -n "$result" ] && cd -- "$result" } # Compress files. Like the name says. function compress_files() { if [ -z "$1" ]; then echo "Usage: compress_files ..." else zip -r "$1" "${@:2}" fi } # See open ports alias ports='netstat -tuln '