Користувальницькькі налаштування

Налаштування сайту


software:os:linux:shell:setup

Встановити пакети (приклад для робочої станції)

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
software/os/linux/shell/setup.txt · Востаннє змінено: 2020/02/03 17:02 повз charon