Powłoka II
Przydatne skróty klawiaturowe¶
Większość prostych zadań przy prace w powłoce da się obsłużyć przy pomocy przydatnych skrótów klawiaturowych. Na przykład:
- Up, Down - przeglądanie historii poleceń,
- Left, Right, BkSp, Del, Home, End - edycja aktualnego polecenia,
- Tab - magiczne podpowiadanie (dokańcza ścieżki, ale potrafi też inne rzeczy),
- Ctrl + R - wyszukiwanie poleceń w historii,
- Ctrl + C - zakończenie aktywnego zadania,
- Ctrl + D - zamknięcie standardowego wejścia dla aktywnego zadania, lub dla samego basha kończące się zakończeniem basha.
Więcej informacji na ten temat można przeczytać w dokumentacji: Command Line Editing, Using History Interactively.
Informacje o procesach¶
System umożliwia nam podgląd informacji o działających aktualnie procesach.
Przydatne wersje polecenia ps
:
ps
- procesy użytkownika związane z bieżącą konsolą;ps u
- procesy związane z różnymi konsolami;ps x
- wszystkie nasze procesy, także niezwiązane z konsolą;ps ux
- jak wyżej, wraz dodatkowymi informacjami, np. o właścicielu procesu i czasie startu;ps ax
- wszystkie procesy wszystkich osób na serwerze;
Informacje o procesach pochodzą z folderu /proc
Polecenie
pgrep
pozwala wyszukiwać procesy zgodnie z różnymi kryteriami.
Wyświetlanie w trybie interaktywnym:¶
Polecenia
top
i
htop
pozwalają interaktywnie przeglądać listę procesów.
Aby uzyskać pomoc w trakcie działania któregoś z tych programów, wciskamy jeden z klawiszy h
lub ?
. Wyjście odbywa się przy pomocy q
. htop
jest bardziej przejrzysty i wygodny w obsłudze niż top
, ale ten drugi z kolei oferuje możliwość zapisu raportu do pliku. Poniższe akapity są poświęcone programowi top
.
W celu zobaczenia procesów należących wyłącznie do użytkownika user1
możemy użyć komendy: top -u user1
. Alternatywnie, w trakcie działania programu top
wciskamy klawisz u
, wpisujemy user1
i akceptujemy. Jeżeli nie napiszemy żadnej nazwy, to zobaczymy procesy wszystkich użytkowników. Kończymy działanie danego procesu wciskając k
i podając jego PID. Przy pomocy polecenia top -p pid1, pid2, ...
(np. top -p 1, 3
) możemy śledzić wyłącznie procesy o podanych PIDach (w przykładzie: 1
i 3
). Klawisze z
i b
wpływają na oznaczenie aktywnych procesów.
Procesy możemy sortować względem wybranej kolumny. Domyślnie posortowane są po procentowym zużyciu procesora (klawisz P
). Jeśli chcemy ułożyć je po zużyciu pamięci, to używamy klawisza M
. W przypadku innego sortowania używamy O
lub F
, natomiast R
odwraca sortowanie. Możemy także decydować o wyborze kolumn do wyświetlenia (f
) i ich kolejności (o
). Klawisz c
(jak i opcja -c
przy uruchomieniu) sprawia, że możemy przełączać się między mniej i bardziej szczegółowym widokiem komend związanych z poszczególnymi procesami. Przy pomocy l
, t
i m
można włączać lub wyłączać podsumowania nad listą procesów.
Domyślny czas, po którym odświeżana jest lista procesów wynosi 3 sekundy. Aby go zmodyfikować, używamy albo komendy top -d liczba_sekund
, albo klawiszy d
lub s
w trakcie działania polecenia top
. Jeżeli chcemy natychmiast poznać aktualny stan listy procesów, to używamy enter bądź spacji.
Zarządzanie zadaniami w bashu - jobs
¶
Przydatne skróty klawiaturowe:¶
- Ctrl+Z - zatrzymanie aktywnego zadania (wykonywanie procesu zostaje zatrzymane, ale można je później wznowić).
- Ctrl+C - zakończenie aktywnego zadania.
- Ctrl+D - zamknięcie standardowego wejścia dla aktywnego zadania, lub dla samego basha kończące się zakończeniem basha.
Multitasking:¶
Bash pozwala kontrolować pracę zadań uruchomionych w tle w danej powłoce.
Na przykład używając Ctrl+Z możemy zawiesić działanie programu:
Żeby uruchomić polecenie w tle, należy linijkę z poleceniem zakończyć znakiem &
.
Po uruchomieniu w tle (<polecenie> &
) wyświetla się numer zadania oraz PID. Można uruchomić kilka komend w tle używając operatora &
jako separatora.
Listę zadań możemy wyświetlić poprzez wykonanie jobs
. Przykładowo:
Pierwsze zadanie jest zatrzymane. Drugie zadanie działa w tle, natomiast zadanie 3 zakończyło się, więc przy kolejnym wywołaniu już się nie pojawi na liście. Wstrzymane zadanie możemy wznowić:
bg %1
- wystartuje zadanie pierwsze pozostawiając je działające w tle,fg %2
- przywróci zadanie pierwsze na pierwszym planie,
Więcej informacji na temat kontroli zadań wbudowanej w bash
można przeczytać w dokumentacji:
Job Control Basics,
Job Control Builtins.
Sygnały i przerywanie zadań¶
Wiemy, że mamy możliwość przerywania, wstrzymywania i wznawiania uruchomionych programów, gdy wciśniemy Ctrl+C, czy Ctrl+Z. Jak jest to realizowane?
Mechanizm, który pozwala na takie zachowanie, to komunikacja poprzez sygnały. Działający program wykonuje operacje zgodnie ze swoim kodem. Jednakże w momencie otrzymania sygnału wywołuje się specjalne zachowanie -- zależne od sygnału.
Po wciśnięciu klawiszy Ctrl+C wyemitowany zostaje sygnał SIGINT
(który domyślnie powoduje przerwanie programu), z kolei za kombinacją Ctrl+Z, kryje się sygnał SIGTSTP
(wstrzymujący działanie programu).
Polecenie
kill
pozwala na wysłanie wybranego sygnału do dowolnego programu lub zadania.
Wpisując kill
w powłoce wywołujesz polecenie wbudowane, zobacz help kill
.
kill %5
- zatrzymaj (SIGTERM
) piąte zadanie,kill <PID>
- zatrzymaj proces o wskaznaym PID,kill -s SIGINT 4493
- przerwij (SIGINT
) proces o PID 4493,kill -9 4493
- zabij proces 4493 (SIGKILL
).
Lista dostępnych sygnałów jest dostępna pod man 7 signal
Jeżeli naszym celem jest zakończenie od razu wszystkich procesów związanych z konkretną komendą, to możemy użyć polecenia
killall
, np.
Byobu¶
Polecenie byobu
uruchamia emulator środowiska okienkowego w terminalu.
Pozwala ono uruchamiać i zarządzać równoległymi sesjami powłoki.
Dodatkowo, narzędzie to pozwala utrzymywać persystentną sesję - odłączoną sesję byobu
można przywrócić uruchamiając byobu
ponownie.
Przydatne skróty klawiaturowe:
- F6 - rozłącza sesję, zostawiając ją działającą w tle,
- F2 - uruchamia nową powłokę w zakładce,
- F3, F4 - nawigowanie lewo/prawo pomiędzy zakładkami,
- Shift+F2, Ctrl+F2 - uruchamia nową powłokę w okienku podzielonym na pół,
- Shift+F3, Shift+F4 - nawigowanie pomiędzy fragmentami podzielonej zakładki,
- F7 - pozwala przewijać historię powłoki.
Więcej informacji (razem z filmem demonstracyjnym) znajduje się na stronach projektu Byobu.
Gnome Terminal¶
Polecenie gnome-terminal
uruchamia graficzny interfejs powłoki.
Ustawienia wyświetlania (czcionka, kolory, skróty kalwiaturowe) dostępne w ustawieniach aplikacji.
Przydatne skróty klawiaturowe:
- Skróty Shift+PgUp, Shift+PgDn można wykorzystać do przewijania historii powłoki,
- Skrót Ctrl+Shift+T otwiera nową zakładkę,
- Skróty Ctrl+PgUp, Ctrl+PgDn służą do nawigaci lewo/prawo pomiędzy zakładkami,
- Skrót Ctrl+Shift+V wkleja tekst ze schowka do powłoki. Można wykorzystać myszkę do zaznaczenia fragmentów wyświetlanego tekstu. Dwuklik zaznacza słowo. Trójklik zaznacza wiersz.
- Skrót Ctrl+Shift+C kopiuje zaznaczony fragmet do schowka.
Więcej informacji znajduje się na stronach projektu Gnome Terminal.