===== Встановити пакети (приклад для робочої станції) =====
ncurses-term tree wget curl bash-completion git htop whois bzip2 mlocate pv unrar unzip anacron mc
===== Для Убунту та Дебіан також встановити =====
apt-file
===== Встановити vim, якщо немає, наприклад =====
command -v vim > /dev/null || sudo apt install vim-nox
===== Створити додаткові каталоги =====
mkdir -v ~/{.ssh,temp,scripts,backup,.vim}
chmod 700 ~/{.ssh,temp,scripts,backup,.vim}
===== Створити ~/.bash_profile =====
######################
# Configure PATH ENV #
######################
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
# prepend additional user directories
path_array=("/usr/local/scripts" "$HOME/bin" "$HOME/.local/bin" "$HOME/scripts")
for item in "${path_array[*]}"
do
if [ -d "$item" ] ; then
PATH="$item:$PATH"
fi
done
unset path_array
export PATH
##########################
# Configure shell prompt #
##########################
# Colors
# 0 - Black
# 1 - Red
# 2 - Green
# 3 - Yellow
# 4 - Blue
# 5 - Magenta
# 6 - Cyan
# 7 - White
# you can make it lighter with BOLD attribute
#
CNORM="\[$(tput sgr0)\]"
CLIGHTGREEN="\[$(tput bold)$(tput setaf 2)\]"
CGREEN="$CNORM\[$(tput setaf 2)\]"
CLIGHTCYAN="\[$(tput bold)$(tput setaf 6)\]"
CCYAN="$CNORM\[$(tput setaf 6)\]"
CGRAY="$CNORM\[$(tput setaf 7)\]"
CWHITE="\[$(tput bold)$(tput setaf 7)\]"
CLIGHTRED="\[$(tput bold)$(tput setaf 1)\]"
# assign colors to data
DAYC=$CLIGHTGREEN
DATEC=$CGREEN
PATHC=$CLIGHTGREEN
HOSTC=$CLIGHTCYAN
EVENTC=$CCYAN
TIMEC=$CGREEN
GTC=$CWHITE
LASTEXITC=$CLIGHTGREEN
SUCOLOR=$CLIGHTRED
# Prepare prompt
PRUSER="-"
if [ "$EUID" = "0" ]; then
PRUSER="${SUCOLOR}#${CNORM}"
fi
PS1="$DAYC\D{%a}$DATEC/\D{%b,%d}:pts/\l:$PATHC\w\n\
${HOSTC}\h$CNORM:$PRUSER$EVENTC\!$TIMEC/\A$CNORM|$LASTEXITC\$?$GTC>$CNORM"
export PS1
# PS2 – Continuation interactive prompt
export PS2="continue-> "
# The PS4 shell variable defines the prompt that gets displayed, when you execute a shell script in debug mode
export PS4='$0.$LINENO+ '
########
# MISC #
########
export HISTSIZE=1000
export HISTTIMEFORMAT="%t%d.%m.%y %H:%M:%S%t"
===== Створити ~/.bash_aliases =====
unalias ls
alias ls="/bin/ls --color=never -F --group-directories-first"
alias dir="ls -a"
alias l="ls -la"
alias cw="clear; w"
alias x="exit"
alias cls="clear"
alias bc="bc -ql"
alias tt=traceroute
# Open last modified file in vim (not checked!)
alias Vim="vim `ls -t | head -1`"
# Find top 5 big files
alias findbig="find . -type f -exec ls -s {} \; | sort -n -r | head -5"
# To clear all the history and screen
alias hcl='history -c; clear'
# Make basic commands verbose
alias cp="cp -v"
alias rm="rm -v"
alias mv="mv -v"
# To navigate to the different directories
alias ..='cd ..'
alias ...='cd ../..'
# Create and change to a new directory
mcd ()
{
if [ "$1" == "" ]; then
echo "mcd directory-name";
else
if [ ! -d $1 ]; then
mkdir $1;
cd $1;
else
echo "$1 directory exists";
fi;
fi
}
# display currently mounted file systems nicely
showmounted() { (echo "DEVICE PATH TYPE FLAGS" && mount | awk '$2=$4="";1') | column -t; }
===== Створити ~/.ssh/config =====
Host test proverka
HostName test.example.org
User ninja
IdentityFile ~/.ssh/id_ed25519
Host *
User charon
# Keep-alive
ServerAliveInterval 45
ServerAliveCountMax 3
UseRoaming no
KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group-exchange-sha256
# Ensure KnownHosts are unreadable if leaked - it is otherwise easier to know which hosts your keys have access to.
HashKnownHosts yes
# Host keys the client accepts - order here is honored by OpenSSH
HostKeyAlgorithms ssh-ed25519-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ssh-ed25519,ssh-rsa,ecdsa-sha2-nistp521-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp521,ecdsa-sha2-nistp384,ecdsa-sha2-nistp256
MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512,hmac-sha2-256,umac-128@openssh.com
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr