Przy okazji kursu nabrałem wielkiej ochoty na lepsze poznanie basha. Nie chodzi mi jednak o duperele, ale o pewne aspekty ułatwiające życie przeciętnego zjadacz chleba w płynie.
Prowadziłem już od dłuższego czasu obserwacje poszukując najbardziej przydatnych skryptów i najczęściej używanych poleceń. Mając tą listę mogę przygotować odpowiednie pliki .bashrc i pliki ze skryptami.
Lista jest krótka, ale tego typu konstrukcji używam najwięcej.
Contents
Aliasy w ~/.bashrc
Aliasy to skrótowce dla komend. Używamy ich zazwyczaj gdy to co chcemy zrobić nie wymaga parametrów. Mogą to też być krótkie inlinowe skrypty, wykonujące kilka operacji na kolejnych danych.
pokaż mi wszystko
Na początek dwa przydatne polecenia:
# Pokazuje listę plików i katalogów w aktualnym katalogu alias ll='ls -lA' # Pokazuje tylko katalogi alias lld='ls -lAd'
Chyba najczęściej wykorzystywane.
czyszczenie
Szybkie resetowanie konsoli:
# to samo co clear alias c='clear'
Czasami przydatne. Czasami nie. Co kto lubi.
Skrypty
Kilka krótkich skryptów umieszczonych w /usr/local/bin/
seek’n’destory
#!/bin/bash for F in `find . -name $1` do rm -rf $F done
Skrypt odnajduje pliki pasujące do wzorca, a następnie je usuwa. Taki hitman. Bardzo przydatne jeżeli należymy do ludzi, którzy problemy z aplikacjami rozwiązują przez wysłanie w /dev/null losowego pliku konfiguracyjnego.
backup za pomocą rsync
Skrypt trochę bardziej skomplikowany, bo wymaga by uruchamiał go tylko root.
#!/bin/bash # czy mamy do czynienia z ROOTem export USRN=`whoami` if [ "root" != $USRN ] then echo "wypierdalaj ciumoku" exit fi # czy zamontowano urządzenie backupowe export ISMOUNT=`mount |grep /media/backup` if [ -z "$ISMOUNT" ] then echo "BRAK URZĄDZENIA DO BACKUPU!!!" echo "Czy zamontować?[T/N]" read m if [ "T" == $m -o "t" == $m ] then echo "wskaż urządzenie" read m if [ -n $m ] then mount $m /media/backup fi else echo "nie ma rączek nie ma ciasteczek" exit fi fi # backup # prosimy o źródło echo "podaj plik lub katalog do backupowania" read SOURCE # no jak se ktoś jaja robi i chce backupować backup if [ "/media/backup/" == "$SOURCE" -o "/media/backup" == "$SOURCE" ] then echo "no se jaja robisz" exit fi # if [ ! -d $SOURCE -a -f $SOURCE ] then echo "$SOURCE nie ma takiego pliku lub katalogu lub wskazany katalog jest urządzeniem specjalnym" fi # katalog z backupem na urządzeniu export TARGET_DIR=/media/backup/`date +%F`"_"`echo $SOURCE|sed -e 's/\//_/g'` # tworzymy katalog jeżeli nie istnieje if [ ! -d $TARGET_DIR ] then mkdir $TARGET_DIR # a jak istnieje to info, że będzie to backup przyrostowy else echo "backup był już wykonywany... wykonam backup przyrostowy" fi rsync -Pavh $SOURCE $TARGET_DIR
Całość wymaga jeszcze pewnych ulepszeń m.n. „refaktoryzacji do procedur”, a nie jest źle.
Podsumowując. Warto tworzyć własne repozytoria skryptów i się nimi dzielić, bo w ten sposób ułatwiamy życie sobie jak i innym.