Terminal w r

Ogólne pytania dotyczące systemu
prezyk
Posty: 3
Rejestracja: 27 listopada 2014, 19:26

Początki w terminalu.

Post autor: prezyk »

Witam, korzystałem z różnych systemów opartych na jądrze linuks i trwało to może ponad pół roku, byłem zafascynowany ilością i użytkowaniem różnych środowisk graficznych, jednak przez opieranie się na wyklikiwaniu większości operacji nadal jestem zupełnym laikiem jeśli chodzi o tą rodzinę systemów. Chciałbym się w to wgłębić i dlatego przesiadłem się na Debiana i chciałbym nauczyć się jak najwięcej o obsłudze terminala i jego możliwościach. Od czego należy zacząć żeby jak najlepiej "zaprzyjaźnić się" z terminalem i jakie możliwości on daje? Czego nie można by było zrobić na debianie bez włączonego środowiska graficznego, a co środowisko graficzne umożliwia? Czy znacie jakieś kursy/tutoriale/blogi o możliwościach i obsłudze terminala?
Z góry dziękuję za każdą pomoc i radę.
Awatar użytkownika
marcin1982
Moderator
Posty: 1732
Rejestracja: 05 maja 2011, 12:59
Lokalizacja: Zagłębie Dąbrowskie

Post autor: marcin1982 »

Szukaj w ten sposób.

Jest jeszcze taka pozycja:
http://it-ebooks.info/book/2012/ .
klavierkrk
Beginner
Posty: 257
Rejestracja: 14 maja 2013, 17:18

Post autor: klavierkrk »

sorry za chaotyczny post.
nie mówimy o "terminalu", ale de facto to jest wstęp do programowania. W Linuxie (w odróżnieniu od Windowsa) nie ma patyczkowania, ale od razu jest konsola która jest oknem na świat programowania. Windows ukrywa świat kodu, ponieważ docelowy użytkownik Windowsa nie interesuje się kodowaniem/programowaniem/developingiem.
W Linuxie od razu wiadomo na czym polega informatyka, czyli na programowaniu. W Linuxie nikt niczego nie ukrywa. Komputer to programowanie - czy się to komuś podoba, czy nie.
Twórcy Windowsa oczywiście też o tym wiedzą, ale nie budują systemu który miałby być tak od razu nastawiony na programowanie.

w skrócie: mamy języki interpretowane i kompilowane.
kompilowane zostawię, a języki interpretowane (w skrócie) to mogą być języki skryptowe.

do języków skryptowych obecnie modnych zaliczamy: bash, python, awk (o Perlu nie wiem)
Mniej więcej te trzy rządzą konsolą linuxa. Polecam szczególnie Pythona, którego najszybciej wywołać:
python3 nazwaSkrypty.py
do tego warto dodać też: komendy Linuxa, czyli zbiór standardowych komend.

Dalej - KOMENDA najczęściej jest programem, który może mieć swoje parametry. Albo matematycznie: jest funkcją która ma input i output. Funkcja to jest coś takiego, która przeksztalca coś na coś. Jest input i jest output, oparte to na argumentach funkcji.

tak jak mówię - to nie jest żaden "terminal", to jest zwykły kod i programowanie. Liczą się de facto bash, python + zestaw z 60-70 komend + około 5-10 programów. Ktoś kto poznaję "skryptologię" (języki interpretowane), plus szybko zna najlepsze oprogramowanie działające w konsoli, to właśnie zazna potęgi Unixów...
prezyk
Posty: 3
Rejestracja: 27 listopada 2014, 19:26

Post autor: prezyk »

Jeśli chodzi o przedstawienie komendy to rozumiem, bo mniej więcej tak to sobie wyobrażałem, program oferujący funkcje, które po wpisaniu razem z nim w konsoli możemy wywołać i wykorzystać je do czegoś, co do programowania to kojarzy mi się ono raczej z pisaniem kodu (liznąłem trochę c++, ale z braku czasu niezbyt wiele, w zasadzie pomijalne ilości), kompilowaniem (choć nie wiem jak ono wygląda w przypadku złożonych programów czy elementów oprogramowania) itd., czyli w samej konsoli można się posługiwać "funkcjami" (nie wiem czy w przypadku wymienionych języków tak to się nazywa), które normalnie zapisuje się w kodzie programu pisanego w danym języku, np. w pythonie i modyfikować za ich pomocą system czy przeprowadzać różne operacje na plikach? Pytanie trochę z boku tematu, co rozumiesz przez "potęga Unixów", tzn. co to właściwie umożliwia (jeśli w ogóle jest to coś zrozumiałego dla osoby, która na tą chwilę z programowaniem ma niewiele wspólnego, choć chciałaby mieć)?

Dzięki za link do e-booka Marcin, szukałem też w google, ale chciałem też sam się zapytać osób, które w tym siedzą, żeby dowiedzieć się też czym to właściwie jest i co daje, żeby też wiedzieć jak się uczyć korzystać z tej opcji.
klavierkrk
Beginner
Posty: 257
Rejestracja: 14 maja 2013, 17:18

Post autor: klavierkrk »

prezyk pisze:Jeśli chodzi o przedstawienie komendy to rozumiem, bo mniej więcej tak to sobie wyobrażałem, program oferujący funkcje, które po wpisaniu razem z nim w konsoli możemy wywołać i wykorzystać je do czegoś, co do programowania to kojarzy mi się ono raczej z pisaniem kodu (liznąłem trochę c++, ale z braku czasu niezbyt wiele, w zasadzie pomijalne ilości), kompilowaniem
w językach skryptowych nie trzeba kompilatora, tylko po prostu odpala się srypt który może być edytowany dowolnym notatnikiem
prezyk pisze: czyli w samej konsoli można się posługiwać "funkcjami" (nie wiem czy w przypadku wymienionych języków tak to się nazywa), które normalnie zapisuje się w kodzie programu pisanego w danym języku, np. w pythonie i modyfikować za ich pomocą system czy przeprowadzać różne operacje na plikach?
Tak. Wszystko co można zrobić w konsoli, to można zapisać w skryptach:
bash / python (w pythonie chyba 97% rzeczy, nie jest w pełni kompabitylny z Linuxem - ale nie wiem, to trzeba sprawdzić) / Perl / awk.
Pisanie prostych skryptów mających powiedzmy 10-20 linii nie jest trudne, można napisać swój pierwszy skrypt po 1-2 dniach.
Polecam zacząć od Basha, później przejść do Pythona (Pythona3):

http://dief.republika.pl/main.html - kurs bash po polsku
http://wiki.bash-hackers.org/scripting/tutoriallist
http://www.thegeekstuff.com/tag/bash-tutorial/

Python:
http://www.python.rk.edu.pl/w/p/podstawy/
http://webhosting.pl/Python.kurs.progra ... ry.i.petle

Oprócz tego, ma Pan zwykle komendy, np. taka lista:
http://www.computerworld.com/article/25 ... sheet.html
http://linoxide.com/linux-command/linux ... eat-sheet/

książki o komendach nie ma sensu czytać, szkoda na to czasu. Komendy to rzecz na tyle prosta, że wystarczy z 5-7 stron jakiegoś wstępu i artykułu, a później lista komend i pokolei spróbować każdą. Wszystkie te komendy da się ubrać szybko w skrypt.

prezyk pisze: Pytanie trochę z boku tematu, co rozumiesz przez "potęga Unixów", tzn. co to właściwie umożliwia (jeśli w ogóle jest to coś zrozumiałego dla osoby, która na tą chwilę z programowaniem ma niewiele wspólnego, choć chciałaby mieć)?
Linux jest niby odmianą Unixa (chociaż nazwa Linuxa to na przekór: Linux Is Not UniX ... ale to inna historia :D ).
Właśnie to ruzmiem: jest terminal czy tam konsola. Od razu widoczna, szybko dostępna. Bardzo przyjemnie tutaj się pracuje z wszelkimi możliwymi językami skryptowymi.
Co to daje ? Np. ktoś korzysta z Linuxa powiedzmy 10 lat, nauczył się skryptować, ma tam zbior swoich 20 skryptów na pendrive, i wtedy taki system ma w małym palcu. Pod względem szybkości taki system może być znacznie lepszy od najnowszego Windowsa na najnowszym komputerze za 5000 zł. W takim systemie przyjemniej operuje się np. bardziej zaawansowanymi usługami typu obsługa własnego servera (SSH, FTP).

Chodzi o to, że w Windows użytkownik standardowy zachęcany jest do klikania myszką. W Linux od razu pokazywana jest konsola, nawet początkowy użytkownik zachęcany jest do pisania w konsoli. No i tak jak pisłem- za tą konsolą kryje się świat programowania, do którego już jest jeden kroczek...
Awatar użytkownika
Menel
Member
Posty: 1117
Rejestracja: 24 sierpnia 2013, 19:58
Lokalizacja: doktor informoparalityki

Post autor: Menel »

na początek
http://jakilinux.org/konsola/konsola-podstawy/
film:
https://www.youtube.com/watch?v=HTFfys3qCV0
tipsy:
https://www.youtube.com/watch?v=Zz3v4G_xDp4
i
http://bash.0x1fff.com/
https://en.wikibooks.org/wiki/Bash_Shell_Scripting

ogólnie to pełno tego w sieci..reszta wyjdzie w praniu, jak będziesz używał często to nawet nie zauważysz kiedy podstawy same wejdą do głowy ;>
klavierkrk
Beginner
Posty: 257
Rejestracja: 14 maja 2013, 17:18

Post autor: klavierkrk »

oprócz Basha, polecam jeszcze

1) awk - to jest język programowania który ma prawie 30 (!) lat. Specjalnie nadaje się do przekształcania zawartości plików, np. plików tekstowych. Tutaj jest tutorial awk:
http://www.grymoire.com/Unix/Awk.html

niektórzy uważają, że awk zostalo zastąpione przez Perl. Ale z tego co widać, to Perl powoli staje się coraz mniej popularny (przegrywa w starciu z Pythonem). A awk nadal się trzyma, a w wielu nowoczesnych korporacjach uważany jest za całkowity standard.
Dlatego, bo jest prosty i nie został zalany milionem dodatkowych wersji, bibliotek, etc.

2) python, który od Basha jest nowocześniejszy, niezależny od systemu operacyjnego (te same skrypty działają na Windows/Linux/MacOS). Python wygrywa starcie z Perlem - ale nie umiem wyjaśnić dlaczego.
W Debianie jest pewien myk, albowiem standardowo wykorzystywany jest Python2. Dlatego trzeba zainstalować Python3, a później zmienić allias is sprawdzić która wersja Pythona jest. Robi się to w 15 sekund, ale trzeba wiedzieć co zmienić.

Jak ktoś nie chce się uczyć Basha, a chce znać język skryptowy wszędzie działający (takze w "konsoli Windows") - no to wybór jest oczywisty: Python3.
prezyk
Posty: 3
Rejestracja: 27 listopada 2014, 19:26

Post autor: prezyk »

Dziękuję wszystkim za zainteresowanie się moim problemem, za udzielone wskazówki i linki do stron z informacjami i tutorialami. Postaram się wgłębić w posługiwanie się Linuxem od strony konsoli, poleceń i skryptów, fakt, że jest to mocno związane z programowaniem, albo że po prostu w pewnym momencie się nim staje jeszcze bardziej mnie zachęca do nauki. :)
Awatar użytkownika
mateuszek
Beginner
Posty: 117
Rejestracja: 04 sierpnia 2014, 20:42

Post autor: mateuszek »

ODPOWIEDZ