# Shut Up! ```sh echo blacklist pcspkr > /etc/modprobe.d/nobeep.conf ``` --- # Standard Visuals - `cbonsai` - `asciiquarium` - `top` * `ZH4W` ## Another Monday! - `cal --reform julian` ## Weather ```sh curl wttr.in curl -s wttr.in/Београд curl wttr.in/Moon ``` # `ls` `ls -X` --- # vim - blog! - seriously, just write --- # `watch` ## Watch Differences - `watch -d stat "$file"` - `watch -d ip a` ## With Makefiles ```sh watch --chgexit ping -c 1 dmz.rs && sleep 3 && unison -batch pir ``` ## Check Progress ```sh watch 'ls **/*.pdf | column' ``` --- # Watch Shell Scripts ```sh watch -e ./script.sh ``` --- # Slow Down ```sh function slow(){ ff=/tmp/bashpipe_$(date +%s) mkfifo $ff 2>/dev/null ( cat $ff | perl -We 'use Time::HiRes;$|++;while(read(STDIN,$c,1)){Time::HiRes::usleep(15000);print $c;}' )& exec &> $ff } ``` ## Safety? - no ## `htop`? - no ## `speedtest`? - **YES** ``` --- # Notes ```sh alias no='$EDITOR .no.md' function n(){ [ -z "$1" ] && cat .no.md || echo $@ >> .no.md } ``` --- # URL Decoding ```bash urldecode(){ : "${*//+/ }"; echo -e "${_//%/\\x}"; } ``` --- # Send Text ```sh function sendtext(){ [ -f "$1" ] && \ cat "$1" | nc termbin.com 9999 || \ echo "$($1)" | nc termbin.com 9999 } ``` --- # Readline Put this in `.inputrc`. ```text set editing-mode vi set keymap vi ``` --- # More Readline vi ```text set editing-mode vi set show-mode-in-prompt on set vi-ins-mode-string " " set vi-cmd-mode-string " " set keymap vi ``` --- # More Readline ```text set match-hidden-files off set show-all-if-ambiguous on set show-all-if-unmodified on set colored-stats on "\C- ": shell-expand-line "\C-x": glob-expand-word Control-g: "g\n" Control-y: "| ccze\n" Control-o: "\C-u lfcd\n\C-u" Control-l: "\C-u clear -x && ls\n" ``` --- # Synchronization ## Syncthing - 'Just works' ## Unison - Fuck haskell - But actually it's good --- # `column` ```sh column -ts: -H PW,GID,shell -N User,PW,UID,GID,Description,Home,shell /etc/passwd ``` ## ```sh column -J -ts: -H PW,GID,shell -N User,PW,UID,GID,Description,Home,shell /etc/passwd | jq -r .table.[].user ``` --- # Aliases ## b ```sh b () { eval "cd $(for d in $(seq 1 $1); do printf ../; done)" } ``` --- # `eval` - Don't --- # Clear Downloads ```sh rm -rf ~/Downloads/* echo "tmpfs $HOME/Downloads tmpfs defaults,size=1G 0 0" | sudo tee -a /etc/fstab sudo systemctl daemon-reload # Only for systemd sudo mount -a mount | tail -1 ``` # The Best: `yes` - `yes` - `yes no`