Scott Tiger Tech Blog

Blog technologiczny firmy Scott Tiger S.A.

Archiwum: 'Bash' Kategorie

GNU Parallel

Autor: Piotr Karpiuk o 5. stycznia 2011

GNU parallel jest linuksowym narzędziem wiersza poleceń wykonującym zadania współbieżnie (wykorzystując dodatkowe rdzenie procesora) lokalnie i/lub przy użyciu zdalnych hostów (za pomocą SSH). Zadanie jest zwykle pojedynczym poleceniem lub małym skryptem i jest wykonywane dla każdego wiersza na wejściu (lista plików, lista hostów, itp.).

Jeśli używasz na codzień polecenia xargs shella, polecenie parallel będzie dla Ciebie proste do opanowania – z uwagi na te same opcje – i często wykorzystywane jako szybszy odpowiednik. Wyjście generowane przez współbieżne polecenia jest takie samo jak gdyby były one wykonywane kolejno – dzięki temu możesz wykorzystać wyjście jako wejście dla innych programów.

Dla każdego wiersza na standardowym wejściu GNU parallel będzie wykonywał polecenie z wierszem jako argumentem. Gdy nie ma polecenia, wiersze ze standardowego wejścia są traktowane jako polecenia do równoległego wykonania.

Polecenie

  gzip *

pakuje wszystkie pliki w bieżącym katalogu. Polecenie

  ls | parallel gzip

na dwurdzeniowym procesorze wykona to samo zadanie prawdopodobnie ok. dwukrotnie szybciej.
Czytaj więcej »

Tags:
Napisany w Bash, Linux | Brak komentarzy »

ImageMagick

Autor: Piotr Karpiuk o 1. października 2010

ImageMagick to cieszący się dużym uznaniem międzyplatformowy (Linux, Windows, MacOS) pakiet programów wiersza poleceń i bibliotek do kilkunastu języków programowania, służących do tworzenia i edycji obrazków w przeszło 100 formatach – w tym JPG, PNG, GIF, SVG, TIFF, PDF, PS.

Możemy tu konwertować obrazki między formatami, obracać je, skalować, przycinać, odbijać, ustawiać przezroczystość, dodawać obramowanie, tekst, komentarze, tworzyć animacje, efekty specjalne i fotomontaże. Przydatność tego narzędzia objawia się w pełni gdy chcemy przetworzyć jednocześnie duże ilości obrazków. Jeśli interesuje nas wyłącznie konwersja i zmiana rozmiarów dużej ilości obrazków z poziomu GUI, to możemy sięgnąć po wykorzystujący ImageMagicka program Converseen.

Przykłady użycia:

montage -frame 5 -background "#cccccc" -geometry 300×300+5+5 *.jpg montage.jpg
tworzy w pliku montage.jpg galerię obramowanych miniaturek obrazków w bieżącym katalogu
identify -verbose image_file
szczegółowe informacje o obrazku (m.in. adnotacje)
mogrify -border 2×4 -comment "Moj komentarz" file.jpg
dodaje obramowanie oraz adnotację do pliku JPEG
convert start.png -colorspace Gray -resize 800×600 start.jpg
konwersja obrazka do innego formatu (można przekonwertować m.in. do PDF), a przy okazji zamiana kolorów na odcienie szarości i zmiana rozmiaru z zachowaniem proporcji (wykrzyknik po „600” kazałby zignorować proporcje)
display image_file
wyświetla obrazek w osobnym okienku
convert image.jpg -gravity Southwest -fill red -draw "text 0,0 'Nad morzem'" result.jpg
dodaje podpis do obrazka czerwoną czcionką w lewym dolnym rogu

Tags:
Napisany w Bash, Linux | Brak komentarzy »

Nowe ciekawe polecenia linuksowej powłoki (3)

Autor: Piotr Karpiuk o 17. września 2010

Pełna lista poleceń w Księdze Czarów.

comm -3 a.txt b.txt
wypisuje zmerge'owaną i posortowaną wierszami zawartość obu plików z pominięciem tych wierszy które występują w obydwu plikach; pliki muszą być posortowane wierszami
recode ..HTML < page.txt > page.html
konwertuje plik tekstowy do formatu HTML (znaki poza ASCII zostaną zakodowane jako encje)
whois www.example.com
sprawdza domenę w bazie Whois (właściciel domeny i jego dane teleadresowe)
strace -c ls >/dev/null
wywołania systemowe wywołane i otrzymane przez proces
strace -f -e open ls >/dev/null
wywołania biblioteczne wykonane przez proces
chsh
pozwala zmienić domyślną powłokę dla bieżącego konta; chsh --list-shells zwraca listę dostępnych powłok
xmlwf file.xml
czy plik XML jest poprawny (ang. well formed)
wtf imho
wyjaśnia (rozwija) wskazany akronim, spotkany np. w rozmowie IRCa lub na grupie dyskusyjnej
eject
wysuwa CD-ROM
mpstat -P ALL
statystyki rdzeni procesora
setleds -D +caps
włącza diodę CapsLock na klawiaturze
export CDPATH=.:..:../..:~/:~/katalog_dowiazan
Zmienna $CDPATH przechowuje listę rozdzielanych znakami dwukropka nazw katalogów, które są przeszukiwane przez wbudowane polecenie cd. Pełni ona taką samą funkcję dla instrukcji cd, jak zmienna $PATH dla uruchamianych skryptów. W przykładzie często używane nazwy katalogów w wartości zmiennej; katalog_dowiązań oznacza katalog przechowujący jedynie dowiązania symboliczne do innych często wykonywanych katalogów

Czytaj więcej »

Tags:
Napisany w Bash, Linux | 1 Komentarz »

Nowe ciekawe polecenia linuksowej powłoki (2)

Autor: Piotr Karpiuk o 1. września 2010

Pełna lista poleceń w Księdze Czarów.

wget -nv --spider --force-html -i bookmarks.html
Sprawdza linki w pliku
wget --mirror http://www.example.com/
Efektywnie uaktualnia lokalna kopię strony
ethtool --change eth0 autoneg off speed 100 duplex full
Ręcznie ustawia prędkość urządzenia sieciowego
iwconfig eth1 rate 1Mb/s fixed
Ręcznie ustawia prędkość urządzenia bezprzewodowego
mount -t tmpfs -osize=64m tmpfs /memdisk
tworzy wirtualny dysk w pamięci RAM
hdparm -tT /dev/sda
test wydajności dysku (odczyt i zapis 1GB)
socklist
otwarte gniazda i ich procesy (zamiennie można lsof -i)
convert *.jpeg images.pdf
Tworzy prosty PDF ze wszystkimi obrazkami
:(){ :|:& };:
zabija maszynę (ang. bash fork bomb)
rename .cxx .cpp *.cxx
zamienia nazwy plików z .cxx na cpp
fuser -km /mnt/hda2
wymusza umount na zajętym urządzeniu
lsattr myfile
atrybuty specjalne pliku
chattr +a file1
pozwala na otwarcie pliku do zapisu tylko w trybie „append”

Czytaj więcej »

Tags: , , ,
Napisany w Bash, Linux | Brak komentarzy »

Powłoka Linuksa na wesoło

Autor: Piotr Karpiuk o 27. sierpnia 2010

Demo bb

Używając shella można się zabawić, a nawet nieźle uśmiać. Serio.

fortune
Losowa sentencja (można zastąpić przygotowanymi przez siebie)
telnet towel.blinkenlights.nl
Gwiezdne Wojny – cały film, oczywiście w „grafice ASCII”
tr -c "[:digit:]" " " < /dev/urandom | dd cbs=$COLUMNS conv=unblock | GREP_COLOR="1;32" grep --color "[^ ]"
Matrix
who loves mum
No właśnie, kto kocha mamusię?
echo $(shuf -i 1-49 | head -n6 | sort -n)
W następnym losowaniu LOTTO skreśl numery…
export PS1="C:$( pwd | sed 's:/:\\\:g' )\> "
Od tej pory znak zachęty do złudzenia będzie przypominał konsolę Windows
cowsay "Nie po to zyje, by jesc, lecz po to jem, aby zyc"
Krowa (lub inny zwierzaczek, do wyboru) wypowiada sentencję w komiksowym dymku
figlet "jakis napis"
Wyświetla napis literami wyrzeźbionymi w ASCII art; podobny efekt daje użycie programu toilet
echo "Mozesz symulowac pisanie na klawiaturze zupelnie jak w filmach" | pv -qL 10
Wyświetla napis literka po literce, zupełnie jak w filmach
bb
spektakularne animowane demo z muzyką
bsdgames
zestaw gier dla trybu tekstowego (spis)
sed -f sedtris.sed
Tetris napisany w edytorze wierszowym sed – źródła do pobrania tutaj
sl
Zwykle jako oddzielny pakiet. Teraz gdy chcąc wyświetlić zawartość katalogu zrobisz literówkę w nazwie polecenia ls, to…

Tags: , ,
Napisany w Bash, Linux | 1 Komentarz »