Programowanie w Ruby. Terminal dla początkujących - część 1
Damian Watroba
Software Engineer
Czas na omówienie drugiego punktu (Terminal) z wpisu Jak zacząć programować w Ruby w 7 krokach. Bez zbędnych ceregieli zapraszam do zapoznania się z treścią i wykonania kilku praktycznych ćwiczeń, które dla Was przygotowałem. Do dzieła!
Terminal - teoria
Terminal to podstawowe narzędzie w każdym systemie operacyjnym, zwane również konsolą lub wierszem poleceń. Za każdym razem, gdy usłyszysz jedno z tych określeń, będziesz wiedział, że chodzi właśnie o to. Umożliwia on komunikację z powłoką systemową, na przykład z bashem (domyślną powłoką Ubuntu). Powłoka działa jako pośrednik między systemem operacyjnym lub aplikacjami a użytkownikiem. Mówiąc prościej, konsola umożliwia wydawanie poleceń systemowi. Nie ma znaczenia, w jakim języku programujesz - im szybciej opanujesz to narzędzie, tym lepiej. Terminal będzie wykorzystywany do instalowania/uruchamiania programów na komputerze, zarządzania zasobami komputera, poruszania się po katalogach, tworzenia plików czy uruchamiania wcześniej przygotowanych skryptów. Umiejętności te są niezbędne podczas zarządzania serwerem, który nie posiada graficznego interfejsu użytkownika (GUI).
Skrót klawiaturowy otwierający terminal to ctrl + alt + t
Wiele osób stara się odwlekać naukę wiersza poleceń, szukając wersji programów z ładnym interfejsem graficznym. Jeśli jednak chcesz rozpocząć przygodę z programowaniem, terminal będzie nieodzownym elementem nauki, więc czas się z nim zaprzyjaźnić. Początki mogą być trudne, ale bez obaw.
Terminal - Praktyka
Na powyższym obrazku mamy już otwarty terminal Ubuntu, w którym można zobaczyć:
damian@rubydev:~$
Pierwsza część, przed dwukropkiem, to nic innego jak nazwa użytkownika, którą wybraliśmy podczas instalacji Ubuntu i nazwa naszego komputera. Jednak tylda ~ oznacza katalog domowy. Ostatni znak $ to tak zwany "znak zachęty". Następnie można wprowadzać polecenia.
Gdzie jestem?
pwd (Print Working Directory) - zawsze zwraca ścieżkę do miejsca, w którym aktualnie się znajdujesz. Jeśli się zgubisz, zawsze możesz użyć funkcji pwd polecenie.
W tym miejscu warto zauważyć, że zaraz po uruchomieniu konsoli zawsze znajdujemy się w swoim katalogu domowym, tj. / home / USER_NAMEgdzie USER_NAME oznacza nazwę użytkownika.
Pokaż mi, co masz!
ls (Lista) - jest to jedno z najczęściej używanych poleceń do wyświetlania zawartości katalogu, w którym aktualnie się znajdujemy.
Polecenia mogą również przyjmować argumenty (opcje), które w pewien sposób modyfikują zachowanie poleceń. Można je wpisywać razem lub osobno, np:
damian@rubydev:~$ ls -la
lub:
damian@rubydev:~$ ls -l -a
-l to opcja, która drukuje pliki i katalogi w formie listy ze szczegółowymi informacjami, podczas gdy -a lub --all wypisuje również pliki ukryte (czyli pliki o nazwach zaczynających się od kropki).
Przekazywane opcje są zwykle poprzedzane przez - lub --. Inną przydatną sztuczką jest wpisanie ścieżki do katalogu, którego zawartość chcemy sprawdzić zaraz po ls lub po przejściu opcji (jeśli ich używasz). W ten sposób można to zrobić bez zmiany bieżącej lokalizacji.
W tym przypadku dowiedzieliśmy się, jakie pliki mamy w folderze Dokumenty bez przenoszenia się z katalogu domowego.
Ruszajmy w drogę!
Pora nieco zgłębić system i nauczyć się po nim poruszać. Będziemy korzystać z cd (zmień katalog), aby przenieść.
Jeśli chcesz przejść do Dokumenty z katalogu domowego, polecenie będzie wyglądać następująco: cd Dokumenty. Aby upewnić się, że jesteś we właściwym miejscu, możesz sprawdzić to z już znanym pwd polecenie:
Jeśli chcesz wrócić, możesz użyć cd ..ale pamiętaj, że .. spowoduje powrót do katalogu nadrzędnego, a nie do miejsca, z którego wprowadzono polecenie. Może ten ekran lepiej zilustruje tę kwestię:
Warto też znać kilka skrótów klawiszowych, które pomogą pracować wydajniej. The cd lub cd ~ sama przeniesie Cię bezpośrednio do katalogu domowego, z dowolnego miejsca w systemie.
damian@rubydev:~/Pulpit/Praca$ cd
damian@rubydev:~$ pwd
Wybierz /, jeśli chcesz dostać się do katalogu głównego, tak zwanego "root". Jest to podstawowy katalog systemu, zawierający katalogi z plikami konfiguracyjnymi, zainstalowanymi aplikacjami i katalogami użytkowników (w tym katalog domowy).
damian@rubydev:~$ cd /
damian@rubydev:/$ pwd
/
Kolejną rzeczą, która ułatwi ci pracę, jest użycie przycisku TAB. Nie musisz za każdym razem wpisywać pełnej nazwy katalogu, do którego chcesz przejść, ani nawet pamiętać jego pełnej nazwy. Wpisując pierwszą literę katalogu i naciskając TAB, terminal zasugeruje dostępne opcje lub natychmiast wykona polecenie, jeśli istnieje tylko jedna możliwość. Wypróbujmy to:
damian@rubydev:/$ cd P[tab]
Pobrane/ Publiczny/ Ambona/
damian@rubydev:/$ cd P
damian@rubydev:~$ cd D[tab]
damian@rubydev:/$ cd Dokumenty/
Podczas tej sesji szkoleniowej będziemy często korzystać z tabulatora.
Pomóc?
Zapomniałeś, jakie opcje obsługuje <codecd? Możesz użyć wsparcia dokumentacji, które oferuje twój system. The mężczyzna (ręczne):
damian@rubydev:/$ man cd
Nie jest to jedyny sposób. Można również użyć funkcji --pomoc lub -h która wyświetli na przykład skróconą instrukcję pomocy:
damian@rubydev:~$ ls --help
Zadania:
1. Dowiedz się, jakie inne opcje oprócz -l -a w ls polecenie może zaakceptować i jakie szczegóły -l opcja zwraca dokładnie.
2. Ponieważ możesz poruszać się po katalogach, zapoznaj się ze strukturą plików swojego systemu.
Czas coś dodać i zmienić!
Aby utworzyć nowe katalogi, w których będziesz przechowywać swoje projekty, użyj polecenia mkdir (make directory), a następnie wybranej nazwy.
damian@rubydev:~/Pulpit$ mkdir Projekty
damian@rubydev:~/Pulpit$ ls
Praca Projekty
Jeśli chcesz utworzyć plik, możesz użyć funkcji dotyk polecenie:
damian@rubydev:~/Pulpit/Projekty$ touch rubydev.rb
damian@rubydev:~/Pulpit/Projekty$ ls
rubydev.rb
Ponieważ można dodawać nowe katalogi i pliki, można je również kopiować! Aby skopiować pliki, należy użyć polecenia cp (kopiuj) oraz do kopiowania katalogów cp dodać -r (rekurencyjna). Podczas kopiowania pliku/katalogu polecenie przyjmuje dwa parametry:
plik, który chcesz skopiować, np. wcześniej utworzony plik rubydev.rb plik,
miejsce, do którego kopiujesz (możesz nadać kopii nową nazwę, wstawiając ją na końcu ścieżki docelowej).
Skopiowałem plik rubydev.rb do katalogu nadrzędnego, tj. katalogu Desktop
Można również przenosić pliki. Spróbujmy przenieść wcześniej skopiowany plik z powrotem do katalogu, w którym się znajdujemy, zmieniając jednocześnie jego nazwę.
Przenosimy plik rubydev_copy.rb z katalogu nadrzędnego do katalogu, w którym aktualnie się znajdujemy
Aby przenieść pliki i katalogi, użyj mv (move), które - podobnie jak cp - pobiera dwie informacje wejściowe: co i gdzie przenieść.
Niepotrzebne? Usuńmy!
Jak to zwykle bywa, po pewnym czasie będziesz mieć pliki i katalogi, których już nie potrzebujesz lub nie używasz. Istnieją również odpowiednie polecenia do usuwania takich plików i katalogów.
rmdir (remove directory) - usuwa pusty katalog podany jako parametr. Jeśli podasz więcej ścieżek do katalogów, usunie je wszystkie.
rm (remove) - usuwa plik. Aby usunąć katalog za pomocą tego polecenia, należy użyć polecenia -r -f opcja. To polecenie akceptuje tylko jeden parametr, a mianowicie ścieżkę do pliku lub katalogu. Jeśli chcesz usunąć wszystkie pliki w katalogu, w którym się znajdujesz, możesz przekazać opcję * jako parametr. Polecenie będzie wyglądać następująco: rm *
damian@rubydev:~/Pulpit/Projekty$ ls rubydev_move.rb rubydev.rb
damian@rubydev:~/Pulpit/Projekty$ rm *
damian@rubydev:~/Pulpit/Projekty$ ls
damian@rubydev:~/Pulpit/Projekty$
Przed użyciem *upewnij się (za pomocą pwd), że jesteś we właściwym miejscu, aby nie usunąć ważnych plików.
Wspomniane wcześniej opcje -r (rekurencyjna, usuwa pliki w podkatalogach) i -f (wymuś, usuń bez potwierdzenia, w tym pliki chronione przed usunięciem) są używane razem w celu usunięcia katalogu z całą jego zawartością. Dlatego przed użyciem rm -rf, musisz być pewien, co usuwasz.
Zadania:
1. Korzystając z man, przeczytaj dokumentację poleceń omówionych powyżej,
2. Utwórz dwa katalogi: project_1, project_2
3. Utwórz trzy pliki w katalogu project_1 (dowolne nazwy), np. application.rb, routes.rb, puma.rb
4. Skopiuj wszystkie pliki z project_1 do project_2, a następnie usunąć project_1.
Podsumowanie
Jak widać, obsługa terminala nie jest trudna, wymaga tylko trochę praktyki. Aby naprawdę ją opanować, zalecam używanie terminala do wszystkich prostych operacji. W drugiej części tego poradnika pokażę kilka innych poleceń, które warto znać. Do zobaczenia!