===== Встановити пакети (приклад для робочої станції) ===== 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