Programy 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.
 

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.