Podstawowe komendy w systemach Linux

Obrazek dla Podstawowe komendy 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.

putty

Okno programu PuTTy. Ustawienia sesji.

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.

ssh putty2

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