Podstawowe komendy w systemach Linux

Dla tych, którzy obawiają się pracy z linuxem przygotowaliśmy mały kurs, który pomoże zaznajomić się z podstawowymi komendami w Linux. Wydawanie poleceń w linuxie wcale nie jest trudniejsze niż w innych systemach operacyjnych. Tak naprawdę jest bardziej ustandaryzowane i zadbane – przez co de facto prostsze. Poznaj podstawowe komendy Linux i przekonaj się, że nie różnią się one tak bardzo od tych np. z Windows.
Zacznijmy od tego jak zdalnie zalogować się do konsoli naszego serwera z linuxem, aby móc wydawać komendy systemowe.
Logowanie
Aby zalogować się na serwer linux (np. VPS) z systemu Windows najlepiej zaopatrzyć się w klienta SSH. Osobiście preferuję PuTTy. W systemie macOS można użyć po prostu wbudowanego polecenia ’ssh’ w terminalu.
Wpisujemy IP serwera oraz port. Standardowy port to 22 ale równie dobrze może być to inny numer portu np. 1022 lub inny.
Następnie jedynie musimy kliknąć w w przycisk Open znajdujący się w dolnej części okienka.
Po uruchomieniu wyświetli nam się prośba o podanie loginu.
Standardowo po instalacji serwera dostajemy konto root (super użytkownika) lub inną nazwę użytkownika. Wpisujemy w polu login as: root i klikamy enter. Następnie wpisujemy hasło.
Uwaga: hasło nie wyświetla się w programie. Jest to spowodowane kwestiami bezpieczeństwa.

Wprowadzanie hasła użytkownika w konsoli Linux.
Po zalogowaniu jesteśmy już w „systemie” i możemy korzystać z naszego serwera.
Poruszanie się po katalogach
podstawowe komendy linux do poruszania się w systemie:
cd /home – (/home – katalog) komenda ta służy do „wejścia” do danego katalogu. W tym przykładzie do katalogu /home.
cd .. – cofamy się o jeden katalog.
pwd – zwraca katalog, w którym obecnie się znajdujemy
dir – wyświetla nam zawartość katalogu
ls – j.w
Przykład działania komend w linux:
root@srv1 ~]# cd /home [root@srv1 home]# cd .. [root@srv1 /]# pwd / [root@srv1 /]# dir [root@srv1 /]# ls
Tworzenie, edycja i kasowanie plików / folderów
mkdir <nazwa> – tworzymy katalog.
rm <nazwa> – usuwamy plik.
rm -rf <nazwa> lub rmdir – usuwamy katalog.
cp <obecny-plik> <nowy-plik> – kopiujemy plik.
mv <obecny-plik> <nowy-plik> – przenosimy plik (może również służyć do zmiany nazwy).
touch – tworzymy nowy plik tekstowy.
[root@srv1 /]# cd /root [root@srv1 ~]# pwd /root [root@srv1 ~]# mkdir temp [root@srv1 ~]# cd temp/ [root@srv1 temp]# touch plik.txt [root@srv1 temp]# ls plik.txt [root@srv1 temp]# mv plik.txt rzeczy.txt [root@srv1 temp]# ls rzeczy.txt [root@srv1 temp]#
Prawa do plików
chmod xxx plik (xxx – cyfry) – zmiana praw do plików/katalogów (przykłady na końcu artykułu).
chown user plik – zmiana właściciela pliku / katalogu
chgrp grupa plik – zmiana grupy pliku / katalogu
Ciekawostki:
chmod 777 * – *-zastępuje nazwę pliku. Oznacza że komenda zostanie użyta dla wszystkich plików w danym katalogu.
Chmod 777 *plik – komenda ta zastosuje się dla wszystkich plików / katalogów, których nazwa kończy się na „plik”. Początkowy człon nazwy może być dowolny. Można również stosować to do formatów plików. Np. *.zip, *.sql, *.rar.
Chown test katalog -R – komenda ta zmieni właściciela katalogu „katalog” wraz z jego zawartością na użytkownika test.
Przykład poleceń w linux:
[root@srv1 temp]# ls -la total 4 drwxr-xr-x 2 root root 23 Jun 6 15:51 . dr-xr-x---. 16 root root 4096 Jun 6 15:50 .. -rw-r--r-- 1 root root 0 Jun 6 15:50 rzeczy.txt [root@srv1 temp]# chmod 600 rzeczy.txt [root@srv1 temp]# ls -la total 4 drwxr-xr-x 2 root root 23 Jun 6 15:51 . dr-xr-x---. 16 root root 4096 Jun 6 15:50 .. -rw------- 1 root root 0 Jun 6 15:50 rzeczy.txt
Tworzenie, edycja, kasowanie użytkowników
adduser <nazwa> – tworzenie użytkownika.
useradd <nazwa> – tworzenie użytkownika.
userdel <nazwa> – kasowanie użytkownika.
passwd <nazwa> – zmiana hasła użytkownika.
groupadd <nazwa> – tworzenie grupy dla użytkowników.
groupdel <nazwa> – kasowanie grupy dla użytkowników.
who – sprawdzamy kto jest zalogowany
whoami – sprawdzamy na jakie konto jesteśmy zalogowani
su <nazwa-użytkownika> – zmiana użytkownika
logout – wylogowujemy się
Inne komendy:
Czasami potrzebujemy zrestartować czy wyłączyć maszynę. W tym celu wydajemy odpowiednie polecenia dla systemy linux:
shutdown – wyłączanie systemu np. shutdown -h now
reboot – restart systemu
Jeżeli nie jesteśmy zalogowani jako użytkownik 'root’ musimy użyć wcześniej *sudo.
*sudo jest to komenda pozwalająca wykonać zadanie z najwyższymi uprawnieniami użytkownika root.
Aktualizacja systemu
Debian / Ubuntu
apt-get update
apt-get upgrade
lub
sudo apt-get update
sudo apt-get upgrade
CentOS
yum update
Przykład polecenia aktualizacji w linux:
[root@srv1 temp]# yum update Loaded plugins: fastestmirror, priorities Loading mirror speeds from cached hostfile * base: centos.slaskdatacenter.com * epel: ftp.icm.edu.pl * extras: centos.slaskdatacenter.com * rpmforge: ftp.nluug.nl * updates: ftp.icm.edu.pl 4 packages excluded due to repository priority protections No packages marked for update [root@srv1 temp]#
Instalacja programów
Instalacja programów Debian/Ubuntu:
apt-get install <nazwa-programu>
sudo apt-get install <nazwa-programu>
Instalacja programów CentOS:
yum install <nazwa-programu>
Kasowanie programów Debian/Ubuntu:
apt-get remove <nazwa-programu>
sudo apt-get remove <nazwa-programu>
Kasowanie programów CentOS:
yum remove <nazwa-programu>
Podstawowe monitorowanie pracy serwera
(lista programów i komend. Niektóre mogą wymagać instalacji)
top – program który pokaże nam zużycie procesora, pamięci ram oraz ilość procesów. Można również wyśledzić który proces pochłania nam najwięcej zasobów.
htop – nakładka graficzna na program top. Znacznie wygodniejszy w korzystaniu od programu top.
df -h – komenda ta pokaże nam ilość użytego/wolnego miejsca na dyskach.
du -h /katalog – komenda podsumuje nam ile zajmuje dany katalog
vmstat – użycie pamięci, iowait, cpu
vnstat – program do monitorowania ruchu sieciowego
Przykład polecenia w linux:
[root@srv1 /]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/centos-root 41G 3.8G 37G 10% / devtmpfs 24G 0 24G 0% /dev tmpfs 24G 0 24G 0% /dev/shm tmpfs 24G 289M 24G 2% /run tmpfs 24G 0 24G 0% /sys/fs/cgroup /dev/md0 202G 1.9G 190G 1% /home /dev/sde1 497M 251M 246M 51% /boot tmpfs 4.7G 0 4.7G 0% /run/user/1000 tmpfs 4.7G 0 4.7G 0% /run/user/0 [root@srv1 /]#
Diagnostyka sieciowa
ping – program, którym testujemy czas odpowiedzi serwera. Pozwala zdiagnozować problemy z hostami, czasem odpowiedzi czy nawet statusem serwera.
traceroute – tym programem testujemy „ścieżkę” do serwera. Pozwoli zdiagnozować problemy „na trasie” do serwera.
mtr – jest to program bardzo podobny do traceroute / tracert. Program cechuje się tym że pokazuje prócz ścieżki do serwera ilość pakietów oraz gdzie są wytracane (czy po drodze czy na serwerze końcowym)
dig – odpytywanie serwerów nazw o domenę, np. dig hitme.pl lub dig hitme.pl @dns3.hitme.net.pl aby odpytać konkretny serwer DNS. Jest to odpowiednik polecenia nslookup z Windows. Bardzo przydatne przy analizowaniu problemów z DNS.
whois – aplikacja ta pozwala nam uzyskać informacje m.in. O serwerach DNS domeny, firmie która jest zarejestrowana oraz o firmie która jest właścicielem danego adresu IP.
[root@srv1 /]# ping google.com PING google.com (172.217.20.206) 56(84) bytes of data. 64 bytes from waw02s08-in-f206.1e100.net (172.217.20.206): icmp_seq=1 ttl=56 time=23.8 ms 64 bytes from waw02s08-in-f206.1e100.net (172.217.20.206): icmp_seq=2 ttl=56 time=22.7 ms 64 bytes from waw02s08-in-f206.1e100.net (172.217.20.206): icmp_seq=3 ttl=56 time=25.2 ms 64 bytes from waw02s08-in-f206.1e100.net (172.217.20.206): icmp_seq=4 ttl=56 time=22.8 ms ^C --- google.com ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3016ms rtt min/avg/max/mdev = 22.722/23.688/25.246/1.021 ms [root@srv1 /]#
Jak widzisz podstawowe komendy linux nie są takie straszne i nie należy się ich bać. Jeśli jesteś zainteresowany bardziej zaawansowanymi operacjami i poleceniami linux przeczytaj dalej artykuł: Podstawowe operacje w systemach Linux dla początkujących