Modulul 1 · 1.4
Explorarea liniei de comandă
Modulul 1: Primul dumneavoastră server · Timp de citire: 11 minute
Obiectivul lecției: După această lecție vă puteți orienta pe un server Linux: navigați prin directoare, citiți și editați fișiere, vedeți cât spațiu pe disc și câtă memorie sunt libere și căutați singur ajutor pentru o comandă.
Noțiuni cheie: shell, prompt, director și cale, cale absolută și relativă, /etc, /var/log, /home, ls -l, cd, cat, less, nano, man, --help, completare cu Tab, uname, df, free, uptime, pipe, grep
Shell-ul și promptul
După autentificare comunicați cu shell-ul: programul care citește și execută comenzile dumneavoastră. Pe Debian și Ubuntu acesta este de obicei bash. În stânga cursorului se află promptul:
anna@web1:~$
root@web1:~#Acesta vă spune trei lucruri: cine sunteți (anna sau root), pe ce server (web1) și în ce director vă aflați (~ este directorul dumneavoastră personal). Ultimul caracter este important: $ înseamnă un utilizator obișnuit, # înseamnă root. Dacă vedeți #, fiecare comandă rulează cu toate drepturile. Tastați acolo cu calm.
Directoare și căi
Totul pe Linux este legat de un singur arbore care începe la / (directorul rădăcină, a nu se confunda cu utilizatorul root). Câteva directoare le veți întâlni des în acest curs:
| Director | Ce conține |
|---|---|
/etc | Configurație: SSH (/etc/ssh), server web (/etc/nginx), utilizatori (/etc/passwd) |
/var/log | Fișiere jurnal (pe lângă journal, lecția 6.2) |
/var/lib | Datele programelor, de exemplu baze de date și Docker |
/home | Directoarele personale ale utilizatorilor obișnuiți, cum ar fi /home/anna |
/root | Directorul personal al lui root |
/usr | Programe și biblioteci instalate |
/tmp | Fișiere temporare, se golește periodic |
/srv sau /var/www | Locul obișnuit pentru site-uri și servicii |
O cale absolută începe la /, de exemplu /etc/ssh/sshd_config. O cale relativă începe de unde vă aflați acum: dacă sunteți în /etc, atunci ssh/sshd_config este același fișier. .. este directorul de deasupra, . directorul curent.
anna@web1:~$ pwd
/home/anna
anna@web1:~$ cd /etc/ssh
anna@web1:/etc/ssh$ ls
moduli ssh_config ssh_config.d sshd_config sshd_config.d ssh_host_ed25519_key ssh_host_ed25519_key.pub ...
anna@web1:/etc/ssh$ cd ..
anna@web1:/etc$ cd
anna@web1:~$cd fără nimic după vă duce înapoi în directorul personal.
Vizualizarea fișierelor
ls -l arată mai mult decât doar nume:
anna@web1:/etc/ssh$ ls -l sshd_config ssh_host_ed25519_key ssh_host_ed25519_key.pub
-rw-r--r-- 1 root root 3248 Aug 12 10:01 sshd_config
-rw------- 1 root root 399 Nov 2 14:20 ssh_host_ed25519_key
-rw-r--r-- 1 root root 91 Nov 2 14:20 ssh_host_ed25519_key.pubDe la stânga la dreapta: permisiunile, numărul de legături, proprietarul, grupul, dimensiunea în octeți, data și numele. Observați diferența: cheia secretă a gazdei (-rw-------) poate fi citită doar de root, cea publică (-rw-r--r--) de oricine. În lecția 3.1 învățați să citiți exact aceste permisiuni. ls -la afișează și fișierele ascunse: nume care încep cu un punct, cum ar fi .ssh.
Pentru a citi conținutul:
cat bestand: tot fișierul dintr-odată, util pentru fișiere scurte;less bestand: răsfoiți cu săgețile și cu tasta spațiu, căutați cu/woord, ieșiți cuq;head -n 20 bestandșitail -n 20 bestand: primele sau ultimele rânduri;tail -fcontinuă să urmărească fișierul pe măsură ce se adaugă rânduri.
Editarea unui fișier cu nano
Configurația o modificați într-un editor de text. nano este cel mai simplu:
root@web1:~# nano /etc/hostsÎn partea de jos sunt afișate scurtăturile; ^ înseamnă Ctrl. Salvarea se face cu Ctrl+O și Enter, ieșirea cu Ctrl+X, căutarea cu Ctrl+W. Dacă lucrați deja cu vim, îl puteți folosi; pe o instalare minimală vim nu este întotdeauna disponibil complet.
Trei obiceiuri care vă scutesc mai târziu de multe necazuri:
- Faceți mai întâi o copie:
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak. - Testați configurația înainte de a reporni un serviciu. Multe programe au o comandă proprie pentru asta:
sshd -t,nginx -t(lecțiile 2.2 și 7.2). - Schimbați un singur lucru odată, ca să știți ce a cauzat o eroare.
Cum stă serverul dumneavoastră?
Câteva comenzi pe care le folosiți în orice situație:
anna@web1:~$ uname -a
Linux web1 6.12.0-... #1 SMP ... x86_64 GNU/Linux
anna@web1:~$ uptime
10:12:44 up 3 days, 2:10, 1 user, load average: 0.08, 0.05, 0.01
anna@web1:~$ df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 40G 3.1G 35G 9% /
anna@web1:~$ free -h
total used free shared buff/cache available
Mem: 3.8Gi 412Mi 2.9Gi 1.0Mi 720Mi 3.4Gi
Swap: 0B 0B 0Buname -a: ce kernel rulează.uptime: de cât timp este pornit serverul și load average pe 1, 5 și 15 minute. În linii mari: o încărcare care rămâne mult timp peste numărul de nuclee ale procesorului înseamnă că se așteaptă.df -h: spațiul liber pe disc (-hînseamnă "human readable", cu G și M). Un disc plin este una dintre cele mai frecvente cauze pentru care un server se oprește "pur și simplu".free -h: memoria. Uitați-vă la coloanaavailable, nu lafree: Linux folosește memoria liberă drept cache (buff/cache) și o eliberează când un program are nevoie de ea.
Și rețeaua, din lecția 1.2: ip -brief address.
Găsirea ajutorului
Nu trebuie să rețineți toate opțiunile. Trebuie însă să știți unde le găsiți:
man sshdeschide manualul (manual page) unei comenzi. Răsfoiți ca laless, căutați cu/.man sshd_configdescrie fiecare cuvânt configurabil din acel fișier.ls --helpafișează la majoritatea comenzilor o listă scurtă de opțiuni.- Tasta Tab completează numele comenzilor și ale fișierelor. Apăsând de două ori Tab vedeți variantele posibile. Astfel evitați greșelile de tastare în căile lungi.
- Săgeata în sus readuce comenzile anterioare;
historyle afișează pe toate.
Pe o instalare minimală manualele lipsesc uneori. Pe Debian și Ubuntu le instalați cu apt install man-db (modulul 4).
Pipe-uri și grep
Puteți lega comenzile între ele cu un pipe (|): ieșirea uneia devine intrarea următoarei. grep filtrează rândurile care conțin un cuvânt:
anna@web1:~$ grep PasswordAuthentication /etc/ssh/sshd_config
#PasswordAuthentication yes
anna@web1:~$ ls -l /etc | lessRândurile care încep cu # sunt comentarii: nu au niciun efect și arată adesea valoarea implicită. În lecția 2.2 veți vedea de ce acest lucru poate crea confuzie la SSH.
Capcane
- Lipirea fără citire. Comenzile de pe internet fac exact ce scrie în ele, chiar dacă asta diferă de ce promite titlul articolului. Citiți fiecare comandă înainte de a o executa, mai ales când sunteți root.
rmnu are coș de gunoi. Ce s-a șters, s-a dus. Fiți foarte atent curm -r(un director cu tot conținutul) și cu caracterele wildcard precum*.- Majusculele contează.
/etc/SSHnu există;/etc/sshexistă. - Spațiile din căi trebuie puse între ghilimele:
cat "/srv/mijn site/index.html". Mai bine: nu folosiți spații în nume pe un server.
Rezumat
- Promptul vă spune cine sunteți, pe ce server și unde;
#înseamnă root. - Configurația se află în
/etc, jurnalele în/var/log, datele programelor în/var/lib, directoarele personale în/home. - Citiți cu
cat,less,headșitail; editați cunano, după ce ați făcut o copie, și testați configurația înainte de a reporni. df -h,free -h,uptimeșiip -brief addressarată cum stă serverul dumneavoastră.- Ajutorul se găsește în
manși--help; Tab completează; cu|șigrepfiltrați ieșirea.
Test (quiz)
Exercițiu
Exercițiul O1.4: Cunoașteți-vă serverul. Executați comenzile din lecție pe propriul server și completați: distribuția și versiunea, kernelul, spațiul liber pe disc, memoria disponibilă, încărcarea (load), IPv4 și IPv6 și ce fișiere din /etc/ssh pot fi citite doar de root. Apoi răspundeți la două întrebări despre ce ați văzut.
Exercițiul O1.4: Cunoașteți-vă serverul
Acest exercițiu îl faceți singur; nimeni nu îl verifică. Bifați ce ați făcut și marcați exercițiul ca finalizat.
available include și memoria cache pe care Linux o eliberează. Fișierul .pub este partea publică pe care o vede fiecare client; fișierul fără .pub este secret (600, root), deoarece oricine îl deține se poate da drept serverul dvs.
Bifele și notițele dumneavoastră rămân doar în acest browser; nu le trimitem nicăieri. Dacă sunteți autentificat, păstrăm în Cursurile mele doar faptul că ați finalizat exercițiul.
Lecturi suplimentare
- Mărirea spațiului pe disc al VPS-ului
- Acces SSH și Terminal în DirectAdmin: ce pachete sunt disponibile și cum vă conectați
- Referința Debian, capitolul 1 (ghid pentru linia de comandă): https://www.debian.org/doc/manuals/debian-reference/ch01.en.html
- Filesystem Hierarchy Standard 3.0: https://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html
