Podstawy Linuksa – część 1

W tym artykule prezentujemy elementarną wiedzę na temat Linuksa, której opanowanie jest niezbędne do rozpoczęcia nauki administrowania serwerem Linuksowym.

Wpis jest adresowany do osób, dla których Linux jest zupełną nowością.

Zachęcamy do wykonania przedstawionych tu ćwiczeń w terminalu.

Linux – system operacyjny

System operacyjny pośredniczy między sprzętem, a aplikacjami użytkowymi i zbudowany jest z 3 podstawowych elementów:

  • jądro (ang. kernel) systemu wykonujące i kontrolujące wszystkie jego zadania,
  • powłoka – program, który pozwala na komunikację użytkownika z systemem operacyjnym,
  • system plików – sposób zapisu struktury danych na nośniku.

Inne systemy operacyjne np.: Windows, Unix, OS X, Android…

Kod źródłowy Linuksa jest otwarty i darmowy.

Istnieje wiele dystrybucji Linuksa, na serwerach najczęściej używane są Debian, Ubuntu, CentOS (lub komercyjny RHEL).

Kilka faktów na temat Linuksa:

  • Linux jest stosunkowo rzadko używany na desktopach 2-3%
  • Wśród profesjonalistów IT ten odsetek wynosi 23%
  • Stosowany szeroko na serwerach – 96% serwerów publicznie dostępnych w Internecie pracuje pod kontrolą Linuksa
  • Android to najpopularniejszy system na urządzeniach mobilnych – 70%
  • Superkomputery – 100% superkomputerów na liście TOP500 pracuje pod kontrolą Linuksa

Powłoka systemowa

Przy udanym logowaniu użytkownikowi zostaje przypisana powłoka (ang. shell), wraz z różnym parametrami.

Powłoka jest pośrednikiem pomiędzy jądrem a użytkownikiem (stąd angielska nazwa shell), a najbardziej podstawową metodą dostępu do niej jest praca w terminalu tekstowym.

Powłoka pozwala użytkownikowi uruchamiać i kontrolować programy oraz zarządzać plikami i katalogami (tworzyć, usuwać, zmieniać) w sposób interaktywny lub zautomatyzowany.

Przykładowe powłoki:

sh, bash – powłoka Bourn’a, najbardziej rozpowszechniona przez co zalecana do tworzenia skryptów ze względu na przenośność
csh, tcsh – składnia przypomina składnię języka C, oferuje dużo większe możliwości niż bash
ksh – zawiera wbudowany system obliczania wyrażeń arytmetycznych oraz zaawansowane funkcje skryptów

Połączenie z serwerem

Połączenie wykonujemy za pomocą SSH – Secure Shell – bezpieczne połączenie z serwerem.

  • Linux: dowolny terminal (programy xterm, gnome-terminal, konsole)
  • Windows: Putty, do pobrania: pobierz
  • OS X: komenda terminal
 ssh uzytkownik@adres.serwera.pl

Praca z powłoką systemu

Uruchomienie programu odbywa się w większosci przypadków poprzez wpisanie w terminalu polecenia według następującego schematu:
nazwa_komendy -parametr(y) agrument(y).
Argumenty i parametry nie zawsze są wymagane.

Przykładowe komendy linuksowe:

date
cal
cal 2012 (z argumentem)
echo "to jest kurs linuksa" (z argumentem, którym jest ciąg znaków zawarty pomiędzy “”)
ls -l (z parametrem)

Sprawdź jak działa komenda ls użyta w różny sposób:

ls
ls -l
ls -l -a
ls -la
ls -l /

O tym jak działa dana komenda możemy się dowiedzieć korzystając z polecenia man, które wyświetli nam strony podręcznika systemowego tzw. manuala.

Sprawdź jak działa komenda ls:

man ls

Pliki, katalogi

Przydatne komendy:

  • ls – listowanie zawartości katalogu
  • pwd – bieżąca ścieżka – punkt w którym znajduje się użytkownik
  • cd – zmiana katalogu bieżącego
  • mkdir – tworzenie katalogu
  • rm – usuwanie pliku
  • rmdir – usuwanie katalogu (odpowiada: rm -r)
  • cp – kopiowane pliku lub katalogu
  • mv – przenoszenie pliku lub katalogu (zmiana nazwy)

Katalogi

Katalogi maję strukturę drzewiastą i cała hierarchia zaczyna się od katalogu głównego (ang. root).

Katalog główny jest oznaczany symbolem / (ang. slash)

Przydatne oznaczenia:

. (kropka) – bieżący katalog
.. (dwie kropki) – katalog o poziom wyżej
/ – katalog główny (ang. root)
~ – katalog domowy (ang. home)

Ścieżki względne i bezwzględne

Położenie pliku/katalogu określa ścieżka bezwzględna lub względna.

Ścieżka bezwzględna podaje absolutne położenie i zawsze zaczyna się od katalogu root, np: /home/janek/filmy
Ścieżka względna określa położenie względem naszego aktualnego położenia lub innego punktu, który nie jest katalogiem głównym /

1. Wylistuj pliki w bieżącym katalogu używając ścieżki względnej jako argumentu

ls -l ./

2. Sprawdź ścieżkę bezwględną katalogu, w którym się znajdujesz:

pwd

3. Wylistuj pliki w bieżącym katalogu używając ścieżki bezwzględnej jako argumentu (wynik poprzedniej komendy)

ls -l $(pwd)

Tworzenie plików – touch

1. Utwórz pusty plik plik1

touch plik1

Inną metodą – często stosowaną gdy potrzeba szybko utworzyć plik np. dla testów jest wykorzystanie polecenia echo oraz przekierowania wyjścia >.
Przykładowo:

 echo "<?php phpinfo();?>" > info.php 

Utworzy plik info.php z zawartością <?php phpinfo();?>

Tworzenie katalogów – mkdir

1. Utwórz katalog o nazwie dir1:

mkdir dir1

2. Obejrzyj rezultat przy pomocy komendy ls:

ls -l

3. Utwórz katalog o nazwie dir1, który będzie znajdował się w katalogu dir2 (komenda mkdir z parametrem -p):

mkdir -p dir2/dir1

4. Obejrzyj rezultat przy pomocy komendy ls:

ls -l ./dir2

Kopiowanie plików – cp

Polecenie cp wymaga podania co najmniej dwóch argumentów: źródło i cel.

1. Utwórz kopię pliku plik1 o innej nazwie:

cp plik1 plik1_kopia

2. Skopiuj plik plik1 do katalogu dir1 nie zmieniając nazwy pliku:

cp plik1 dir1/

3. Skopiuj pliki plik1 i plik2 do katalogu dir2 nie zmieniając nazw plików:

cp plik1 plik2 dir2/

4. Utwórz kopię katalogu dir2 o innej nazwie:

cp -r dir2 dir2_kopia

5. Skopiuj katalog dir1 do katalogu dir2:

cp -r dir1 dir2/

Usuwanie plików i katalogów – rm

1. Wyświetl pliki w bieżącym katalogu:

ls -l

2. Usuń plik plik1_kopia:

rm plik1_kopia

Przenoszenie plików/katalogów (zmiana nazwy) – mv

Kiedy oba pliki (argumenty dla komendy) znajdują się w tym samy katalogu, efektem jest zmiana nazwy pliku

1. Zmień nazwę pliku plik1_kopia2 na kopia2:

mv plik1_kopia2 kopia2

2. Obejrzyj efekt:

ls -l

3. Zmień nazwę katalogu dir1 na dir2 i obejrzyj efekt. Kilka komend możemy wpisać w jednej linii, pod warunkiem, że rozdzielimy je średnikiem ; :

mv dir1 dir2; ls -l

4. Przenieś pliki plik1 i plik2 do katalogu dir2 nie zmieniając nazw plików:

mv plik1 plik1 dir2/

5. Przenieś katalog dir1 z katalogu dir2 do katalogu, w którym się obecnie znajdujesz:

mv dir2/dir1 ./

6. Przywróć katalog dir1 tam gdzie był poprzednio, zmieniając jego nazwę na dir3

mv dir1 dir2/dir3

Dodaj komentarz