Podcast
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?
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?
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?
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?
Które stwierdzenie najlepiej opisuje różnicę między ścieżką bezwzględną a względną w systemie plików Linux?
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
?
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
?
Załóżmy, że plik skrypt.sh
ma ustawione bity SUID. Jakie konsekwencje niesie uruchomienie tego skryptu przez zwykłego użytkownika?
Załóżmy, że plik skrypt.sh
ma ustawione bity SUID. Jakie konsekwencje niesie uruchomienie tego skryptu przez zwykłego użytkownika?
W jaki sposób można zmienić maskę uprawnień (umask) tak, aby nowo tworzone pliki miały domyślne uprawnienia -rw-r-----
?
W jaki sposób można zmienić maskę uprawnień (umask) tak, aby nowo tworzone pliki miały domyślne uprawnienia -rw-r-----
?
Co oznacza ustawienie sticky bit na katalogu?
Co oznacza ustawienie sticky bit na katalogu?
Jak można ustawić zmienną środowiskową MOJA_ZMIENNA
na wartość test
tylko dla bieżącej sesji powłoki, bez eksportowania jej do środowiska?
Jak można ustawić zmienną środowiskową MOJA_ZMIENNA
na wartość test
tylko dla bieżącej sesji powłoki, bez eksportowania jej do środowiska?
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ń?
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ń?
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?
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?
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ł?
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ł?
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ł?
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ł?
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?
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?
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?
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?
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?
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?
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?
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?
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
?
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
?
Jak sprawdzić, czy dany proces nasłuchuje na porcie 8080 TCP, używając standardowych narzędzi systemowych?
Jak sprawdzić, czy dany proces nasłuchuje na porcie 8080 TCP, używając standardowych narzędzi systemowych?
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?
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?
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?
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?
Jak sprawdzić, która powłoka jest używana jako powłoka logowania dla użytkownika testuser
?
Jak sprawdzić, która powłoka jest używana jako powłoka logowania dla użytkownika testuser
?
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
?
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
?
Jaka jest różnica pomiędzy użyciem alias
a zdefiniowaniem funkcji w powłoce Bash?
Jaka jest różnica pomiędzy użyciem alias
a zdefiniowaniem funkcji w powłoce Bash?
Jak można zablokować możliwość logowania się na konto użytkownika testuser
bez usuwania tego konta z systemu?
Jak można zablokować możliwość logowania się na konto użytkownika testuser
bez usuwania tego konta z systemu?
Jakie polecenie pozwala na monitorowanie w czasie rzeczywistym zmian zachodzących w pliku log.txt
?
Jakie polecenie pozwala na monitorowanie w czasie rzeczywistym zmian zachodzących w pliku log.txt
?
W jaki sposób można uruchomić program moj_program
z priorytetem niższym niż domyślny, tak aby nie obciążał nadmiernie systemu?
W jaki sposób można uruchomić program moj_program
z priorytetem niższym niż domyślny, tak aby nie obciążał nadmiernie systemu?
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?
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?
Jak, używając polecenia find
, znaleźć wszystkie pliki większe niż 10MB w katalogu domowym użytkownika?
Jak, używając polecenia find
, znaleźć wszystkie pliki większe niż 10MB w katalogu domowym użytkownika?
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?
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?
Co robi polecenie xargs
?
Co robi polecenie xargs
?
Jak można wyświetlić 10 najczęściej używanych poleceń w historii Basha w bieżącej sesji?
Jak można wyświetlić 10 najczęściej używanych poleceń w historii Basha w bieżącej sesji?
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?
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?
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)?
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)?
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?
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?
Flashcards
man (manual)
man (manual)
Podstawowe źródło pomocy w systemie Linux, zawiera podręczniki do poleceń.
Polecenie 'w'
Polecenie 'w'
Wyświetla informacje o zalogowanych użytkownikach, ich aktywności i źródłach logowania.
Polecenie 'ssh'
Polecenie 'ssh'
Pozwala na logowanie się do zdalnych maszyn, oferuje bezpieczne połączenie.
FTP (File Transfer Protocol)
FTP (File Transfer Protocol)
Signup and view all the flashcards
SFTP
SFTP
Signup and view all the flashcards
Polecenie 'cat'
Polecenie 'cat'
Signup and view all the flashcards
Polecenie 'touch'
Polecenie 'touch'
Signup and view all the flashcards
Polecenie 'nano'
Polecenie 'nano'
Signup and view all the flashcards
Polecenie 'whatis'
Polecenie 'whatis'
Signup and view all the flashcards
Polecenie 'apropos'
Polecenie 'apropos'
Signup and view all the flashcards
Struktura systemu plików
Struktura systemu plików
Signup and view all the flashcards
Katalog '.' (kropka)
Katalog '.' (kropka)
Signup and view all the flashcards
Katalog '..'(dwie kropki)
Katalog '..'(dwie kropki)
Signup and view all the flashcards
Polecenie 'cp'
Polecenie 'cp'
Signup and view all the flashcards
Polecenie 'mv'
Polecenie 'mv'
Signup and view all the flashcards
Polecenie 'rm'
Polecenie 'rm'
Signup and view all the flashcards
Polecenie 'cd'
Polecenie 'cd'
Signup and view all the flashcards
Polecenie 'pwd'
Polecenie 'pwd'
Signup and view all the flashcards
Polecenie 'mkdir'
Polecenie 'mkdir'
Signup and view all the flashcards
Polecenie 'ls'
Polecenie 'ls'
Signup and view all the flashcards
Prawa dostępu do plików
Prawa dostępu do plików
Signup and view all the flashcards
Metaznak '*'
Metaznak '*'
Signup and view all the flashcards
Metaznak '?'
Metaznak '?'
Signup and view all the flashcards
SUID (Set User ID)
SUID (Set User ID)
Signup and view all the flashcards
SGID (Set Group ID)
SGID (Set Group ID)
Signup and view all the flashcards
Sticky bit
Sticky bit
Signup and view all the flashcards
Polecenie 'chmod'
Polecenie 'chmod'
Signup and view all the flashcards
Polecenie 'chown'
Polecenie 'chown'
Signup and view all the flashcards
Polecenie 'chgrp'
Polecenie 'chgrp'
Signup and view all the flashcards
umask
umask
Signup and view all the flashcards
Dowiązanie symboliczne
Dowiązanie symboliczne
Signup and view all the flashcards
Midnight Commander (mc)
Midnight Commander (mc)
Signup and view all the flashcards
Alias
Alias
Signup and view all the flashcards
Polecenie 'more'
Polecenie 'more'
Signup and view all the flashcards
Polecenie 'less'
Polecenie 'less'
Signup and view all the flashcards
Polecenie 'source'
Polecenie 'source'
Signup and view all the flashcards
GNU Readline
GNU Readline
Signup and view all the flashcards
Ctrl+Z
Ctrl+Z
Signup and view all the flashcards
Polecenie 'jobs'
Polecenie 'jobs'
Signup and view all the flashcards
Polecenie 'fg'
Polecenie 'fg'
Signup and view all the flashcards
Polecenie 'bg'
Polecenie 'bg'
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żyjman 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
lubyppasswd
. - 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
dossh
.
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
lubwhatis man
. - Przeglądaj strony manuala po kolei:
man -a man
. - Szukaj w manualu po słowach kluczowych:
man -k manual
lubapropos 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) ils -a
(format krótki).- Zmiana kolejności opcji:
ls -a -l
ils -l -a
. - Przekazywanie argumentów:
ls --ignore=\*.png
ils -I \*.png
. - Scalanie opcji:
ls -al
(OK),ls -la
(OK),ls -alI \*.png
(OK) ils -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
, gdzieprawa
: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
wls -l
.
Midnight Commander
- Program do zarządzania plikami.
- Zmiana praw:
C-x c
. - Klawisze
Fn
przezEsc+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
iscp
. - 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
.
- Bash/Sh:
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
.
- Bash:
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
- Historia:
- 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 -t
tty
.
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):
- Uruchomić lynx www.uj.edu.pl, Ctrl+Z.
- Uruchomić lynx www.agh.edu.pl, Ctrl+Z.
- jobs.
- fg %2, Ctrl+Z.
- kill %3.
-
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.