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.

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ę znajdujemydir – wyświetla nam zawartość kataloguls – j.w (ls -la)
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 <nazwa-pliku>– 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:grupa> <plik> – zmiana właściciela pliku / kataloguchgrp <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
root@srv1:~# chown -R tomek:ekipa dane/Tworzenie, edycja, kasowanie użytkowników
adduser <nazwa> – tworzenie użytkownika z grupą, hasłem i katalogiem domowym.
root@srv1:~# adduser tomek
Adding user `tomek' ...
Adding new group `tomek' (1000) ...
Adding new user `tomek' (1000) with group `tomek' ...
Creating home directory `/home/tomek' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for tomek
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] useradd <nazwa> – szybkie tworzenie użytkownika.
root@srv1:~# useradd monika
root@srv1:~#userdel <nazwa> – kasowanie użytkownika.
root@srv1:~# userdel monika
root@srv1:~# passwd <nazwa> – zmiana (nadanie) hasła użytkownika.
root@srv1:~# passwd tomek
New password:
Retype new password:
passwd: password updated successfully
root@srv1:~# groupadd <nazwa> – tworzenie grupy dla użytkowników.
root@srv1:~# groupadd ekipa
root@srv1:~# groupdel <nazwa> – kasowanie grupy dla użytkowników.usermod <opcje> – modyfikuje użytkownika, np dodaje do grupy.
root@srv1:~# usermod -g ekipa tomek
root@srv1:~# id <nazwa> – wyświetla informacje o użytkowniku i grupach, do których należy
root@srv1:~# id tomek
uid=1000(tomek) gid=1001(ekipa) groups=1001(ekipa)su <nazwa-użytkownika> – zmiana użytkownikawho – sprawdzamy kto jest zalogowanywhoami – sprawdzamy na jakie konto jesteśmy zalogowani
root@srv1:~# su tomek
$ whoami
tomek
$ logout lub exit – 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 nowreboot – 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, o ile dany użytkownik ma do tego nadane odpowiednie prawa w /etc/sudoers.
Aktualizacja systemu linux
Debian / Ubuntu
apt-get update (krócej: apt update)
apt-get upgrade (krócej: apt upgrade)
lub
sudo apt-get update
sudo apt-get upgrade
CentOS
yum update
Przykład polecenia aktualizacji w CentOS:
[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]#
Aktualizacja w Debian/Ubuntu:
root@srv1:~# apt update
Hit:1 http://security.debian.org buster/updates InRelease
Hit:2 http://ftp.debian.org/debian buster InRelease
Hit:3 http://ftp.debian.org/debian buster-updates InRelease
Reading package lists... Done
Building dependency tree
Reading state information... Done
All packages are up to date.
root@srv1:~# root@srv1:~# apt upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
root@srv1:~# Instalacja programów linux
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 linux
(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 -sh /katalog – komenda podsumuje nam ile zajmuje dany katalogvmstat – użycie pamięci, iowait, cpuvnstat – program do monitorowania ruchu sieciowegoiftop – pokazuje aktualne zużycie sieci oraz wszystkie połączenia
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 linux
ping – program, którym testujemy czas odpowiedzi serwera. Pozwala zdiagnozować problemy z hostami, czasem odpowiedzi czy nawet statusem serwera. Jak sprawdzić połączenie internetowe – polecenie ping. | Jak to zrobić na hostingu? (hitme.pl)
[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 /]#
traceroute – tym programem testujemy „ścieżkę” do serwera. Pozwoli zdiagnozować problemy „na trasie” do serwera. Jak sprawdzić połączenie internetowe – traceroute. | Jak to zrobić na hostingu? (hitme.pl)
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.
root@srv1:~# dig mojewp.hmcloud.pl @dns3.hitme.net.pl
; <<>> DiG 9.11.5-P4-5.1+deb10u9-Debian <<>> mojewp.hmcloud.pl @dns3.hitme.net.pl
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48919
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;mojewp.hmcloud.pl. IN A
;; ANSWER SECTION:
mojewp.hmcloud.pl. 100 IN A 185.242.134.73
;; AUTHORITY SECTION:
mojewp.hmcloud.pl. 100 IN NS dns3.hitme.net.pl.
mojewp.hmcloud.pl. 100 IN NS dns4.hitme.net.pl.
;; ADDITIONAL SECTION:
dns3.hitme.net.pl. 3600 IN A 185.242.132.100
;; Query time: 0 msec
;; SERVER: 185.242.132.100#53(185.242.132.100)
;; WHEN: Mon Dec 11 06:57:11 CET 2023
;; MSG SIZE rcvd: 126
root@srv1:~# 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:~# whois hitme.pl
DOMAIN NAME: hitme.pl
registrant type: organization
nameservers: dns1.rootvps.pl. [185.242.133.50]
dns2.rootvps.pl. [193.178.43.60]
created: 2007.07.30 09:46:39
last modified: 2022.07.22 20:37:01
renewal date: 2026.07.30 09:46:39
no option
dnssec: Unsigned
REGISTRAR:
HitMe.pl Marek Bajerski
ul. Wiczlińska 34
81-578 Gdynia
+48.530630021
[email protected]
www.hitme.plJak 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


