Podstawowe polecenia

Powłoka systemowa (system shell)

../_images/shell.svg1.png

Popularne powłoki:

  • sh (Bourne Shell) i bash (Bourne Again Shell)
  • csh (C Shell)
  • ksh (Korn Shell) i zsh (Z Shell)
  • fish (Friendly Interactive Shell)

Anatomia wywoływania poleceń

[inf70000@unixlab ~]$ yaourt -Sy --clean docutils

  • string zachęty ([inf70000@unixlab ~]$ – różny w zależności od konfiguracji systemu)
  • nazwa komendy (yaourt)
  • krótkie opcje (-Sy często równoznaczne z -S -y, parametry najczęściej po spacji, np. -O VALUE)
  • długie opcje (--clean, parametry najczęściej po znaku =, np. --OPTARG=VALUE)
  • argumenty (docutils, najczęściej są stawiane na końcu wywołania komendy)

Uwagi:

  • Bash rozróżnia wielkie i małe litery.

  • Bash używa spacji do rozróżniania komend od ich parametrów (itp.) więc:
    • ls --block-size=16 to nie to samo co ls --block-size = 16.
    • PS1='>' to nie to samo co PS1 = '>'.
  • Niektóre komendy mogą mieć poważne konsekwencje, więc należy stosować je ostrożnie.

Rodzaje poleceń:

  • Polecenia powłoki Bash (opisane w man bash).
  • Samodzielne programy (opisane na własnych stronach, np. man aspell).
  • Aliasy, funkcje w Bash-u (zdefiniowane przez użytkownika).

Krótki wstęp do pomocy

man
the friendly manual
man man
wyświetla pomoc dla podręcznika (q - wyjście z pomocy)
man POLECENIE
wyświetla pomoc dla POLECENIA
man SEKCJA POLECENIE
wyświetla pomoc dla POLECENIA z sekcji SEKCJA

Nawigacja w podręczniku:

  • q – wyjście z podręcznika
  • / – wyszukanie w podręczniku
  • n – następne trafienie
  • N – poprzednie trafienie

Poruszanie się po systemie plików

Wyszczególnione katalogi:
  • Katalog domowy: ~ lub /home/$USER (gdzie $USER to nazwa użytkownika).
  • Katalog główny: /.
ls

wylistuj zawartość katalogu (list)

-a, --all wypisz wszystko, łącznie z plikami ukrytymi
-l format listy
-h, --human-readable
 dostosuj jednostki wielkości
-R, --recursive
 wylistuj zawartość podkatalogów
-Q, --quote-name
 wypisz pliki w cudzysłowiu
-A, --almost-all
 wszystko (jak -a, -all) oprócz katalogów . i ..
pwd
wypisz nazwe bieżącego katalogu (print working directory)
cd
zmień katalog (change directory)

Info o użytkownikach

who
pokaż kto jest zlogowany (sesje)
whoami
wypisz nazwę użytkownika
id
wypisz identyfikatory użytkowników i grup

Zmienne

nazwa_zmiennej=wartość

Przypisanie wartości zmiennej. Zmiennych nie trzeba deklarować.

a=5
przypisuje napis 5 do zmiennej a
a = 5
wywołuje komendę o nazwie a z dwoma argumentami: = i 5... czyli nie to co chcemy!
b=cośtam
przypisuje wartość cośtam do zmiennej b
c="coś innego"
przypisuje wartość coś innego do zmiennej b
$nazwa_zmiennej

Dostęp do zmiennej.

Jeśli zostanie wcześniej wykonane a=5 to co zostanie wypisane przez komendy:

echo a
echo $a
echo "$a"
echo '$a'
echo $zmienna_ktorej_nic_nie_przypisalem
env
Wypisuje wartości wszystkich zmiennych.

Interfejs

<←> i <→>
kursor w przód/w tył
<↑> i <↓>
poprzednia/następna komenda w historii komend
<tab>
uzupełnianie nazwy plików, nazwy komendy
<tab><tab>
w wypadku wielu możliwych dopasowań przy uzupełnianiu wyświetl listę możliwości
<ctrl> + c
zabija aktywny proces (wysyła sygnał SIGQUIT)
<ctrl> + d
znak końca pliku/strumienia (EOF)
<ctrl> + a lub home,
kursor na początek lini
<ctrl> + e lub end
kursor na koniec lini
<ctrl> + k
usuń wszystko po kursorze
<ctrl> + i
wyczyść ekran – równoznaczne z komendą clear
<ctrl> + <shift> + <insert>
kopiuj zaznaczenie
<shift> + <insert>
wklej