cz. 1 | Siła konsoli w systemach Uniksowych
13.11.2010 | aktual.: 16.11.2010 14:40
Witam, słyszałem wiele negatywnych opinii odnośnie konsoli dlatego postaram się wytłumaczyć, że jest ona naprawdę użyteczna i wręcz niezbędna w każdym systemie.
Czym jest konsola i do czego służy
Konsola to uniwersalne narzędzie do wykonywania najbardziej przeróżnych czynności zaczynając od sterowania systemem operacyjnym, przez słuchanie muzyki do grania w gry tekstowe.
Jednak konsola to coś więcej niż tylko wpisywanie poleceń przez użytkownika, i tutaj chciałbym podkreślić inne bardzo ważne i niezastąpione zastosowania konsoli w tym ogromnym świecie informatycznym.
[color=#FF0000]Ważna informacja: Żadne okienko terminala nie musi być otwarte aby polecenie zostało wykonane, to wszystko może chodzić i chodzi w tle bez przerwy - bo cokolwiek robimy to system wywołuje różne polecenia.
[color=#FF0000]Jaka jest idea?
99% programów Uniksowych, tak tych graficznych, tekstowych czy słuchowych?(dla niewidzących) umożliwia sterowanie przez konsolę. To nie windows, tutaj tworzymy wszystko według takiego modelu i każdemu jest wygodnie i na rękę.
Ale można zadać pytanie; po co Mi to?
Wyobraź Sobie, że masz w programie odtwarzającym wideo opcję "Po zakończeniu oglądania wykonaj polecenie" (całkiem realne), dzięki takiej opcji możesz ustawić, że po zakończeniu oglądania filmu wyłączy się komputer, załączy wygaszacz ekranu, pobierze plik z internetu, otworzy się przeglądarka, zamknie się program odtwarzający filmy czy co tylko sobie wymyślisz.
To proste, jeden program umożliwa wykonanie danego polecenia poprzez dane zdarzenie.
Dzięki temu możemy stworzyć co Nam wyobraźnia przyniesie do głowy.
[color=#DAA520]Przykładowe zastosowanie pierwsze - odtwarzacz muzyki
Powiedzmy, że chcemy ustawić na klawiszu F12 jakąś nietypową czynność, np. ustawienie naszego ulubionego utworu w odtwarzaczu muzyki
W tym celu wyszukujemy odpowiednią opcję w odtwarzaczu muzyki np. rhythmbox
webnull@webnull-desktop:~$ rhythmbox-client --help Użycie: rhythmbox-client [OPCJA...] Opcje pomocy: -h, --help Wyświetla opcje pomocy Opcje programu: --debug --no-start Bez uruchamiania nowej instancji programu Rhythmbox --quit Kończy działanie programu Rhythmbox --no-present Bez wyświetlania istniejącego okna programu Rhythmbox --hide Ukrywa okno programu Rhythmbox --next Przechodzi do następnego utworu --previous Przechodzi do poprzedniego utworu --seek Przewija bieżącą ścieżkę --notify Wyświetlanie powiadamiania o odtwarzanym utworze --play Wznawia odtwarzanie, jeśli jest wstrzymane --pause Pauzuje odtwarzanie, jeśli jest uruchomione --play-pause Przełącza tryby odtwarzania/wstrzymania --play-uri=Adres URI do odtworzenia Odtwarza podany adres URI, importując go, jeśli to konieczne --enqueue Dodaje podane ścieżki do kolejki odtwarzania --clear-queue Opróżnia kolejkę odtwarzania przed dodawaniem nowych ścieżek --print-playing Wyświetla tytuł i wykonawcę odtwarzanego utworu --print-playing-format Wyświetla sformatowane szczegóły utworu --select-source=Źródło do wybrania Wybiera źródło pasujące do podanego adresu URI --activate-source=Źródło do aktywacji Aktywuje źródło pasujące do podanego adresu URI --play-source=Źródło do odtworzenia Odtwarza ze źródła pasujące do podanego adresu URI --set-volume Ustawia głośność odtwarzania --volume-up Zwiększa głośność odtwarzania --volume-down Zmniejsza głośność odtwarzania --print-volume Wyświetla bieżącą głośność odtwarzania --mute Wycisza dźwięk --unmute Wyłącza wyciszenie dźwięku --set-rating Ustawia ocenę bieżącego utworu
Skoro już znaleźliśmy naszą "funkcję" programu (argument) to teraz użyjemy go w praktyce.
rhythmbox-client --play-uri="/home/webnull/Muzyka/Utwor.ogg"
Teraz odtwarzacz muzyki Rhythmbox powinien nam zagrać utwór /home/webnull/Muzyka/Utwor.ogg
Ale dlaczego by nie ustawić Sobie ten utwór na klawisz F12?
To bardzo proste, ustawiamy sobie to powyższe polecenie do wykonania po naciśnięciu klawisza F12 w programie do bindowania klawiszy (xbindkeys, fluxbox, lub jakiś z pakietu GNOME graficzny ładny i prosty konfigurator).
[color=#1E90FF]Przykładowe zastosowanie drugie - aktualizacje serwera
Przede wszystkim zaletą systemów Uniksowych jest to, że administrator może być jeden na bardzo wiele komputerów, a dobrze skonfigurowany system potrafi sam o Siebie zadbać.
Podstawą systemów Uniksowych są aktualizacje czyli świeże, stabilne (możemy wybrać również niestabilne - testowe), załatane oprogramowanie na bieżąco.
Aby system sam się aktualizował bez problemów zaleca się używania repozytorium stabilnego które gwarantuje, że nic się nie stanie po aktualizacji.
No więc do rzeczy, jako użytkownik uprzywilejowany - root wpisujemy do fcrontaba lub crontaba zaplanowane zadanie, np. codziennie o 00:00 będzie wykonywane polecenie /root/zaaktualizuj-system.
W pliku /root/zaaktualizuj-system dodajemy polecenie aktualizujące system, ewentualny raport wysyłany na e‑mail w razie wykrycia niepowodzenia (status błędu zwrócony przez proces aktualizacji - da się wykryć).
#!/bin/bash . /root/funkcje-mailowe # dołącza plik z funkcjami mailowymi apt-get update &> /dev/null apt-get upgrade &> /dev/null if [ "$1" == "Błąd" ] then wyslij_mail_do_admina fi
[color=#DAA520]Przykładowe zastosowanie trzecie - serwer czuwający nad zasypiającymi użytkownikami
Jeżeli mamy w domu serwer, albo router z Linuksem bądź taki router na którym jest możliwa instalacja systemu opartego o Linuksa np. OpenWRT to możemy wykonywać na nim dowolne zaplanowane zadania.
Przykładowo dodajemy zadanie do fcrontaba bądź crontaba w serwerze/routerze aby o godzinie 03:00 w nocy sprawdzał czy komputer jest przez dłuższy czas bezczynny. Po półgodziny bezczynności komputera w nocy serwer/router wysyła do komputera sygnał wyłączania np. shutdown -h now
Oczywiście możemy rozbudować nasze rozwiązanie o obsługę wyjątków. Możemy napisać bardzo prostą aplikację serwerową np. w Pythonie która będzie komunikować się z routerem i podawać informacje, czy pobieramy dany plik przez noc, czy automatyczne wyłączanie komputera jest zablokowane itp.
Istnieje alternatywa, nie musimy mieć serwera, ale wtedy musimy czuwać i serwisować każdy komputer z osobna, dlatego polecam serwer.
[color=#DAA520]Przykładowe zastosowanie czwarte - instalacja oprogramowania
Windows: Ile możemy czasu spędzić na szukaniu instalatora? Nie raz trzeba dojść do 20 strony w wyszukiwarce Google/Yahoo/Innej aby odnaleźć szukany instalator. Czasami także trzeba wysłać SMS, zarejestrować się i dostawać kupę spamu, albo kliknąć w banner i zagłosować aby dostać instalator - no cóż..
No dobrze, udało się pobrać, pierwszy sukces! Ale teraz rozczarowanie, instalator wysypuje nielogiczne błędy typu "Włóż płytę do napędu CD zawierającą plik X", i chociaż wskazujemy Mu położenie pliku to on nadal go szuka, no cóż ostatnio miałem taki błąd, siedziałem przy nim całą godzinę kiedy instalowałem komuś świeżo zakupioną grę.
W systemach Uniksowych mamy całkowicie inną sytuację, nie tolerujemy reklam, spamu, ani innego "chamstwa" potocznie mówiąc.
Mamy Swoje ogromne bazy danych z oprogramowaniem, liczące tysiące serwerów lustrzanych (zawierających tą samą treść) w każdym kraju.
Wystarczy małe, proste, i wygodne polecenie aby zainstalować program.
W systemach opartych o Debiana robimy to tak:
sudo apt-get install audacity
W systemach z rodziny Gentoo:
emerge audacity
Arch Linux:
pacman -S audacity
Gdzie audacity to nasz program który instalujemy. Po wykonaniu tego polecenia program jest zainstalowany, uruchamiamy go z graficznego menu bądź z polecenia w terminalu.