This commit is contained in:
2025-08-23 08:50:28 +02:00
commit 390427b8bf
7 changed files with 2425 additions and 0 deletions

111
.bash_aliases Normal file
View File

@@ -0,0 +1,111 @@
# ~/.bash_aliases: Custom command aliases
# Development aliases
alias srvenv="source .venv/bin/activate"
alias ..srvenv="source ../.venv/bin/activate"
alias pm="uv run manage.py"
alias bbr="bun --bun run"
alias mkgidf="git add . --intent-to-add . && git diff > git-diff.txt"
alias snano='sudo nano'
alias zed='MANGOHUD=0 /home/garand_plg/.local/bin/zed'
# System aliases
alias flush_codium="sudo killall codium && sudo rm -rf ~/.config/VSCodium/Cache && sudo rm -rf ~/.config/VSCodium/CachedData"
alias kys="shutdown now"
alias ookla="speedtest"
alias upd="sudo nala update"
alias upg="sudo nala full-upgrade"
alias snala="sudo nala"
alias btrfscheck="sudo btrfs filesystem usage / && echo && df -h /"
# Navigation aliases
alias ~='cd ~'
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
alias .....='cd ../../../..'
# Modifies commands
alias nalaf="apt list 2>/dev/null | grep -v WARNING | cut -d'/' -f1 | fzf --multi --preview 'apt show {1} 2>/dev/null' --preview-window=down:75% | xargs -ro sudo nala install"
alias cat="batcat"
alias cp='cp -i'
alias mv='mv -i'
alias rm='trash -v'
alias mkdir='mkdir -p'
alias ps='ps auxf'
alias ping='ping -c 10'
alias less='less -R'
alias cls='clear'
alias apt-get='sudo apt-get'
alias multitail='multitail --no-repeat -c'
alias freshclam='sudo freshclam'
# Alias's for multiple directory listing commands
alias la='eza -alh --icons' # show hidden files
alias ls='eza -aF --icons --color=always' # add colors and file type extensions
alias lx='eza -lh --icons --sort=extension' # sort by extension
alias lk='eza -lh --icons --sort=size --reverse' # sort by size
alias lc='eza -lh --icons --sort=changed' # sort by change time
alias lu='eza -lh --icons --sort=accessed' # sort by access time
alias lr='eza -lh --icons --recurse' # recursive ls
alias lt='eza -lh --icons --sort=modified' # sort by date
alias lm='eza -alh --icons | more' # pipe through 'more'
alias lw='eza -xh --icons' # wide listing format
alias ll='eza -lh --icons' # long listing format
alias labc='eza -lah --icons --sort=name' # alphabetical sort
alias lf="eza -lh --icons | grep -v '^d'" # files only (przybliżenie)
alias ldir="eza -lh --icons --only-dirs" # directories only
alias lla='eza -alh --icons' # List and Hidden Files
alias las='eza -a --icons' # Hidden Files
alias lls='eza -lh --icons' # List
# alias chmod commands
alias mx='chmod a+x'
alias 000='chmod -R 000'
alias 644='chmod -R 644'
alias 666='chmod -R 666'
alias 755='chmod -R 755'
alias 777='chmod -R 777'
# Search command line history
alias h="history | grep "
# Search running processes
alias p="ps aux | grep "
alias topcpu="/bin/ps -eo pcpu,pid,user,args | sort -k 1 -r | head -10"
# Search files in the current folder
alias f="find . | grep "
# Count all files (recursively) in the current folder
alias countfiles="for t in files links directories; do echo \`find . -type \${t:0:1} | wc -l\` \$t; done 2> /dev/null"
# Alias's to show disk space and space used in a folder
alias diskspace="du -S | sort -n -r |more"
alias folders='du -h --max-depth=1'
alias folderssort='find . -maxdepth 1 -type d -print0 | xargs -0 du -sk | sort -rn'
alias tree='tree -CAhF --dirsfirst'
alias treed='tree -CAFd'
alias mountedinfo='df -hT'
# Show all logs in /var/log
alias logs="sudo find /var/log -type f -exec file {} \; | grep 'text' | cut -d' ' -f1 | sed -e's/:$//g' | grep -v '[0-9]$' | xargs tail -f"
alias kssh="kitty +kitten ssh"
alias docker-clean=' \
docker container prune -f ; \
docker image prune -f ; \
docker network prune -f ; \
docker volume prune -f '
# Remove a directory and all files
alias rmd='/bin/rm --recursive --force --verbose '
# Fun aliases
alias pasjans="ttysolitaire -p 10 --no-background-color"
alias fc="fortune | cowsay"
# Network aliases
alias ssh-server="kssh garand_plg@192.168.1.156 -i ~/.ssh/hp-t640-homeserver"

142
.bash_functions Normal file
View File

@@ -0,0 +1,142 @@
# ~/.bash_functions: Custom bash functions
# Quick directory creation and navigation
mkcd() {
mkdir -p "$1" && cd "$1"
}
# Extract various archive formats
extract() {
for archive in "$@"; do
if [ -f "$archive" ]; then
case "$archive" in
*.tar.bz2) tar xvjf "$archive" ;;
*.tar.gz) tar xvzf "$archive" ;;
*.bz2) bunzip2 "$archive" ;;
*.rar) unrar x "$archive" ;;
*.gz) gunzip "$archive" ;;
*.tar) tar xvf "$archive" ;;
*.tbz2) tar xvjf "$archive" ;;
*.tgz) tar xvzf "$archive" ;;
*.zip) unzip "$archive" ;;
*.Z) uncompress "$archive" ;;
*.7z) 7z x "$archive" ;;
*) echo "don't know how to extract '$archive'..." ;;
esac
else
echo "'$archive' is not a valid file!"
fi
done
}
# Find files quickly
ff() {
find . -name "*$1*" -type f
}
# Find directories quickly
fd() {
find . -name "*$1*" -type d
}
# IP address lookup
alias whatismyip="whatsmyip"
function whatsmyip () {
# Internal IP Lookup.
if command -v ip &> /dev/null; then
echo -n "Internal IP: "
ip addr show wlan0 | grep "inet " | awk '{print $2}' | cut -d/ -f1
else
echo -n "Internal IP: "
ifconfig wlan0 | grep "inet " | awk '{print $2}'
fi
# External IP Lookup
echo -n "External IP: "
curl -4 ifconfig.me
}
# Searches for text in all files in the current folder
ftext() {
# -i case-insensitive
# -I ignore binary files
# -H causes filename to be printed
# -r recursive search
# -n causes line number to be printed
# optional: -F treat search term as a literal, not a regular expression
# optional: -l only print filenames and not the matching lines ex. grep -irl "$1" *
grep -iIHrn --color=always "$1" . | less -r
}
# Copy file with a progress bar
cpp() {
set -e
strace -q -ewrite cp -- "${1}" "${2}" 2>&1 |
awk '{
count += $NF
if (count % 10 == 0) {
percent = count / total_size * 100
printf "%3d%% [", percent
for (i=0;i<=percent;i++)
printf "="
printf ">"
for (i=percent;i<100;i++)
printf " "
printf "]\r"
}
}
END { print "" }' total_size="$(stat -c '%s' "${1}")" count=0
}
# Copy and go to the directory
cpg() {
if [ -d "$2" ]; then
cp "$1" "$2" && cd "$2"
else
cp "$1" "$2"
fi
}
# Move and go to the directory
mvg() {
if [ -d "$2" ]; then
mv "$1" "$2" && cd "$2"
else
mv "$1" "$2"
fi
}
# Create and go to the directory
mkdirg() {
mkdir -p "$1"
cd "$1"
}
# Goes up a specified number of directories (i.e. up 4)
up() {
local d=""
limit=$1
for ((i = 1; i <= limit; i++)); do
d=$d/..
done
d=$(echo $d | sed 's/^\///')
if [ -z "$d" ]; then
d=..
fi
cd $d
}
# Automatically do an ls after each cd, z, or zoxide
cd ()
{
if [ -n "$1" ]; then
builtin cd "$@" && ls
else
builtin cd ~ && ls
fi
}
# Returns the last 2 fields of the working directory
pwdtail() {
pwd | awk -F/ '{nlast = NF -1;print $nlast"/"$NF}'
}

2026
.bash_history Normal file

File diff suppressed because it is too large Load Diff

7
.bash_logout Normal file
View File

@@ -0,0 +1,7 @@
# ~/.bash_logout: executed by bash(1) when login shell exits.
# when leaving the console clear the screen to increase privacy
if [ "$SHLVL" = 1 ]; then
[ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q
fi

3
.bash_profile Normal file
View File

@@ -0,0 +1,3 @@
# ~/.bash_profile: executed by bash for login shells.
# Source .profile to avoid duplication
[ -f ~/.profile ] && . ~/.profile

94
.bashrc Normal file
View File

@@ -0,0 +1,94 @@
# ~/.bashrc: executed by bash(1) for non-login shells.
# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac
# History configuration
HISTCONTROL=erasedups:ignoredups:ignorespace
HISTSIZE=1000
HISTFILESIZE=2000
export HISTTIMEFORMAT="%F %T"
PROMPT_COMMAND='history -a'
shopt -s histappend
# Shell options
shopt -s checkwinsize
# Uncomment to enable globstar (bash 4.0+)
# shopt -s globstar
# XDG Base Directory Specification
export XDG_DATA_HOME="$HOME/.local/share"
export XDG_CONFIG_HOME="$HOME/.config"
export XDG_STATE_HOME="$HOME/.local/state"
export XDG_CACHE_HOME="$HOME/.cache"
export EDITOR=nano
export VISUAL=codium
# Chroot detection for prompt
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
debian_chroot=$(cat /etc/debian_chroot)
fi
# Colored prompt configuration
case "$TERM" in
xterm-color|*-256color) color_prompt=yes;;
esac
# Set prompt
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt
# Set terminal title for xterm-compatible terminals
case "$TERM" in
xterm*|rxvt*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
;;
esac
# Enable color support for ls and grep
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
# Basic ls color alias (will be overridden by eza if available)
alias ls='ls --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi
# Load custom aliases
[ -f ~/.bash_aliases ] && . ~/.bash_aliases
# Enable bash completion
if ! shopt -oq posix; then
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi
# Add sbin to $PATH
export PATH=$PATH:/sbin
# Exercism completion
[ -f ~/.config/exercism/exercism_completion.bash ] && . ~/.config/exercism/exercism_completion.bash
# Show welcome info only for interactive login shells
if shopt -q login_shell && [ -t 0 ]; then
# Check if commands exist before running
command -v fastfetch >/dev/null 2>&1 && fastfetch
command -v fortune >/dev/null 2>&1 && command -v cowsay >/dev/null 2>&1 && fortune | cowsay
fi
[ -f ~/.bash_functions ] && . ~/.bash_functions
eval "$(starship init bash)"

42
.profile Normal file
View File

@@ -0,0 +1,42 @@
# ~/.profile: executed by the command interpreter for login shells.
# Function to safely add directories to PATH
add_to_path() {
case ":$PATH:" in
*":$1:"*) ;;
*) PATH="$1:$PATH" ;;
esac
}
# Add user directories to PATH
[ -d "$HOME/.local/bin" ] && add_to_path "$HOME/.local/bin"
# Cargo (Rust)
if [ -f "$HOME/.cargo/env" ]; then
. "$HOME/.cargo/env"
add_to_path "$HOME/.cargo/bin"
fi
# Bun
if [ -d "$HOME/.bun" ]; then
export BUN_INSTALL="$HOME/.bun"
add_to_path "$BUN_INSTALL/bin"
fi
# Custom local environment
[ -f "$HOME/.local/bin/env" ] && . "$HOME/.local/bin/env"
# Rust library path
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$HOME/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib"
# Wayland configuration
if [ "$XDG_SESSION_TYPE" = "wayland" ]; then
systemctl --user import-environment DISPLAY WAYLAND_DISPLAY
fi
# Load bashrc for bash shells
if [ -n "$BASH_VERSION" ] && [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
export PATH