Aşırı bir örnek olarak, standart komutların diğer adlarının neden zararlı olabileceğini göstermek için standart bir komutun diğer adını takas etmeme izin verin:
alias ls='rm'
Açıkçası, bu kötü çünkü bir gün kötü bir sürpriz yaratacaktır. Benzer şekilde, standart komutların takma adlarla değiştirilmesi, en azından beklediğinizde talihsiz bir sürprizle sonuçlanacaktır.
Ama kariyerinde ilerledikçe hemen hemen her Unix yöneticisinin başına gelecek ortak bir senaryo sunayım:
Gelecekte bir gün yeni bir işe başlayacak ve başkaları tarafından kurulan yeni bir sistem üzerinde çalışacaksınız. Cumartesi sabah saat üç olacak ve dümdüz düşünmüyorsunuz ve hata yapmaya eğilimlisiniz. Standart ortamınız kullanılamayacak. Aslında sen köksün.
Bu göz önüne alındığında rm
, bunun takma adı olmadığını hatırlayacak rm -i
mısınız? Kutuya her giriş yaptığınızda özel takma adlarınızı kontrol edecek misiniz? Kökün çevresini değiştirirseniz, iş arkadaşlarınız değişikliğinizden memnun olur mu?
Dürüst olmak gerekirse bu konuda kararsızım. Kariyerimde binlerce sistem üzerinde çalıştım ve tüm bu sistemlerde çevreyi değiştirirsem değeri görmek zor olurdu.
Aliasing rm
için rm -i
çok yaygın olduğunu ve bunu birçok sorunu önlemek gördük, ama aynı zamanda pek çok sürprizler ve yanlışlıkla silinen dosyaları kurtarmak için ekstra çalışma saatleri neden oldu.
Şimdi ortak sistem komutlarını yumuşatmaktan kaçınmaya çalışıyorum. Bunun yerine, kabuğun kolayca yapamayacağı şeyleri yapmak için takma adlar ve işlevler kullanıyorum. Şimdi yapmak eğilimindedir takma adı için ekstra bir mektup eklemek, gibi:
# List long, with color or special characters, depending on OS
alias ll='ls -l'
# Long, with metacharacters, show dotfiles, don't show . and ..
alias lll='ls -lA'
# Long, with metacharacters, show dotfiles, show . and ..
alias lla='ls -la'
# List just the dotfiles
alias l.='ls -l -Ad .????*'
# Useful greps
#alias hgrep='history |grep ${*} |grep -v $$'
alias greph='history |grep ${*}'
alias grepp='ps -ef |grep ${*}'
### Highlight some text.
# From http://unix.stackexchange.com/questions/366/convince-grep-to-output-all-lines-not-just-those-with-matches/367#367
highlight () { grep --color -E "$1|$" $2 ; }
Ve belki de son takma adımdan gerçekten kurtulmalıyım, çünkü yeni uygulamalara adapte olmak zaman alır:
# For safety!
alias rm='rm -i'
rm -i
,-f
bayrağı otomatik olarak eklemek için biraz daha eğitiyor .