Linux Basis Konfiguration

Mit der Installation des Images entsteht ein funktionaler Rechner. Was ihm jetzt noch fehlt ist das gewisse Etwas. Das was das leben mit Linux einfacher macht.

Das ist in meinen Augen eine brauchbare Konfiguration der Aliase und des VI. JA, ich bin einer derjenigen, die auf Linux mit dem VI arbeiten.

VIMRC

Hier die Auszüge meiner „~/.vimrc“ Datei.

set nocompatible
filetype indent plugin on
syntax on
colo desert
set hidden
set wildmenu
set showcmd
set hlsearch
set ignorecase
set smartcase
set backspace=indent,eol,start
set autoindent
set nostartofline
set ruler
set laststatus=2
set confirm
set visualbell
set t_vb=
set cmdheight=2
set number
set notimeout ttimeout ttimeoutlen=200
set pastetoggle=<F11>
set shiftwidth=2
set softtabstop=2
set expandtab
map Y y$
nnoremap <C-L> :nohl<CR><C-L>

Aliase

Ich bin nicht der größte Fan von „cd…“ Aliasen, aber so ein paar dann doch schon.

~/.bash_aliases

alias ag='alias | grep -i $1'
alias hg='history | grep -i $1'
alias va='vi ~/.bash_aliases && . ~/.bashrc'
alias ..='cd ..'
alias ...='cd ../..'

alias l='ls -ltra'
alias ll='ls -l'
alias la='ls -la'
alias ltra='ls -ltra'
alias lr='ls -lr'

alias cdplugins='cd /usr/lib/check_mk_agent/plugins'
alias cdconf='cd /etc/check_mk'
alias cdha='cd /usr/share/homeassistant'
alias tf='tail -f $1'
alias thl='tail -f /usr/share/homeassistant/home-assistant.log'
  • „ag“ – „alias | grep $1“ :: findet den Alais zu einem Suchbegriff
  • „hg“ – findet den Suchbegriff in der history
  • „va“ – öffnet die „~/.bash_aliases“ Datei im VI und lädt diese nach Beenden erneut. Damit stehen neue Aliase gleich zur Verfügung
  • „..“ – ein Verzeichnis zurück
  • „…“ – 2 Verzeichnisse zurück

Funktionen

Um einfach Ordner und Filerechte zu ändern, habe ich eine Funktion in eingebaut. Sicher wäre das auch als Shellscript im Suchpfad gegangen, aber es war eine Übung.

function chgdirgrants {
  local dir="$1"
  local usr="$2"
  local grp="$3"
  local dir_grants=$4
  local file_grants=$5

  if [ -z "$dir" ] ; then dir="." ; fi
  if [ -z "$usr" ] ; then usr="pi" ; fi
  if [ -z "$grp" ] ; then grp="docker" ; fi
  if [ -z "$dir_grants" ] ; then dir_grants=775 ; fi
  if [ -z "$file_grants" ] ; then file_grants=664 ; fi

  if [ -z $1 ] ; then
    echo "chdirgrants is a function to change grants on a subtree"
    echo ""
    echo "chdirgrants DIRECTORY USER GROUP DIR_GRANTS FILE_GRANTS"
    echo ""
    echo "All parameters will set to default values if they are missing! keep aware of that!"
    echo ""
    echo "Default values are:"
    echo ""
    echo "DIRECTORY: \"$dir\""
    echo "USER: \"$usr\""
    echo "GROUP: \"$grp\""
    echo "DIR_GRANTS: \"$dir_grants\""
    echo "FILE_GRANTS: \"$file_grants\""
    echo ""
    return 1
  fi

  echo "Directory to edit: \"${dir}\""
  echo "User \"$usr\" get Owner"
  echo "Group \"$grp\" get Group"
  echo "Directory  Grants: \"$dir_grants\""
  echo "File Grants: \"$file_grants\""
  echo ""
  local STEP_CHOWN="sudo chown -R $usr $dir"
  local STEP_CHGRP="sudo chgrp -R $grp $dir"
  local STEP_CHMOD="sudo chmod $dir_grants $dir"
  local STEP_SUBDIRS="sudo find $dir -type d -exec sudo chmod $dir_grants {} \;"
  local STEP_SUBFILES="sudo find $dir -type f -exec sudo chmod $file_grants {} \;"

  echo "$STEP_CHOWN"
  echo "$STEP_CHGRP"
  echo "$STEP_CHMOD"
  echo "$STEP_SUBDIRS"
  echo "$STEP_SUBFILES"
  echo ""
  echo "Press 1 to go on or  Return break"

  read choice

  case $choice in
    1)
      echo go on
      ;;
    *)
      echo "Will cancel :-("
      return 1
      ;;
  esac

  eval $STEP_CHOWN
  eval $STEP_CHGRP
  eval $STEP_CHMOD
  eval $STEP_SUBDIRS
  eval $STEP_SUBFILES
}

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.