%YAML 1.1 --- tags: - name: fun description: >- Aliases of questionable usefulness, mostly for puns, private jokes, or showing off. - name: git description: Git-related shortcuts. - name: docker description: Docker-related shortcuts. - name: python description: Python-related shortcuts. - name: basic description: >- Rather basic aliases that you might already have built into your shell. - name: specific description: Aliases that are quite specific to my own setup. aliases: - name: aliasless description: In honour of ~aliasless! value: 'alias | less' tag: fun - name: please description: For when you want to be polite with your terminal. value: sudo tag: fun - name: ':q' description: For when I get confused between Vim and a shell. value: exit tag: fun - name: ':q!' value: exit tag: fun - name: ':wq' value: exit tag: fun - name: gs value: git status tag: git - name: gch value: git checkout tag: git - name: gchm value: git checkout master tag: git - name: gchb value: git checkout -b tag: git - name: gl description: >- Yet another git log alias. You will probably want to customize it with your own format. value: >- git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --all tag: git - name: ga value: git add tag: git - name: gaa value: git add -A tag: git - name: gapa value: git add --patch tag: git - name: gb value: git branch tag: git - name: gbd value: git branch -d tag: git - name: gbD value: git branch -D tag: git - name: gbs value: git bisect tag: git - name: gbs! value: git bisect start tag: git - name: gbsg value: git bisect good tag: git - name: gbsb value: git bisect bad tag: git - name: gbss value: git bisect skip tag: git - name: gbsr value: git bisect reset tag: git - name: gc value: git commit tag: git - name: gca value: git commit -a tag: git - name: gcas value: git commit -a -s tag: git - name: gcm value: git commit -m tag: git - name: gcms value: git commit -s -m tag: git - name: gcs value: git commit -s tag: git - name: gcam value: git commit -a -m tag: git - name: gcams value: git commit -a -s -m tag: git - name: gcan value: git commit --amend --no-edit tag: git - name: gcans value: git commit --amend -s --no-edit tag: git - name: gcaan value: git commit --amend -a --no-edit tag: git - name: gcaans value: git commit --amend -a -s --no-edit tag: git - name: gcp value: git cherry-pick tag: git - name: gcpa value: git cherry-pick --abort tag: git - name: gcpc value: git cherry-pick --continue tag: git - name: gd value: git diff tag: git - name: gds value: git diff --staged tag: git - name: gf value: git fetch tag: git - name: gfp value: git fetch --prune tag: git - name: gg description: For when you give up with command-line Git. value: git gui tag: git - name: gm value: git merge tag: git - name: gma value: git merge --abort tag: git - name: gp value: git push tag: git - name: gpf value: git push --force-with-lease tag: git - name: gpfo value: git push --force-with-lease origin tag: git - name: gpu value: git push -u origin tag: git - name: gr value: git remote tag: git - name: gra value: git remote add tag: git - name: grrm value: git remote remove tag: git - name: grmv value: git remote rename tag: git - name: grpo value: git remote prune origin tag: git - name: grb value: git rebase tag: git - name: grba value: git rebase --abort tag: git - name: grbc value: git rebase --continue tag: git - name: grbi value: git rebase -i tag: git - name: grbm value: git rebase master tag: git - name: grbs value: git rebase --skip tag: git - name: grh value: git reset tag: git - name: grhh value: git reset --hard tag: git - name: grl value: git reflog tag: git - name: gst value: git stash tag: git - name: gsta value: git stash push tag: git - name: gstam value: git stash push -m tag: git - name: gstd value: git stash clear tag: git - name: gstl value: git stash list tag: git - name: gstp value: git stash pop tag: git - name: gsts value: git stash show --text tag: git - name: gt value: git tag tag: git - name: gtf value: git tag -f tag: git - name: gtd value: git tag -d tag: git - name: hd value: hexdump -C tag: basic - name: https description: An alias for HTTPie to use HTTPS more quickly value: http --default-scheme=https - name: ka value: killall tag: basic - name: nuke value: kill -9 tag: fun - name: l value: ls -lah tag: basic - name: la value: ls -lAh tag: basic - name: ll value: ls -lh tag: basic - name: md value: mkdir tag: basic - name: rd value: rmdir tag: basic - name: mdp value: mkdir -p tag: basic - name: chown description: Why isn't this the default?! value: chown --preserve-root tag: basic - name: chmod description: Why isn't this the default?! value: chmod --preserve-root tag: basic - name: oneplus description: >- I have KDEConnect installed on my OnePlus One, and I often use its not-so-comfortable CLI. value: "kdeconnect-cli -n 'OnePlus One'" tag: specific - name: nuketheswap description: |- Named after a private joke at work. Cleans up your swap. Be careful not to run this if you do not have enough space in RAM or if you still have some programs eating up your RAM: this could freeze your machine. value: sudo swapoff -a; sudo swapon -a tag: specific - name: scream value: "tr '[[:lower:]]' '[[:upper:]]'" tag: fun - name: whisper value: "tr '[[:upper:]]' '[[:lower:]]'" tag: fun - name: cowscream description: For the big moo-ds. value: "figlet -f big -w 999999 | cowsay -nw" tag: fun - name: cowanxiety description: For the big bad moo-ds. value: "figlet -f big -w 999999 | cowthink -nw" tag: fun - name: sl description: I like trains, but not too much. value: sl -e tag: fun - name: fullwidth description: >- Convert normal character to their full-width equivalents. Great for vaporware-style text, or for messing up some terminals. value: "sed \"y/!\\\"#\\$%&'()*+,-.\\/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\\\]^_\\`abcdefghijklmnopqrstuvwxyz{|}~¢£¬¯¦¥ /!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¢£¬ ̄¦¥ /\"" tag: fun - name: dco value: docker-compose tag: docker - name: dcp value: docker container prune tag: docker - name: dccp value: docker container cp tag: docker - name: dcpf value: docker container prune -f tag: docker - name: de value: docker exec tag: docker - name: dei value: docker exec -it tag: docker - name: di value: docker inspect tag: docker - name: dip value: docker image prune tag: docker - name: dipf value: docker image prune -f tag: docker - name: drmi value: docker rmi tag: docker - name: drmia value: docker images -q | xargs docker rmi tag: docker - name: dk value: docker kill tag: docker - name: dka value: docker ps -q | xargs docker kill tag: docker - name: dl value: docker logs tag: docker - name: dlf value: docker logs -f tag: docker - name: dlft value: docker logs -f --tail tag: docker - name: dlt value: docker logs --tail tag: docker - name: dn value: docker network tag: docker - name: dnc value: docker network create tag: docker - name: dnp value: docker network prune tag: docker - name: dnpf value: docker network prune -f tag: docker - name: dp value: docker ps tag: docker - name: dpq value: docker ps -q tag: docker - name: dr value: docker run tag: docker - name: dri value: docker run -it tag: docker - name: dsp value: docker system prune tag: docker - name: dspf value: docker system prune -f tag: docker - name: gut description: >- You can also have a function that looks for 'status' in the argument, and prints 'hungry' for `gut status`. value: git tag: git - name: got description: For when you type your aliases so fast you miss a key. value: git tag: git - name: cdp value: cdproject tag: python - name: wk value: workon tag: python - name: sqlite value: sqlite3 - name: ssh description: >- Used in my Termux setup because the ssh-agent compatible ssh is ssha. value: ssha tag: specific hosts: - termux - name: shutdown value: exit description: |- As an i3 user, the easiest way for me to shut the computer down is to use `shutdown now`. I can use i3's launcher to do that, or I can just run that in any terminal that I already have opened. As I often leave an SSH connection to tilde.town opened for a while when my home computer is running, sometimes I accidentally try to shut the town down! Luckily, it does not let me do that because there are other users logged on, but I set an alias just to avoid the little scare I can get from that. tag: specific hosts: - tildetown - name: joke type: git value: '!curl -s https://raw.githubusercontent.com/EugeneKay/git-jokes/lulz/Jokes.txt | shuf | head -n1' tag: fun - name: coffee type: git value: '!curl -L https://git.io/coffee' tag: fun - name: ytdl value: youtube-dl - name: weather value: 'curl --fail -s "https://wttr.in/?format=v2"' - name: moon value: 'curl --fail -s "https://wttr.in/moon"' - name: ./maange.py description: Yet another fat finger autocorrector, but for Django. value: ./manage.py tag: python - name: ./maange.Py value: ./manage.py tag: python - name: prunetmpenv description: >- Using virtualenvwrapper's `mktmpenv`, then not deactivating properly, results in useless environments piling up! value: 'rmvirtualenv $(wk | grep ^tmp-)' tag: python - name: unzst description: Because I always forget how to extract .tar.zst archives. value: tar -I zstd -xf - name: flushall description: Clear all of the local Redis database! value: "echo FLUSHALL | redis-cli" tag: specific - name: poule value: pull description: >- French pun: the french noun «poule» (chicken) is pronounced in the same way as the english verb "pull". type: git tag: fun - name: gud description: Mac- and Linux-compatible. value: >- !xdg-open http://lmgtfy.com/\?s\=d\&iie\=1\&q\=how+to+use+git 2>/dev/null || open http://lmgtfy.com/\?s\=d\&iie\=1\&q\=how+to+use+git type: git tag: fun - name: mkcd type: function description: Stolen from some reply on StackExchange. value: |- case "$1" in */..|*/../) cd -- "$1";; /*/../*) (cd "${1%/../*}/.." && mkdir -p "./${1##*/../}") && cd -- "$1";; /*) mkdir -p "$1" && cd "$1";; */../*) (cd "./${1%/../*}/.." && mkdir -p "./${1##*/../}") && cd "./$1";; ../*) (cd .. && mkdir -p "${1#.}") && cd "$1";; *) mkdir -p "./$1" && cd "./$1";; esac - name: ytmp3 type: function description: >- I mostly only ever use youtube-dl to fill my music library. You can use this as `ytmp3 dQw4w9WgXcQ` to use the video's original title, or `ytmp3 dQw4w9WgXcQ "We Are Number One"` to use your own. value: 'youtube-dl -x --audio-format mp3 -o "${2:-%(title)s}.%(ext)s" "$1"' - name: ttm type: function value: 'curl -F"file=@$1" https://ttm.sh' - name: ttmu type: function value: 'curl -F"url=$1" https://ttm.sh' - name: shorten type: function value: 'curl -F"shorten=$1" https://ttm.sh' - name: oxo type: function value: 'curl -F"file=@$1" https://0x0.st' - name: gbdo type: function value: 'git push origin -d $@ && git branch -D $@' tag: git - name: gpmr type: function description: >- Git push with options for automatically creating a GitLab merge request with a given title. value: |- [ "$#" -le 0 ] && echo "Usage: $0 <other options>" && return 1 local title=$1 shift git push -u origin \ -o merge_request.create \ -o merge_request.target=master \ -o merge_request.remove_source_branch \ -o merge_request.title="$title" \ $* tag: git