diff options
Diffstat (limited to 'fedora/.config/shell/aliasrc')
| -rw-r--r-- | fedora/.config/shell/aliasrc | 1122 |
1 files changed, 740 insertions, 382 deletions
diff --git a/fedora/.config/shell/aliasrc b/fedora/.config/shell/aliasrc index 6b35701..a219759 100644 --- a/fedora/.config/shell/aliasrc +++ b/fedora/.config/shell/aliasrc @@ -2,385 +2,743 @@ # balias - blank aliases (completed without space) # ialias - ignored aliases (not completed) -# sudo not required for some system commands -for command in blkid lsblk mount umount dnf poweroff reboot shutdown su updatedb; do - alias $command="sudo $command" -done -unset command - -case "$(readlink -f /sbin/init)" in -*systemd*) - # journal - alias -g jctl='journalctl -xe' - alias -g jctlou='sudo journalctl -b -n 200 -f' - alias -g rpi='systemctl --user restart wireplumber pipewire pipewire-pulse pipewire-jack' - alias -g sctl='systemctl' - alias -g sctlss='systemctl status' - alias -g sctle='systemctl enable' - alias -g sctld='systemctl disable' - alias -g sctlr='systemctl restart' - alias -g sctls='systemctl start' - alias -g sctlt='systemctl stop' - alias -g sctldr='systemctl daemon-reload' - alias -g tctl='timedatectl' - ;; -esac - -# Go back -alias ...='../..' -alias ....='../../..' -alias .....='../../../..' - -# bash -alias sbp="source ~/.config/bash/bash_profile" -alias sbs="source ~/.config/bash/bashrc" - -# cd -alias cf='cd "$(dirname "$(readlink -f health.lua)")"' -alias pd='cd -' - -# chmod -alias che='find . -type f -exec chmod +x {};' -alias chfd='find . -type d -exec chmod 755 {}; -o -type f -exec chmod 644 {};' -alias cx='chmod a+x' -alias 000='chmod -R 000' -alias 600='chmod -R 600' -alias 644='chmod -R 644' -alias 666='chmod -R 666' -alias 755='chmod -R 755' -alias 777='chmod -R 777' - -# copy -alias CC='$(fc -l -n -1) | xclip -selection clipboard' -ialias cp='cp -iv' -alias pwdc='pwd | xclip -selection clipboard' - -# count -alias countfiles="for t in files links directories; do echo \`find . -type \${t:0:1} | wc -l\` \$t; done 2> /dev/null" - -# curl -ialias curl='curl --silent --show-error' -balias clh='curl localhost:' -balias clh8='curl localhost:8080' -balias clh9='curl localhost:9080' -balias c100='curl 192.168.99.100:' - -# date -alias da="date '+%Y-%m-%d %A %T %Z'" - -# delete -alias _fd='find . -type f -name "._*" -print0 | xargs -0 rm -f' -alias _fp='find . -type f -name "._*" -print' - -# diff -ialias diff='diff --color' - -# disk -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" - -# docker -alias dk='docker' -alias dkp='docker ps' -alias dkpa='docker ps -a' -alias dkpaq='docker ps -a -q' -alias dkb='docker build -t' -alias dkbnc='docker build --no-cache -t' -alias dkr='docker run --rm' -alias dkrti='docker run --rm -ti' -alias dkrd='docker run -d' -alias dkrp8='docker run --rm -p 8080:8080' -alias dkrp9='docker run --rm -p 9080:9080' -alias dks='docker start' -alias dkt='docker stop' -alias dktt='docker stop $(docker ps -q)' -alias dkk='docker kill' -alias dkkk='docker kill $(docker ps -q)' -alias dkrm='docker rm' -alias dkri='docker rmi' -alias dke='docker exec -ti' -alias dkl='docker logs -f' -alias dki='docker images' -alias dkpu='docker pull' -alias dkph='docker push' -alias dkin='docker inspect' -alias dkn='docker network' -alias dkc='docker-compose' -alias dkcu='docker-compose up' -alias dkclean='docker ps -q -a -f status=exited | xargs -r docker rm && docker images -q -f dangling=true | xargs -r docker rmi' - -# find -balias fdn='find . -name "' -alias f="find . | grep " - -# grep -ialias -g grep='grep --color=auto --exclude-dir={.bzr,CVS,.git,.hg,.svn}' -alias grepi='grep -i' -alias grepr='grep -r' -alias grepri='grep -ri' -alias grepw='grep -R -i --include="*"' -alias grepb='grep -R -i --include="*" --exclude-dir="zsh"' -alias -g Gg='| grep' -alias -g Gi='| grep -i' -alias -g GH='| grep HTTP' - -# hash -alias h='hash -rf' - -# hexdump -alias hx='hexdump -C' - -# history -alias h="history | grep " - -# ip -ialias ip='ip -color=auto' -alias whatsmyip='curl -s ifconfig.me | xargs' -alias ipview="netstat -anpl | grep :80 | awk '{print $5}' | cut -d':' -f1 | sort | uniq -c | sort -n | sed -e 's/^ *//' -e 's/ *$//'" - -# killall -alias ka='killall' -alias k9='kill -9' -alias k15='kill -15' - -# logs -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" - -# ls: eza or built-in -[ -x "$(command -v eza)" ] && { - ialias l='eza --icons --group-directories-first' - ialias la='eza --icons -aa --group-directories-first' - ialias lh='eza --icons -aa --group-directories-first' - ialias ll='eza -gl --icons --group-directories-first' - ialias lla='eza -glaa --icons --group-directories-first' - ialias lm='eza -glA --group-directories-first | more' - ialias lr='eza --icons -R --group-directories-first' - ialias ls='eza --icons -A --group-directories-first' - ialias lsb='eza --icons -b --group-directories-first' - ialias lsby='eza --icons -B --group-directories-first' - ialias lld='eza --icons -Dl --group-directories-first' - ialias llda='eza --icons -aaDl --group-directories-first' - ialias llf='eza --icons -fl' - ialias llfa='eza --icons -aafl' - ialias llsa='eza --icons -l -s=accessed' - ialias llsaa='eza --icons -aal -s=accessed' - ialias llsc='eza --icons -l -s=created' - ialias llsca='eza --icons -aal -s=created' - ialias llse='eza --icons -l -s=extension' - ialias llsea='eza --icons -aal -s=extension' - ialias llsm='eza --icons -l -s=modified' - ialias llsma='eza --icons -aal -s=modified' - ialias llsn='eza --icons -l -s=name' - ialias llsna='eza --icons -aal -s=name' - ialias llss='eza --icons -l -s=size' - ialias llssa='eza --icons -aal -s=size' - ialias llst='eza --icons -l -s=type' - ialias llsta='eza --icons -aal -s=type' - ialias lt='eza --icons -T -L' - ialias ltd='eza --icons -TD -L' - ialias ltdr='eza --icons -TDr -L' - ialias ltr='eza --icons -Tr -L' -} || { - ialias l='/usr/bin/ls -h --color=always --group-directories-first' - ialias la='/usr/bin/ls -alh --color=always --group-directories-first' - ialias ll='/usr/bin/ls -lh --color=always --group-directories-first' - ialias lla='/usr/bin/ls -aFls --color=always --group-directories-first' - ialias llf='/usr/bin/ls -Fls --color=always --group-directories-first' - ialias lm='/usr/bin/ls -alh --color=always --group-directories-first | more' - ialias lr='/usr/bin/ls -hlR --color=always --group-directories-first' - ialias lra='/usr/bin/ls -ahlR --color=always --group-directories-first' - ialias ls='/usr/bin/ls -AFh --color=always --group-directories-first' - ialias llsa='/usr/bin/ls -hlru --color=always --group-directories-first' - ialias llsc='/usr/bin/ls -hclr --color=always --group-directories-first' - ialias lld='/usr/bin/ls -l --color=always | grep "^d"' - ialias llda='/usr/bin/ls -la --color=always | grep "^d"' - ialias llse='/usr/bin/ls -BhlX --color=always --group-directories-first' - ialias llsf='/usr/bin/ls -l --color=always | grep -v "^d"' - ialias llsfa='/usr/bin/ls -la --color=always | grep -v "^d"' - ialias llsm='/usr/bin/ls -hlr --time=ctime --color=always --group-directories-first' - ialias llsn='/usr/bin/ls -alp --color=always --group-directories-first' - ialias llss='/usr/bin/ls -hlrS --color=always --group-directories-first' - ialias llst='/usr/bin/ls -hlrt --color=always --group-directories-first' - ialias lw='/usr/bin/ls -Ahx --color=always --group-directories-first' -} - -# mime -alias mimereset="update-desktop-database ${XDG_DATA_HOME:-${HOME}/.local/share}/applications" - -# mkdir -ialias mkdir='mkdir -pv' - -# modified commands -alias grep="/usr/bin/grep $GREP_OPTIONS" -alias cp="cp -i" -alias freshclam="sudo freshclam" -alias less="less -R" -alias mkdir="mkdir -p" -alias multitail="multitail --no-repeat -c" -alias mv="mv -i" -alias ping="ping -c 10" -alias ps="ps auxf" -alias rm="rm -iv" -alias svi="sudo vi" -alias v="vim" -alias vi="vim" -alias vis="vim '+set si'" - -# move -ialias mv='mv -iv' - -# nginx -alias ngx="cd /etc/nginx" - -# nvim -alias v='$EDITOR' -alias v.='$EDITOR .' -alias ve='$EDITOR -c enew' -alias nv.='nvim .' -alias nve='nvim -c enew' -alias nts='NVIM_APPNAME=TheSiahxyz nvim' -alias nav='NVIM_APPNAME=AstroNvim nvim' -alias nlu='NVIM_APPNAME=LunarVim nvim' -alias nlv='NVIM_APPNAME=LazyVim nvim' -alias nnc='NVIM_APPNAME=NvChad nvim' -alias snv='sudo nvim' -alias vll='lastnvim -l' -alias vln='$EDITOR -c '\''execute "edit " . v:oldfiles[0] | normal ''0'\' - -# ports -alias openports="netstat -nape --inet" - -# ps -ialias ps='ps auxf' -alias psj='ps aux | grep "[j]ava"' -balias psg='ps auxf | grep' -alias topcpu='/bin/ps -eo pcpu,pid,user,args | sort -k 1 -r | head -10' - -# python -alias py='python3' - -# realpath -alias rp='realpath' - -# remove -ialias rm='rm -vI' - -# rsync -alias rsc='rsync -vrazPlu' -alias rscd='rsync -vrazPlu --delete' -alias rscr='rsync -vrazPlu --remove-source-files' - -# rules -alias rrr='sudo udevadm control --reload-rules' - -# scp -ialias scp='scp -r' - -# sha1 -alias sha1='openssl sha1' - -# shell -alias tobash="sudo chsh $USER -s /bin/bash && 'Now log out.'" -alias tozsh="sudo chsh $USER -s /bin/zsh && 'Now log out.'" -alias tofish="sudo chsh $USER -s /bin/fish && 'Now log out.'" - -# shellcheck -alias shck='shellcheck --color=always' - -# shortcut -alias ref='shortcuts >/dev/null; source ${XDG_CONFIG_HOME:-${HOME}/.config}/shell/shortcutrc; source ${XDG_CONFIG_HOME:-${HOME}/.config}/shell/shortcutenvrc; source ${XDG_CONFIG_HOME:-${HOME}/.config}/shell/zshnameddirrc' - -# sudo -alias su='sudo su -l root' -alias sm='setopt no_nomatch && rm -rf *.rej *.orig >/dev/null 2>&1' -alias smi='setopt no_nomatch && rm -rf *.rej *.orig >/dev/null 2>&1 && unsetopt no_nomatch; sudo make clean install; rm -f config.h' - -# suffix -alias -s {pdf,PDF}='background mupdf' -alias -s {jpg,JPG,png,PNG}='background gpicview' -alias -s {ods,ODS,odt,ODT,odp,ODP,doc,DOC,docx,DOCX,xls,XLS,xlsx,XLSX,xlsm,XLSM,ppt,PPT,pptx,PPTX,csv,CSV}='background libreoffice' -alias -s {html,HTML}='background chromium' -alias -s {mp4,MP4,mov,MOV,mkv,MKV}='background vlc' -alias -s {zip,ZIP,war,WAR}="unzip -l" -alias -s {jar,JAR}="java -jar" -alias -s gz="tar -tf" -alias -s {tgz,TGZ}="tar -tf" - -# tar -alias txf='tar -xf' -alias ttf='tar -tf' -alias mktar="tar -cvf" -alias mkbz2="tar -cvjf" -alias mkgz="tar -cvzf" -alias untar="tar -xvf" -alias unbz2="tar -xvjf" -alias ungz="tar -xvzf" - -# tmux -alias sts='tmux source $XDG_CONFIG_HOME/tmux/tmux.conf' -alias ta='tmux a' -alias tmc='tmuxcreate' -alias tmka='tmux kill-session -a' -alias tmls='tmux ls' -alias tmo='tmuxopen' -alias tmpk='command pkill tmux' -alias tm.='tmux new -s "$(basename $PWD)"' - -# tor -alias torh="cat /var/lib/tor/hidden_service/hostname" - -# trash -alias trd='trash-rm' -alias tre='trash-empty' -alias trl='trash-list' -alias trp='trash-put' -alias trr='trash-restore' - -# tree -ialias tree='tree -a -I ".svn|.git|.hg|.idea"' -alias tree2='tree -L 2' -alias tree3='tree -L 3' - -# unix -alias -g md='mkdir -p' -alias -g wh='which' -alias -g wt='while true; do' -alias -g s1='sleep 1' -alias -g s2='sleep 2' -alias -g s01='sleep 0.1' -alias -g s05='sleep 0.5' -alias -g A1="| awk '{print \$1}'" -alias -g L='| less' -alias -g H='| head' -alias -g H2='| head -n 20' -alias -g X='| xargs -I@' -alias -g C='| xclip -selection clipboard' -alias -g Fj='| jq .' -alias -g Fy='| yq .' -alias -g Fx='| xmllint --format -' -alias -g V='| nvim -' - -# unzip -alias uz='unzip' -alias uzl='unzip -l' - -# vim -alias vi='vim' -alias vi.='vim .' - -# watch -alias w1='watch -n 1' - -# wget -ialias wget --hsts-file="${XDG_CACHE_HOME:-${HOME}/.cache}/wget-hsts" - -# xprog -alias progn='xprop | awk '\''/^WM_CLASS/{sub(/.* = /, "instance:"); sub(/, /, "\nclass:"); print} /^WM_NAME/{sub(/.* = /, "title:"); print}'\''' - -# zsh -alias sps="source ${XDG_CONFIG_HOME:-${HOME}/.config}/shell/profile" -alias szs="source ${XDG_CONFIG_HOME:-${HOME}/.config}/zsh/.zshrc" +if [ -n "$BASH_VERSION" ]; then + # ------------------------------ + # BASH-compatible aliases & functions + # ------------------------------ + + # helper: safe alias creation + _a() { alias "$1"="$2"; } + + # sudo not required for some system commands + for command in blkid lsblk mount umount dnf poweroff reboot shutdown su updatedb; do + alias "$command"="sudo $command" + done + + # systemd checks (keep as in original) + case "$(readlink -f /sbin/init)" in + *systemd*) + # journal-like commands as functions (replaces zsh global aliases) + jctl() { journalctl -xe "$@"; } + jctlou() { sudo journalctl -b -n 200 -f "$@"; } + rpi() { systemctl --user restart wireplumber pipewire pipewire-pulse pipewire-jack "$@"; } + + # systemctl helpers + sctl() { systemctl "$@"; } # general wrapper + sctlss() { systemctl status "$@"; } + sctle() { systemctl enable "$@"; } + sctld() { systemctl disable "$@"; } + sctlr() { systemctl restart "$@"; } + sctls() { systemctl start "$@"; } + sctlt() { systemctl stop "$@"; } + sctldr() { systemctl daemon-reload "$@"; } + + tctl() { timedatectl "$@"; } + ;; + esac + + # navigation + alias ...='../..' + alias ....='../../..' + alias .....='../../../..' + + # bash profile helpers + alias sbp="source ~/.config/bash/bash_profile" + alias sbs="source ~/.config/bash/bashrc" + + # cd helpers + cf() { cd "$(dirname "$(readlink -f health.lua)")" || return; } + alias pd='cd -' + + # chmod helpers (keep behavior) + alias che='find . -type f -exec chmod +x {} \;' + # chfd: set directories 755, files 644 (safe implementation) + chfd() { find . -type d -exec chmod 755 {} \; -o -type f -exec chmod 644 {} \;; } + alias cx='chmod a+x' + alias 000='chmod -R 000' + alias 600='chmod -R 600' + alias 644='chmod -R 644' + alias 666='chmod -R 666' + alias 755='chmod -R 755' + alias 777='chmod -R 777' + + # copy / clipboard + # last command copy (approx): copy last history entry to clipboard + CC() { eval "$(fc -ln -1)" | xclip -selection clipboard; } + alias cp='cp -iv' + alias pwdc='pwd | xclip -selection clipboard' + + # count files/links/dirs + alias countfiles='for t in files links directories; do echo "$(find . -type ${t:0:1} | wc -l) $t"; done 2>/dev/null' + + # cpu usage + cpu() { awk '/^cpu /{usage=($2+$4)*100/($2+$4+$5)} END{printf "%.1f\n",usage}' /proc/stat; } + + # curl + alias curl='curl --silent --show-error' + alias clh='curl localhost:' + alias clh8='curl localhost:8080' + alias clh9='curl localhost:9080' + alias c100='curl 192.168.99.100:' + + # date + alias da="date '+%Y-%m-%d %A %T %Z'" + + # delete helpers + alias _fd='find . -type f -name "._*" -print0 | xargs -0 rm -f' + alias _fp='find . -type f -name "._*" -print' + + # diff + alias diff='diff --color' + + # disk + 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" + + # docker + alias dk='docker' + alias dkp='docker ps' + alias dkpa='docker ps -a' + alias dkpaq='docker ps -a -q' + alias dkb='docker build -t' + alias dkbnc='docker build --no-cache -t' + alias dkr='docker run --rm' + alias dkrti='docker run --rm -ti' + alias dkrd='docker run -d' + alias dkrp8='docker run --rm -p 8080:8080' + alias dkrp9='docker run --rm -p 9080:9080' + alias dks='docker start' + alias dkt='docker stop' + alias dktt='docker stop $(docker ps -q)' + alias dkk='docker kill' + alias dkkk='docker kill $(docker ps -q)' + alias dkrm='docker rm' + alias dkri='docker rmi' + alias dke='docker exec -ti' + alias dkl='docker logs -f' + alias dki='docker images' + alias dkpu='docker pull' + alias dkph='docker push' + alias dkin='docker inspect' + alias dkn='docker network' + alias dkc='docker-compose' + alias dkcu='docker-compose up' + alias dkclean='docker ps -q -a -f status=exited | xargs -r docker rm && docker images -q -f dangling=true | xargs -r docker rmi' + + # find + alias fdn='find . -name "' + f() { find . | grep "$*"; } + + # grep: replace zsh global and colored exclude + alias grep='grep --color=auto --exclude-dir={.bzr,CVS,.git,.hg,.svn}' + alias grepi='grep -i' + alias grepr='grep -r' + alias grepri='grep -ri' + alias grepw='grep -R -i --include="*"' + alias grepb='grep -R -i --include="*" --exclude-dir="zsh"' + # global-like helpers implemented as functions that read stdin: + Gg() { grep "$@"; } # usage: somecommand | Gg pattern + Gi() { grep -i "$@"; } + GH() { grep -i "HTTP" "$@"; } + + # hash + alias h='hash -r' + + # hexdump + alias hx='hexdump -C' + + # history + Hgrep() { history | grep "$*"; } # note: alias h was used earlier; avoid conflict + + # ip + alias ip='ip -color=auto' + alias whatsmyip='curl -s ifconfig.me | xargs' + ipview() { netstat -anpl | grep :80 | awk '{print $5}' | cut -d':' -f1 | sort | uniq -c | sort -n | sed -e 's/^ *//' -e 's/ *$//'; } + + # killall + alias ka='killall' + alias k9='kill -9' + alias k15='kill -15' + + # logs + 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; } + + # ls: use eza if available else fallback to ls + if command -v eza >/dev/null 2>&1; then + alias l='eza --icons --group-directories-first' + alias la='eza --icons -aa --group-directories-first' + alias lh='eza --icons -aa --group-directories-first' + alias ll='eza -gl --icons --group-directories-first' + alias lla='eza -glaa --icons --group-directories-first' + alias lm='eza -glA --group-directories-first | more' + alias lr='eza --icons -R --group-directories-first' + alias ls='eza --icons -A --group-directories-first' + else + alias l='/usr/bin/ls -h --color=always --group-directories-first' + alias la='/usr/bin/ls -alh --color=always --group-directories-first' + alias ll='/usr/bin/ls -lh --color=always --group-directories-first' + alias lla='/usr/bin/ls -aFls --color=always --group-directories-first' + alias llf='/usr/bin/ls -Fls --color=always --group-directories-first' + alias lm='/usr/bin/ls -alh --color=always --group-directories-first | more' + alias lr='/usr/bin/ls -hlR --color=always --group-directories-first' + alias ls='/usr/bin/ls -AFh --color=always --group-directories-first' + fi + + # mime + alias mimereset='update-desktop-database ${XDG_DATA_HOME:-${HOME}/.local/share}/applications' + + # mkdir + alias mkdir='mkdir -pv' + mkdir() { command mkdir -pv "$@"; } + + # modified commands (keep cautious variants) + alias grep="/usr/bin/grep $GREP_OPTIONS" + alias freshclam="sudo freshclam" + alias less="less -R" + alias multitail="multitail --no-repeat -c" + alias mv="mv -i" + alias ping="ping -c 10" + alias ps="ps auxf" + alias rm="rm -iv" + + # move + alias mv='mv -iv' + + # nginx + alias ngx="cd /etc/nginx" + + # vim helpers + alias v="$EDITOR" + alias 'v.'="$EDITOR ." + alias ve="$EDITOR -c enew" + vis() { $EDITOR '+set si' "$@"; } + vll() { lastfiles -l "$@"; } + vln() { $EDITOR -c "execute 'edit ' . v:oldfiles[0] | normal '0'" "$@"; } + + # ports + alias openports="netstat -nape --inet" + + # ps + alias ps='ps auxf' + alias psj='ps aux | grep "[j]ava"' + psg() { ps auxf | grep "$*"; } + alias topcpu='/bin/ps -eo pcpu,pid,user,args | sort -k 1 -r | head -10' + + # python + alias py='python3' + + # realpath + alias rp='realpath' + + # remove + alias rm='rm -vI' + + # rsync + alias rsc='rsync -vrazPlu' + alias rscd='rsync -vrazPlu --delete' + alias rscr='rsync -vrazPlu --remove-source-files' + + # rules + alias rrr='sudo udevadm control --reload-rules' + + # scp + alias scp='scp -r' + + # sha1 + alias sha1='openssl sha1' + + # shell switching helpers (need sudo) + alias tobash="sudo chsh $USER -s /bin/bash && echo 'Now log out.'" + alias tozsh="sudo chsh $USER -s /bin/zsh && echo 'Now log out.'" + alias tofish="sudo chsh $USER -s /bin/fish && echo 'Now log out.'" + + # shellcheck + alias shck='shellcheck --color=always' + + # ref/shortcut loader (keep as in original) + ref() { bmshortcuts >/dev/null; source ${XDG_CONFIG_HOME:-${HOME}/.config}/shell/shortcutrc; source ${XDG_CONFIG_HOME:-${HOME}/.config}/shell/shortcutenvrc; source ${XDG_CONFIG_HOME:-${HOME}/.config}/shell/zshnameddirrc; } + + # sudo helpers + alias su='sudo su -l root' + sm() { rm -rf -- *.rej *.orig >/dev/null 2>&1 || true; } + smi() { rm -rf -- *.rej *.orig >/dev/null 2>&1; sudo make clean install; rm -f config.h; } + + # -------- suffix alias replacement: provide 'open' function ---------- + # zsh's "alias -s ext='cmd'" doesn't exist in bash. + # Use `open` (or 'of') to open files by extension: + openf() { + for f in "$@"; do + case "${f##*.}" in + pdf|PDF) mupdf "$f" & ;; + jpg|JPG|png|PNG) gpicview "$f" & ;; + ods|ODS|odt|ODT|odp|ODP|doc|DOC|docx|DOCX|xls|XLS|xlsx|XLSX|xlsm|XLSM|ppt|PPT|pptx|PPTX|csv|CSV) + libreoffice "$f" & ;; + html|HTML) chromium "$f" & ;; + mp4|MP4|mov|MOV|mkv|MKV) vlc "$f" & ;; + zip|ZIP|war|WAR) unzip -l "$f" ;; + jar|JAR) java -jar "$f" ;; + gz) tar -tf "$f" ;; + tgz|TGZ) tar -tf "$f" ;; + *) ${EDITOR:-vi} "$f" ;; + esac + done + } + alias of='openf' + alias open='openf' + + # tarring helpers + alias txf='tar -xf' + alias ttf='tar -tf' + alias mktar="tar -cvf" + alias mkbz2="tar -cvjf" + alias mkgz="tar -cvzf" + alias untar="tar -xvf" + alias unbz2="tar -xvjf" + alias ungz="tar -xvzf" + + # tmux + alias sts='tmux source $XDG_CONFIG_HOME/tmux/tmux.conf' + alias ta='tmux a' + alias tmc='tmuxcreate' + alias tmka='tmux kill-session -a' + alias tmls='tmux ls' + alias tmo='tmuxopen' + alias tmpk='command pkill tmux' + tm_new() { tmux new -s "$(basename "$PWD")"; } + alias tm.='tm_new' + + # trash + alias trd='trash-rm' + alias tre='trash-empty' + alias trl='trash-list' + alias trp='trash-put' + alias trr='trash-restore' + + # tree + alias tree='tree -a -I ".svn|.git|.hg|.idea"' + alias tree2='tree -L 2' + alias tree3='tree -L 3' + + # small unix helpers (converted global aliases -> functions) + md() { mkdir -p "$@"; } + wh() { which "$@"; } + wt() { while true; do "$@"; done } # usage differs from zsh's global alias + s1() { sleep 1; } + s2() { sleep 2; } + s01() { sleep 0.1; } + s05() { sleep 0.5; } + A1() { awk '{print $1}' "$@"; } + L() { less "$@"; } + H() { head "$@"; } + H2() { head -n 20 "$@"; } + X() { xargs -I@ "$@"; } # limited replacement + C() { xclip -selection clipboard "$@"; } + Fj() { jq . "$@"; } + Fy() { yq . "$@"; } + Fx() { xmllint --format "$@"; } + V() { vim - "$@"; } + + # unzip + alias uz='unzip' + alias uzl='unzip -l' + + # vim + alias vi='vim' + alias 'vi.'='vim .' + + # watch + alias w1='watch -n 1' + + # wget + # keep hsts path variable + alias wget="wget --hsts-file='${XDG_CACHE_HOME:-${HOME}/.cache}/wget-hsts'" + + # xprop helper + progn() { xprop | awk '/^WM_CLASS/{sub(/.* = /, "instance:"); sub(/, /, "\nclass:"); print} /^WM_NAME/{sub(/.* = /, "title:"); print}'; } + + # zsh sourcing helpers (just source config) + sps() { source ${XDG_CONFIG_HOME:-${HOME}/.config}/shell/profile; } + szs() { source ${XDG_CONFIG_HOME:-${HOME}/.config}/zsh/.zshrc; } +else + # ------------------------------ + # ZSH-compatible aliases & functions + # ------------------------------ + # sudo not required for some system commands + for command in blkid lsblk mount umount dnf poweroff reboot shutdown su updatedb; do + alias $command="sudo $command" + done + unset command + + case "$(readlink -f /sbin/init)" in + *systemd*) + # journal + alias -g jctl='journalctl -xe' + alias -g jctlou='sudo journalctl -b -n 200 -f' + alias -g rpi='systemctl --user restart wireplumber pipewire pipewire-pulse pipewire-jack' + alias -g sctl='systemctl' + alias -g sctlss='systemctl status' + alias -g sctle='systemctl enable' + alias -g sctld='systemctl disable' + alias -g sctlr='systemctl restart' + alias -g sctls='systemctl start' + alias -g sctlt='systemctl stop' + alias -g sctldr='systemctl daemon-reload' + alias -g tctl='timedatectl' + ;; + esac + + # Go back + alias ...='../..' + alias ....='../../..' + alias .....='../../../..' + + # bash + alias sbp="source ~/.config/bash/bash_profile" + alias sbs="source ~/.config/bash/bashrc" + + # cd + alias cf='cd "$(dirname "$(readlink -f health.lua)")"' + alias pd='cd -' + + # chmod + alias che='find . -type f -exec chmod +x {};' + alias chfd='find . -type d -exec chmod 755 {}; -o -type f -exec chmod 644 {};' + alias cx='chmod a+x' + alias 000='chmod -R 000' + alias 600='chmod -R 600' + alias 644='chmod -R 644' + alias 666='chmod -R 666' + alias 755='chmod -R 755' + alias 777='chmod -R 777' + + # copy + alias CC='$(fc -l -n -1) | xclip -selection clipboard' + ialias cp='cp -iv' + alias pwdc='pwd | xclip -selection clipboard' + + # count + alias countfiles="for t in files links directories; do echo \`find . -type \${t:0:1} | wc -l\` \$t; done 2> /dev/null" + + # cpu + alias cpu="grep 'cpu ' /proc/stat | awk '{usage=(\$2+\$4)*100/(\$2+\$4+\$5)} END {print usage}' | awk '{printf(\"%.1f\n\", \$1)}'" + + # curl + ialias curl='curl --silent --show-error' + balias clh='curl localhost:' + balias clh8='curl localhost:8080' + balias clh9='curl localhost:9080' + balias c100='curl 192.168.99.100:' + + # date + alias da="date '+%Y-%m-%d %A %T %Z'" + + # delete + alias _fd='find . -type f -name "._*" -print0 | xargs -0 rm -f' + alias _fp='find . -type f -name "._*" -print' + + # diff + ialias diff='diff --color' + + # disk + 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" + + # docker + alias dk='docker' + alias dkp='docker ps' + alias dkpa='docker ps -a' + alias dkpaq='docker ps -a -q' + alias dkb='docker build -t' + alias dkbnc='docker build --no-cache -t' + alias dkr='docker run --rm' + alias dkrti='docker run --rm -ti' + alias dkrd='docker run -d' + alias dkrp8='docker run --rm -p 8080:8080' + alias dkrp9='docker run --rm -p 9080:9080' + alias dks='docker start' + alias dkt='docker stop' + alias dktt='docker stop $(docker ps -q)' + alias dkk='docker kill' + alias dkkk='docker kill $(docker ps -q)' + alias dkrm='docker rm' + alias dkri='docker rmi' + alias dke='docker exec -ti' + alias dkl='docker logs -f' + alias dki='docker images' + alias dkpu='docker pull' + alias dkph='docker push' + alias dkin='docker inspect' + alias dkn='docker network' + alias dkc='docker-compose' + alias dkcu='docker-compose up' + alias dkclean='docker ps -q -a -f status=exited | xargs -r docker rm && docker images -q -f dangling=true | xargs -r docker rmi' + + # find + balias fdn='find . -name "' + alias f="find . | grep " + + # grep + ialias -g grep='grep --color=auto --exclude-dir={.bzr,CVS,.git,.hg,.svn}' + alias grepi='grep -i' + alias grepr='grep -r' + alias grepri='grep -ri' + alias grepw='grep -R -i --include="*"' + alias grepb='grep -R -i --include="*" --exclude-dir="zsh"' + alias -g Gg='| grep' + alias -g Gi='| grep -i' + alias -g GH='| grep HTTP' + + # hash + alias h='hash -rf' + + # hexdump + alias hx='hexdump -C' + + # history + alias h="history | grep " + + # ip + ialias ip='ip -color=auto' + alias whatsmyip='curl -s ifconfig.me | xargs' + alias ipview="netstat -anpl | grep :80 | awk '{print $5}' | cut -d':' -f1 | sort | uniq -c | sort -n | sed -e 's/^ *//' -e 's/ *$//'" + + # killall + alias ka='killall' + alias k9='kill -9' + alias k15='kill -15' + + # logs + 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" + + # ls: eza or built-in + [ -x "$(command -v eza)" ] && { + ialias l='eza --icons --group-directories-first' + ialias la='eza --icons -aa --group-directories-first' + ialias lh='eza --icons -aa --group-directories-first' + ialias ll='eza -gl --icons --group-directories-first' + ialias lla='eza -glaa --icons --group-directories-first' + ialias lm='eza -glA --group-directories-first | more' + ialias lr='eza --icons -R --group-directories-first' + ialias ls='eza --icons -A --group-directories-first' + ialias lsb='eza --icons -b --group-directories-first' + ialias lsby='eza --icons -B --group-directories-first' + ialias lld='eza --icons -Dl --group-directories-first' + ialias llda='eza --icons -aaDl --group-directories-first' + ialias llf='eza --icons -fl' + ialias llfa='eza --icons -aafl' + ialias llsa='eza --icons -l -s=accessed' + ialias llsaa='eza --icons -aal -s=accessed' + ialias llsc='eza --icons -l -s=created' + ialias llsca='eza --icons -aal -s=created' + ialias llse='eza --icons -l -s=extension' + ialias llsea='eza --icons -aal -s=extension' + ialias llsm='eza --icons -l -s=modified' + ialias llsma='eza --icons -aal -s=modified' + ialias llsn='eza --icons -l -s=name' + ialias llsna='eza --icons -aal -s=name' + ialias llss='eza --icons -l -s=size' + ialias llssa='eza --icons -aal -s=size' + ialias llst='eza --icons -l -s=type' + ialias llsta='eza --icons -aal -s=type' + ialias lt='eza --icons -T -L' + ialias ltd='eza --icons -TD -L' + ialias ltdr='eza --icons -TDr -L' + ialias ltr='eza --icons -Tr -L' + } || { + ialias l='/usr/bin/ls -h --color=always --group-directories-first' + ialias la='/usr/bin/ls -alh --color=always --group-directories-first' + ialias ll='/usr/bin/ls -lh --color=always --group-directories-first' + ialias lla='/usr/bin/ls -aFls --color=always --group-directories-first' + ialias llf='/usr/bin/ls -Fls --color=always --group-directories-first' + ialias lm='/usr/bin/ls -alh --color=always --group-directories-first | more' + ialias lr='/usr/bin/ls -hlR --color=always --group-directories-first' + ialias lra='/usr/bin/ls -ahlR --color=always --group-directories-first' + ialias ls='/usr/bin/ls -AFh --color=always --group-directories-first' + ialias llsa='/usr/bin/ls -hlru --color=always --group-directories-first' + ialias llsc='/usr/bin/ls -hclr --color=always --group-directories-first' + ialias lld='/usr/bin/ls -l --color=always | grep "^d"' + ialias llda='/usr/bin/ls -la --color=always | grep "^d"' + ialias llse='/usr/bin/ls -BhlX --color=always --group-directories-first' + ialias llsf='/usr/bin/ls -l --color=always | grep -v "^d"' + ialias llsfa='/usr/bin/ls -la --color=always | grep -v "^d"' + ialias llsm='/usr/bin/ls -hlr --time=ctime --color=always --group-directories-first' + ialias llsn='/usr/bin/ls -alp --color=always --group-directories-first' + ialias llss='/usr/bin/ls -hlrS --color=always --group-directories-first' + ialias llst='/usr/bin/ls -hlrt --color=always --group-directories-first' + ialias lw='/usr/bin/ls -Ahx --color=always --group-directories-first' + } + + # mime + alias mimereset="update-desktop-database ${XDG_DATA_HOME:-${HOME}/.local/share}/applications" + + # mkdir + ialias mkdir='mkdir -pv' + + # modified commands + alias grep="/usr/bin/grep $GREP_OPTIONS" + alias cp="cp -i" + alias freshclam="sudo freshclam" + alias less="less -R" + alias mkdir="mkdir -p" + alias multitail="multitail --no-repeat -c" + alias mv="mv -i" + alias ping="ping -c 10" + alias ps="ps auxf" + alias rm="rm -iv" + + # move + ialias mv='mv -iv' + + # nginx + alias ngx="cd /etc/nginx" + + # vim + alias v='$EDITOR' + alias v.='$EDITOR .' + alias ve='$EDITOR -c enew' + alias vis="$EDITOR '+set si'" + alias vll='lastfiles -l' + alias vln='$EDITOR -c '\''execute "edit " . v:oldfiles[0] | normal ''0'\' + + # ports + alias openports="netstat -nape --inet" + + # ps + ialias ps='ps auxf' + alias psj='ps aux | grep "[j]ava"' + balias psg='ps auxf | grep' + alias topcpu='/bin/ps -eo pcpu,pid,user,args | sort -k 1 -r | head -10' + + # python + alias py='python3' + + # realpath + alias rp='realpath' + + # remove + ialias rm='rm -vI' + + # rsync + alias rsc='rsync -vrazPlu' + alias rscd='rsync -vrazPlu --delete' + alias rscr='rsync -vrazPlu --remove-source-files' + + # rules + alias rrr='sudo udevadm control --reload-rules' + + # scp + ialias scp='scp -r' + + # sha1 + alias sha1='openssl sha1' + + # shell + alias tobash="sudo chsh $USER -s /bin/bash && 'Now log out.'" + alias tozsh="sudo chsh $USER -s /bin/zsh && 'Now log out.'" + alias tofish="sudo chsh $USER -s /bin/fish && 'Now log out.'" + + # shellcheck + alias shck='shellcheck --color=always' + + # shortcut + alias ref='bmshortcuts >/dev/null; source ${XDG_CONFIG_HOME:-${HOME}/.config}/shell/shortcutrc; source ${XDG_CONFIG_HOME:-${HOME}/.config}/shell/shortcutenvrc; source ${XDG_CONFIG_HOME:-${HOME}/.config}/shell/zshnameddirrc' + + # sudo + alias su='sudo su -l root' + alias sm='setopt no_nomatch && rm -rf *.rej *.orig >/dev/null 2>&1' + alias smi='setopt no_nomatch && rm -rf *.rej *.orig >/dev/null 2>&1 && unsetopt no_nomatch; sudo make clean install; rm -f config.h' + + # suffix + alias -s {pdf,PDF}='background mupdf' + alias -s {jpg,JPG,png,PNG}='background gpicview' + alias -s {ods,ODS,odt,ODT,odp,ODP,doc,DOC,docx,DOCX,xls,XLS,xlsx,XLSX,xlsm,XLSM,ppt,PPT,pptx,PPTX,csv,CSV}='background libreoffice' + alias -s {html,HTML}='background chromium' + alias -s {mp4,MP4,mov,MOV,mkv,MKV}='background vlc' + alias -s {zip,ZIP,war,WAR}="unzip -l" + alias -s {jar,JAR}="java -jar" + alias -s gz="tar -tf" + alias -s {tgz,TGZ}="tar -tf" + + # tar + alias txf='tar -xf' + alias ttf='tar -tf' + alias mktar="tar -cvf" + alias mkbz2="tar -cvjf" + alias mkgz="tar -cvzf" + alias untar="tar -xvf" + alias unbz2="tar -xvjf" + alias ungz="tar -xvzf" + + # tmux + alias sts='tmux source $XDG_CONFIG_HOME/tmux/tmux.conf' + alias ta='tmux a' + alias tmc='tmuxcreate' + alias tmka='tmux kill-session -a' + alias tmls='tmux ls' + alias tmo='tmuxopen' + alias tmpk='command pkill tmux' + alias tm.='tmux new -s "$(basename $PWD)"' + + # tor + alias torh="cat /var/lib/tor/hidden_service/hostname" + + # trash + alias trd='trash-rm' + alias tre='trash-empty' + alias trl='trash-list' + alias trp='trash-put' + alias trr='trash-restore' + + # tree + ialias tree='tree -a -I ".svn|.git|.hg|.idea"' + alias tree2='tree -L 2' + alias tree3='tree -L 3' + + # unix + alias -g md='mkdir -p' + alias -g wh='which' + alias -g wt='while true; do' + alias -g s1='sleep 1' + alias -g s2='sleep 2' + alias -g s01='sleep 0.1' + alias -g s05='sleep 0.5' + alias -g A1="| awk '{print \$1}'" + alias -g L='| less' + alias -g H='| head' + alias -g H2='| head -n 20' + alias -g X='| xargs -I@' + alias -g C='| xclip -selection clipboard' + alias -g Fj='| jq .' + alias -g Fy='| yq .' + alias -g Fx='| xmllint --format -' + alias -g V='| vim -' + + # unzip + alias uz='unzip' + alias uzl='unzip -l' + + # vim + alias vi='vim' + alias vi.='vim .' + + # watch + alias w1='watch -n 1' + + # wget + ialias wget --hsts-file="${XDG_CACHE_HOME:-${HOME}/.cache}/wget-hsts" + + # xprog + alias progn='xprop | awk '\''/^WM_CLASS/{sub(/.* = /, "instance:"); sub(/, /, "\nclass:"); print} /^WM_NAME/{sub(/.* = /, "title:"); print}'\''' + + # zsh + alias sps="source ${XDG_CONFIG_HOME:-${HOME}/.config}/shell/profile" + alias szs="source ${XDG_CONFIG_HOME:-${HOME}/.config}/zsh/.zshrc" +fi |
