Configurazione dell’ambiente bash nella propria home o in /root —
bash è la shell predefinita di Linux, il file nella home che configura questo ambiente è .bashrc che viene eseguito ad ogni login, quando viene creato un nuovo account viene copiato dal file di sistema /etc/skel/.bashrc .
Cosa contiene e a cosa serve
Personalizzazione del terminale: Ti permette di cambiare l’aspetto del prompt dei comandi (colori, informazioni visualizzate come nome utente e cartella attuale).
Alias: Puoi creare scorciatoie per i comandi lunghi (ad esempio alias ll=’ls -la’).
Variabili d’ambiente e PATH: Puoi aggiungere percorsi personalizzati o impostare variabili utili per i tuoi programmi.
Funzioni personalizzate: Puoi scrivere piccoli comandi o script Bash riutilizzabili ogni volta che lavori da terminale.
Personalmente faccio largo uso di alias e quindi il .bashrc è decisamente lungo lo riporto di seguito a titolo di esempio
.bashrc
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples
# If not running interactively, don’t do anything:
[ -z “$PS1” ] && return
# don’t put duplicate lines in the history. See bash(1) for more options
export HISTCONTROL=ignoredups
export HISTTIMEFORMAT=’%Y-%m-%d %H:%M:%S ‘
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
# enable color support of ls and also add handy aliases
if [ “$TERM” != “dumb” ]; then
eval “`dircolors -b`”
alias ls=’ls –color=auto’
alias dir=’ls –color=auto –format=vertical’
alias vdir=’ls –color=auto –format=long’
fi
# some more ls aliases
alias ll=’ls -l’
alias la=’ls -A’
alias l=’ls -CF’
# set variable identifying the chroot you work in (used in the prompt below)
if [ -z “$debian_chroot” -a -r /etc/debian_chroot ]; then
debian_chroot=$(cat /etc/debian_chroot)
fi
# set a fancy prompt (non-color, unless we know we “want” color)
case “$TERM” in
xterm-color)
PS1=’${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ‘
;;
*)
PS1=’${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ‘
;;
esac
# Comment in the above and uncomment this below for a color prompt
PS1=’${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ‘
# If this is an xterm set the title to user@host:dir
case “$TERM” in
xterm*|rxvt*)
PROMPT_COMMAND=’echo -ne “\033]0;${USER}@${HOSTNAME}: ${PWD}\007″‘
;;
*)
;;
esac
# enable programmable completion features (you don’t need to enable
# this, if it’s already enabled in /etc/bash.bashrc and /etc/profiles
# sources /etc/bash.bashrc).
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
alias sangiorgio=’ssh -p 1722 guardian@sangiorgio’
alias aliseo=’ssh -p 1722 guardian@aliseo’
alias perseo=’ssh -p 1722 guardian@perseo’
alias mimbelli=’ssh -p 1722 guardian@mimbelli’
alias firewall=’ssh -p 1722 guardian@firewall’
alias noi=’ssh root@172.27.120.10′
alias corsaro=’ssh root@192.168.3.1′
export COLUMNS=300
export TMOUT=3600
alias ardito=”ssh root@192.168.2.252″
alias vespucci=”ssh root@192.168.2.12″
alias palinuro=”ssh root@192.168.2.13″
alias etna=”vncviewer sanmarco:17″
alias stromboli=”vncviewer sangiusto:20″
alias elettra=”ssh root@elettra”
alias vega=”vncviewer sanmarco:16″
alias vesuvio=”vncviewer sanmarco:21″
alias caprera=”vncviewer sangiusto:23″
alias espero=’ssh -p 1722 guardian@espero’
alias scirocco=”ssh -p 1722 guardian@scirocco”
alias mariella=”vncviewer 172.19.170.32″
alias stefania=”vncviewer 172.19.170.31″
alias visione=”vncviewer 192.168.2.177″
alias grecale=”ssh guenzi@192.168.200.251″
alias energy=”ssh root@192.168.3.60″
alias borsini=”ssh admin@192.168.2.18″
alias gaeta=”ssh admin@192.168.2.61″
alias numana=”ssh admin@192.168.2.62″
alias lerici=”ssh -c aes128-cbc admin@192.168.2.19″
alias grifone=”ssh -c aes128-cbc admin@192.168.2.41″
#alias sfinge=”ssh -c aes128-cbc admin@192.168.2.48″
alias sfinge=”ssh admin@192.168.2.48″
alias marino=”ssh root@marino”
alias pedretti=”ssh root@pedretti”
alias lupo=”ssh root@lupo”
alias urania=”ssh root@urania”
alias sangiusto=”ssh root@sangiusto”
alias sanmarco=”ssh root@sanmarco”
alias fenice=’ssh -p 1722 sysadmin@192.168.200.231′
cowsay `fortune`
Una nota secondo me interessante, da diversi anni è consuetudine fare escalation con il su – che eredita l’ambiente da cui si parte con path e quant’altro, detto così è di una semplicità disarmante, in realtà 8 volte su 10 il – viene scordato, quindi per la mia personale esperienza il .bashrc di root va modificato in questo modo:
# ~/.bashrc: executed by bash(1) for non-login shells.
# Note: PS1 and umask are already set in /etc/profile. You should not
# need this unless you want different defaults for root.
# PS1=’${devuan_chroot:+($devuan_chroot)}\h:\w\$ ‘
# umask 022
# You may uncomment the following lines if you want `ls’ to be colorized:
export LS_OPTIONS=’–color=auto’
eval “$(dircolors)”
alias ls=’ls $LS_OPTIONS’
alias ll=’ls $LS_OPTIONS -l’
alias l=’ls $LS_OPTIONS -lA’
#
# Some more alias to avoid making mistakes:
# alias rm=’rm -i’
# alias cp=’cp -i’
# alias mv=’mv -i’
#export PATH=”$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games/:usr/local/games”
alias yersinia=’yersinia -G’
alias dhcp=’nmap –script broadcast-dhcp-discover -e eth0′
export TMOUT=”3600″
export PATH=”/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin”
Chiaramente gli alias son più che personalizzati e in un contesto generale non hanno senso.
Categorised as: Blog
Comments are disabled on this post