-
Notifications
You must be signed in to change notification settings - Fork 3
/
.shell_aliases
224 lines (202 loc) · 6.45 KB
/
.shell_aliases
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
# Globals {{{
local loc=$(readlink ~/.zshrc)
export DOTFILES_HOME=$(dirname $loc)
# }}}
# Builtins {{{
# ls without colors for dipshit 777 disks
# The colorscheme makes 777 folders literally unreadable
alias lsn="ls --color=no"
alias open="xdg-open"
# }}}
# Git {{{
alias gi="git init"
alias subclone="git submodule update --init --recursive"
alias gitdeep="git clone --recursive"
alias gitgraph="git log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset)%C(bold yellow)%d%C(reset)%n'' %C(white)%s%C(reset) %C(dim white)- %an%C(reset)' --all"
alias gitsign="git config commit.gpgsign true"
alias gsi="git submodule update --init"
alias gcget="git config --get"
function ghsclone() {
if [[ "$1" == "" ]]; then
echo "Clone what?"
return -1
fi;
git clone "[email protected]:$1"
}
# }}}
# Exposing various binaries {{{
alias themis="~/.vim/plugged/vim-themis/bin/themis"
# }}}
# Hardware {{{
alias noiturbo="echo '1' | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo"
alias iturbo="echo '0' | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo"
alias pulsenodio="pulseaudio -k && sudo alsa force-reload"
alias fix-bluetooth="pactl unload-module module-bluetooth-discover && pactl load-module module-bluetooth-discover"
# }}}
# Pyenv {{{
alias newpyenv="virtualenv env && source ./env/bin/activate"
# }}}
# Vim {{{
# Hack for gvim: source the pyenv so gvim can access it.
# Workaround in my current dotfiles: :SetVEnv in gvim
# All output is then piped into good 'ol /dev/null because it
# usually spews out bullshit anyway
alias pygvim="source ./env/bin/activate && gvim . > /dev/null 2>&1"
alias pyenv="source ./env/bin/activate"
# }}}
# System {{{
alias sysupdate="sudo apt update && sudo apt upgrade && flatpak update"
# Updates various packages that aren't managed by apt or flatpak.
# This can include stuff _completely_ excluded from other package managers,
# package managers for different programs, or second-class package managers
# (like pip).
function updatePackages() {
set -x
go get -v -u github.com/boyter/scc/
git -C ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k pull
# Not quitting afterwards in the event something goes wrong
gvim +PlugUpdate
set +x
}
# }}}
# Tmux {{{
# **tmux n**ame
alias tmuxn="tmux new-session -t"
# }}}
# Docker {{{
# Start and stop the service
alias rdocker="sudo systemctl start docker"
alias sdocker="sudo systemctl stop docker"
# Temporary docker container (deletes itself)
alias dockertmp="docker run --rm -ti"
# Permanent, named docker container without disconnect
alias dockern="docker run -di --name"
# Shortcut to interactive session
alias dex="docker exec -ti"
alias dstart="docker start"
alias dstop="docker stop"
alias drm="docker rm"
alias powershelldocker="docker run -ti --rm mcr.microsoft.com/powershell:latest"
# }}}
# ffmpeg {{{
# convert standalone MP3s to spotify-compatible audio levels
alias normalize-all-audio="ffmpeg-normalize *.mp3 -c:a libmp3lame -ext mp3 -b:a 320k -f -t -14"
alias normalize-audio="ffmpeg-normalize -c:a libmp3lame -ext mp3 -b:a 320k -f -t -14"
# }}}
# asciinema extensions {{{
function asciinemaProfile() {
if [[ -n "$1" ]]; then
ln -sf $HOME/.config/asciinema/install-id-$1 $HOME/.config/asciinema/install-id
else
echo "Specify which profile to use"
fi
}
# }}}
# sshd aliases {{{
alias breach-attempts="sudo fail2ban-client status sshd"
alias sshd-auths="cat /var/log/auth.log | grep sshd"
# Stats on usernames
alias sshd-auth-bad="cat /var/log/auth.log | grep sshd | grep 'invalid user'"
# No need to check root, the config has it as an invalid user
# }}}
# ssh {{{
alias sshd-restart="sudo systemctl restart ssh"
# }}}
# Command shortening {{{
function mkcd() {
if [[ "$1" != "" ]]; then
mkdir -p $1 && cd $1
else
echo "Create what?"
fi
}
function cleanmk() {
if [[ "$1" != "" && "$1" != "/" ]]; then
rm -rf $1 && mkdir $1 && cd $1
else
echo "Invalid path, or path was root (rm-ing root is bad!)"
fi
}
# }}}
# CMake {{{
alias cmaker="cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_EXPORT_COMPILE_COMMANDS=1"
alias cmaked="cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS=1"
alias fmake='make -j $(nproc)'
# }}}
# Network fuckery {{{
# Only enabled on pihole-enabled devices or my devices in general, because this is aimed at my home network only,
# and remoting into my home network.
#
# TODO merge these into a single function
if [[ `( nmcli dev list || nmcli dev show ) 2>/dev/null | grep IP4.DNS | grep 192.168.0.179` != '' ]]; then
function nasmountall() {
sshfs [email protected]:/media/NAS /media/NAS
}
else
function nasmountall() {
sshfs [email protected]:/media/NAS /media/NAS
}
fi
if [[ $USER == "olivia" ]]; then
# Equivalent to nasmountall, but takes a single IP as input
# The IP has to be manually configured in ~/.ssh/config first.
function nasmountremote() {
sshfs olivia@${1:-nova.remote}:/media/NAS /media/NAS
#sshfs olivia@${1:-nova.remote}:/media/NAS1 /media/NAS1
}
function nasumount() {
umount /media/NAS
}
fi
# }}}
# VPN {{{
# Thanks, arch wiki: https://wiki.archlinux.org/title/VPN_over_SSH
alias vpn="ssh -TND 4711 [email protected]"
function oc() {
openconnect-sso -s $1 --browser-display-mode shown
}
# }}}
# WSL bullshit {{{
if [[ $(grep -i Microsoft /proc/version) ]]; then
# No automatic services
function bootstrapenv() {
sudo service postgresql start
}
fi
# }}}
# Gpg {{{
alias gpgsign="gpg --clearsign "
function gpgsend() {
if [[ $1 == "" || $2 == "" || $1 == "--help" ]]; then
echo "Usage: gpgsend email message-file"
return 0
fi
gpg --sign --encrypt --recipient $1 $2
}
function gpgexport() {
if [[ $1 == "" || $2 == "" || $1 == "--help" ]]; then
echo "Usage: gpgexport output-path email"
return 0
fi
gpg --output $1 --armor --export $2
}
# }}}
# Ssh keygen and key admin {{{
function ssh-fixperms() {
chmod 600 ~/.ssh/*
chmod 700 ~/.ssh
}
function o-ssh-keygen() {
if [[ "$1" == "" || "$2" == "" ]]; then
echo "Usage: o-ssh-keygen [email] [file name]"
return -1
fi
ssh-keygen -t ed25519 -C $1 -f ~/.ssh/$2
echo "Copy this line to whereever you need access:"
cat ~/.ssh/$2.pub
}
# }}}
if [ -f "${DOTFILES_HOME}/scripts/homelab.zsh" ]; then
source "${DOTFILES_HOME}/scripts/homelab.zsh"
fi
# vim:ft=zsh