Ułatwianie sobie życia, czyli konsola tekstowa

Moment, moment - powiecie - a czy używanie konsoli tekstowej (terminala, wiersza poleceń, jak kto woli) to nie utrudnianie sobie życia? Przecież to główny argument, że w Windows jest łatwiej, bo instalacja oprogramowania nie sprowadza się do wpisania sudo apt-get install foo tylko do kliknięcia dwukrotnego i parokrotnego “Dalej” na plik pobrany z Internetu. Nic bardziej mylnego - konsola tekstowa jest, dla tych nieco bardziej zaawansowanych użytkowników komputerów, nieocenionym narzędziem, które może pozwolić na znaczne ułatwienie, uprzyjemnienie pracy. Pomagając w różnych problemach, najczęściej polegających na konieczności masowego wykonania jakiegoś zadania.

Ot, na przykład. Kiedyś w serwisie Pytamy.pl zostało zadane pytanie jak z wielu małych plików tekstowych zrobić jeden duży plik. Czy jest jakiś program do tego? Nie wiem czy jest, ale używanie programu nie jest konieczne jeżeli posłużymy się prostym plikiem wsadowym .cmd pod Windows czy kilkoma linijkami w bashu lub innym shellu Uniksowym. Na przykład może to wyglądać tak (Windows):

for %i in (*.txt) do type %i >> foo.dat
ren foo.dat foo.txt

I ze wszystkich plików tekstowych w katalogu, gdzie zostaną wydane te dwie proste komendy mamy jeden plik o nazwie foo.txt. Dlaczego nie od razu “zrzucać” zawartość pliku do foo.txt zamiast do foo.dat? Dlatego, że może nieszczęśliwie się złożyć, że nasz plik foo.txt “załapie” się w pętlę i jego zawartość zostanie podwojona. Ale czy to nie było proste? Wymaga jednak nieco pomyślunku, znajomości poleceń oraz nie bania się czarnego ekranu z migającym kursorem.

W podobny sposób można na przykład wykonywać masowe rozpakowywanie plików określonego typu, można zmieniać swój adres IP, testować sieć pod względem obciążeń i robić setki różnych rzeczy, do których nie ma żadnego graficznego interfejsu użytkownika. Ja ogólnie jestem wielkim fanem wszelkich aplikacji konsolowych, zwykle małych i szybkich, nastawionych tylko na wykonywanie konkretnego zadania. Pod konsolą zdarza mi się konwertować filmy z jednego formatu na drugi, dokumenty z ODF na MSOOXML, czy też wykonywać tak różne dziwne rzeczy jak masowe ściąganie komiksów internetowych na dysk - jeżeli nazwy mają jakiś określony schemat - na przykład kolejne numery - to intuicja od razu podpowiada “zrób pętlę, wstawiaj tylko liczbę i wykonaj polecenie ściągania na dysk”. I to jest banalne do zreazlizowania np. w Linuksie z użyciem basha i programu wget czy w PowerShellu wraz z klasą System.Net.WebClient i pętlą for.

Z czego jednak wynika “lęk” użytkowników, jaki daje się zaobserwować? Z niezrozumienia? Na pewno - jest to mimo wszystko pewien język, który wymaga jakiejś określonej składni, a w innym wypadku mogą pojawić się błędy. Z trudności? Trzeba opanować kilka podstawowych poleceń i składnię, no cóż. I nie jest to tak intuicyjne jak “klikanie myszką”.

Tak, można stwierdzić, że jestem uprzedzony, bo jestem geekiem i siedzę i dłubię w tych komputerach od dawna i doskonale wiem co i jak należy robić. Ale przecież to nie oznacza, ze nie muszę się uczyć! PowerShella wspominanego przeze mnie uczę się cały czas, cały czas douczam się jak niektóre rzeczy można zrobić w shellach w systemach Linuksowych. To prawda, w nauce wspomagają mnie nawyki pewne, doświadczenie oraz intuicja. Jestem jednak zdania, że każdy średnio rozgarnięty użytkownik (a nie bezmyślny “klikacz”) jest w stanie nauczyć się usprawniać swoją pracę użyciem wiersza poleceń. Nie ma się czego bać!

Zastanawia mnie jeszcze jedna rzecz. Czytuję parę różnych forów o oprogramowaniu, jestem świadkiem wielu wojenek między systemami na L oraz W. I zastanawia mnie dlaczego wśród osób, które mówią o instalowaniu sterowników, reinstalacji systemu, o zmianach w rejestrze (który swoją drogą jest “magiczny”) panuje przekonanie, że to konsola tekstowa i wpisywanie poleceń jest trudne…

Liczba komentarzy: 10

»
  1. #1 Uzytkownik
    maj 12, 2007 godzina 14:58

    Konsola jest trudniejsza jeśli chodzi o banalne sprawy, ale co należy zrobić - strasznie skomplikowana sprawa), żeby przekopiować plik w tym samym katalogu (odpowiednik cp plik1 plik2) w GUI? A link symboliczny (ln -s plik1 plik2)? A jak ten link odróżnić od hardlinku (ln plik1 plik2)…
    Coś trudniejszego? Dobrze uruchomienie ./script/cośtam w bierzącym katalogu (nie ~, nie ./script tylko w .).

    O masowych operacjach nawet nie wspominam. U mnie konsola jest zawsze otwarta - i to nie dlatego, że nie ma programów w których moge sobie cośtam wyklikać.

  2. #2 sprae
    maj 12, 2007 godzina 15:28

    Warto wspomniec tez o monad/powershell/msh… To tez niezaprzeczalne narzedzia ktore wybiegaja odrobine dalej niz zwykly unixowy shell :)

  3. #3 sprae
    maj 12, 2007 godzina 15:45

    Och przepraszam umknelo mi :/

  4. #4 Kooba
    maj 12, 2007 godzina 16:33

    A da się odpalić PowerShell w XP z .NET ?

  5. #5 Szift
    maj 12, 2007 godzina 16:53

    nie mówiąc o instalacji wszelakiego oprogramowania ze źródeł, dobierając własne optymalizacje, ustawienia itp…
    a z takich prostszych rzeczy których nie wymieniłeś, moja ulubiona:
    bash + imagemagick - faktycznie czary można robić :)
    chociażby proste:
    mogrify -format png -resize 800x *.tiff
    dla przeskalowania wszystkich obrazków tiff na szerokość 800 pixeli (wysokość dobrana jest automatyczne tak, by zachować skalę), oraz konwersji na format png

    że nie wspomnę o niezliczonych użyciach grep’a, sed’a, awk’a itd itp

  6. #6 Ktos
    maj 12, 2007 godzina 17:35

    Uzytkownik: Akurat skopiowanie pliku w tym samym katalogu to jeszcze trudne nie jest i to robię myszką ;-)

    sprae: Doskonałe narzędzie, jestem wiernym użytkownikiem PS od kiedy jeszcze nazywał się Monad ;-)

    Kooba: Oczywiście. Windows PowerShell dostępny jest dla Windows XP SP2 i nowszych. Wymaga .NET 2.0. Używam na 3 komputerach, na różnych systemach, na wszystkich działa tak samo :-)

    Szift: Instalacja oprogramowania ze źródeł to jak dla mnie nie jest temat interesujący potencjalnego niekoniecznie zaawansowanego użytkownika komputerów. Ale fakt, wsadowe konwersje obrazów, reskalowanie ich czy coś podobnego. Podobnie też można postępować z plikami dźwiękowymi.

  7. #7 Robert Drózd
    maj 13, 2007 godzina 00:44

    przyznam, że konsolę windowsową znam bardzo średnio.

    ale ja podobny efekt uzyskuję przez
    copy *.txt wszystko.dat

    - czy jest jakaś różnica/zaleta przy stosowaniu tego for?

  8. #8 Ktos
    maj 13, 2007 godzina 13:38

    Mam wrażenie, że różnicy nie ma. Ot, jeszcze jeden sposób na zrobienie tego samego, być może być różnica w szybkości, ale nie wiem teraz na korzyść którego rozwiązania.

  9. #9 Michał
    maj 13, 2007 godzina 16:42

    Ktos: Akurat skopiowanie pliku w tym samym katalogu to jeszcze trudne nie jest i to robię myszką ;-)

    Od lat używam KDE i pierwszą aplikacją, którą instaluję przy nowym systemie jest Yakuake - konsola, która zjeżdża w dół po wcisnięciu F12 (domyślnie). Bez yakuake nie potrafię pracować w trybie graficznym.

    Kopiowanie pliku za pomocą myszki wymaga otwprzenia np. konquerora -> nawigacji do katalog -> zaznaczenia pliku -> ctrl+c -> nawigacji do celu -> ctrl+v.

    Kopiowanie z konsoli to: F12 -> cp zrodlo cel.

    Ja jednak wybieram konsolę nawet w tak banalnych kwestiach jak kopiowanie pliku.

  10. #10 Wojtosz
    maj 14, 2007 godzina 09:43

    @Michał
    brawo ! [F12] to podstwa :D

    na swoim notebooku mam PLD Linux oraz XP Home. Pierwszego używam do pracy, rozrywki, etc.. drugie odpalam co tydzień, żeby zobaczyć czy są nowe aktualizacje :)

    A teraz poważnie.
    Windows to bardzo zaawansowany system operacyjny. Trend `lamerstwa łindołsiarzy` ma podstawę w intuicyjności windowsowego GUI. Spowodowało to, że ludzie, którym w mojej opinii należało by odebrać kawiaturę i dać do przekładania kamienie, zajęli się rzeczami takimi jak Internet, czy serwery. Owe źle (lub wcale !) nie zabezpieczone maszyny stały się bardzo łatwym łupem dla ludzi posiadających wiedzę. Myślę, że każdy już załapał intencję tego wątku.

    Reasumując: Windows to potężne narzędzie. Ważne, żeby umiejętnie się z nim obchodzić. Dlatego też wierzę, że podzielicie moją myśl: Każdy system potrzebuje Administratora (takiego przez wielkie A).

Wątek RSS dla komentarzy tego wpisu · Adres trackback

Zostaw komentarz

Dozwolone są niektóre znaczniki XHTML, jak: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Na tym blogu stosowana jest wtyczka antyspamowa Spam Karma. Jeżeli Twój komentarz nie pojawia się, lub po jego dodaniu otrzymujesz pustą stronę - poczekaj, komentarz został dodany, ale albo oczekuje w kolejce, albo został mylnie zakwalifikowany jako spam - spokojnie, gdy zajrzę do panelu administracyjnego to uratuję go.