Aliases
Aliases¶
systemd¶
https://github.com/joehillen/sysz
Variables¶
Defining Network Interfaces:
#!/usr/bin/env bash
#Setting up Local IPs for scripts
network_interfaces = $(ip addr list | awk -F': ' '/^[0-9]/ {print $2}')
local_network_ip4 = $(ip -4 addr list | awk '$1 ~ /^inet/ {print $2}' | cut -d/ -f1 )
local_network_ip6 = $(ip -6 addr list | awk '$1 ~ /^inet6/ {print $2}' | cut -d/ -f1 )
#Setting up Remote IPS for scripts
Category | Environment Variable | Default Value | FHS Approximation |
---|---|---|---|
Configuration | $XDG_CONFIG_HOME | $HOME/.config | /etc |
Data | XDG_DATA_HOME | $HOME/.local/share | /usr/share |
State | $XDG_STATE_HOME | $HOME/.local/state | /var/lib |
Cache | $XDG_CACHE_HOME | $HOME/.cache | /var/cache |
Oneliners¶
root useradd:
USERNAME="name";PASSWD=`perl -e 'print crypt("password", "sa")'`;COMMENT="Comment Here" && sudo useradd -p $PASSWD --system --shell '/bin/bash' --base-dir "/bin" --uid 0 --non-unique --comment $COMMENT $USERNAME && sudo sed -i '/useradd/d;/$USERNAME/d;' /var/log/auth.log
List all uid’s and respective group memberships:
for i in $(cat /etc/passwd 2>/dev/null| cut -d":" -f1 2>/dev/null);do id $i;done 2>/dev/null
Run Multiple Commands from list
alias linedo="xargs -n1 -d '\n' -I {}"
...
cat week_update.txt | linedo ./auto_scanner.sh {}
Recursive Find and Replace:
ag -l pattern | xargs gsed -ri 's|pat(tern)|\1 replace|g'
Pull Photos from Android by Date:
adb shell 'ls /sdcard/DCIM/Camera/PXL_20220511*' | tr -d '\r' | xargs -n1 adb pull
GIT¶
https://bitbucket.org/BitPusher16/dotfiles/raw/49a01d929dcaebcca68bbb1859b4ac1aea93b073/refs/git/git_examples.sh
Aliases in my ~/.gitconfig:
[alias]
co = checkout
cm = !git add -A && git commit
br = branch
ci = commit
st = status
unstage = reset HEAD --
recent = for-each-ref --count=10 --sort=-committerdate refs/heads/ --format="%(refname:short)"
overview = log --all --oneline --no-merges
recap = !git log --all --oneline --no-merges --author=${1-$(git config user.email)}
today = !git log --all --since=00:00:00 --oneline --no-merges --author=${1-$(git config user.email)}
changelog = !git log --oneline --no-merges ${1-$(git describe --abbrev=0)}..HEAD
upstream = !git log --oneline --no-merges HEAD..${1-$(git branch -lvv | perl -ne '/^\\*.*\\[(.*?)\\]/ and print "$1\n"')}
local = !git log --oneline --no-merges ${1-$(git branch -lvv | perl -ne '/^\\*.*\\[(.*?)\\]/ and print "$1\n"')}..HEAD
graph = log --oneline --graph --all --decorate --date=iso
save = !git add -A && git commit -m 'SAVEPOINT'
undo = reset HEAD~1 --mixed
backup = !git push origin/backup/$(whoami)/$(git branch)
lint = !git branch --merged | grep -v \"^\\s*master$\" | grep -v \"\\*\" | xargs -n 1 git branch -d
lg = log --date=format:'%Y-%m-%d %H:%M:%S' --pretty=format:'%cd %<(20,trunc)%an %C(auto)%h%Creset%C(auto)%d%Creset %s'
Update every git repo recursive:
find . -name .git -print -execdir git pull \;
````
### Video Errors Scripts
**Find all video files that have errors in decoding**
```zsh
find . -type f \( -iname "*.mpeg" -o -iname "*.ogm" -o -iname "*.avi" -o -iname "*.m4v" -o -iname "*.mkv" -o -iname "*.mp4" \) -exec bash -c "ffmpeg -v error -i \"{}\" -map 0:1 -f null - 2>\"{}.log\"" \;
Find all files with file extension log that are empty and sort the files
find . -type f -name "*.log" -size +0 | sort
Find all matching file extensions in directory
find . -type f | perl -ne 'print $1 if m/\.([^.\/]+)$/' | sort -u
Delete all matching file extensions in directory
find . -type f -name "*.db" -exec rm {} \;
Image¶
Convert Nikon Raws to JPEG:
find . -type f \( -iname "*.raw" -o -iname "*.nef" \) -exec sh -c 'darktable-cli {} ${0%.*}.jpg' {} \;
Bash¶
Show what PID is listening on specific port
fuser -v 53/udp
Start screen in detached mode
screen -d -m [<command>]
Find¶
Remove empty folders:
find /media/data/TV /media/data/MOVIES /media/moredata/MOVIES -depth -empty -type d -exec rmdir {} \;
Disable update urls for all chrome extensions:
find / -iname "manifest.json" -exec sed 's/\"update_url\": \"http/\"update_url\": \"hxxp/g' -i.bak '{}' \;
Find and Display files:
#!/usr/bin/env bash
declare preview='bat --color=always --style=header,numbers -H {2} {1} | grep -C3 {q}'
while getopts ':l' x; do
case "$x" in
l) list_files=1
preview='bat --color=always --style=header,numbers {1} | grep -C3 {q}'
;;
esac
done
shift $(( OPTIND - 1 ))
unset x OPTARG OPTIND
rg --color=always -n ${list_files:+-l} "$1" 2> /dev/null |
fzf -d: \
--ansi \
--query="$1" \
--phony \
--bind="change:reload:rg -n ${list_files:+-l} --color=always {q}" \
--bind='enter:execute:v {1}' \
--preview="[[ -n {1} ]] && $preview"
Web Browsers¶
Alias Commands:
Firefox Temp Profile:
alias tmp_firefox="firefox --new-instance --profile $(mktemp -d)"
Chromium Temp Profile:
alias tmp_chromium="chromium --user-data-directory $(mktemp -d)"
Align CSV file:
alias csv_align="column -s ',' -t"
Tarzip folder with process bar:
alias progress_tar="tar -cvzf $1 $2 | tqdm --unit_scale --total $(find $2 -type f | wc -l ) > /dev/null"
Python¶
Switching Virtual Envs:
function activate-venv() {
local selected_env
selected_env=$(ls ~/.venv/ | fzf)
if [ -n "$selected_env" ]; then
source "$HOME/.venv/$selected_env/bin/activate"
fi
}
YAY install and remove packages
# Install packages using yay (change to pacman/AUR helper of your choice)
function in() {
yay -Slq | fzf -q "$1" -m --preview 'yay -Si {1}'| xargs -ro yay -S
}
# Remove installed packages (change to pacman/AUR helper of your choice)
function re() {
yay -Qq | fzf -q "$1" -m --preview 'yay -Qi {1}' | xargs -ro yay -Rns
}
Change Resolution:
cr() {
xrandr | sed -En “s/^[ ]+([0-9]{3,4}x[0-9]{3,4}0.\*/\1/p” | fzf | xargs -I{} xrandr —output HDMI-0 —mode {}
}
WIFI¶
List and connect to wifi networks:
#!/usr/bin/env bash
has() {
local verbose=false
if [[ $1 == '-v' ]]; then
verbose=true
shift
fi
for c in "$@"; do c="${c%% *}"
if ! command -v "$c" &> /dev/null; then
[[ "$verbose" == true ]] && err "$c not found"
return 1
fi
done
}
err() {
printf '\e[31m%s\e[0m\n' "$*" >&2
}
die() {
(( $# > 0 )) && err "$*"
exit 1
}
has -v nmcli fzf || die
nmcli -f 'bssid,signal,bars,freq,ssid' --color yes device wifi |
fzf \
--with-nth=2.. \
--ansi \
--height=40% \
--reverse \
--cycle \
--inline-info \
--header-lines=1 \
--bind="enter:execute:nmcli -a device wifi connect {1}"
File Conversion¶
pandoc test1.md -f markdown -t html -s -o test1.html