Wprowadzenie do systemu Linux

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

Questions and Answers

Które z poniższych poleceń służy do wyszukiwania stron manuala zawierających określone słowo kluczowe, ale wyświetla tylko krótkie opisy każdej strony?

  • `man -k słowo_kluczowe`
  • `whatis słowo_kluczowe` (correct)
  • `man -a słowo_kluczowe`
  • `man słowo_kluczowe`

Która kombinacja opcji polecenia ls wyświetli ukryte pliki, zawartość katalogów w sposób rekursywny oraz dołączy znak specjalny identyfikujący typ pliku?

  • `ls -ARF`
  • `ls -aFR` (correct)
  • `ls -lAF`
  • `ls -Fal`

Jakiego polecenia należy użyć, aby skopiować plik ważny_plik.txt z lokalnego komputera na zdalny serwer, do katalogu domowego użytkownika nowy_user, zachowując przy tym szyfrowanie transmisji?

  • `scp ważny_plik.txt nowy_user@zdalny_serwer:~` (correct)
  • `ssh nowy_user@zdalny_serwer cp ważny_plik.txt ~`
  • `telnet nowy_user@zdalny_serwer`
  • `ftp nowy_user@zdalny_serwer:ważny_plik.txt`

Które stwierdzenie najlepiej opisuje różnicę między ścieżką bezwzględną a względną w systemie plików Linux?

<p>Ścieżka bezwzględna zaczyna się od korzenia systemu plików, a względna od bieżącego katalogu roboczego. (C)</p> Signup and view all the answers

Który z poniższych zestawów poleceń spowoduje utworzenie katalogu test, a następnie dowiązania symbolicznego o nazwie link do pliku plik.txt znajdującego się w katalogu test?

<p><code>mkdir test &amp;&amp; ln -s plik.txt test/link</code> (C)</p> Signup and view all the answers

Załóżmy, że plik skrypt.sh ma ustawione bity SUID. Jakie konsekwencje niesie uruchomienie tego skryptu przez zwykłego użytkownika?

<p>Skrypt uruchomi się z uprawnieniami właściciela pliku <code>skrypt.sh</code>. (B)</p> Signup and view all the answers

W jaki sposób można zmienić maskę uprawnień (umask) tak, aby nowo tworzone pliki miały domyślne uprawnienia -rw-r-----?

<p><code>umask 027</code> (A)</p> Signup and view all the answers

Co oznacza ustawienie sticky bit na katalogu?

<p>Tylko właściciel pliku w katalogu może go usunąć lub zmienić nazwę. (B)</p> Signup and view all the answers

Jak można ustawić zmienną środowiskową MOJA_ZMIENNA na wartość test tylko dla bieżącej sesji powłoki, bez eksportowania jej do środowiska?

<p><code>MOJA_ZMIENNA=test</code> (C)</p> Signup and view all the answers

Jak w powłoce Bash, można przekierować zarówno standardowe wyjście (stdout), jak i standardowe wyjście błędów (stderr) do tego samego pliku, minimalizując użycie poleceń?

<p><code>polecenie &amp;&gt; plik</code> (D)</p> Signup and view all the answers

Który z poniższych znaków specjalnych w powłoce Bash powoduje wykonanie polecenia w podpowłoce, a następnie podstawienie wyniku tego polecenia w miejscu jego wywołania?

<pre><code class="language-(A)"></code></pre> Signup and view all the answers

Które polecenie w powłoce Bash służy do wyświetlania zawartości pliku strona po stronie, umożliwiając przewijanie zarówno w przód, jak i w tył?

<p><code>less</code> (D)</p> Signup and view all the answers

W jaki sposób można wysłać sygnał HUP do działającego w tle procesu o PID 1234, aby po zamknięciu terminala proces nadal działał?

<p><code>kill -HUP 1234</code> (D)</p> Signup and view all the answers

Które polecenie pozwala na znalezienie wszystkich procesów należących do użytkownika jan, włącznie z tymi, które nie są bezpośrednio związane z terminalem?

<p><code>ps aux | grep jan</code> (D)</p> Signup and view all the answers

Które polecenie przekieruje standardowe wyjście i standardowe wyjście błędów polecenia program do pliku log.txt w taki sposób, aby istniejąca zawartość pliku została zachowana?

<p><code>program &gt;&gt; log.txt 2&gt;&amp;1</code> (D)</p> Signup and view all the answers

Używając wyłącznie poleceń cut, sort, i uniq, jak zliczyć unikalne wystąpienia słów w pliku tekst.txt, ignorując wielkość liter?

<p><code>cat tekst.txt | tr '[:upper:]' '[:lower:]' | cut -d ' ' -f1 | sort | uniq -c</code> (C)</p> Signup and view all the answers

Która kombinacja poleceń pozwoli na znalezienie wszystkich plików w bieżącym katalogu, które zawierają w nazwie ciąg znaków 'abc' i są wykonywalne dla wszystkich użytkowników?

<p><code>find . -name '*abc*' -perm -111</code> (D)</p> Signup and view all the answers

Jak, za pomocą jednego polecenia, można skopiować wszystkie pliki z rozszerzeniem .txt z katalogu źródło do katalogu cel, zachowując strukturę katalogów wewnątrz katalogu źródło?

<p><code>find źródło -name '*.txt' -exec cp {} cel \;</code> (C)</p> Signup and view all the answers

Jak sprawdzić, czy dany proces nasłuchuje na porcie 8080 TCP, używając standardowych narzędzi systemowych?

<p><code>netstat -an | grep :8080</code> (A)</p> Signup and view all the answers

Która sekwencja poleceń najskuteczniej usunie wszystkie puste katalogi wewnątrz katalogu ścieżka, włącznie z samym ścieżka, jeśli po usunięciu zawartości stanie się pusty?

<p><code>find ścieżka -type d -empty -exec rmdir {} \;</code> (D)</p> Signup and view all the answers

Załóżmy, że w pliku dane.txt znajdują się w każdej linii trzy wartości oddzielone przecinkami. Jak, używając awk, wyświetlić tylko sumę drugiej i trzeciej wartości z każdej linii?

<p><code>awk -F',' '{print $2 + $3}' dane.txt</code> (B)</p> Signup and view all the answers

Jak sprawdzić, która powłoka jest używana jako powłoka logowania dla użytkownika testuser?

<p><code>cat /etc/passwd | grep testuser | cut -d':' -f7</code> (B)</p> Signup and view all the answers

Które polecenie pozwala na zamianę wszystkich wystąpień słowa stare na nowe w pliku plik.txt i zapisanie zmian w nowym pliku plik_nowy.txt?

<p><code>sed 's/stare/nowe/g' plik.txt &gt; plik_nowy.txt</code> (D)</p> Signup and view all the answers

Jaka jest różnica pomiędzy użyciem alias a zdefiniowaniem funkcji w powłoce Bash?

<p>Aliasy mogą zawierać tylko jedno polecenie, a funkcje mogą zawierać wiele poleceń i konstrukcje programistyczne. (D)</p> Signup and view all the answers

Jak można zablokować możliwość logowania się na konto użytkownika testuser bez usuwania tego konta z systemu?

<p><code>usermod -s /sbin/nologin testuser</code> (C)</p> Signup and view all the answers

Jakie polecenie pozwala na monitorowanie w czasie rzeczywistym zmian zachodzących w pliku log.txt?

<p><code>tail -f log.txt</code> (C)</p> Signup and view all the answers

W jaki sposób można uruchomić program moj_program z priorytetem niższym niż domyślny, tak aby nie obciążał nadmiernie systemu?

<p><code>nice -n 10 moj_program</code> (A)</p> Signup and view all the answers

Jak efektywnie, za pomocą jednego polecenia, skopiować zawartość pliku plik1.txt do plik2.txt, a następnie usunąć plik1.txt, jeżeli operacja kopiowania zakończy się sukcesem?

<p><code>cp plik1.txt plik2.txt &amp;&amp; rm plik1.txt</code> (D)</p> Signup and view all the answers

Jak, używając polecenia find, znaleźć wszystkie pliki większe niż 10MB w katalogu domowym użytkownika?

<p><code>find ~ -size +10M</code> (D)</p> Signup and view all the answers

Które z poniższych poleceń wyświetli listę wszystkich plików w katalogu /var/log, posortowaną według daty modyfikacji, od najnowszej do najstarszej?

<p><code>ls -lt /var/log</code> (B)</p> Signup and view all the answers

Co robi polecenie xargs?

<p>Czyta argumenty ze standardowego wejścia i przekazuje je do innego polecenia. (A)</p> Signup and view all the answers

Jak można wyświetlić 10 najczęściej używanych poleceń w historii Basha w bieżącej sesji?

<p><code>history | awk '{print $2}' | sort | uniq -c | sort -nr | head -10</code> (A)</p> Signup and view all the answers

Które polecenie spowoduje usunięcie wszystkich plików z rozszerzeniem .log w katalogu /tmp, które nie były modyfikowane przez ostatnie 30 dni?

<p><code>find /tmp -name '*.log' -mtime +30 -exec rm {} \;</code> (D)</p> Signup and view all the answers

W jaki sposób można przekonwertować wszystkie pliki .png na .jpg w bieżącym katalogu, używając poleceń find i convert (z ImageMagick)?

<p><code>find . -name '*.png' -exec convert {} </code>basename {} .png<code>.jpg \;</code> (D)</p> Signup and view all the answers

Która kombinacja poleceń pozwala na wyświetlenie linii z pliku dane.txt, które zawierają słowo ważne, ale tylko wtedy, gdy to słowo występuje na początku linii?

<p><code>grep '^ważne' dane.txt</code> (A)</p> Signup and view all the answers

Flashcards

man (manual)

Podstawowe źródło pomocy w systemie Linux, zawiera podręczniki do poleceń.

Polecenie 'w'

Wyświetla informacje o zalogowanych użytkownikach, ich aktywności i źródłach logowania.

Polecenie 'ssh'

Pozwala na logowanie się do zdalnych maszyn, oferuje bezpieczne połączenie.

FTP (File Transfer Protocol)

Protokół transferu plików, używany do przesyłania plików między komputerami.

Signup and view all the flashcards

SFTP

Bezpieczna wersja FTP, wykorzystująca SSH do szyfrowania przesyłanych danych.

Signup and view all the flashcards

Polecenie 'cat'

Wyświetla zawartość pliku tekstowego.

Signup and view all the flashcards

Polecenie 'touch'

Tworzy pusty plik lub aktualizuje czas dostępu do istniejącego pliku.

Signup and view all the flashcards

Polecenie 'nano'

Umożliwia edycję pliku tekstowego w terminalu.

Signup and view all the flashcards

Polecenie 'whatis'

Wyświetla krótki opis poleceń z manuala.

Signup and view all the flashcards

Polecenie 'apropos'

Pozwala na wyszukiwanie stron manuala po słowach kluczowych.

Signup and view all the flashcards

Struktura systemu plików

System plików ma strukturę drzewiastą, zaczynającą się od katalogu głównego.

Signup and view all the flashcards

Katalog '.' (kropka)

Skrót oznaczający katalog bieżący, w którym aktualnie się znajdujemy.

Signup and view all the flashcards

Katalog '..'(dwie kropki)

Skrót oznaczający katalog nadrzędny, katalog wyżej w strukturze drzewa.

Signup and view all the flashcards

Polecenie 'cp'

Kopiuje pliki.

Signup and view all the flashcards

Polecenie 'mv'

Przenosi pliki lub zmienia ich nazwy.

Signup and view all the flashcards

Polecenie 'rm'

Usuwa pliki.

Signup and view all the flashcards

Polecenie 'cd'

Zmienia katalog bieżący.

Signup and view all the flashcards

Polecenie 'pwd'

Wyświetla ścieżkę do bieżącego katalogu.

Signup and view all the flashcards

Polecenie 'mkdir'

Tworzy nowy katalog.

Signup and view all the flashcards

Polecenie 'ls'

Wyświetla zawartość katalogu.

Signup and view all the flashcards

Prawa dostępu do plików

Określają, kto i w jakim zakresie może odczytywać, zapisywać i uruchamiać plik.

Signup and view all the flashcards

Metaznak '*'

Znak specjalny, który zastępuje dowolny ciąg znaków w nazwie pliku.

Signup and view all the flashcards

Metaznak '?'

Znak specjalny, który zastępuje dokładnie jeden znak w nazwie pliku.

Signup and view all the flashcards

SUID (Set User ID)

Pozwala na uruchomienie programu z prawami właściciela pliku.

Signup and view all the flashcards

SGID (Set Group ID)

Pozwala na uruchomienie programu z prawami grupy pliku lub sprawia, że pliki w katalogu należą do grupy katalogu.

Signup and view all the flashcards

Sticky bit

Pliki w katalogu z ustawionym sticky bit mogą być usuwane tylko przez właściciela.

Signup and view all the flashcards

Polecenie 'chmod'

Zmienia prawa dostępu do pliku.

Signup and view all the flashcards

Polecenie 'chown'

Administrator może zmieniać właściciela pliku.

Signup and view all the flashcards

Polecenie 'chgrp'

Administrator może zmieniać grupę pliku.

Signup and view all the flashcards

umask

Ustawia domyślne prawa dostępu dla nowo tworzonych plików i katalogów.

Signup and view all the flashcards

Dowiązanie symboliczne

Wskaźnik do pliku, pozwalający na dostęp do niego pod różnymi nazwami.

Signup and view all the flashcards

Midnight Commander (mc)

Program do zarządzania plikami w trybie tekstowym.

Signup and view all the flashcards

Alias

Alias to skrót lub alternatywna nazwa dla polecenia.

Signup and view all the flashcards

Polecenie 'more'

Wyświetla zawartość pliku po jednym ekranie na raz.

Signup and view all the flashcards

Polecenie 'less'

Ulepszona wersja 'more', pozwalająca na przeglądanie pliku w obu kierunkach.

Signup and view all the flashcards

Polecenie 'source'

Czyta i wykonuje polecenia z pliku.

Signup and view all the flashcards

GNU Readline

Biblioteka do obsługi linii poleceń, oferująca dopełnianie i historię poleceń.

Signup and view all the flashcards

Ctrl+Z

Uśpienie zadania w terminalu.

Signup and view all the flashcards

Polecenie 'jobs'

Wyświetla listę aktualnie uruchomionych zadań.

Signup and view all the flashcards

Polecenie 'fg'

Przenosi zadanie na pierwszy plan.

Signup and view all the flashcards

Polecenie 'bg'

Uruchamia zadanie w tle.

Signup and view all the flashcards

Study Notes

Wprowadzenie do pracy w systemie Linux

  • Przygotuj się na otwarty umysł podczas pierwszych zajęć z Linuxem.
  • Upewnij się, że masz dane dostępowe do konta w systemie Linux w pracowni.

Wiedza

  • Podręcznik man jest podstawowym źródłem pomocy. Użyj man man, aby dowiedzieć się więcej o samym podręczniku.
  • Dodatkowa pomoc jest wbudowana w polecenia, uruchamiaj je z opcją -h lub --help, choć nie zawsze jest dostępna.

System

  • Linux jest systemem wieloużytkownikowym i wielozadaniowym.
  • Polecenie uname pokazuje wersję Unixa.

Użytkownicy

  • Użytkownik jest identyfikowany przez login, identyfikator, hasło i grupy.
  • Polecenia związane z użytkownikami: groups, id, passwd lub yppasswd.
  • Powłoka i sesja są ważnymi elementami pracy użytkownika.
  • Informacje o innych użytkownikach: w, who, finger.

Logowanie

  • Logowanie odbywa się przez terminal, urządzenie tty.
  • Możliwe są sesje zagnieżdżone.
  • Sesję można zapisać poleceniem script.
  • System kontroluje zużycie przestrzeni dyskowej za pomocą quota.
  • Wylogowanie: exit, logout.

Maszyny zdalne

  • Logowanie na zdalne maszyny: ssh, telnet.
  • Przekierowanie X11: opcja -X do ssh.

Sieć

  • FTP (File Transfer Protocol) – komendy: open, cd, ls, get, put, bye.
  • Dostęp anonimowy do FTP: anonymous FTP.
  • SFTP używa SSH, komendy podobne do FTP.
  • scp służy do kopiowania plików między kontami.
  • wget umożliwia pobieranie plików z sieci.
  • Podstawowe pojęcia sieciowe: TCP/IP, adres, port, DNS.
  • Dostępne przeglądarki WWW (tekstowe: lynx, links, graficzne: firefox).

Pliki

  • Wyświetlanie zawartości pliku: cat plik.
  • Tworzenie pustego pliku: touch plik.
  • Edycja pliku: nano plik.

Ćwiczenia

  • Zaloguj się do systemu Linux w pracowni.
  • Sprawdź sekcje i części manuala (przez man man).
  • Użyj script, aby rejestrować wpisywane polecenia.
  • Zmień hasło na silne.
  • Sprawdź, którzy użytkownicy są zalogowani, skąd i co robią.
  • Sprawdź identyfikator użytkownika i grupę.
  • Przeanalizuj, na jakich plikach operuje passwd.
  • Zaloguj się na inne serwery, np. spk-ssh.if.uj.edu.pl.
  • Zamknij sesję i wyloguj się z systemu.
  • Kopiuj pliki między kontami za pomocą ftp, sftp, scp.
  • Wyjaśnij adres IP, DNS i port.
  • Wyświetl stronę https://www.uj.edu.pl za pomocą lynx.
  • Pobierz stronę https://www.uj.edu.pl za pomocą wget, a następnie obejrzyj pobrany plik.

Praca z plikami i poleceniami

  • Zdobądź dostęp do serwera SPK.
  • Zapoznaj się z poleceniem chmod (manual i/lub Wikipedia).

Wiedza

  • Dalej korzystaj z manuala (man).
  • Sprawdź więcej niż jedną stronę manuala poleceniem man -f man lub whatis man.
  • Przeglądaj strony manuala po kolei: man -a man.
  • Szukaj w manualu po słowach kluczowych: man -k manual lub apropos manual.
  • Wyświetl stronę z konkretnej sekcji podręcznika: man 1 man.

Uruchamianie programów

  • Pliki programów znajdują się w systemie plików.
  • Każdy plik programu ma nazwę (rozróżnianie wielkości liter!).
  • Uruchamianie programu: podanie nazwy pliku.
  • Powłoka kontroluje uruchamiane zadania i przekazuje wyniki.

Argumenty poleceń

  • Polecenia przyjmują argumenty (obowiązkowe lub opcjonalne).
  • Opcje mogą mieć argumenty.
  • Opcje mają format długi i krótki (rozróżnianie wielkości liter!).
  • Informacje o opcjach: man lub -h|--help.
  • Można zmieniać kolejność opcji i scalać krótkie opcje.

Przykłady wykorzystania opcji:

  • ls --all (format długi) i ls -a (format krótki).
  • Zmiana kolejności opcji: ls -a -l i ls -l -a.
  • Przekazywanie argumentów: ls --ignore=\*.png i ls -I \*.png.
  • Scalanie opcji: ls -al (OK), ls -la (OK), ls -alI \*.png (OK) i ls -Ila \*.png (ŹLE!).

Praca z plikami

  • System plików ma strukturę drzewiastą.
  • Zawsze jest jeden początek systemu plików: /.
  • Inne systemy można dołączać jako gałęzie.
  • Katalog bieżący: ..
  • Katalog nadrzędny: ...
  • Katalog jest plikiem.

Nazewnictwo:

  • Pliki i katalogi mają nazwy alfanumeryczne, długie (rozróżnianie wielkości liter!).
  • Katalogi oddziela się /.
  • Ścieżka dostępu lokalizuje plik.
  • Pełna ścieżka zaczyna się od /.
  • Względna ścieżka jest względem katalogu bieżącego.
  • ~user oznacza katalog domowy użytkownika (na poziomie powłoki).

Polecenia dotyczące plików i katalogów

  • Pliki: cp (kopiowanie), mv (przenoszenie, zmiana nazwy), rm (usuwanie), touch (zakładanie pustego, modyfikacja daty), file (typ pliku).
  • Katalogi: cd (zmiana bieżącego), pwd (podanie bieżącego), mkdir (zakładanie), rmdir (usuwanie pustego), ls (pokazywanie zawartości), du (pokazywanie objętości).
  • Metaznaki (znaki specjalne): ? (jeden znak), * (ciąg znaków).

Prawa dostępu

  • Określają dostęp użytkowników do plików.
  • Atrybuty: odczyt (read), zapis (write), uruchamianie (execute).
  • Użytkownicy dzielą się na: właściciela (user), grupę właścicieli (group), pozostałych (others).

Atrybuty pliku

  • Wynik ls -l: -rwxrwxrwx N uzytkownik grupa rozmiar data nazwa. Typy plików: - d b c l p s.

SUID, SGID i sTicky bit

  • SUID (set user id) – uruchomienie programu z prawami właściciela.
  • SGID (set group id) – uruchomienie z prawami grupy; dla katalogu, nowe pliki należą do grupy katalogu.
  • sTicky bit – pliki w katalogu mogą być usuwane/zmieniane tylko przez właściciela pliku/katalogu.

Zmiana praw dostępu

  • Polecenie chmod (change mode): chmod prawa nazwa_pliku, gdzie prawa: ugoa +-= rwx [, ugoa +-= rwx].

Numeryczne prawa dostępu

  • r=4, w=2, x=1, su=4, sg=2, t=1.
  • chmod NNN plik (np. chmod 755 plik).
  • Administrator zmienia właściciela (chown user plik) i grupę (chgrp grupa plik).

Domyślne prawa, umask

  • Ustawia domyślne prawa dostępu dla nowo tworzonych plików i katalogów.

Prawa do katalogów

  • write → zapis do katalogu.
  • read → odczyt zawartości, ls.
  • execute → dostęp do zawartości, cd.

Dowiązania symboliczne

  • Wskaźniki/skróty do plików.
  • Udostępnianie pliku pod różnymi nazwami.
  • Tworzenie: ln -s plik dowiazanie.
  • ls -L wyświetla pliki wskazywane przez link symboliczny.
  • Bez -s → dowiązania sztywne.
  • Liczba dowiązań sztywnych: N w ls -l.

Midnight Commander

  • Program do zarządzania plikami.
  • Zmiana praw: C-x c.
  • Klawisze Fn przez Esc+N.
  • Dostępny edytor: mcedit.

Ćwiczenia

  • Opis poleceń ls(1), cp(1), mkdir(1), rm(1) w manualu.
  • Opcje wyświetlające opis argumentów.
  • Testowanie opcji ls, mkdir, rm.
  • Zmiana kolejności i łączenie opcji.
  • Opcje ls z argumentami.
  • Sprawdzić aliasy zmieniające pracę poleceń (un/alias).
  • Zmiana języka manuala: export LANG=pl_PL.UTF-8.
  • Testowanie poleceń do plików i katalogów.
  • Różne sposoby przejścia do katalogu domowego.
  • Tworzenie struktury katalogów i plików (np. unix/lab2).
  • Poruszanie się po strukturze: ścieżki bezwzględne i względne, . i ...
  • Metaznaki z ls w /usr/bin.
  • Przejście do katalogu poprzedniego i domowego innego użytkownika.
  • Przeczytać podręcznik do chmod.
  • Testowanie zmian praw dostępu (odczyt, zapis, uruchamianie).
  • Ćwiczenia w parach: wpływ zmiany praw dostępu; prawa dostępu na katalogach.
  • Prawa numeryczne: działanie i użycie.
  • Numeryczne prawa a umask.
  • Oglądnąć bity SUIG/sTicky na plikach/katalogach (ls -ld /tmp, ls -l /usr/bin/passwd).
  • Przeczytać opis do ln(1).
  • Tworzenie dowiązań symbolicznych (ln -s plik dowiazanie).
  • Co się dzieje przy czytaniu, zapisywaniu, usuwaniu dowiązania/pliku?
  • Działanie dowiązań do katalogów (pwd, opcje P L).
  • Uruchomić Midnight Commander (mc) i zmienić prawa (C-x c).

Powłoka i środowisko pracy

  • Zapoznać się z edytorami: vi, emacs, nano, mcedit
  • Przypomnieć sobie pracę z sftp i scp.
  • Przeczytać artykuł GNU Bash - Więcej niż Sh.

Wiedza

Powłoki w środowisku GNU:

  • Standardy: SH (Bourne Shell) i CSH (C Shell).
  • Implementacje GNU: Bash i tcsh.
  • Najpopularniejsza: GNU Bash.

Środowisko pracy aplikacji:

  • Zapewniane przez powłokę (zmienne środowiskowe).
  • Każda zmienna ma nazwę i wartość (napis).
  • Różnice w ustawianiu zmiennych (Sh i Csh).
  • Typowe zmienne: PWD, USER, EDITOR, HOME, TERM, PATH, MAIL.
  • Operacje na zmiennych:
    • Bash/Sh: export ZMIENNA=WARTOSC, echo $ZMIENNA, unset ZMIENNA.
    • Tcsh/Csh: setenv ZMIENNA WARTOSC, printenv ZMIENNA, unsetenv ZMIENNA.

Zmiana znaku zachęty:

  • Bash: export PS1='\u@\h:\w '.
  • Tcsh: set prompt = "%n@%m:%~ ".

Re/Definiowanie poleceń (alias):

  • alias: tworzenie aliasów. unalias: usuwanie aliasów.
    • Bash: alias ls='ls -F', unalias ls.
    • Tcsh: alias ls 'ls -F', unalias ls.

Cytowanie napisów:

  • "TEKST": interpretacja znaków specjalnych.
  • 'TEKST': bez interpretacji znaków specjalnych.
  • `TEKST`: tekst jako polecenie, wynik podstawiany.

Przeglądanie plików tekstowych:

  • more: po jednym ekranie/linii do przodu.
  • less: w obydwu kierunkach.
  • cat [plik1 plik2...]: wyświetlanie zawartości.

Inicjalizacja pracy powłok:

  • Pliki konfiguracyjne czytane na starcie i końcu.
  • Różne pliki dla login shell i non-login shell.
  • sh używa innych niż csh.
  • Pliki są interpretowane, a nie uruchamiane.
  • Interpretację wymusza source.
  • Komentarze od #.
  • Tekst wypisuje: echo "tekst".
  • Przeglądanie plików: more, less, cat.
  • Pliki inicjalizacyjne:
    • Bash: /etc/profile, ~/.bash_profile, ~/.bash_login, ~/.profile, /etc/bash.bashrc, ~/.bashrc, ~/.bash_logout.
    • Tcsh: /etc/csh.cshrc, /etc/csh.login, ~/.tcshrc, ~/.cshrc, /etc/csh.logout, ~/.logout.

GNU Readline:

  • Biblioteka do obsługi linii poleceń.
  • Dopełnianie (Tab), edycja (Emacs, Vi), historia.

Edytory tekstu:

  • Emacs, Vi i reszta.
  • Notacja Emacs: C-x, M-x.
  • Należy znać podstawy Emacs i Vi.

Ćwiczenia

Typy powłok:

  • Sprawdzić typ powłoki: finger LOGIN, printenv SHELL, cat /etc/passwd | grep LOGIN.
  • Uruchomić przeciwną powłokę: bash, tcsh.
  • Sprawdzić zmiany w środowisku: printenv.
  • Wyjść z powłoki.

Zmienne środowiskowe:

  • Oglądnąć ustawienia: printenv.
  • Ustawić własną zmienną (np. ALFA na "moja").
  • Dziedziczenie środowiska (z użyciem export).
  • Ustawić znaki zachęty (PS1 w bash, prompt w tcsh).

Aliasy:

  • Sprawdzić istniejące aliasy.
  • Zredefiniować ls.
  • Zdefiniować własny alias (ll='ls -l').
  • Dodać aliasy do plików inicjalizacyjnych i sprawdzić działanie.

Cytowanie napisów:

  • Porównać działanie: echo $SHELL, echo "$SHELL", echo '$SHELL', echo \ls -l``.

Inicjalizacja powłok:

  • Odnaleźć opisy inicjalizacji powłok (bash(1), tcsh(1)).
  • Stworzyć pliki inicjalizacyjne dla login shell, nonlogin shell i zamykania powłoki.
  • Testować działanie plików przez source.
  • Umieścić komentarze i komunikaty w plikach.
  • Sprawdzać inicjalizację powłok (z tcsh, bash i opcjami -l, --login).
  • Umieścić polecenie clear w pliku czytanym przy zamykaniu powłoki.

GNU Readline:

  • Przetestować w GNU Bash:
    • Historia: Ctrl+P, Ctrl+N, Ctrl+R.
    • Edycja linii: Ctrl+A, Ctrl+E, M+F, M+B, Ctrl+L, Ctrl+K, M+D, Ctrl+Y.
    • Dopełnianie: Tab.

    Procesy i zadania

  • Zapoznaj się z podręcznikiem textutils.
  • Sprawdź obsługę grep w Linux Wiki.

Wiedza

Zadania

  • Zadania to programy uruchamiane w sesji przez powłokę.
  • Możliwe operacje: uśpienie (Ctrl+Z), spis (jobs), przełączanie (fg), praca w tle (bg), usuwanie (kill), równoległe uruchamianie (&).
  • Powyższe polecenia są wbudowane w powłokę.

Procesy

  • Proces identyfikowany jest przez PID (identyfikator procesu).
  • Wyświetlanie listy procesów: ps, ps -A (Sun), ps -ax (Linux), ps -u user, ps aux|grep user.
  • Zmniejszanie priorytetu: nice.
  • Usuwanie procesów: kill, kill -9.

Procesy a Zadania

  • Uruchomienie programu tworzy proces.
  • Zadania ułatwiają obsługę procesów.
  • jobs -l wyświetla PID procesów odpowiadających zadaniom.
  • Każda sesja jest obsługiwana przez plik urządzenia pseudoterminala (tty).
  • Aby wyświetlić procesy pracujące w danej sesji należy wpisać ps -ttty.

Narzędzia operujące na tekście

  • GNU Coreutils: head/tail, cat/tac, wc, cut, sort, tr, uniq, seq, xargs, expr.
  • grep – wyszukiwanie wzorców w tekście: grep napis [plik].
  • Opcje grep: -i (ignoruje wielkość znaków), -v (odwraca działanie).

Strumienie

Każdy proces komunikuje się przez strumienie:

  • 0 – standard input (stdin).

  • 1 – standard output (stdout).

  • 2 – standard error output (stderr).

  • Przekierowanie strumieni (sh):

    • [proces] > [plik] (stdout do pliku, nadpisanie).
    • [proces] 2> [plik] (stderr do pliku, nadpisanie).
    • [proces] >> [plik] (stdout do pliku, dopisanie).
    • [proces] < [plik] (stdin z pliku).
  • /dev/null pozwala pozbyć się danych.

Komunikacja między procesami

  • Łączenie strumieni przez | (pipe).
  • stdout zadania 1 łączy się z stdin zadania 2.
  • Przykłady: ls | wc, ps | sort.

Sygnał HUP i polecenie nohup

  • Przy zamykaniu powłoki wysyłany jest sygnał HUP do procesów.
  • nohup polecenie – pozostawienie polecenia w tle po zamknięciu powłoki.

Ćwiczenia

  • Zadania (GNU Bash):

  • Jeśli zadanie nie znika po kill, użyć opcji -9.

  • Podobne ćwiczenia z less, mc itp.

Procesy

  • Otworzyć 3 sesje.
  • Sprawdzić procesy: w tej samej sesji, tylko swoje, wszystkie.
  • Przetestować opcje ps.
  • Usunąć procesy z sesji B, pracujące w sesji A (kill).
  • Jak usunąć login shell?
  • Oglądnąć spis sygnałów (kill -l).
  • Uruchomić procesy z podwyższoną wartością nice.
  • Zmienić wartość nice pracującego procesu.
  • Jak wyświetlić wartość nice procesu?

Przekazywanie wyników pracy do plików

  • Przekierować wyniki ps ls finger who do plików.
  • Porównać działanie > i >>.

Narzędzia operujące na tekście

  • Mając spis zalogowanych użytkowników (who > spis).
  • Posortować go alfabetycznie (sort spis > spis.alf).
  • Wyświetlić początek i koniec spisu (head, tail).
  • Wybrać użytkowników z loginem zawierającym "k" (grep).
  • Ćwiczenia z TextUtils.

Komunikacja między procesami

  • Wykonać ćwiczenia z sekcji IV bez plików pośrednich (wykorzystując pipe).
  • Wykorzystać w eksperymentach jak najwięcej znanych poleceń.

Zadanie dodatkowe

  • Filtrowanie tabeli kursów walut ze strony NBP za pomocą grep, cut, tr, head, tail.
  • Polega na pobraniu danych ze strony NBP i przekształceniu ich w czytelną tabelę tekstową.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

More Like This

Master Essential Unix Commands
6 questions
Komandinė eilutė ir UNIX/Linux apvalkalai
16 questions
Use Quizgecko on...
Browser
Browser