Zanim nasz cały cyfrowy świat był 4K albo full HD, komputer obsługiwało się w poziomu terminalu. Był to tryb tekstowy, gdzie aby cokolwiek się wydarzyło, trzeba było napisać odpowiednią komendę. O ile może się wydawać, że terminal odszedł już dawno w niepamięć, to zaskoczeniem dla niektórych może być fakt, że jest on w ciągłym użyciu wśród wielu gatunków programistów czy też administratorów serwerów.
Mnie osobiście życie popchnęło w takim kierunku, że od roku ten terminal stał się dla mnie narzędziem codziennym. W pracy często uruchamiam zdalnie różne obliczenia i narzędziem do tego jest właśnie terminal. Dodatkowo jestem od zawsze nerdem i robię różne dziwne rzeczy. Na moim strychu leży stary laptop, na którym stoi serwer Minecrafta, generuje wykresy stanu koronawirusa, synchronizuje moją listę zadań i hostuje jeszcze jeden tymczasowy projekt. Stoi to wszystko na Linuksie, ponieważ to oczywisty wybór na serwer, szczególnie jeśli sprzęt jest stary. W moim przypadku to Dell Latitude E6220 z i5-2520M. Uptime, czyli czas od ostatniego restartu, na chwilę obecną wynosi ponad 245 dni. Ciągle znajduję nowe zastosowania dla tego małego komputera, który chodzi 24 godziny na dobę. Jest to świetne, tanie hobby.
Spędzając coraz więcej czasu w terminalu zacząłem się zastanawiać – gdzie jest granica? Czy mogę robić wszystko w terminalu? Tak narodził się pomysł na pewien eksperyment. O ile życie 100% w terminalu na pewno jest skazane na porażkę, to używanie go „w każdym możliwym” przypadku już nie. W ten sposób mam nadzieję, że uniknę frustracji, a jednocześnie przeprowadzę swoisty detoks od kradnącego wiecznie czas smartfona, YouTube i innych takich.
Zasady ustaliłem sobie następujące: moim głównym narzędziem jest Samsung N150, stary (produkcja grudzień 2009) netbook z procesorem Intel Atom N450. O ile ten komputerek bez problemu obsługiwał Windows 7, to obecnie nie nadaje się już on już nawet do „chodzenia po internecie”, przynajmniej w typowym rozumieniu tego słowa. Bierze się to nie stąd, że stał się on z czasem wolniejszy, nie. Po prostu obecne strony internetowe są bardzo wymagające i tak wolny procesor nie daje rady – wszystko działa niezwykle wolno. Nadaję się on jednak idealnie do mojego eksperymentu. Zainstalowałem mu openSUSE Leap 15.2, bez trybu graficznego. Dzięki temu mniej będzie kusić, żeby tylko na chwilkę zerknąć na coś w okienkach. Dlaczego niemieckie openSUSE? Bo nie chcę używać ciągle czegoś amerykańskiego, jak jest europejskie i równie dobre, jeśli nie lepsze. Ubuntu to teoretycznie Isle of Man, czyli Wielka Brytania, ale kto wie gdzie im tę wyspę odholują, jak już Brexit będzie zatwierdzony. Dodatkowo, po wielu latach na obczyźnie jak zawitam do Niemiec, to się czuję prawie jak w domu, ale to temat na inny felieton. No to zaczynamy.
Dzień 1
Na początek zmieniłem czcionkę na nieco mniejszą, bo rozdzielczość 1024×600 nie rozpieszcza. Postawiłem na terminus, bo tak mi podpowiedziało Google. Pod Linuksem, co warto zaznaczyć, oprogramowanie instaluje się „ze sklepu” jak na Androidzie czy iOS. Aby zainstalować inxi, aplikację do wyświetlania informacji wszelakich na temat komputera (ja używam do sprawdzania stanu baterii), wystarczy napisać „sudo zypper install inxi” i już. Takie systemy pod Linuksem funkcjonowały już w 1994 roku. Jest to niezwykle proste i przyjemne, nie mówiąc o tym, że bezpieczne.
Używanie tylko jednej aplikacji naraz jest passe nawet w terminalu. Stąd instaluję i używam tmux. Pozwala on kroić ekran w pionie i poziomie, dzięki czemu możemy przeglądać internet i jednocześnie pisać artykuł w edytorze tekstu. Trzeba się ogarnąć z wszystkimi skrótami klawiszowymi, bo nie ma gdzie kliknąć, żeby sobie samemu eksplorować, ale z czasem idzie mi to dosyć sprawnie.
Obecnie spędzamy coraz więcej czasu w przeglądarce, tak więc odpalam przeglądarkę. Wyboru tutaj specjalnie nie ma, bo w obecnych czasach różnice między tymi dostępnymi są minimalne – padło na w3m. Potem sobie obczaję konkurencję. Obsługi grafiki oczywiście brak. Obsługi JavaScript niestety również. O ile czytanie fsgk.pl jest jak najbardziej możliwe, to nieco bardziej skomplikowane strony sprawiają niestety spore problemy. Gmail nie działa. Protonmail również. No dobra, ale przecież można użyć klienta poczty – kiedyś to był standard, dzisiaj, nie licząc firmowego Outlooka, rzadkość. Do wyboru mam zasadniczo albo mutt, albo alpine, przy czym ten drugi jest łatwiejszy – tak więc biorę. Niestety prosta konfiguracja obsługuje tylko jedną skrzynkę… No trudno, zawsze mogę sobie porobić przekierowania, ew. mieć różne konta na komputerze… Nic to, zaliczam za pół punktu.
Krok drugi – Slack. Tutaj kolejna frustracja – jest jeden dosyć dobry klient, oczywiście nieoficjalny. Do jego konfiguracji niestety potrzebna jest „zwykła” przeglądarka. Przeklikuję co trzeba i… nic. Błąd, że coś nie działa i tyle. Co najgorsze, ta aplikacja mi kiedyś działała! Wielka szkoda, bo jak działa, to nawet grafiki jako ASCII-art wyświetla. Nie wiem, czy ja coś źle robię, czy po prostu przestało działać bo tak. No nic, na dzisiaj koniec.
Dzień 2
Refleksja mnie naszła, że jakby ktoś chciał wykonać podobny eksperyment, to polecam jednak chyba Ubuntu. Materiałów pomocowych w internecie jest o wiele więcej niż dla openSUSE. Taki przykład: przy instalacji wybrałem angielską klawiaturę z rozpędu, a chciałbym móc pisać polskie znaki. Co teraz? Poszukiwania odpowiedzi są nieco utrudnione, bo to nie jest typowy problem – większość informacji dotyczy trybu okienkowego. Grzebiąc trochę głębiej najpierw natrafiłem na porady dotyczące właśnie Ubuntu. Ostatecznie sobie poradziłem. Dla testu chciałem też zainstalować odtwarzacz Tizonia – Spotify, TuneIn Radio i inne w jednym. Niestety, binaria (czyli klikasz i masz) dostępne są właśnie tylko dla Ubuntu. Jest też możliwość zainstalowania jako Snap, ale to też rozwiązanie „Ubuntowe” i Snapa nie ma w repozytoriach openSUSE. (Snap to taka forma instalacji oprogramowania, że działa nieco obok systemu, i ściąga sobie wszystko co potrzebuje, żeby na pewno działało… Skomplikowane.) No nic, wiem, że Tizonia działa wspaniale, bo używałem w innym projekcie na bazie Raspberry Pi Zero (czyli Debian czyli prawie Ubuntu). Nie wszystko jednak nieszczęście – załatwiłem sobie prognozę pogody zawsze jak odpalam nowy terminal.
Natrafiłem też na ciekawe ograniczenie – pracując w samym terminalu nie ma globalnego schowka. Nie ma więc kopiuj-wklej! Poszczególne aplikacje mają swoje rozwiązania, np wcześniej wspomniany tmux. (PS Po tygodniu zupełnie się na schowek tmux-a przestawiłem i działa wyśmienicie)
Dzień 3
Postanowiłem sprawdzić jak szybko system się uruchamia. Jedna minuta i 20 sekund. Całkiem długo, ale należy pamiętać, że mój demon prędkości rocznik 2009 ma dysk twardy z obrotowymi talerzami, więc to niestety będzie trwać. Z drugiej strony, jak zamykam ekran to laptop wchodzi w stan uśpienia, który działa bez najmniejszego zgrzytu, więc się praktycznie nie muszę restartować. Ku mojemu zaskoczeniu bateria też trzyma dobrze. Wstępne obliczenia pokazują, że 3 godziny bez kabla są możliwe. I tak plan jest taki, aby żyć w terminalu tylko w domu. Dodatkowo przyznam się, że nie znalazłem dobrego managera sieci WiFi w trybie tekstowym. Musiałbym parę rzeczy przekonfigurować i zwyczajnie się boję, że coś zepsuję.
Sukces na dziś: udało mi się uruchomić przeglądarkę w3m w trybie wyświetlania obrazków. Problem był z prawami dostępu do ekranu, przez co sudo w3m (sudo to takie „uruchom jako administrator”) działało, a już samodzielnie nie. Co ciekawe, opcję tę szybko wyłączyłem. Jest to tryb dosyć eksperymentalny (wieloletni eksperyment), więc nie działa zbyt dobrze. Dodatkowo spowolniało to ładowanie się stron, więc po co? Jak już używam terminala „tam gdzie się da”, to niech mam chociaż z tego jakiś pożytek – prędkość.
Zauważyłem również, że szybko nabieram sprawności jeśli chodzi o wszelakie komendy. Odkrywam też nowe, np przeszukiwane wcześniej używanych komend (ctrl-r), niezwykle przydatne. A to dopiero kilka dni!
Dzień 4
Tak więc dzisiaj kilka odkryć. Przede wszystkim znalazłem aplikację fbgrab, czyli zrzut ekranu w terminalu. Czyli jednak nie będę musiał terroryzować Was za pomocą zdjęć ekranu, tak jak się początkowo obawiałem. Kolejna sprawa to testowanie przeglądarek. Jest w3m, links, lynx, elinks i jeszcze parę innych. Przetestowałem chyba wszystkie i zostałem ostatecznie przy tym, z czym zacząłem – w3m. Może nie ma najwięcej opcji, ale działa szybko i renderuje chyba najlepiej – widać to szczególnie przy odwiedzaniu naszego forum.
Odkryłem też NetSurf. Jest to przeglądarka, która może działać bez zainstalowanego trybu graficznego, ale jest w pełni graficzna. Zabrałem się za instalację, ale zatrzymałem się w pół drogi, bo to jednak już nie jest terminal! Zostawiłem więc NetSurf jako niekoszerny (PS później odkryłem links2, też ma tryb graficzny, ale także niedostępny w repozytoriach openSUSE)
Co jest jednak koszerne, to Browsh. Przeglądarka, która działa naprawdę w trybie tekstowym, obsługuje wszystkie najnowsze technologie – JavaScript, video, a nawet WebGL! Jak to działa? Więc najpierw uruchamia w tle Firefoxa, następnie cała strona przerabiana jest na ASCII art (poza tekstem, który zostaje tekstem) i już! Nawet filmy na YouTube można oglądać! Problemem tej przeglądarki jest jednak to, że odpalając wszystkie technologie nie jest już ona szybka. Działa tak naprawdę wolniej niż goły Firefox, jest to zatem bardziej ciekawostka niż coś, co mogę wykorzystać, aby ożywić stary sprzęt.
Na koniec dnia naszła mnie refleksja: przestałem uważać ten komputer za stary i wolny. Strony otwierają się natychmiastowo, reddit śmiga szybciej niż na moim „normalnym” komputerze, a odpalanie muzyki, radia internetowego, to raptem jedna linijka (wyszukana z wcześniej wpisywanych). Odpisałem też dzisiaj na pierwszego maila z terminala (dopiero teraz, bo mało maili piszę), też poszło bardzo sprawnie. Oczywiście, niektóre rzeczy nadal robię sprawniej w telefonie czy na Surface Pro, ale myślę, że uda się mi to eliminować coraz bardziej.
Dzień 5
Powoli chyba będę musiał przechodzić na wpis co drugi dzień, bo po prostu jest coraz mniej do raportowania. Wszystko, albo prawie wszystko działa tak, jakbym chciał. Tzw. drobnica sprawia mi jeszcze problemy, np. zainstalowałem mkchromecast, abym mógł puszczać muzykę (radio internetowe) przez duże głośniki. Znów odezwał się trochę żal, że wybrałem openSUSE, a nie Ubuntu, bo pod Ubuntu bym napisał „sudo apt install mkchromecast” i już działa. Wiem, że naprawdę działa, bo zarówno na mój wcześniej wspomniany serwer na strychu zainstalowałem go bez problemu, także udało mi się to zrobić jedną linijką dla Raspberry Pi Zero, które jest mózgiem przerobionego boomboxa. Teraz niestety musiałem kompilować, ciągle czegoś brakowało, i jak ostatecznie udało mi się przebrnąć i dostałem swoje pliki binarne, to… nie działa. Nie znajduje żadnego Chromecasta. Przypuszczam, że to kwestia ustawień firewalla, który standardowo jest bardziej restrykcyjny na SUSE niż na Ubuntu, ale sobie zwyczajnie odpuściłem. I tak osiągnąłem swój cel – wystarczy że wbiję się zdalnie na serwer na strychu za pomocą SSH i tam odpalę. Jest to i tak tylko jedna linijka: „ssh -t llothar@wcaleniedobryadres.duckdns.org 'mkchromecast –source-url https://stream.nowyswiat.online/mp3'”. Wpisalem to w alias w .bashrc (taki autostart) i jest jedno słowo do wpisania.
I teraz pytanie: po co tak naprawdę ustawiać wszystko na laptopie, jeżeli mogę mieć wszystko skonfigurowane na serwerze na strychu? Wystarczy tylko tam się podpiąć zdalnie i nie ma praktycznie różnicy. Trzeba się nad tym zastanowić. Zasadniczo eksperyment przeprowadzam tylko w domu, więc dostęp zawsze mam. Mógłbym brać tego laptopa gdzieś, gdzie nie ma internetu, tylko po prostu nie mam takiego zapotrzebowania. Z okazji sytuacji koronawirusowej i tak nigdzie daleko nie jeżdżę, żeby mieć gdzieś czas dla siebie poza domem. Jeszcze jest kwestia braku konfiguracji WiFi. Nie żeby to było niemożliwe, tylko, jak pisałem wcześniej, boję się grzebać, żeby nie zepsuć. Może jednak spróbować, i w najgorszym przypadku potem przenieść się na to Ubuntu…?
Dzień 5.5
Ha, z tym Ubuntu to nie ma tak prosto. Przed 20.04 można było sobie ściągnąć wersje z starym instalatorem, który pozwalał na podłączenie się do WiFi w czasie instalacji. Teraz takiej opcji już nie ma, więc wymagane jest trochę dodatkowej pracy. Logiczne, bo kto stawia serwer na WiFi? (ja, bo kable sieciowe nie sięgają na strych) W openSUSE taka opcja całe szczęście ciągle jest. Tutaj jednak z kolei sieci są konfigurowane przez tzw „wicked service„, który jest ponoć super, ale nie ma dobrego konfiguratora, który by mi wyszukał łatwo sieci, zapamiętał hasła itp. Znów – bo i po co, bo serwery raczej zmienne pod tym względem nie są. Ciekawostka – dlatego właśnie instalując openSUSE z okienkami domyślnie przypada nam inny manager sieci niż wersja serwerowa. Tak więc poddaję na razie zawody i nie mieszam. O ile ten komputerek jest szybki w obsłudze, to jednak nie przeinstalowuje on systemu w 5 minut, jeżeli coś zepsuję.
Dzień 6
To musiało się stać. Postanowiłem zaryzykować. Odpaliłem Yast’a, czyli główny panel sterowania openSUSE, zmieniłem „wicked service” na „NetworkManager” i… wszystko działa! Ja wiem, że nie robię tą radością najlepszej reklamy linuksowi, ale po prostu pełnia radości mnie ogarnia. Jest fantastyczne narzędzie 'nmtui’ do quasi-graficznego zarządzania sieciami WiFi. (tui – text user interface, cli – command line interface. Ten pierwszy rysuje okienka tekstem, ten drugi wypisuje ciągle nowe linijki). Zrobione jest na podstawie tzw. ncurses, czyli takie okienka a’la Norton Commander – starsi czytelnicy będą pamiętać co to. Jestem kontent.
Na nieco innym froncie, przez weekend w domu moim pojawiło się przeziębienie, co zgodnie z tutejszymi zaleceniami każe pracować z domu i wysyła na COVID19 drive-thru. Tak więc testy pracy z terminalem w terenie niestety muszą trochę poczekać.
Druga część dnia i kolejny sukces. Udało mi się osiągnąć coś, co naprawdę ciężko wygooglać. Ustawiłem klienta poczty alpine tak, że odbiera pocztę z dwóch skrzynek i wysyła odpowiedzi z dwóch różnych kont. Wiem, wiem, kolejna „reklama linuksa” ale te problemy dotyczą tylko terminala. Jak chce się być hipsterem (młodzież jeszcze tak mówi?), to trzeba się trochę wykazać. Problem tych terminalowych aplikacji jest taki, że opcji konfiguracji mają naprawdę 30 razy więcej niż taki Outlook, a jako że mało kto ich już używa, to mało ludzi w internecie o różne problemy pyta… Nie będę pisał tutaj tutoriala, ale jakby coś ktoś kiedyś potrzebował, to zapraszam do kontaktu. Obiecuję odpisać z terminala.
Dzień 7
Taka refleksja mnie nastała, że Internet jednak zubożał względem tego, jak wyglądał 15-20 lat temu. Muszę tutaj wykazać się sporą dozą ostrożności, ponieważ takie sentymenty mogą wydawać się bardzo naiwne, szczególnie w kontekście życia w terminalu. Jak okienka na dobre zdominowały sferę użytkową wraz z pojawieniem się Windows 95, miałem 10 lat, tak więc nostalgii za terminalem nie mam prawa specjalnie mieć. Owszem, z jakiegoś powodu pamiętam, że w Norton Commander kopiuje się za pomocą F5, a kasuje F8, ale niewiele więcej. Również twierdzenie, że teraz z jakiegoś powodu Internet jest uboższy, może wydawać się bardzo hipsterskie i wyciskanie kontrowersji na siłę. No ale do meritum – o co mi chodzi? Wspominałem już, że możliwości konfiguracji dawnych klientów poczty jest nieporównywalnie większa niż to, czego większość ludzi używa dzisiaj, czyli Gmail w przeglądarce. Zauważam podobne tendencje w innych miejscach. Np taki chat. Kiedyś był IRC, otwarty standard, każdy miał dostęp, kto chciał. Dzisiaj jest Slack czy Discord – prywatne, komercyjne, oparte o zamknięte protokoły. Jeżeli nawet jest możliwość podpięcia się tam z własną aplikacją, nie jest ona traktowana na równi z tą oficjalną – zapewne stąd moja wersja Slacka na terminal nie działa. Tak samo Spotify dyskryminuje wcześniej wspomnianą aplikację Tizonia, gdzie odtwarzanie nowej playlisty jest od jakiegoś czasu opóźniane o 30 sekund.
Doskonale sobie zdaję sprawę, że stare już nie wróci, i że nowe jest takie a nie inne z konkretnych powodów. Ot, refleksja nad „kosztem postępu”.
I to by było na razie na tyle. Za jakiś czas zdam raport, ile wytrzymałem.
Cały tekst powstał w edytorzy vim. 95% googlania problemów i co-jak zrobić przez w3m.
Ja termianl w 99% uzywam do obslugi GITa, z 30 aliasow przygotwnaych by wszystko dzialal dokladnie tak jak chce 🙂
Co do konsole to cmd windowsa to jeden wielki crap (sprobj przekazac qouty w jakims nie trywialnym skrypcie), bash FTW.
Ja obie prace dyplomowe napisałem we VIM-ie 😉 Niestety kariera zawodowa pchnęła mnie w objęcia Windowsa i teraz siedzę w trybie okienkowym jak jakiś profan…
No posiadanie widowsa nie przeszkadza w uzyciu Basha 🙂 cygwin lub mingw daje namiastke sreodowsika linuxowego, choc ostatnio sam MS dal w Win10 mozliwosc odpalania kodu Linuxa 🙂 (odwortnosc Wine).
Jedyna zecz jaka mnie boli to odpalanie konsoli cmd z poziomu basha wymaga troche zabawy by obejsc wszystkie bledy
Tak, znam Cygwina, MiniGW i Windows Subsystem for Linux (tak, tak to się nazywa), ale jak się robi zawodowo w .Net Frameworku to korzystanie z nich mija się z celem…
Używam Linuksa od 2002 i przeszedłem wszystkie te atrakcje pracy w terminalu, o których wspomniano w artykule. Jego wszechstronność i elastyczność tak mnie zachwyciła, że nawet otwarłem firmę z myślą o komercyjnej zabawie z Linuksem. Rzeczywistość trochę zweryfikowała moje oczekiwania i o ile dłubanie na własne potrzeby było naprawdę fajne, to jednak robienie tego komercyjnie już takie fajne nie było. Zmieniłem profil swoich działań, niemniej nadal używam Linuksa, a dokładnie Debiana w wersji stabilnej + backports dla nowszych wersji programów, które muszę używać w pracy. Ponieważ część zadań wymaga Windows, to używam go w maszynie wirtualnej opartej na VirtualBox. I jestem zachwycony, jak to świetnie działa. Do poczty używam Evolution, do pracy zdalnej Remmina, do łączenia VPN – Network Manager z dodatkowymi modułami.
A to ciekawi mnie, czy może testowałeś na tym Windows w wirtualce podłączanie urządzeń – skaner, drukarka, urządzenia medyczne – przystosowane do działania tylko pod windows itp. Bo w wine to na ogół działało źle i to mi zniechęciło jakichś użytkowników. Gdyby z wirtualki dało się nad tym zapanować, byłoby to jakieś rozwiązanie.
Nie za szczególnie, choć używałem wirtualki z Windows do aktualizacji oprogramowania na telefonach Sony, do sieciowego seryjnego skanowania dokumentów z automatycznego podajnika na urządzeniu wielofunkcyjnym Samsunga oraz jako sieciowego serwera druku dla urządzeń fiskalnych (tj: jedna drukarka fiskalna dla jakiejś tam puli końcówek roboczych). Jednakowoż kwestie sprzętowe nie były szczególnym obiektem moich zainteresowań. Dla mnie wystarczało, że w wirtualce Windowsy były niesamowicie stabilne.
Super eksperyment i jego opis, LLothar! Czytało się świetnie. Rzeczywiście nie wszyscy zdają sobie sprawę, jak wymagające dla sprzętu stały się stronki internetowe i webaplikacje. Motyw zainstalowania openSUSE przemawia do mnie, choć znów część osób może kompletnie nie rozumieć 😉 Akurat ja najczęściej instaluję linuksy ludziom którzy potrzebują „mieć podobnie do windows”, więc muszę się kierować nieco czym innym przy wyborze distro – też jest to cała epopeja, bo nie wszystko jest tak oczywiste jak w poradach które można znaleźć na forach.
I zgadzam się że kiedyś Internet był ciekawszy – mniej skomercjalizowany i sterytorializowany. Zdaje się że tamto były czasy pionierów i zdobywców, a teraz został skolonizowany przez resztę ludzkości, z wszelkimi tego konsekwencjami 🙁
Zaskoczyło mnie że jesteś jednak ode mnie młodszy 😮 Mnie win95 zastało w wieku 18 lat…