Stowarzyszenie Macierz

Stowarzyszenie MACIERZ powstało jako organizacja zajmująca się ochroną Praw Człowieka, ekologią, promocją zdrowego odżywiania i funkcjonowania, działalnością charytatywną w różnych dziedzinach życia.

Ilość wejść: 52588


Podstawy obsługi konsoli systemów UNIX-Linux

Podstawy obsługi konsoli systemów UNIX/Linux to zawsze trudność dla początkujących. Trochę wiedzy z laboratorium podstaw informatyki nigdy nie zaszkodzi, a wielu może ułatwić pierwsze kroki z konsolą UNIX Linux. 

Ważne cechy charakterystyczne

1. Unix/Linux rozróżnia wielkie i małe litery.

2. Kilka oznaczeń:

‘.’ oznacza katalog bieżący,

’..’ oznacza katalog nadrzędny,

’/’ oznacza katalog główny, „cd /” przejście do katalogu głównego

’~’ oznacza katalog domowy, cd ~

’~/praca’ oznacza plik ‘praca’ w domowym katalogu zalogowanego użytkownika

’~user/praca’ oznacza plik ‘praca’ w domowym katalogu użytkownika ‘user’

’/home/std/praca’ ścieżka bezwzględna

’std/praca’ ścieżka względna

3. Opcje poleceń można łączyć, zamiast ‘ls -l -a’ można zapisać ‘ls -la’.

4. Nazwa pliku rozpoczynająca się od kropki (np. ‘.plik’) oznacza, że plik ten jest ukryty.

 

Uzyskiwanie pomocy

man nazwa_polecenia - Wyświetla szczegółowy opis (ang. manual) polecenia. Po wyświetlanej stronie można się przemieszczać za pomocą strzałek i klawiszy Enter, Space=PageDown, PageUp. Wyjście z podręcznika następuje po naciśnięciu „q”.

info nazwa_polecenia, pinfo nazwa_polecenia – Są to polecenia alternatywne do man.

nazwa_polecenia -h lub --help – Jedną z opcji każdego polecenia jest opcja --help, umożliwiająca wyświetlanie pomocy kontekstowej.

whatis nazwa_polecenia – Polecenie dostarcza krótkiej informacji na temat polecenia, na podstawie własnej bazy nazw poleceń. Whatis przeszukuje bazę uwzględniając nazwę polecenia, która musi być identyczna z podanym tekstem.

apropos nazwa_polecenia – jak wyżej z różnicą taką, że przeszukiwane są także opisy poleceń.

 

Podstawowe polecenia

cd – Zmiana bieżącego katalogu. Po zalogowaniu do systemu, katalogiem bieżącym jest katalog domowy użytkownika.

pwd – Wypisuje pełną nazwę bieżącego katalogu.

ls – Wyświetla listę plików w katalogu, jak również informacje o pliku. „ls -l” powoduje wyświetlenie szczegółowych informacji o plikach.

echo tekst – Wyświetlanie komunikatu na ekranie.

 

Tworzenie katalogów

mkdir nazwa_katalogu – Utworzenie katalogu.

Tworzenie plików

touch nazwa_pliku – Polecenie służy do tworzenia pustego pliku (za pomocą tego polecenia można również zmienić datę istniejącego pliku – pod warunkiem posiadania odpowiednich uprawnień)

>nazwa_pliku – Tworzenie nowego pliku za pomocą przekierowania wyjścia (pusty strumień przekierowujemy do pliku)

cat > nazwa_pliku - Za pomocą polecenia cat i strumieni możemy utworzyć nowy plik i od razu wypełnić do danymi. Koniec wpisywania danych następuje po wciśnięciu Ctrl+D. 

linia tekstu

druga linia tekstu

^D

 

Usuwanie

rm nazwa_pliku – Usunięcie pliku.

rm -r katalog – Usunięcie katalogu i całej jego zawartości.

rmdir katalog – Usunięcie pustego katalogu.

 

Kopiowanie, przenoszenie

cp plik_zrodlowy plik_docelowy – Kopiowanie plików, np. „cp /home/guest/* . ” skopiuje wszystkie pliki z katalogu domowego użytkownika guest do katalogu bieżącego (.)

mv plik_zrodlowy plik_docelowy – Zmiana nazwy/przeniesienie plików, np.

„mv ~/doc/plik1 ~/doc/out.txt” zmieni nazwę pliku

„mv ~/doc/plik1 out.txt” nastąpi przeniesienie pliku (ze zmienioną nazwą) do katalogu bieżącego

 

Wyświetlanie zawartości pliku

cat nazwa_pliku – Wyświetlanie pliku na ekranie (zalecane dla małych plików).

cat nazwa_pliku nazwa_pliku2 – Wyświetlenie dwóch plików na ekranie.

more nazwa_pliku – Wyświetlanie pliku z możliwością nawigacji za pomocą spacji (w dół) i ‘b’ (w górę). Wyjście następuje po wciśnięciu ‘q’ lub wyświetleniu całej zawartości.

less nazwa_pliku – Wyświetla plik i umożliwia nawigację za pomocą strzałek, nie kończy pracy po osiągnięciu końca pliku.

head -n 5 nazwa_pliku - Wyświetla pierwsze linie pliku (tu: 5 pierwszych linii).

tail -n 3 nazwa_pliku – Wyświetla ostatnie linie pliku (tu: 3 ostatnie linie).

wc nazwa_pliku – Zlicza i wyświetla ilość linii, słów i bajtów w pliku (word count).

find – Wyszukiwanie plików po nazwie, po dacie utworzenia, itd.

cmp, diff – Porównywanie dwóch plików.

 

Znaki uogólniające

Aby jednym zapisem objąć więcej plików zastosowań należy znaki specjalne. Do znaków specjalnych zaliczyć można *, ?, [, ]. Znaki te wykorzystywać można w przypadku niektórych poleceń których argumentami są nazwy katalogów lub plików, np. cp, rm.

* - Gwiazdka zastępuje dowolny ciąg znaków (w tym ciąg pusty) z wyjątkiem plików, których nazwa rozpoczyna się od kropki. „*”.

? - Zastępuje dokładnie jeden znak w nazwie pliku, podobnie jak wyżej nie zastępuje kropki w roli pierwszego znaku w nazwie.

[A,B,C] lub [ABC] - W nazwie ma wystąpić któraś z wymienionych liter.

[a-z] - Oznacza dowolną małą literę.

[a-zA-Z0-9] - Oznacza jeden znak alfanumeryczny.

{kot,pies} - W nazwie ma wystąpić któryś z podanych ciągów literowych.

 

Przykład:

[123]*{txt,doc} oznacza wszystkie pliki, których nazwa zaczyna się od cyfr 1, 2 lub 3 i kończy się na txt lub doc.

 

Prawa dostępu

Każdy plik i katalog posiada 10 bitów protekcji (wyświetlane przy okazji poleceni ls-l), gdzie:

- Bit 1 umożliwia identyfikację rodzaju pliku („d” – katalog, „-” – plik, „l” – link do pliku, itd...),

- bity 2-4 opisują uprawnienia dla właściciela pliku,

- bity 5-7 opisują uprawnienia dla grupy do której należy właściciel,

- bity 8-10 odpowiadają prawom dla wszystkich pozostałych użytkowników.

Prawo odczytu (r) – umożliwia odczytanie zawartości pliku (w przypadku katalogu z takim prawem umożliwia odczytanie listy plików znajdujących się w tym katalogu).

Prawo zapisu (w) – pozwala na modyfikacje pliku. Dla katalogów oznacza możliwość tworzenia nowych i usuwania istniejących plików w tym katalogu.

Prawo wykonywania (x) – pozwala na uruchomienie pliku wykonywalnego, a w przypadku katalogu oznacza prawo dostępu do plików wewnątrz katalogu.

Przykład:

-rwxrw----- Oznacza pełne prawa dla właściciela pliku, odczyt i zapis/modyfikację dla grupy właściciela pliku, pozostali użytkownicy nie posiadają żadnych praw do tego pliku.

 

Administrowanie uprawnieniami

Prawa dostępu może modyfikować właściciel pliku lub administrator!

Polecenie chmod umożliwia zmianę praw dostępu do pliku bądź katalogu.

chmod podmiot operator prawa nazwa_pliku 

(pola podmiot, operator i prawa nie powinny być rozdzielane spacją)

podmiot: ‘u’ właściciel pliku, ‘g’ grupa właściciela, ‘o’ pozostali użytkownicy, ‘a’ wszyscy

operator: ‘+’ dodanie praw, ‘-‘ odebranie praw, ‘=’ przypisanie praw

prawa: ‘r’, ’w’, ’x’

Przykłady:

chmod g+x plik – nadanie grupie prawa do wykonywania (bez zmiany innych praw)

chmod ug=rwx,o=x plik – nadanie grupie i właścicielowi praw rwx, a innym użytkownikom tylko x

Wszystkie prawa można zapisać również w sposób numeryczny. Każde prawo na swoją wagę liczbową. Sumując poszczególne wagi otrzyma się sumaryczne prawo dostępu. Wagi: r=4, w=2, x=1.

Prawa w postaci liczbowej podaje się jako liczbę trzycyfrową. Pierwsza oznacza prawa dla właściciela, druga dla grupy, trzecia dla pozostałych. Zatem rwxrw---- można zapisać jako 760. Wówczas nadanie takich praw dla pliku można wykonać wywołując polecenie chmod 760 plik .

chown – Umożliwia zmianę właściciela pliku.

chgrp – Umożliwia zmianę grupy, do której należy plik.

 

Dowiązania

ln źródło nazwa – Utworzenie dowiązania o nazwie „nazwa” do pliku/katalogu „źródło”

Dowiązania dzielimy na twarde (hard link) i miękkie, zwane też symbolicznymi (soft/symbolic).

Link twardy to nadanie innej nazwy istniejącemu plikowi. Każdy fizyczny plik posiada specjalne pole, przechowujące ilość twardych linków do danego pliku. Aby usunąć plik należy usunąć wszystkie twarde dowiązania. Podczas operacji usuwania twardego linku system operacyjny najpierw sprawdza wartość wspomnianego pola. Jeśli wartość ta większa jest od jedności, wówczas zmniejszana jest o 1 a z katalogu usuwany jest wpis linku twardego. Jeśli natomiast wartość ta równa jest jeden, wówczas dopiero usuwany jest fizyczny plik na dysku oraz odpowiadający mu wpis w katalogu. Twarde linki stosować można wyłącznie w obrębie jednego systemu plików.

Link symboliczny jest specjalnym typem pliku, który "wskazuje" na inny - oryginalny plik poprzez jego nazwę (podobny do skrótu i Windows’ach). W odróżnieniu od linków twardych, link symboliczny nie modyfikuje licznika dowiązań do pliku. Co więcej, link miękki można utworzyć nie tylko do pliku, lecz również do katalogu (co w przypadku linków twardych było niemożliwe) jak również do nieistniejącego obiektu.

Link symboliczny tworzy się w sposób analogiczny do twardego, dodając do polecenia ln opcję -s:

ln -s źródło nazwa

 

Uzyskiwanie informacji o użytkownikach

who – Wyświetla listę zalogowanych użytkowników.

last – Wyświetla datę i czas ostatniego logowania użytkowników.

w, finger – Pozostałe polecenia o podobnym działaniu.

 

Potokowanie strumienia danych

Zastosowanie znaku ‘|’ pozwala na łączenie wyjścia jednego polecenia z wejściem innego. Takie rozwiązanie pozwala np. na wygenerowanie zestawu danych za pomocą pierwszego polecenia, a następnie przetworzenie go przy użyciu kolejnego, np. ls –al | more –p

 

Przekierowanie strumienia danych do pliku

- Znak ‘<’ umożliwia pobranie z pliku danych i przetworzenia ich przez polecenie, np. more < plik

- Znak ‘>’ umożliwia przekierowanie strumienia danych do pliku; jeżeli plik istnieje, to jego zawartość zostaje usunięta.

- Znak ‘>>’ jak wyżej, z różnicą, że jeśli plik istnieje dane są dopisywane na koniec.

Procesowi przypisane są trzy strumienie danych:

- standardowe wejście, domyślnie jest to klawiatura i powłoka identyfikuje je jako plik 0

- standardowe wyjście, domyślnie jest to ekran i powłoka identyfikuje je jako plik 1

- standardowe wyjście błędów, domyślnie jest to ekran i powłoka identyfikuje je jako plik 2.

ls -y 1>plik1.txt 2>plik2.txt do plik1.txt trafi rezultat polecenia, a do plik2.txt ewentualne błędy

 

Procesy

Unix/Linux jest wielozadaniowym systemem operacyjnym. Oznacza to, że korzystając z systemu mamy wrażenie, że wiele programów działa jednocześnie. Działający w danej chwili program nazywany jest procesem. Każdemu procesowi przypisany jest jednoznaczny numer zwany identyfikatorem procesu, lub PID. Proces może być wykonywany jako pierwszoplanowy (wówczas zajmuje on standardowe wejście i wyjście, czyli monitor i klawiaturę) lub jako proces tła (wówczas „nie widać” jego działania a procesem pierwszoplanowym jest inny proces). Na ogół proces uruchamiany jest z prawami użytkownika, który proces uruchomił. Rozpocząć wykonywanie procesu możemy na przykład poprzez wydanie dowolnej komendy.

jobs – Wyświetla procesy uśpione i procesy uruchomione w tle.

ps – Wyświetla wszystkie procesy (łącznie z pierwszoplanowymi), w zależności od użytych opcji wyświetla różne informacje o procesach.

kill – Służy do „zabijania” procesów. Jako zwykły użytkownik można zabić tylko te procesy, które samemu się uruchomiło (root może zabić każdy proces).

Ctrl+Z – Skrót służy do uśpienia procesu pierwszoplanowego. System zawiesza jego wykonywanie pozostawiając go w pamięci.

bg, fg – Polecenia służą do wznawiania uśpionych procesów. fg wznawia wykonywanie jako procesu pierwszoplanowego, bg jako procesu tła. Polecenie bez parametru odnosi się do procesu oznaczonego przez ‘+’ (polecenie jobs). Jeżeli chcemy wznowić wykonywanie innego procesu, jako parametr podajemy numer zadania poprzedzony znakiem ‘%’.

& - Umieszczenie tego znaku na końcu polecenia uruchamia proces od razu w tle. Np. ls –R &

 

Zadania do wykonania

Zadanie 1

• Zaloguj się do systemu i wyświetl bieżącą datę, sprawdź możliwości formatowania daty i czasu.

• Wyświetl listę zalogowanych użytkowników i szczegółowe informacje o jednym z nich.

Zadanie 2

Utwórz w katalogu domowym katalog lab2, a w nim source i target. W katalogu source utworzyć 17 pustych plików: plik0 ... plik9 oraz abc ... ghi.

• Znaleźć (używając jednokrotnego polecenia find) pliki plik3 ... plik8.

• Skopiować (jednym poleceniem) wszystkie pliki z katalogu source do katalogu target, w których nazwie występuje jedna z liter ‘b’,’h’ lub ‘i’.

Zadanie 3

Utworzyć w katalogu lab2 dwa pliki p1.txt i p2.txt z dowolnym tekstem. Zmień prawa dostępu w ten sposób, aby tylko właściciel miał prawo do zapisu i odczytu pliku p1.txt. Plik p2.txt powinien być możliwy do odczytania przez wszystkich, natomiast właściciel powinien mieć także prawo do zapisu danych w pliku.

Zadanie 4

• Utworzyć dowiązanie twarde do pliku p1.txt o nazwie d1.txt. Sprawdź zawartość obu plików i ich rozmiar. Zmień zawartość pliku p1.txt (lub d1.txt) i ponownie wyświetl zawartość obu plików (najlepiej jednym poleceniem). Usuń plik p1.txt i sprawdź co wskazuje teraz dowiązanie d1.txt.

• Utwórz dowiązanie symboliczne s2.txt do pliku p2.txt i postępuj analogicznie jak w punkcie poprzednim.

 

ZADANIA DODATKOWE

Zadanie 5

• Uruchom trzykrotnie polecenie cat w taki sposób, by umożliwiało tworzenie nowego pliku (dla kolejnych wywołań mają to być pliki o nazwach a1.txt, a2.txt, a3.txt). Po każdym uruchomieniu polecenia uśpij je za pomocą odpowiedniej sekwencji.

• Uruchomić polecenie ls bezpośrednio jako proces tła.

• Wyświetlić wszystkie uśpione procesy tła (poleceniem jobs).

• Przenieść jeden proces „cat” do postaci pierwszoplanowego i dokończyć tworzenie nowego pliku a?.txt.

• Wykorzystać polecenie PS do wyświetlenia procesów uruchomionych przez użytkownika.

• Za pomocą polecenia kill zabić procesy „ls” i 2x „cat”.

Zadanie 6

Wylistować wszystkie pliki z wszystkich katalogów systemu. Lista plików powinna być zapisana do pliku lista.txt, a ewentualne błędy do err.txt. Proces ten uruchomić bezpośrednio w tle i zaraz potem wykonać kilkakrotnie polecenie jobs. Zaobserwować wynik polecenia jobs.


Na podstawie "Podstawy informatyki", semestr I, laboratorium 2. 
Licznik odwiedzin: 6964452 Ostatnia aktualizacja strony: 2017-02-23 10:17:46