`
Cosa fa#
Crea un nome alternativo (alias) per un comando o una sequenza di comandi. La shell sostituisce l'alias con il comando originale prima dell'esecuzione. Gli alias non compaiono nell'output di printenv o set — si vedono solo con alias senza argomenti.
Sintassi#
alias [nome='comando']
Comandi essenziali#
| Comando | Flag | Significato flag | Cosa fa |
|---|---|---|---|
alias | — | — | Mostra tutti gli alias attivi nella sessione |
alias nome='comando' | — | — | Crea un alias temporaneo per la sessione |
unalias nome | — | — | Rimuove un alias dalla sessione |
unalias -a | -a | all | Rimuove tutti gli alias della sessione |
\comando | — | — | Esegue il comando originale ignorando l'alias |
Alias temporanei vs permanenti#
# Temporaneo — dura solo la sessione corrente
alias ll='ls -la'
alias gs='git status'
alias grep='grep --color=auto'
# Permanente — aggiungi a ~/.bashrc (bash) o ~/.zshrc (zsh)
echo "alias ll='ls -la'" >> ~/.bashrc
source ~/.bashrc # ricarica senza riaprire il terminale
# Verifica che l'alias sia attivo
alias ll
# alias ll='ls -la'Esempi utili#
# Navigazione
alias ..='cd ..'
alias ...='cd ../..'
alias ll='ls -la'
alias la='ls -A'
# Git (quello che usi su zsh)
alias gs='git status'
alias ga='git add'
alias gc='git commit'
alias gp='git push'
alias gl='git log --oneline --graph'
# Sicurezza — conferma prima di operazioni distruttive
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# man con larghezza fissa (dall'esempio del capitolo)
alias man='MANWIDTH=75 man'
# Audit rapido alias — utile in incident response
alias ports='ss -tlnp'
alias myip='curl ifconfig.me'Combinazioni utili#
# Vedere la definizione di un alias specifico
alias ll
# alias ll='ls -la'
# Eseguire il comando originale senza alias (es. rm senza -i)
\rm file.txt
# il backslash dice alla shell di ignorare l'alias
# Trovare tutti gli alias che contengono git
alias | grep gitScenario Reale#
Un analista nota che su un sistema compromesso il comando ls si comporta in modo insolito — nasconde certi file. Con alias ls scopre che e' stato ridefinito come alias ls='ls --ignore=sospetto'. Questo e' un vettore di evasione: un attaccante che ottiene accesso ai dotfile puo' ridefinire comandi comuni per nascondere la propria presenza. Il \ls (con backslash) bypassa l'alias e mostra l'output reale.
Dove l'ho usato#
- shell-interattiva — gli alias permanenti vivono nei dotfile
Note personali#
Un attaccante puo' aver ridefinito ls, ps, netstat per nascondere processi o file.
Usa sempre \comando o il path completo /bin/ls per bypassare gli alias.
alias | grep git e' il modo piu' rapido per vedere tutti gli alias git che hai accumulato in zsh nel tempo.Collegato a#
- system — categoria
- shell-interattiva — i dotfile ~/.bashrc e ~/.zshrc contengono gli alias permanenti
- shell-environment — contesto dell'ambiente shell
- export — altro meccanismo di personalizzazione dell'ambiente


