diff --git a/install-debian.sh b/install-debian.sh old mode 100644 new mode 100755 index 23a3c45..fa07601 --- a/install-debian.sh +++ b/install-debian.sh @@ -1,9 +1,10 @@ #!/usr/bin/env bash -# hotfix for strange strato configuration -# Copyright (C) 2017 Andreas Fendt - All Rights Reserved +# Install Script for Debian and Ubuntu installations +# This script can be called multiple times +# Copyright (C) 2018 Andreas Fendt - All Rights Reserved # Permission to copy and modify is granted under the MIT license -# Last revised 18.11.2017 +# Last revised 28.04.2018 # check if root if [[ $EUID -ne 0 ]]; then @@ -13,7 +14,7 @@ fi # check if debian if [ ! "$(grep -Ei 'debian|buntu' /etc/*release)" ]; then - echo "This script must be run on a debian system" 1>&2 + echo "This script must be run on a debian or ubuntu system" 1>&2 exit 1 fi @@ -22,42 +23,38 @@ apt-get update -y apt-get dist-upgrade -y apt-get autoclean -y -# get users directory +# get users directory and usernames +root_user=$(grep ':0:' /etc/passwd | awk -F':' '{print $1}') root_user_path=$(grep ':0:' /etc/passwd | awk -F':' '{print $6}') default_user_path=$(egrep '\:100[0-9]\:' /etc/passwd | tail -n 1 | awk -F':' '{print $6}') default_user=$(egrep '\:100[0-9]\:' /etc/passwd | tail -n 1 | awk -F':' '{print $1}') -# default shell -apt-get install -y sudo mc tree pv vim bash-completion +# install default packages +apt-get install -y sudo mc tree pv vim bash-completion wget git htop iotop iftop nmon apt-file aptitude hexedit tmux \ + fonts-powerline # zsh shell -apt-get install -y zsh && ( - sed -i -- 's/\/bin\/bash/\/bin\/zsh/' /etc/passwd - wget -O /etc/zsh/newuser.zshrc.recommended \ - http://git.grml.org/f/grml-etc-core/etc/zsh/zshrc - cp -f /etc/zsh/newuser.zshrc.recommended ${default_user_path}/.zshrc - cp -f /etc/zsh/newuser.zshrc.recommended ${root_user_path}/.zshrc +apt-get install -y zsh && ( [ ! -d $root_user_path/.oh-my-zsh ] || [ ! -d $default_user_path/.oh-my-zsh ] ) && ( + # change shell + chsh -s /bin/zsh $root_user + chsh -s /bin/zsh $default_user + + # install oh-my-zsh + sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)" + + # configure oh-my-zsh + grep 'ZSH_THEME="agnoster"' $root_user_path/.zshrc || sed -i -- 's/ZSH_THEME=".*"/ZSH_THEME="agnoster"/g' $root_user_path/.zshrc + grep "command-not-found" $root_user_path/.zshrc || sed -i -- '/^plugins=(/a \\ command-not-found\n common-aliases\n sudo\n systemd\n tmux\n ubuntu' $root_user_path/.zshrc + + # install oh-my-zsh to default user + cp $root_user_path/.zshrc $default_user_path/.zshrc + cp -a $root_user_path/.oh-my-zsh $default_user_path/.oh-my-zsh + chown ${default_user}:${default_user} ${default_user_path}/.oh-my-zsh ${default_user_path}/.zshrc + + # configure tmux + grep "ZSH_TMUX_AUTOSTART" $default_user_path/.zshrc || sed -i -- '1s/^/ZSH_TMUX_AUTOSTART="true"\nZSH_TMUX_AUTOQUIT="false"\n\n/' $default_user_path/.zshrc ) -# add tmux auto start -apt-get install -y tmux && ( - echo 'if [ "$TMUX" = "" ]; then tmux; fi' | cat - ${default_user_path}/.zshrc > \ - /tmp/.zshrc && mv /tmp/.zshrc ${default_user_path}/.zshrc -) - -# diagnostics -apt-get install -y htop iotop iftop nmon powertop stress lm-sensors \ - gddrescue smartmontools kpartx nmap - -# programming -apt-get install -y git build-essential - -# networking -apt-get install -y axel wget ethtool fping - -# misc. tools -apt-get install -y apt-file aptitude hexedit manpages-de - # configure vim touch ${root_user_path}/.vimrc ${default_user_path}/.vimrc for config in "filetype plugin indent on" "set tabstop=4" "set shiftwidth=4" \ @@ -66,16 +63,14 @@ for config in "filetype plugin indent on" "set tabstop=4" "set shiftwidth=4" \ grep "$config" ${root_user_path}/.vimrc || echo "$config" >> ${root_user_path}/.vimrc grep "$config" ${default_user_path}/.vimrc || echo "$config" >> ${default_user_path}/.vimrc done - -# configure user files -chown ${default_user}:${default_user} ${default_user_path}/.vimrc ${default_user_path}/.zshrc +chown ${default_user}:${default_user} ${default_user_path}/.vimrc # configure tmux -cat > /etc/tmux.conf <> /etc/tmux.conf +done # configure system apt-get install -y console-data console-setup locales \ diff --git a/unattended-upgrades.sh b/unattended-upgrades.sh old mode 100644 new mode 100755