1/19/2013

Kilka przydatnych aliasów (bash)

Aliasy

Codziennie korzystam z dobrodziejstw konsoli. Wpisuję komendy, zapamiętuję, wpisuję nowe, zapamiętuję nowe, itd. Jeśli korzystam z jakiejś komendy dość często robię sobie z niej alias i wrzucam do pliku .bash_aliases w katalogu użytkownika.

Przedstawię aliasy z których korzystam na co dzień i które znacznie ułatwiają mi pracę. Aliasy będę przedstawiał najpierw w formie kodu, później krótki opis i na końcu obrazek jeżeli będzie to konieczne. Uwaga, zaczynam.

Katalogi/pliki

alias lr='ls -R | grep ":$" | sed -e '\''s/:$//'\'' -e '\''s/[^-][^\/]*\//--/g'\'' -e '\''s/^/   /'\'' -e '\''s/-/|/'\'''
W przyjemny dla oka sposób, wyświetla strukturę katalogów (rekurencyjnie).



alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
alias .....='cd ../../../..'
alias ......='cd ../../../../..'
Zamiast wpisywać "cd ..", wpisujesz "..". Jak raz użyjesz to nie ma odwrotu!

b() {
    str=""
    count=0
    while [ "$count" -lt "$1" ];
    do
        str=$str"../"
        let count=count+1
    done
    cd $str
}
Służy do tego samego co powyższy alias, z tym, że używasz go w sposób "b <liczba>".

alias l.='ls -d .* --color=auto'
Wyświetla tylko ukryte pliki.

alias lf='ls -Gl | grep ^d'
alias lsd='ls -Gal | grep ^d'
Oba listują wyłącznie katalogi. Drugi pokazuje również ukryte katalogi.

function mcd() {
  mkdir -p "$1" && cd "$1";
}
Tworzy katalog i od razu do niego wchodzi.

Terminal

alias c='clear'
Zamiast wpisywać clear, wpisujesz c.

alias freq='cut -f1 -d" " ~/.bash_history | sort | uniq -c | sort -nr | head -n 30'
Listuje 30 najczęściej wywoływanych przez ciebie poleceń basha.

Ubuntu

alias upgrade='sudo apt-get update && sudo apt-get upgrade && sudo apt-get clean'
Szybki upgrade.

I na koniec

extract () {
    if [ -f $1 ] ; then
      case $1 in
        *.tar.bz2)   tar xjf $1     ;;
        *.tar.gz)    tar xzf $1     ;;
        *.bz2)       bunzip2 $1     ;;
        *.rar)       unrar e $1     ;;
        *.gz)        gunzip $1      ;;
        *.tar)       tar xf $1      ;;
        *.tbz2)      tar xjf $1     ;;
        *.tgz)       tar xzf $1     ;;
        *.zip)       unzip $1       ;;
        *.Z)         uncompress $1  ;;
        *.7z)        7z x $1        ;;
        *)     echo "'$1' cannot be extracted via extract()" ;;
         esac
     else
         echo "'$1' is not a valid file"
     fi
}
Rozpakowywuje najpopularniejsze archiwa, "extract <nazwapliku>"

Więcej aliasów znajdziesz w moim repo na githubie dotfiles. Polecam jeszcze stronę alias.sh, na której nie ma co prawda jeszcze dużej ilości aliasów, ale można znaleźć kilka ciekawych. Oczywiście jak masz własne aliasy to warto się nimi dzielić.