From d86edfadfe3ed29446e8eb59947ca62214de50e3 Mon Sep 17 00:00:00 2001 From: pika Date: Fri, 7 Mar 2025 21:25:07 +0100 Subject: [PATCH] addet bash aliases --- .bash_aliases | 414 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 414 insertions(+) create mode 100644 .bash_aliases diff --git a/.bash_aliases b/.bash_aliases new file mode 100644 index 0000000..142f8c7 --- /dev/null +++ b/.bash_aliases @@ -0,0 +1,414 @@ +# ─< ANSI color codes >─────────────────────────────────────────────────────────────────── +RED='\033[0;31m' +CYAN='\033[0;36m' +YELLOW='\033[0;33m' +LIGHT_GREEN='\033[0;92m' +BOLD='\033[1m' +NC='\033[0m' # No Color + +echo_error() { + printf "${BOLD}${RED}ERROR: ${NC}${RED}%s${NC}\n" "$1" >&2 +} + +echo_info() { + printf "${BOLD}${CYAN}INFO: ${NC}${CYAN}%s${NC}\n" "$1" +} + +echo_warning() { + printf "${BOLD}${YELLOW}WARNING: ${NC}${YELLOW}%s${NC}\n" "$1" +} + +echo_note() { + printf "${BOLD}${LIGHT_GREEN}NOTE: ${NC}${LIGHT_GREEN}%s${NC}\n" "$1" +} + +# ─< Check if the given command exists silently >───────────────────────────────────────── +command_exists() { + command -v "$@" >/dev/null 2>&1 +} + +# ─< Check if the user is root and set sudo variable if necessary >─────────────────────── +check_root() { + if [ "$(id -u)" -ne 0 ]; then + if command_exists sudo; then + echo_info "User is not root. Using sudo for privileged operations." + _sudo="sudo" + else + echo_error "No sudo found and you're not root! Can't install packages." + return 1 + fi + else + echo_info "Root access confirmed." + _sudo="" + fi +} +# ─< run the function to get $_sudo >───────────────────────────────────────────────────── +check_root + +getPackager() { + pkg="apt dnf pacman zypper apk" + for pkgmgr in $pkg; do + if command_exists "$pkgmgr"; then + PACKAGER="$pkgmgr" + fi + done + + case "$PACKAGER" in + apt) + if command_exists nala; then + search="nala search" + install="nala install --assume-yes" + refresh="nala update" + upgrade="nala upgrade --full" + remove="nala purge" + alias update="$_sudo $refresh && $_sudo $upgrade" + alias install="$_sudo $refresh && $_sudo $install" + alias remove="$_sudo $remove" + alias search="$search" + elif command_exists apt; then + search="apt-cache search" + install="apt-get install --yes" + refresh="apt-get update" + upgrade="apt-get upgrade" + remove="apt-get purge" + alias update="$_sudo $refresh && $_sudo $upgrade" + alias install="$_sudo $refresh && $_sudo $install" + alias remove="$_sudo $remove" + alias search="$search" + else + echo_error "APT ERROR" + fi + ;; + dnf) + if command_exists dnf; then + alias install="dnf install --yes" + alias update="dnf update" + alias remove="dnf remove" + alias search="dnf search" + else + echo_error "DNF ERROR" + fi + ;; + pacman) + if command_exists yay; then + alias install="yay -S --noconfirm" + alias update="yay -Syu" + alias remove="yay -R" + alias search="yay -Ss" + elif command_exists paru; then + alias install="paru -S --noconfirm" + alias update="paru -Syu" + alias remove="paru -R" + alias search="paru -Ss" + elif command_exists pacman; then + alias install="$_sudo pacman -S --noconfirm" + alias update="$_sudo pacman -Syu" + alias remove="$_sudo pacman -R" + alias search="$_sudo pacman -Ss" + else + echo_error "PACMAN ERROR" + fi + ;; + zypper) + alias install="$_sudo zypper install" + alias update="$_sudo zypper dup" + alias remove="$_sudo zypper remove" + alias search="$_sudo zypper search" + ;; + apk) + install="apk add" + update="apk update" + upgrade="apk upgrade" + remove="apk del" + alias install="$_sudo $install" + alias update="$_sudo $update && $_sudo $upgrade" + alias remove="$_sudo $remove" + ;; + esac +} + +_alias_() { + alias please="sudo" + alias untar="tar -xf" + + # ─< easier dir up >──────────────────────────────────────────────────────────────────────── + alias ..="cd .." + # ─< weather >────────────────────────────────────────────────────────────────────────────── + alias www="curl wttr.in/Ulm" + + # ─< colored ip >─────────────────────────────────────────────────────────────────── + alias ip="ip --color=always" + + # ─< check for rg >───────────────────────────────────────────────────────────────────────── + if command_exists rg; then + alias grep="rg --color=always" + else + alias grep="grep --color=always" + fi + + # ─< linutil >──────────────────────────────────────────────────────────────────────────── + alias linutil="curl -fsSL https://christitus.com/linux | sh" + alias "linutil-dev"="curl -fsSL https://christitus.com/linuxdev | sh" + + # ─< telnet (starwars) >──────────────────────────────────────────────────────────────────── + if command_exists telnet; then + alias starwars="telnet -a telehack.com" + fi + + # ─< rsync >──────────────────────────────────────────────────────────────────────────────── + if command_exists rsync; then + alias scp="rsync -avP" + alias cp="rsync -avP" + fi + + [[ -f "$HOME/go/bin/lazygit" ]] && + alias lazygit="$HOME/go/bin/lazygit" && + alias lg="lazygit" + + # ─< cli explorer >─────────────────────────────────────────────────────────────────────── + if command_exists "$HOME/.cargo/bin/yazi"; then + echo_info "yazi is the explorer of choice" + alias lf="yazi || ya pack -i" + elif command_exists ranger; then + echo_info "ranger is the explorer of choice" + alias lf="ranger" + elif command_exists lf; then + echo_info "lf is the explorer of choice" + fi + + # ─< yazi move when exit >──────────────────────────────────────────────────────────────── + function y() { + local tmp="$(mktemp -t "yazi-cwd.XXXXXX")" cwd + yazi "$@" --cwd-file="$tmp" + if cwd="$(command cat -- "$tmp")" && [ -n "$cwd" ] && [ "$cwd" != "$PWD" ]; then + builtin cd -- "$cwd" + fi + rm -f -- "$tmp" + } + + # ─< colorized ls >───────────────────────────────────────────────────────────────────────── + if command_exists exa; then + alias ls="exa --icons -l --git" + alias l="exa --long --no-filesize --no-permissions --no-time --git --colour-scale --icons" + alias ll="exa --all --long --no-filesize --no-permissions --no-time --git --colour-scale --icons" + alias tree="exa --icons -l --tree" + elif command_exists lsd; then + alias ls="lsd -l -1 -h1 --almost-all --git" + alias l="lsd -1" + alias ll="lsd -1 --almost-all" + alias clearl="command clear && l" + alias tree="lsd --tree" + elif command_exists eza; then + alias ls="eza --icons --long --git" + alias l="eza --icons -l" + alias ll="eza --icons -laa" + alias tree="eza --icons -l --tree" + else + alias ls="ls --color=always -lAph" + alias l="ls --color=always -lph -w1" + alias ll="ls --color=always -lph" + fi + + # ─< t stands for trash(-cli) >─────────────────────────────────────────────────────────────── + if command_exists trash; then + alias rm="trash" + alias t="trash" + elif command_exists trash-cli; then + alias rm="trash-cli" + alias t="trash-cli" + else + echo_error "-- You do not have trash or trash-cli installed! Your 'rm' will be permanent! --" + fi + + # ─< bat alias >──────────────────────────────────────────────────────────────────────────── + if command_exists batcat; then + alias cat="batcat --color=always -p --paging=never" + alias less="batcat --paging always --color=always" + # alias gd="batcat --diff" + elif command_exists bat; then + alias cat="bat --color=always -p" + alias less="bat --paging always --color=always" + # alias gd="bat --diff" + fi + + # ─< wireshark / termshark alias >──────────────────────────────────────────────────────── + if command_exists termshark; then + alias ws="$_sudo termshark" + fi + + # ─< fastfetch >──────────────────────────────────────────────────────────────────────────── + if command_exists fastfetch; then + alias ff="fastfetch" + alias clearff="command clear & fastfetch" + alias clearf="command clear & fastfetch" + if fastfetch --config os >/dev/null 2>&1; then + alias f="fastfetch --config os" + else + git clone https://git.k4li.de/mirrors/fastfetch.git "$HOME/.local/share/fastfetch" >/dev/null 2>&1 + exec "$SHELL" + fi + fi + + # ─< d stands for docker >────────────────────────────────────────────────────────────────── + if command_exists docker; then + alias up="docker compose up" + alias down="docker compose down" + alias pull="docker compose pull" + alias d="docker" + alias dr="docker run --rm -it" + alias drs="docker compose down && docker compose up -d --remove-orphans --force-recreate" + alias ds="docker ps -a --format 'table {{.ID}}\t{{.Image}}\t{{.Status}}\t{{.Ports}}'" + alias dcs="docker compose ps -a --format 'table {{.Name}}\t{{.Image}}\t{{.Status}}\t{{.Ports}}'" + alias dl="docker compose logs -f" + alias dc="docker compose" + alias appupdate="docker compose pull && docker compose up -d --force-recreate" + fi + + # ─< g stands for GIT >───────────────────────────────────────────────────────────────────── + if command_exists git; then + alias g="git" + alias gs="git status -sb" + alias gsl="git status" + alias gm='git checkout main && git merge' + alias gc="git clone --recurse-submodule" + gcl() { + if [ -z "$2" ]; then + git clone --depth=1 "https://github.com/$1" + else + git clone --depth=1 "https://github.com/$1" "$2" + fi + } + gck() { + if [ -z "$2" ]; then + git clone --recurse-submodules --depth=1 "https://git.k4li.de/$1" + else + git clone --recurse-submodules --depth=1 "https://git.k4li.de/$1" "$2" + fi + } + gcs() { + if [ -z "$2" ]; then + git clone --recurse-submodules --depth=1 "git@git.k4li.de:$1" + else + git clone --recurse-submodules --depth=1 "git@git.k4li.de:$1" "$2" + fi + } + alias gd="git diff" + alias ga="gd $1 && git add" + alias gp="git pull --recurse-submodule" + alias gms='git maintenance start' + alias gsu="git submodule foreach git pull && git add . && git commit -m ' updated 📌submodules' && echo '-- Committed changes, pushing now..' && sleep 1 && git push" + alias gcm="git commit -m" + alias gpu="git push --recurse-submodule=on-demand" + if command_exists lazygit; then + alias lg="lazygit" + fi + fi + + alias inst_lazydocker="curl https://raw.githubusercontent.com/jesseduffield/lazydocker/master/scripts/install_update_linux.sh | bash" + + # Function to determine which Neovim command to use + choose_nvim() { + if [ -n "$DISPLAY" ] || [ -n "$WAYLAND_DISPLAY" ]; then + # If in a graphical environment, use Neovide + if command_exists neovide; then + echo "neovide --fork" + return + fi + elif [ -n "$TMUX" ]; then + # If inside an active tmux session, use nvim + echo "command nvim" + return + fi + # Default to nvim + echo "command nvim" + } + + # Set up Neovim aliases based on environment + if command_exists nvim; then + alias cnvim="command nvim" + alias nvim="$(choose_nvim)" + + if [ -d "$HOME/.config/nvchad" ]; then + alias nvchad='NVIM_APPNAME="nvchad" command nvim' + alias neochad='NVIM_APPNAME="nvchad" neovide --fork' + fi + fi + + # Tmux session manager + if command_exists tmux; then + ta() { + if tmux list-sessions >/dev/null 2>&1; then + echo "-- tmux session active! | Connecting to active session --" + sleep 0.3 + tmux attach + else + echo "-- No tmux session found! | Creating one --" + sleep 0.3 + tmux + fi + } + + alias ts="tmux source $HOME/.tmux.conf" + fi +} + +_coding_() { + # ─< h stands for HUGO >────────────────────────────────────────────────────────────────── + if command_exists hugo; then + alias h='hugo' + alias hs='hugo server -D --noHTTPCache --disableFastRender' # --bind "$(get_ip)"' + fi + # ─< c stands for bin/cake >────────────────────────────────────────────────────────────── + # alias cake='bin/cake' + # alias c='cake' + # alias cs='c server -p 1313' + # ─< VSCodium >───────────────────────────────────────────────────────────────────────────── + if command_exists codium; then + alias code="codium" + export EDITOR="codium" + fi + + cursor_exe="/mnt/c/Users/piecka/AppData/Local/Programs/cursor/Cursor.exe" + if [ -e "$cursor_exe" ]; then + alias code="$cursor_exe" + fi + + # Function to get the IP address + get_ip() { + ip a | grep 'inet ' | grep -v '127.0.0.1' | awk '{print $2}' | cut -d/ -f1 | head -n 1 + } + + if command_exists composer; then + alias laravel_new="composer create-project laravel/laravel" + fi + + # Check if php is available, then create the alias + if command_exists php; then + alias phprun="php artisan serve --host=$(get_ip) --port=8000" + fi + + # Check if npm is available, then create the alias + if command_exists npm; then + npmrun() { + npmrun_help() { + echo "Usage: npmrun [environment] [optional:port]" + echo " environment: The npm environment you want to run (e.g. dev)" + echo " port: Port to use (default: 8000)" + return + } + if [[ "$1" == "--help" || "$1" == "-h" ]]; then + npmrun_help + return + fi + + local env="$1" + local port="${2:-8080}" + + npm run "$env" -- --host="$(get_ip)" --port="$port" + } + fi +} + +getPackager +_alias_ +_coding_