Mam do czynienia z wieloma różnymi komputerami, więc jednym z moich ulubionych są aliasy dla każdej maszyny, do której muszę często SSH:
alias claudius="ssh dinomite@claudius"
Przydatne jest również skonfigurowanie dobrego .ssh/config
i ssh, aby jeszcze bardziej ułatwić przeskakiwanie między maszynami.
Kolejnym z moich ulubionych aliasów jest przenoszenie katalogów:
alias ..="cd .."
alias ...="cd ../.."
alias ....="cd ../../.."
alias .....="cd ../../../.."
I niektóre z często używanych odmian ls
(i literówek):
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"
Historia może być bardzo przydatna, ale domyślnie w większości dystrybucji twoja historia jest zdmuchiwana przez każdą wychodzącą powłokę i na początku nie zawiera wiele. Lubię mieć 10 000 linii historii:
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"
W ten sposób, jeśli wiem, że już coś zrobiłem, ale nie pamiętam szczegółów, szybkie history | grep foo
pomogłyby mi wspomnieć.
Często przepuszczałem dane wyjściowe awk
w celu uzyskania określonej kolumny danych wyjściowych, np. W df -h | awk '{print $2}'
celu znalezienia rozmiaru każdego z moich dysków. Aby to ułatwić, stworzyłem funkcję fawk
w moim .bashrc:
function fawk {
first="awk '{print "
last="}'"
cmd="${first}\$${1}${last}"
eval $cmd
}
Mogę teraz uruchomić, df -h|fawk 2
co oszczędza sporo pisania.
Jeśli trzeba określić separator ( np , awk -F:
za /etc/passwd
), funkcja ta oczywiście nie może sobie z tym poradzić. Nieco zmodyfikowana wersja w tej liście może obsługiwać dowolne awk
argumenty przed numerem pola (ale nadal wymaga danych wejściowych ze standardowego wejścia).