Użyteczne mniej znane narzędzia trybu tekstowego systemu linux

W ostatnim czasie niestety nie miewam za dużo czasu na napisanie naprawdę dobrego dłuższego tekstu.Nie wiem też,czy nie będę musiał na dłuższy czas przerwać pisania tutaj.Jeśli się na to zdecyduję na pewno pojawi się stosowna informacja.

Tymczasem jednak, może choć dla niektórych czytelników interesująca może być lista ciekawych narzędzi dostępnych w systemie Linux o których nie wspomina się w standardowych podręcznikach – uważam,że ma to całkiem sporo sensu. Część z tych aplikacji jest instalowana domyślnie,część trzeba dopiero zainstalować.

  • split – jest z kolei narzędziem do dzielenia plików w systemie Linux. Podział można przeprowadzić na wiele sposobów np:

split -b1m nazwa a

dzieli plik o nazwie „nazwa” na części o rozmiarze 1mb i nazwach zaczynających się na literę „a”.

Jeśli jednak chodzi o archiwa polecam choćby zipsplit.

  • cat – choć jest to stosunkowo prymitywne narzędzie stosowane głównie do wyświetlania zawartości plików można też łączyć ich zawartości. wystarczy wpisać:

cat nazwa1 nazwa2 > nazwa_out

co ciekawe – pliki można też odczytać od końca używając polecenia tac.

  • bc – rodzaj kalkulatora, domyślnie operuje na liczbach całkowitych. wyjście przez „quit”
  • links i lynx – przeglądarki stron www. Pierwsza dysponuje klasycznym menu,druga bywa bardziej kolorowa. Z przeglądarki lynx można wyjść naciskając „q”
  • mc – większość administratorów zapewne i tak korzysta z tego menadżera plików podobnego do Norton Commandera. Wyjście przez komendę F10
  • nano / pico – stosunkowo prosty i przyjemny dla użytkownika edytor tekstu
  • tar – teoretycznie jest narzędziem archiwizacji,jednak jego domyślą funkcją było łączenie plików w 1 dla napędu kasetowego. Można nim zatem zarchiwizować również bez równoczesnej kompresji pliki poleceniem:

tar -cf archive.tar plik1 plik2

  • chroot – uruchamiany z prawami roota program który zmienia katalog główny uruchamianej aplikacji. Choć w teorii niektórzy mogą go traktować jako „coś w rodzaju wirtualizacji” nie jest całkiem bezpieczny i wymaga do uruchomienia konta root.
  • dd – ponieważ w linuksie wszystko jest plikiem, jest to narzędzie do odczytu i kopiowania niestandardowych plików. Z narzędzia dd należy korzystać ostrożnie. Dość powszechnym zastosowaniem jest tworzenie kopii dysków (również dysków twardych), odzyskiwanie danych i nie tylko. dzięki dd można odzyskać skasowane i nie nadpisane pliki. Przykład zastosowania:

dd if=/dev/cdrom of=/home/user/obraz_plyty.iso   -> tworzenie obrazu płytki

  • diff – narzędzie do porównywania zawartości plików

diff plik1 plik2  -> wyświetla różnice

  • factor – narzędzie do faktoryzacji mniejszych liczb (rozkład na czynniki pierwsze)
  • fbi – przeglądarka obrazków (tylko dla konsoli,nie dla jej emulatora ze środowiska graficznego)
  • fbgs – przeglądarka pdf – jak wyżej (uwaga: konwertuje strony do tiff w celu przeglądania)
  • fdisk , cfdisk – narzędzia do partycjonowania dysków
  • find – narzędzie do szukania plików przykładowe wyszukiwanie:

find katalog -name ‚ala_ma_kota’ -> szuka w danym katalogu pliku o nazwie ala_ma_kota

  • lrzip i (w przypadku rozpakowywania plików tar-owanych) lruntar – obok narzędzi do archiwizacji w formacie xz,bzip2 i gzip (oczywiście posiadanie jak największej ilości narzędzi do kompresji/dekompresji jest dobre,a tych 3 właściwie konieczne)jest to jedno z najwydajniejszych narzędzi jakie można zastosować w kompresji plików.Zwłaszcza dużych plików, takich po kilkaset megabajtów.
  • mcrypt – zastępca crypt, systemowe narzędzie do szyfrowania.Stosunkowo prosty, polecałbym raczej gpg.
  • md5sum i sha*sum (np.sha256sum,sha512sum)- narzędzia do sprawdzania sum kontrolnych plików, alternatywnie rhash dla mniej popularnych funkcji
  • mkfs – narzędzie do formatowania dysków (alternatywnie mkdosfs)
  • outguess – narzędzie steganograficzne do ukrywania informacji w obrazkach
  • sc – arkusz kalkulacyjny dla trybu tekstowego
  • vi – nieco starszy i mniej przyjemny w obsłudze edytor tekstu (choć i tak dużo prostszy od emacsa)
  • wc – program do analizy statystyk tekstu w pliku określający ilość linijek,słów znaków.

wc plik

  • zgv – przeglądarka plików graficznych (dla SVGAlib oraz SDL)

Mam nadzieję,że powyższe informacje okażą się przydatne lub przynajmniej ciekawe.Pozdrawiam.

Reklamy

Debian 8 jest dostępny

Nowa wersja stabilna systemu Debian Linux właśnie została wydana. Z tej przyczyny moje wpisy mogą się opóźnić.

W nowym systemie Debian dostępne są m.in:

  • Apache 2.4.10
  • Asterisk 11.13.1
  • GIMP 2.8.14
  • zaktualizowana wersja środowiska graficznego GNOME 3.14
  • kompilatory GCC 4.9.2
  • Icedove 31.6.0 (Mozilla Thunderbird ze zmienioną nazwą i logo)
  • Iceweasel 31.6.0esr (Mozilla Firefox ze zmienioną nazwą i logo)
  • środowisko graficzne i aplikacje KDE 4.11.13
  • LibreOffice 4.3.3
  • Linux Kernel 3.16.7-ctk9
  • MariaDB 10.0.16 oraz MySQL 5.5.42
  • Nagios 3.5.1
  • OpenJDK 7u75
  • Perl 5.20.2
  • PHP 5.6.7
  • PostgreSQL 9.4.1
  • Python 2.7.9 oraz 3.4.2
  • Samba 4.1.17
  • Tomcat 7.0.56 oraz 8.0.14
  • hyperwizor Xen 4.4.1
  • środowisko graficzne Xfce 4.10

Mnie osobiście interesują aktualizacje również innych aplikacji. Należy jednak zwrócić uwagę,że system Debian 8 nie wspiera obecnie architektury mikroprocesorów SPARC i Architektury Itanium oraz 32 bitowej wersji dla s390.

Poza tym kolejnym problemem jest kontrowersja wprowadzenia systemd. Sprawa jest na tyle poważna,że jednak zaczynam się zastanawiać nad alternatywnymi rozwiązaniami,choć nie wiem,czy Devuan czy inne tego typu systemy będą w stanie zastąpić Debiana. W najgorszym przypadku trzeba byłoby przejść na Slackware, nawet pomimo ograniczonej liczby pakietów dostępnych przynajmniej przez slapt-get.

Pobrać Debiana można na stronie https://www.debian.org/CD/

System Linux – dlaczego używam,dlaczego jeszcze każdy nie używa

https://i0.wp.com/upload.wikimedia.org/wikipedia/commons/thumb/3/35/Tux.svg/512px-Tux.svg.png Pomimo praktycznego monopolu firmy Microsoft rodzina systemów GNU Linux jest pierwszą po produktach firmy Microsoft grupą samodzielnych systemów operacyjnych stosowanych we współczesnych komputerach.Ponadto system operacyjny firmy Google – Android, wywodzący się z tej samej rodziny co GNU Linux jest obecnie najpopularniejszym systemem na rynku urządzeń mobilnych. Ponieważ tak się składa,że jestem użytkownikiem systemu Debian należącego do tej rodziny postanowiłem wypowiedzieć się tym razem o tym,co mi się podoba a co mi się nie podoba w tym oprogramowaniu. Żeby nie było zbyt miło – wymienię podstawowe wady systemu Linux:

  • Tak naprawdę trzeba na starcie dysponować choćby podstawową wiedzą o systemie – chyba,że to Ubuntu.
  • Linux nie jest znany, bo nie jest znany – Windows wcale nie jest lepszym systemem,jest po prostu systemem popularniejszym i lepiej poznanym przez mniej świadomych użytkowników.
  • Mniej sterowników – co prawda developerzy intensywnie nad tym pracują a czasy się zmieniają i dużo gorsza sytuacja jest prawdopodobnie w przypadku systemów z rodziny BSD która jest jeszcze mniej popularna – ale nie zawsze wszystko działa.
  • Pomoc techniczna – w przeciwieństwie do firmy Microsoft zarabiającej na licencjach na oprogramowanie, duża część twórców oprogramowania z rodziny Linux zarabia bezpośrednio, lub pośrednio na udzielaniu pomocy technicznej. Linux ma sporo użytkowników i wspaniałą społeczność, ale gdy coś nie działa trzeba włożyć trochę wysiłku
  • Problemy z komercyjny oprogramowaniem – prawda jest taka: komercyjne oprogramowanie w dużej części pisane jest dla środowiska Windows. Co prawda niektóre zaawansowane narzędzia można uruchomić za pomocą narzędzia WINE, inne programy komercyjne są nawet dostępne dla środowiska Linux – np NX firmy Siemens czy narzędzia MES takie jak Ansys (Choć głównie RHEL) czy po części Abaqus czy inne. Bardziej egzotyczne oprogramowanie stworzone dla Windows może sprawić jednak spore problemy, a uruchomienie pod WINE nie zawsze jest kwestią kilku kliknięć.
  • Problemy dla graczy z komercyjnymi grami – jak wyżej.Generalnie jednak WINE, czy inne narzędzia mogą czasem pomóc,poza tym coraz popularniejsza jest platforma STEAM. Choć gry dla Linuxa nie są tak liczne i z reguły są dużo prostsze – to jednak istnieją.
  • Zapisywanie często jakiś danych na dysku – logi i inne rzeczy są generalnie bardzo pożyteczne,ale to m.in one mogą być przyczyną dawnego (czy na pewno) problemu pt. parkowanie dysku,szeroko znanego jakiś czas temu jako „Ubuntu niszczy dyski w laptopach” (tak naprawdę – nie Ubuntu, ale raczej producenci są głównym winnym,a problem robi się intensywniejszy głównie przez to,że system dużo zapisuje na dysku – sam problem daje się zresztą obejść jeśli zrezygnować z zarządzania energią). Osobiście uważam,że takie zarządzanie dyskami przez system może nie podobać się również w przyszłości posiadaczom dysków SSD które mają ograniczoną liczbę cykli funkcjonowania.
  • Linuxa nie można traktować jako w pełni ukończonego produktu finalnego w przeciwieństwie do BSD czy Windows – niektóre oprogramowanie dostępne z systemem jest niezupełne,lub słabiej przetestowane niż powinno. Mimo to mamy dostęp i tak do ogromnej liczby oprogramowania.
  • Problemy z kompatybilnością wsteczną i błędami przy zastępowaniu nie-wolnych sterowników – jako osoba używająca tego systemu dłużej muszę przyznać,że to bywa szczególnie irytujące.Cóż z tego,że np. od teraz system nie musi zawierać nie-wolnych sterowników jak jądro systemowe zaczyna wariować z Wifi ? (atheros, już chyba naprawiłem). Kompatybilność wsteczna jest jednak dużo gorsza – program który ma jedynie dwa lata ma problem z uruchomieniem/kompilacją.Jeśli nie jest się programistą – ma się problem jeśli wsparcie aplikacji czy sterownika zostało zakończone. Z drugiej strony przypadki takich aplikacji i sterowników są stosunkowo rzadkie.

No dobrze.Skoro ten system ma tyle wad, to po co w ogóle go używać ? Otóż dlatego,że posiada szereg dużo ważniejszych zalet:

  • Systemy GNU Linux dają wolność programiście i użytkownikowi – wolność modyfikacji kodu i pewnej weryfikacji CO uruchamia na swoim komputerze. W zamkniętym systemie Windows kupujemy kota w worku,a licencja zabrania analizy.Samą analizę można teoretycznie prowadzić po dezasemblacji kodu – ale jest to trudne.
  • Co za tym idzie – dużo większa możliwość konfiguracji i dostosowania do zapotrzebowania użytkowników oraz relatywnie szybkie namierzanie i usuwanie błędów – co szczególnie istotne można wybrać spośród wielu środowisk graficznych a je same dostosować bardziej niż Aero. Nikt nie przymusza do kafelków i środowiska z maksimum „wodotrysków”. System nie musi pożerać dziesiątków gigabajtów miejsca na dysku. Ba – można nawet nagrać na nośniku takim jak płytka CD czy Pendrive swoją kopię systemu.Od lat.Windows PE istnieje od niedawna i jest bardzo ograniczony.
  • Uniwersalność platformy Linux – dostępne są wersje dla bardzo różnych mikroprocesorów a po pewnych modyfikacjach system ten można uruchamiać na bardzo słabych urządzeniach i układach elektronicznych. Telefony komórkowe,Raspberry Pi i wiele innych narzędzi.A jednocześnie serwery IBM czy rzadsze komputery z architekturą SPARC, czy PowerPC. (Choć zależy to od konkretnej dystrybucji !). System radzi sobie też z dużo większą ilością dysków i procesorów niż Windows.
  • Pomimo mniejszej liczbie sterowników generalnie nie jest tak źle – a w przypadku oprogramowania WINE jednak coś daje.
  • Mnóstwo dostępnego oprogramowania – w systemie DEBIAN którego używam pakietów (instalatorów) jest ok 37500 [edit: w wersji 8 już ponad 43000].Nie wszystkie z nich są oczywiście instalowane od razu,nie wszystko to też samodzielne aplikacje – ale i tak w porównaniu z Windows ma się dostęp do dużo większej liczby użytecznych narzędzi, a system świeżo po instalacji można uznać za w miarę funkcjonalny. W dodatku, dzięki narzędziom takim jak APT GET znalezienie i zainstalowanie części użytecznych aplikacji/znalezienie nowych jest znacznie łatwiejsze. Przyznaję – niektóre rzadsze oprogramowanie przydało by się nadal. Programów CAD/CAM które byłyby naprawdę groźnymi i uniwersalnymi rywalami dla narzędzi komercyjnych jest wciąż za mało (są choć naprawdę dobre zamienniki), w dodatku chciałbym widzieć zamienniki większej ilości narzędzi kryptograficznych i steganograficznych niż to jest obecnie.Niektóre prostsze programy nie mają wszystkich potrzebnych moim zdaniem funkcji. Niektórych rzeczy trzeba wytrwale szukać w internecie. Z drugiej jednak strony – jest to więcej narzędzi,niż użytkownik na co dzień potrzebuje i to bez wielotygodniowego szukania.I z reguły za darmo. Darowanemu pingwinowi nie zagląda się w dziób 😉 – no nie ? Zresztą potężnych narzędzi jest aż nadto:
    • Pakiet LibreOffice – jest  dobrym zamiennikiem pakietu biurowego MS-Office,choć niestety kiepsko sobie radzi z rozszerzeniami nowego typu a Microsoft nie dba szczególnie o zgodność swojego pakietu z pakietem LibreOffice. Główną jego wadą może być brak bardziej zaawansowanych narzędzi obecnych w nowszych wersjach pakietu MS Office. Tym niemniej istnieje nadal szereg uniwersalnych formatów,a narzędzie to jest więcej niż wystarczające do większości normalnych domowych zastosowań i nie tylko.
    • GIMP – program GIMP jest jednym z lepszych i potężniejszych programów graficznych do grafiki rastrowej.A przy tym jest dostępny za darmo.
    • Inkscape – to program do grafiki wektorowej, może być stosowany w zastępstwie programu Corel Draw.
    • Blender – komercyjne narzędzia takie jak 3D Studio Max mogą nie być w zasięgu twojej kieszeni. Ale Blender jest dostępny dla każdego kto chce. Oto jak zaawansowane animacje można stworzyć przy pomocy Blendera:
    • Narzędzia matematyczne i statystyczne – zamiast Matlaba – Charakterystyczne dla Linuxa GNU Octave i GNU R oraz Scilab INRIA ENPC.
    • Komplet narzędzi dla serwerów – coś czego normalnie nie można dostać z systemem Windows. Od serwera Apache umożliwiającego postawienie własnego serwera www,poprzez serwery FTP,SSH czy SQL po bardziej egzotyczne usługi.
    • Narzędzia do analizy i diagnostyki działania komputerów i sieci
    • Wiele narzędzi programistycznych – dostępnych jest wiele pakietów obsługujących nie tylko języki takie jak C czy Java,ale i Adę (Gnat),Fortran, Haskell, Lisp,Erlang itd.
    • Potężne narzędzie kryptograficzneGPG/GnuPG może być z łatwością zainstalowane. Dodatkowo w nowszych systemach – np Ubuntu kilka kliknięć w zupełności wystarczy by domyślnie włączyć szyfrowanie dysku.
    • Możliwość zainstalowania narzędzi do analizy danych graficznych takich jak Gwyddion i ImageJ oraz innych narzędzi z powodzeniem stosowanych w środowisku naukowym.
    • Sporo narzędzi dla poligrafii i innych specyficznych zastosowań
    • Ponadto muszę przyznać,że nawet spośród narzędzi CADowskich istnieją bardzo interesujące rozwiązania jak LibreCAD,FreeCAD można też skorzystać z jednego z najstarszych narzędzi otwartoźródłowych (niestety niedostępny nawet z Debianem) – BRL CAD. choć wielu narzeka ze względu na to,że program (czy raczej pakiet) ten nie używa w praktyce np. myszy i jest traktowany jako prymitywny (Repozytorium BRL CADa istnieje od 1983 roku, projekt jest wręcz starszy od Linuxa) Istnieje też kilka ciekawych narzędzi do projektowania elektroniki.
    • Wiele drobnych lecz bardzo użytecznych narzędzi umożliwiających wykonanie operacji o jakich przeciętny użytkownik Windows nie ma pojęcia. I wiele użytecznych większych narzędzi.Mnie podoba się np. Dia.
  • Jest albo ZA DARMO albo TAŃSZY niż Windows – całkiem ważna sprawa.
  • Bezpieczeństwo – pod Windows bezpieczeństwo w praktyce nie istnieje. Praca z ograniczonymi uprawnieniami użytkownika to katorga,istniejące latami nie załatane dziury w systemie i problemy z podstawowymi narzędziami takimi jak firewall.Linux nie ma problemów z tymi kwestiami, może na nim pracować naraz bardzo wielu użytkowników i w większości przypadków naprawdę nie potrzeba korzystać z konta administratora (root). Kompleksowa obsługa zdarzeń i logów systemowych, jak również możliwość wprowadzenia stosunkowo skomplikowanych polityk bezpieczeństwa (np. SE Linux,ale nie tylko),narzędzi wykrywania intruzów w systemie ma duże znaczenie w systemach Linux.
  • Zainstalowanie sobie wirusa jest tu nieco trudniejsze,poza tym wirusów jest znacznie mniej (choć wbrew mitom – wirusy atakujące systemy UNIXowe istnieją,a odporności na niektóre wirusy atakujące samą przeglądarkę może nie być)
  • Stabilność – co prawda od czasów Windows XP systemy Windows są stabilniejsze niż kiedyś,ale Linux i tak jest liderem.
  • W gruncie rzeczy architektura systemu jest oparta o dużo prostsze,i bardziej zrozumiałe (nie tylko dla programisty) zasady – tak jeśli chodzi o środowisko tekstowe jak i graficzne.
  • Ze względu na znaczną liczbę narzędzi sieciowych Linux świetnie nadaje się na serwer (a nawet klaster !)
  • Tryb tekstowy pozwala na zrealizowanie bardzo skomplikowanych operacji z klawiatury. Windows posiada co prawda również narzędzia takie jak PowerShell ale filozofia działania tych narzędzi jest zupełnie inna tak samo jak zużycie zasobów.

Podsumowując: Choć w systemie Linux jest dość dużo „grzebania” a wiele aplikacji wymaga w nim nadal dopracowania, jest to świetne narzędzie z powodzeniem mogące w zdecydowanej większości przypadków zastępować system Windows i jego narzędzia. Oczywiście z mojej perspektywy dość bolesną wadą są problemy z kompatybilnością wsteczną niektórych starszych aplikacji, znajdowanych w internecie zarówno w wersji binarnej jak i kodu źródłowego oraz ewentualne problemy związane ze sterownikami i pomocą techniczną – tym niemniej nie zmieniają one faktu,że generalnie jest to świetny system oferujący ogromne możliwości i to bez ponoszenia ogromnych wydatków na oprogramowanie. Ponadto nie należy przesadnie panikować w kwestii wad które wymieniłem.Windows bowiem ma ich też całkiem sporo:

  • Bugi
  • Bugi
  • Bugi 😀
  • Wirusy
  • Cena i uroki rejestrowania systemu przez internet
  • „Interfejs użytkownika”
  • Problemy z konfiguracją
  • Wymagania sprzętowe i zużycie zasobów
  • Braki w oprogramowaniu i ograniczenia licencyjne
  • Problemy z bezpieczeństwem (patrz 4 pierwsze podpunkty 😛 )
  • Ograniczona funkcjonalność po zainstalowaniu.
  • Zamknięty charakter oprogramowania
  • itd.