123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251 |
- #
- # Editor
- #
- export EDITOR="vim"
- #
- # Pager
- #
- if (( $+commands[vim] )) && [[ -f ~/.vim/plugged/vimpager/vimpager ]]; then
- export PAGER=~/.vim/plugged/vimpager/vimpager
- alias less="$PAGER"
- alias more="$PAGER"
- elif (( $+commands[less] )); then
- export PAGER=less
- alias more="$PAGER"
- elif (( $+commands[more] )); then
- export PAGER=more
- fi
- export GIT_PAGER="$PAGER"
- #
- # Common aliases / functions
- #
- export QUOTING_STYLE='literal'
- alias ls='ls --group-directories-first --color=auto'
- alias l='ls --group-directories-first -lsh --color=auto'
- alias rm='rm -i'
- alias mv='mv -i'
- alias cp='cp -i'
- alias vlock='clear;vlock'
- alias q='clear;exit'
- alias grep="grep --color=auto"
- alias egrep="egrep --color=auto"
- alias mgrep="grep -rnisH --color=auto"
- alias rsu="sudo -E zsh"
- alias reloadsh="exec zsh"
- alias md="mkdir -p"
- mcd() { mkdir -p "$@" && cd "$@" }
- ffi() {
- find -iname "$@"
- }
- #
- # Log viewers aliases
- #
- if (( $+commands[ccze] )); then
- alias alog="tail -n 300 -F /var/log/auth.log | ccze"
- alias mlog="tail -n 300 -F /var/log/mail.log | ccze"
- alias slog="tail -n 300 -F /var/log/syslog | ccze"
- alias xlog="tail -n 300 -F /var/log/Xorg.0.log | ccze"
- else
- alias alog="tail -n 300 -F /var/log/auth.log"
- alias mlog="tail -n 300 -F /var/log/mail.log"
- alias slog="tail -n 300 -F /var/log/syslog"
- alias xlog="tail -n 300 -F /var/log/Xorg.0.log"
- fi
- # using colortail if available (freebsd)
- if (( $+commands[colortail] )); then
- alias slog="colortail -n 60 -k /usr/local/share/examples/colortail/conf.messages -f /var/log/syslog"
- fi
- #
- # System tools aliases
- #
- alias df='df -h'
- if (( $+commands[pydf] )); then
- alias df="pydf -h"
- fi
- function mount() {
- if [ $# = 0 ]; then
- command mount -lv | column -t
- else
- command mount $@
- fi
- }
- #
- # Sysadmin stuff
- #
- if (( $+commands[dig] )); then
- alias mx="dig +short MX"
- alias ns="dig +short NS"
- elif (( $+commands[host] )); then
- alias mx="host -t MX"
- alias ns="host -t NS"
- fi
- alias scp_nosec="scp -o 'StrictHostKeyChecking=no' -o 'UserKnownHostsFile=/dev/null'"
- alias ssh_nosec="ssh -o 'StrictHostKeyChecking=no' -o 'UserKnownHostsFile=/dev/null'"
- # Network
- port-status() {
- if [ $# != 2 ]; then
- print "Usage: $0 [IP|HOSTNAME] [PORT|SERVICE]"
- else
- local host="${1}"
- local service="${2}"
- if nc -w 5 -z "${host}" "${service}" ; then
- print "Port or sevice '${service}' is opened on '${host}'"
- else
- print "Port or sevice '${service}' is closed on '${host}'"
- fi
- fi
- }
- # OpenSSL
- for i in sha512 sha256 sha1 md5 ; do
- ssl-cert-$i() {
- openssl x509 -noout -fingerprint -$i -in $1
- }
- done
- ssl-crt-fp() {
- for i in sha512 sha256 sha1 md5; do
- ssl-cert-$i $1
- done
- }
- ssl-crt-info() {
- openssl x509 -noout -text -in $1
- }
- ssl-crt-info() {
- openssl x509 -noout -text -in $1
- }
- ssl-csr-info() {
- openssl req -noout -text -in $1
- }
- ssl-csr-subject() {
- openssl req -noout -text -in $1 | \
- sed -r -n 's/^\s+Subject: (.*)/\1/p' | \
- sed -r 's#(^|, )#/#g' |\
- sed -r 's/\s+=\s+/=/g'
- }
- ssl-csr-gen() {
- local domain="${1:-mydomain}"
- local keysize="${2:-4096}"
- local keytype="${3:-rsa}"
- local digest="${4:-sha256}"
- local subject="/C=FR/ST=IDF/L=Paris/O=${domain}/CN=${domain}/emailAddress=admin@${domain}"
- if [ -n "${CSR_SUBJECT}" ]; then
- subject="${CSR_SUBJECT}"
- fi
- printf "Generating csr/key for ${domain} with ${keytype}/${keysize} key and ${digest} digest...\n"
- openssl req \
- -subj "${subject}" \
- -nodes \
- -${digest} \
- -newkey ${keytype}:${keysize} \
- -keyout ${domain}.key \
- -out ${domain}.csr
- ssl-csr-info ${domain}.csr
- }
- ssl-csr-gen-from() {
- local oldcsr="${1}"
- local domain="${2}"
- local subject="$(ssl-csr-subject "${oldcsr}")"
- CSR_SUBJECT="$(ssl-csr-subject "${oldcsr}")" ssl-csr-gen "${domain}"
- }
- #
- # Devel tools aliases
- #
- if (( $+commands[colormake] )); then
- alias make="colormake"
- fi
- #
- # Git Flow stuff
- #
- git-flow-release() {
- local version_next=""
- if [[ "${1}" = "" ]]; then
- local version_current="$(git lasttag 2>/dev/null)"
- if [[ "${version_current}" != "" ]]; then
- local version_minor="${version_current##*.}"
- local version_major="${version_current%.*}"
- local version_next="${version_major}.$((version_minor+1))"
- fi
- else
- version_next="${1}"
- fi
- if [[ "${version_next}" != "" ]]; then
- export GIT_MERGE_AUTOEDIT=no
- git flow release start "${version_next}" && \
- GIT_MERGE_AUTOEDIT=no git flow release finish -m "${version_next}" "${version_next}"
- else
- printf "%s: tag is missing\n" "${0}" >&2
- fi
- }
- alias gfr="git-flow-release"
- #
- # Mssh stuff
- #
- if [ -f ~/.ssh/config ]; then
- hosts=($(grep '^Host [^*]' ~/.ssh/config | sed 's/Host //'))
- compctl -k hosts mssh
- fi
- #
- # Hosting stuff
- #
- http_auth_ssha() {
- read "username?username: "
- read "password?password: "
- salt="$(openssl rand -base64 3)"
- sha1="$(printf "%s%s" "${password}" "${salt}" | openssl dgst -binary -sha1 | sed 's#$#'"${salt}"'#' | base64)"
- printf "%s:{SSHA}%s\n" "${username}" "${sha1}"
- }
- #
- # DNS stuff
- #
- myip () {
- # Get public IP address from opendns
- ipv4=
- ipv6=
- ip4_resolver="resolver1.opendns.com"
- ip6_resolver="2620:0:ccc::2"
- if (( $+commands[dig] )); then
- ipv4=$(dig +short myip.opendns.com "@${ip4_resolver}")
- ipv6=$(dig AAAA +short myip.opendns.com "@${ip6_resolver}")
- elif (( $+commands[host] )); then
- ipv4=$(LANG=C host -t A myip.opendns.com "${ip4_resolver}" | sed -r -n 's/^.* has address (.*)$/\1/p')
- ipv6=$(LANG=C host -t AAAA myip.opendns.com "${ip6_resolver}" | sed -r -n 's/^.* has IPv6 address (.*)$/\1/p')
- fi
- if [[ -n "${ipv4}" ]]; then
- printf "IPv4 is %s\n" "${ipv4}"
- else
- printf "IPv4 not found\n" >&2
- fi
- if [[ -n "${ipv6}" ]]; then
- printf "IPv6 is %s\n" "${ipv6}"
- else
- printf "IPv6 not found\n" >&2
- fi
- }
|