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/config
e 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 foo
aiuterà a correre la mia memoria.
Mi sono spesso ritrovato awk
a 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 fawk
nel mio .bashrc:
function fawk {
first="awk '{print "
last="}'"
cmd="${first}\$${1}${last}"
eval $cmd
}
Ora posso eseguire il df -h|fawk 2
che 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 awk
argomenti arbitrari prima del numero del campo (ma richiede comunque input da stdin).