Professional Documents
Culture Documents
/dev (Device): Katalog /dev zawiera pliki reprezentujące urządzenia fizyczne lub wirtualne, takie jak
dyski twarde, karty dźwiękowe, karty sieciowe, urządzenia USB itp. Te pliki umożliwiają aplikacjom
komunikację z urządzeniami sprzętowymi. Na przykład, /dev/sda reprezentuje pierwszy dysk twardy, a
/dev/sdb drugi dysk.
/proc (Process): Katalog /proc zawiera informacje na temat działających procesów i zasobów systemu.
Każdy proces jest reprezentowany jako katalog o nazwie odpowiadającej jego identyfikatorowi PID
(Process ID). W katalogu /proc znajdują się również pliki i katalogi zawierające informacje o zasobach,
takie jak cpuinfo (informacje o procesorze) i meminfo (informacje o pamięci systemowej).
/sys (Sysfs): Katalog /sys jest podobny do katalogu /proc i zawiera informacje o zasobach systemu,
takie jak urządzenia PCI, ACPI i wiele innych. /sys jest bardziej zorientowany na obsługę sprzętu i jest
używany do zarządzania i monitorowania sprzętu na poziomie jądra Linux. Parametry systemowe –
jądro, bloki dysków
2. // Odczytaj pierwszy sektor dysku /dev/sda (głównego dysku) i wyświetl go za pomocą hexdump -C
Komenda ps aux wyświetla listę wszystkich procesów w systemie w formie tabeli. Obejmuje
informacje takie jak PID (identyfikator procesu), użytkownik, CPU, pamięć itp. KOLUMNY OPISAC PPID
PID
ps -p 12345
ps -t pts/0
ps może wyświetlać drzewo procesów, co pozwala zobaczyć hierarchię procesów. Użyj ps axjf:
ps axjf
Ta komenda wyświetli procesy w formie drzewa, pokazując PID, rodzica i inne informacje.
ps -u john
Aby sprawdzić, które urządzenia TTY są używane przez procesy, można użyć polecenia ps w połączeniu
z opcją -o i określić, które kolumny chcesz wyświetlić. Na przykład:
ps -e -o tty,command
Ta komenda wyświetli procesy razem z informacjami o urządzeniach TTY, które są używane przez te
procesy.
9. Uruchom pierwszy terminal i sprawdź urządzenie "tty" za pomocą polecenia "tty". Będziesz używać
tej informacji do porównania z tymi w innych terminalach.
Terminal 1:
$ tty
/dev/pts/0
10. Stworzenie pliku źródłowego programu C:
Użyj polecenia cat w celu utworzenia pliku źródłowego test.c. To polecenie pozwala na wprowadzanie
tekstu w trybie interaktywnym. Po wprowadzeniu kodu programu, naciśnij klawisz Ctrl + D, aby
zakończyć edycję tekstu.
Aby skompilować program C, użyj polecenia gcc. W tym przypadku kompilujemy plik źródłowy test.c i
generujemy plik wykonywalny o domyślnej nazwie a.out.
Opcja -Wall włącza wyświetlanie wszystkich ostrzeżeń podczas kompilacji, co pomaga w identyfikacji
potencjalnych problemów w kodzie.
Opcja -pedantic włącza tryb zgodności z normą ANSI C (C89/C90) i wyświetla ostrzeżenia dotyczące
używania rozszerzeń języka. Pomaga to pisać kod, który jest zgodny z oficjalnym standardem języka C.
Uruchomienie programu:
Powyższe polecenia uruchomią trzy zadania w tle. Każde z tych zadań będzie działać niezależnie w tle.
jobs
Otrzymasz listę aktywnych zadań wraz z ich numerami identyfikacyjnymi (PID) i statusami.
Przywracanie zadania do działania (fg):
Aby przywrócić zadanie do działania w przednim planie, użyj fg, a następnie numeru
identyfikacyjnego zadania. Na przykład:
Ctrl + Z
Aby wznowić zatrzymane zadanie w tle, użyj bg, a następnie numeru identyfikacyjnego zadania. Na
przykład:
bg %1
Jeśli masz zadanie działające w przednim planie, na przykład sleep 100, i chcesz je przenieść do
działania w tle, użyj kombinacji klawiszy Ctrl + Z, a następnie wydaj polecenie bg:
Ctrl + Z
bg
Aby zakończyć działające zadanie, użyj polecenia kill z numerem identyfikacyjnym zadania (PID). Na
przykład:
kill %1
12. Aby przetestować działanie potoku nazwanego (named FIFO) z użyciem poleceń cat, wykonaj
następujące kroki:
Utworzenie potoku nazwanego (mkfifo):
Uruchom terminal i wykonaj polecenie mkfifo, aby utworzyć potok nazwany. Nazwijmy go np.
"myfifo":
mkfifo myfifo
W jednym z terminali uruchom polecenie cat, które będzie zapisywać dane do potoku. Wprowadzaj
dane w konsoli i naciśnij Enter. Polecenie cat będzie oczekiwać na dane wejściowe i zapisywać je do
potoku "myfifo". Przykład:
W innym terminalu uruchom polecenie cat, które będzie odczytywać dane z potoku "myfifo" i
wyświetlać je na ekranie. Przykład:
Teraz możesz zobaczyć, że dane wprowadzone w pierwszym terminalu za pomocą cat są odczytywane
i wyświetlane w drugim terminalu przez drugie polecenie cat.
Kiedy proces odczytujący (cat < myfifo) jest aktywny, czeka na dane w potoku. Proces zapisujący (cat >
myfifo) jest odpowiedzialny za dostarczenie danych.
Kiedy proces zapisujący (cat > myfifo) jest aktywny, czeka na wprowadzenie danych z klawiatury.
Proces odczytujący (cat < myfifo) jest odpowiedzialny za odczytywanie danych z potoku.
13. Tak, wiele terminali może obsługiwać 256 lub więcej kolorów. Jednak obsługa tych kolorów zależy
od terminala i jego konfiguracji. Oto kilka informacji na ten temat:
- Kolory ANSI: Standardowo terminale obsługują 8 podstawowych kolorów tekstu i tła (czarny,
czerwony, zielony, żółty, niebieski, magenta, cyjan, biały) za pomocą sekwencji ucieczki ANSI, takich
jak \033[31m dla czerwonego tekstu. Te kolory są obsługiwane przez większość terminali.
- Rozszerzone kolory: Niektóre terminale, takie jak xterm, gnome-terminal, konsole, urxvt itp.,
pozwalają na wykorzystanie większej ilości kolorów, zazwyczaj 256. Aby używać tych rozszerzonych
kolorów, musisz użyć odpowiednich sekwencji ucieczki ANSI. Na przykład, \033[38;5;196m oznacza
ustawienie koloru tekstu na 196.
- RGB Colors: W niektórych terminalach możesz użyć kolorów opisanych w systemie RGB. Dla
przykładu, możesz użyć sekwencji \033[38;2;255;0;0m dla czerwonego koloru tekstu, gdzie 255 to
czerwony, 0 to zielony, a 0 to niebieski. To pozwala na większą kontrolę nad kolorem.
./color_hello
14.
for file in *; do
mv "$file" "$new_name"
done