Mi occupo di molte macchine diverse, quindi uno dei miei preferiti è l'alias per ogni macchina che devo frequentemente SSH per:
alias claudius="ssh dinomite@claudius"
È anche utile impostare tasti buoni .ssh/confige ssh per semplificare ulteriormente il passaggio da una macchina all'altra.
Un altro dei miei alias preferiti è quello di spostare le directory:
alias ..="cd .."
alias ...="cd ../.."
alias ....="cd ../../.."
alias .....="cd ../../../.."
E alcuni per le variazioni comunemente usate di ls(e errori di battitura):
alias ll="ls -l"
alias lo="ls -o"
alias lh="ls -lh"
alias la="ls -la"
alias sl="ls"
alias l="ls"
alias s="ls"
La cronologia può essere molto utile, ma per impostazione predefinita sulla maggior parte delle distribuzioni la cronologia viene spazzata via da ogni shell in uscita e non ha molto a che fare con l'inizio. Mi piace avere 10.000 linee di storia:
export HISTFILESIZE=20000
export HISTSIZE=10000
shopt -s histappend
# Combine multiline commands into one in history
shopt -s cmdhist
# Ignore duplicates, ls without options and builtin commands
HISTCONTROL=ignoredups
export HISTIGNORE="&:ls:[bf]g:exit"
In questo modo, se so di aver fatto qualcosa prima ma non riesco a ricordare i dettagli, un rapido mi history | grep fooaiuterà a correre la mia memoria.
Mi sono spesso ritrovato awka eseguire il piping dell'output per ottenere una determinata colonna dell'output, come nel df -h | awk '{print $2}'trovare la dimensione di ciascuno dei miei dischi. Per facilitare questo, ho creato una funzione fawknel mio .bashrc:
function fawk {
first="awk '{print "
last="}'"
cmd="${first}\$${1}${last}"
eval $cmd
}
Ora posso eseguire il df -h|fawk 2che consente di risparmiare un bel po 'di battitura.
Se è necessario specificare un delimitatore ( ad esempio , awk -F:per /etc/passwd), questa funzione ovviamente non può gestirlo. La versione leggermente revisionata in questa sintesi può gestire awkargomenti arbitrari prima del numero del campo (ma richiede comunque input da stdin).