Polecenia systemu operacyjnego Unix
W systemach Unix oraz w systemach uniksopodobnych polecenia są często programami uruchamianymi z wiersza poleceń powłoki systemowej.
Często różne powłoki mają dodatkowo wbudowane własne implementacje niektórych poleceń; np. zawierają wersję polecenia dostępnego jako /bin/echo
.
To, która wersja polecenia będzie wykonana domyślnie zależy od tego, która powłoka jest używana oraz od konfiguracji systemu.
Podstawową powłoką większości systemów Unix jest Bourne shell dostępna zwykle jako /bin/sh
lub /usr/bin/sh
, jednak częściej w pracy interaktywnej używa się wywodzących się z niej, bardziej rozbudowanych powłok takich jak bash, Korn shell, Z shell, czy też spokrewnionych C shell i tcsh, z nowszych popularność zyskuje fish.
Większość powłok może być także używana jako języki skryptowe, co pozwala użytkownikowi na wykonywanie rozbudowanych poleceń wykorzystujących wiele programów oraz pisanie skryptów automatyzujących często wykonywane czynności.
Za pomocą mechanizmów potoków i kolejek można w łatwy sposób przekazywać dane pomiędzy wieloma programami tworząc z nich bardziej skomplikowane narzędzia.
Zestaw najważniejszych poleceń
Zarządzanie plikami
- cat – wypisywanie i łączenie plików
- chgrp – zmiana grupy pliku
- chmod – zmiana praw dostępu do pliku
- chown – zmiana właściciela/grupy pliku
- chattr – zmiana konkretnych atrybutów pliku
- cd – zmiana bieżącego katalogu, użyty bez argumentów powraca do katalogu domowego
- cp – kopiowanie plików
- df – wypisywanie wolnej przestrzeni zamontowanych systemów plików
- du – wyświetla ilość miejsca zajmowanego przez pliki/katalogi
- file – ustalanie typu danych zawartych w pliku
- find – przeszukiwanie systemu plików
- getfacl – odczytanie prawa dostępu z list ACL
- ln – tworzenie dowiązań twardych i symbolicznych (patrz niżej)
- ls – listowanie zawartości katalogu
- lsof – wyświetlanie listy otwartych plików, oraz używających ich programów
- mkdir – tworzenie katalogów
- mkfifo – tworzenie nazwanych potoków
- mv – przenoszenie/zmiana nazwy pliku
- pwd – wydruk aktualnego katalogu
- rcp – transfer plików na zdalny host
- rm – usuwanie plików i katalogów.
- rmdir – usuwanie katalogów
- scp – transfer plików bezpiecznym kanałem, SSH, na zdalny host
- setfacl – ustawienie prawa dostępu list ACL
- split – dzielenie pliku na kawałki
- rsync – synchronizacja plików, ewentualnie również bezpiecznym kanałem, SSH.
- touch – zamiana daty ostatniej modyfikacji, lub dostępu do pliku bądź utworzenie pustego pliku
- umask – wyświetla aktualną i umożliwia zmianę maski uprawnień dla tworzonych plików
- unlink – wywołanie systemowe, usuwanie pliku lub katalogu
Zarządzanie systemem plików
- badblocks – kontroluje badblocks (złe bloki urządzeń)
- df – sprawdzanie przestrzeni (również wolnej) na dyskach
- fsck – sprawdzanie integralności systemu plików
- fdisk – manipulacje w tabeli partycji także cfdisk, sfdisk, parted
- mkfs – tworzenie systemu plików, „formatowanie”
- lvm – narzędzia do LVM
- mount – montowanie urządzeń/zasobów w systemie plików (patrz niżej)
- umount – odmontowanie zasobu z systemu plików (patrz mount)
- dd – operacje io na dysku z pominięciem systemu plików.
- mdadm – zarządzania urządzeniami md czyli software RAID
Zarządzanie procesami
- at – jednorazowe wykonywanie polecenia w określonym czasie
- chroot – uruchomienie programu ze zmienionym katalogiem głównym
- cron – regularne uruchamianie programów w określonym czasie
- fg – przeniesienie procesu uruchomionego w tle na pierwszy plan
- kill – przekazanie sygnału do procesu (domyślnie usunięcie wskazanego procesu)
- killall – zakończenie wykonywania wszystkich procesów o podanej nazwie
- ps – pobieranie informacji o aktywnych procesach
- top – wyświetla najważniejsze procesy
- watch – monitorowanie wyniku polecenia
- halt, poweroff, shutdown, reboot – wyłączenie lub restart systemu
- nice zmienia priorytet procesów
Zarządzanie użytkownikami i systemem
- login – logowanie do systemu
- passwd – zmiana hasła
- su – logowanie na konto innego użytkownika (patrz niżej)
- sudo – uruchomienia aplikacji z uprawnieniami root
- w – podobnie jak who, jednak zawiera więcej informacji
- who – wypisanie listy zalogowanych użytkowników wraz z dodatkowymi informacjami o nich
- whoami – pokazuje bieżący efektywny uid, czyli identyfikator użytkownika, z którego prawami działamy
Przetwarzanie tekstu
- cut – wycina określone znaki z wejścia (zazwyczaj z pliku)
- grep – wypisywanie linii pasujących do wzorca
- head – wypisanie pierwszych 10 linijek tekstu
- more – rozwinięcie o sterowanie strumieniem
- less – dla dużych ilości tekstów
- tail – wypisanie ostatnich 10 linijek tekstu, także używane w diagnostyce (patrz niżej)
- tee – wypisywanie danych wejściowych na standardowe wyjście i do dowolnej liczby plików
- od – wypisywanie i formatowanie surowej wersji pliku
- vi – edycja plików tekstowych
Operacje wejścia/wyjścia
- echo – druk na standardowe wyjście
- printf – bardziej rozbudowane polecenie drukujące na standardowe wyjście.
- read – wczytanie znaków z terminala
Inne
- clear – wyczyszczenie konsoli/terminala
- mail – zarządzanie pocztą
- man – podręcznik elektroniczny
- xinit – uruchomienie środowiska X Window System
- test – sprawdzanie typów plików i porównywanie wartości
Operatory (bash)
- && – wykonaj jeśli poprzednie polecenie zakończyło się sukcesem, np. `./configure && make bzImage`
- – bezwzględne wykonanie, np. `clear ; echo -e "Fajnie!"`
- > – przekierowanie standardowego wyjścia (czyli to co program wypisze w konsoli) do pliku, np. `cat /proc/cpuinfo > ~/cpuinfo.txt`
- < – przekierowanie do standardowego wejścia, np. `cat < /proc/cpuinfo`, jednak w efekcie to to samo co `cat /proc/cpuinfo` (w pierwszym przypadku dane wejściowe to plik skierowany na standardowe wejście, w drugim parametr przekazywany do programu, który znajduje, otwiera i czyta plik)
- | – skierowanie standardowego wyjścia do potoku, który obsłuży program trzeci, np. `cat /etc/hosts | grep "192.168.0." | awk {print $1}`
- & – wykonanie programu w tle, np. sudo synaptic &. Program taki nie podaje danych do terminala i pozostawia go możliwym do użycia.
- `komenda` – wykonanie polecenie bashowego w trakcie wykonywania poprzedniego polecenia, np. `clear && echo -en "\033[1;31mInformacje o procesorze:\033[1;0m\n`cat < /proc/cpuinfo`\n"` – należy zwrócić uwagę na operator "`", przerywa on na chwilę działanie skryptu, wykonuje polecenie `cat` i kieruje standardowe wyjście w miejsce operatorów ``. Parametry programu echo – \033[y;xxm ustawiają kolory – y to kolor tła, x to kolor napisów.
Przykłady łączenia kilku poleceń
$ su -c "mount -t smbfs //inny_komputer/share /mnt/net_share; cp -r /mnt/net_share /home/uzytkownik/dane; chown uzytkownik:users -r /home/uzytkownik/dane; umount /mnt/net_share"
Podane polecenie skopiuje zawartość udostępnionych zasobów z inny_komputer, nada im odpowiednie prawa dostępu i potem odmontuje zasoby sieciowe. Wszystko jest wykonywane z poziomu roota, gdyż domyślnie tylko on może montować partycje i zasoby innych komputerów.