aboutsummaryrefslogtreecommitdiff
path: root/shellrc.d/common
diff options
context:
space:
mode:
Diffstat (limited to 'shellrc.d/common')
-rw-r--r--shellrc.d/common84
1 files changed, 84 insertions, 0 deletions
diff --git a/shellrc.d/common b/shellrc.d/common
new file mode 100644
index 0000000..ce744ea
--- /dev/null
+++ b/shellrc.d/common
@@ -0,0 +1,84 @@
+# vim: ft=sh:
+
+alias ls='ls --color=auto'
+eval $(dircolors -b)
+alias ll='ls -lh'
+alias df='df -h'
+alias du='du -h'
+alias grep='grep --color=auto'
+alias git='LANG=en_GB git'
+alias gdb='gdb -q'
+alias cgdb='cgdb -q'
+alias octave='octave-cli -q'
+alias ssh='TERM="xterm-256color" ssh'
+alias gst='git status'
+alias v='vim'
+
+export LESS=-R
+export LESS_TERMCAP_mb=$'\E[1;31m'
+export LESS_TERMCAP_md=$'\E[1;36m'
+export LESS_TERMCAP_me=$'\E[0m'
+export LESS_TERMCAP_se=$'\E[0m'
+export LESS_TERMCAP_so=$'\E[01;44;33m'
+export LESS_TERMCAP_ue=$'\E[0m'
+export LESS_TERMCAP_us=$'\E[1;32m'
+[ -x /usr/bin/src-hilite-lesspipe.sh ] && export LESSOPEN="| /usr/bin/src-hilite-lesspipe.sh %s"
+
+# Systemd aliases if we are running systemd
+if pidof systemd >/dev/null 2>/dev/null; then
+ alias sctl='sudo systemctl'
+ alias usctl='systemctl --user'
+ alias jrn='journalctl'
+ alias ujrn='jrn --user'
+fi
+
+
+# Run process in background
+tobg() {
+ "$@" >/dev/null 2>&1 &
+}
+
+# Generate random password (optionally takes length of password as first argument)
+genpasswd() {
+ local l=$1
+ [ -n "$l" ] || l=16
+ tr -dc A-Za-z0-9_ < /dev/urandom | head -c "$l" | xargs
+}
+
+# Automatic branch merger (merge branch, push it to server and remove branch)
+# Expects name of the branch as argument
+gitbmerge() {
+ (
+ set -e
+ local WT="$(git worktree list | sed -nE "/\[$1\]/{s/([^ ]+) .*/\1/p}")"
+ if [ -n "$WT" ]; then
+ rm -r "$WT"
+ git worktree prune
+ fi
+ git merge --ff-only "$1" && git push && git branch -d "$1" && git push origin :"$1"
+ )
+}
+
+# Create new branch from master
+gitbnew() {
+ git branch "$1" master
+ local NW="$(git rev-parse --show-toplevel)-$1"
+ git worktree add "$NW" $1
+ cd "$NW"
+ git submodule update --init --recursive
+}
+
+# Run given command every second
+dorepeat() {
+ while true; do
+ "$@"
+ sleep 1
+ echo
+ done
+}
+
+# Clear all ssh control masters
+ssh-clear() {
+ rm -rf ~/.cache/ssh
+ mkdir -p ~/.cache/ssh
+}