Documente Academic
Documente Profesional
Documente Cultură
6. Comenzi Linux
Pentru o mai bună înţelegere a comenzilor şi a ceea ce urmează, dorim să vă reamintim
asemănarea dintre comezile din DOS/windows şi Linux.
Scopul comenzilor DOS Linux Exemple de comenzi în Linux
Copiera fişierelor copy cp cp thisfile.txt /home/thisdirectory
Mutarea fişierelor move mv mv thisfile.txt /home/thisdirectory
Listarea fişierelor dir ls Ls
Curăţarea ecranului cls clear Clear
Modificarea datei din date date Date
calculator
Inchiderea unei ferestre exit exit Exit
deschise sub windows
Ştergerea fişierului del rm rm thisfile.txt
Ecou afişat pe ecarn echo echo echo this message
Editarea textului cu un editor edit joe (a) joe thisfile.txt
simplu
Compararea conţinutului a 2 fc diff diff file1 file2
fişiere
Găsirea unui şir de caractere find grep grep this word or phrase thisfile.txt
într-un fişier
Formatarea unei dischete format a: mke2fs /sbin/mke2fs /dev/fd0 (/dev/fd0
(Unitatea sau este echivalentul dischetei A sub
discheta a:) Linux
mformat (b)
Ajutor (Help, F1) Command /? man (c) man command
Crearea unui director mkdir mkdir mkdir director
Rularea conţinutului unui more less (d) less thisfile.txt
fişier
Redenumirea unui fişier ren mv mv thisfile.txt thatfile.txt (e)
Ne arată unde ne aflăm în chdir pwd pwd
sistemul de fişiere (calea
absolută spre directorul
curent)
Schimbarea directorului (calea cd pathname cd pathname cd directory/directory
absolută)
Schimbarea directorului cu o cd .. cd .. cd ..
cale relativă
Afişarea orei exacte time date date
Valoarea RAM-ului în lucru şi mem free free
liber
1
Partea I – Linux
Observaţii:
Joe este unul din multele editoare simple din linux, alte editoare sunt emacs, vi.
Aceste comezi formatează o dischetă pentru a putea fi folosită în sistemul dos/windows
Ajutorul la unele comezi poate fi apelat şi cu comandă info
Se mai poate folosi şi comandă combinată de genul cat | more nume fişier pentru a afişa pe ecrane
conţinutul unui fişier
Comanda mv se foloseşte în două ipostaze: pentru mutare şi pentru redenumire de fişier
Aceste comenzi sunt baza pentru orice persoană care doreşte să înceapă să lucreze în linux!
cc [opţiuni] fişier(e).[c|s|o]
Compilatorul programelor C.
- Lansează în execuţie compilatorul limbajului C;
- Primeşte ca intrare unul sau mai multe fişiere sursă C (.c), asamblare (.s) sau obiect (.o);
Opţiuni:
-c Compilare simplă, fără a genera executabil, produce fişiere obiect;
-o Fiş_exec Generează fişierul executabil fiş_exec; dacă lipseşte această opţiune, se va genera
executabil cu numele a.out;
-f Compilare cu opţiune de virgulă mobilă;
-lm Legarea bibliotecii matematice;
cd
Comanda cd schimbă poziţia Dvs în sistem la un anumit director în care doriţi să intraţi: ex.
cd /usr/local - schimbarea poziţiei în directorul /usr/local
Doar tastând comanda cd puteţi reintra în directorul Dvs. (home)
cd .. - va ridica la un rând superior în ierarhia directoarelor
exemplu:
Iniţial suntem în /home/user/smith
Dăm comanda cd ..
Vom fi teleportaţi în directorul /home/user
2
Capitolul 6 – Comenzi Linux
cd / - ne duce direct în directorul rădăcină
exemplu:
Iniţial suntem în /home/user/smith
Dăm comandă cd /
Vom fi teleportaţi în directorul /
clear
Şterge ecranul.
cmp [opţiuni] f1 f2
Compară două fişiere.
Opţiuni:
-l afişează numărul şi valoarea în octal pentru fiecare diferenţă întâlnită;
-s rezultatul este dat printr-un cod numeric (0-identice, 1-diferite, 2-eroare)
cp
Comanda cp copiază un fişier. Se poate copia un fişier într-un director şi în acelaşi timp îl poţi
redenumi.
Comanda cp poate fi folosită să copieze un director în altul:
cp -r /root/mail /usr/local
copiază directorul mail în directorul /usr/local.
date [mmddhhmm[yy]]
Afişează/setează data curentă pentru ceasul încorporat.
Opţiuni:
mm – luna, 2 cifre; dd – ziua, două cifre; hh – ora, două cifre; mm – minutul, două cifre; yy –
anul, două cifre
diff [-e] f1 f2
Afişează diferenţele de conţinut dintre două fişiere.
dmesg
Această comandă va afişa pe ecranul monitorului toate mesajele care apar în momentul când
pornim calculatorul.
Pentru a putea vizualiza toate mesajele folosiţi comanda dmesg | more
du [listaarg] [listanume]
Afişează informatii despre disc.
echo [listaarg]
Afişare mesaj pe ecran.
3
Partea I – Linux
Exemplu:
echo Intalnire cu Bill Gates la ora 8, peste jumatate de ora
Observaţie: am putea folosi această comandă pentru a afişa mesajul de la exemplul pentru
comanda at;
exec
Comanda exec execută un fişier sau un script binar. De exemplu,
exec /etc/sysconfig/network-scripts/ifup ppp0
porneşte o sesiune internet.
Notă: este mai uşoară execuţia acestei comezi decât să facem două operaţii cum ar fi:
cd /etc/sysconfig/network-scripts/
./ifup ppp0.
file lista_fişiere
Determină tipul unui fişier.
grep
Comanda grep ne ajută să găsim ceea ce căutăm într-un fişier … detaliile comezii le găsiţi mai
jos.
id
Afişează numărul şi numele de utilizatori şi grup.
less
Comandă less vă dă posibilitatea să afişati conţinutul unui fişier şi vă mai dă posibilitatea de a rula
conţinutul lui dacă este mai lung decât o pagină de ecran.
ln
Comandă ln crează un link al unui director sau al unui dispozitiv către un alt director sau un alt
dispozitiv. Amintiţi-vă de sistemul windows când faceţi un shortcut la un director, la un fişier, la
unitatea de dischetă, sau la unitatea de harddisk. Cel mai bine se foloseste acest lucru făcând un link
simbolic către un director de pe una din partiţiile Linux.
Să zicem că ne aflăm în directorul / root şi că vă este groază să tot tastaţi comandă ls
usr/local/myfiles pentru a vizualiza ce se află în acest director. Atunci daţi următoarea comandă:
ln -s /usr/local/myfiles myfiles
4
Capitolul 6 – Comenzi Linux
Acum aveţi un link simbolic numit myfiles in directorul Dvs de bază spre directorul
/usr/local/myfiles. Dacă tastaţi myfiles, linkul vă va duce direct la directorul înscris în linkul
simbolic. Dacă doriţi să copiaţi ceva în directoul /usr/local/myfiles este mai simplu să folosiţi
comandă mv testdownload.tar.gz myfiles. Veţi vedea cât timp câştigati prin acest procedeu.
ls
Ne arată conţinutul unui director.
Opţiuni:
ls -l
Ne arată ce ezistă într-un director în format lung (ne arată de cine aparţin fişierele, data
când au fost create şi altele)
ls -a
Ne arată ceea ce conţine un director, dar pe lângă fişierele obişnuite ne arată şi fişierele
ascunse cum ar fi .bash_history
Opţiuni:
-d: afişează numai directoarele din directorul curent;
-i: afişează nr. de inod;
-s: afişează numărul de blocuri pentru fiecare fişier;
-t: fişierele sunt sortate după data ultimei actualizări;
-u: se consideră data ultimului acces în locul datei ultimei actualizări, pentru opţiunile –t sau -
l;
-r: inversează ordinea de sortare;
Aceste prime două comenzi sunt cel mai adesea folosite de către fiecare persoană. Pe lângă aceste
8 opţiuni, mai există încă 18.
logout
Comanda logout vă scoate din sistem, şi permite altui utilizator să se logheze, pe acelaşî terminal.
make
make [makefile] – construieşte aplicaţia pe baza fişierului de configuraţie „makefile”;
Sintaxa:
make [opţiuni][-f makefile][macrodef...][fişiere_tinta]
Opţiuni:
-n Se afişează liniile de comandă, dar nu se execută;
-t Actualizarea fişierelor ţintă;
-p Afişare macrodefiniţii;
-f Precede numele unui fişier de descriere (tip makefile);
mkdir
Comandă mkdir realizează un director sub linux
Comandă mkdir realizează un fişier oriunde pe harddisk, dacă aveţi şi drepturile necesare de
realizare a lui:
mkdir /etc/sysconfig/testdir
5
Partea I – Linux
more
Comanda more face exact acelaşi lucru ca şi less, doar că nu ne lasă să rulam fişierul afişat decât
într-o singură direcţie, aceea fiind în jos, şi nu apăsând orice tastă, ci doar tasta ENTER.
Comandă more mai poate fi folosită în combinaţii cu oricare comandă de afişare din linux cu
precizarea că între cele două comenzi să se pună semnul | (pipe):
Exemplu:
cat test | more
Se afişează conţinutul fişierului test până când se intrerupe pagina. Pentru a putea vedea ce scrie
pe următoarea pagină vom fi nevoiţi să apăsăm o tastă de pe tastatură.
mount
Sistemul de fişier în linux este încărcat şi se poate accesa după cum scrie în fişierul /etc/fstab. dacă
aveţi posibilitatea, vă puteţi uita la conţinutul fişierului, dacă nu, îl afişăm mai jos (seamănă cu al
dvs.):
Veţi vedea sistemul de fişiere care este montat la pornirea sistemului, care dealtfel este încărcat ca
şi unitatea floppy, sau unitatea cdrom.
Cum pot vizualiza informaţia de pe un cdrom dacă acesta nu este montat? Ei bine, el trebuie
montat şi asta se face cu comandă:
mount /dev/cdrom / mnt/cdrom
Cum pot citi informaţia de pe o dischetă? Înainte de a putea citi ce avem pe un fişier, trebuie să
încărcăm în memorie acel floppy, ceea ce se face cu comandă:
mount /dev/fd0 /mnt/floppy
Cum pot citi informaţia de pe o dischetă dos? Înainte de a putea citi ce avem pe un fişier, trebuie
să încărcăm în memorie acel floppy, ceea ce se face cu comandă:
mount -t msdos /dev/fd0 /mnt/floppy
Toate aceste comenzi accesează fişierul /etc/fstab pentru a vedea cum trebuie încărcate fiecare
dintre accesorii. Dacă citiţi cu atenţie fişierul /etc/fstab veţi vedea că sistemul de fişiere este încărcat
cu anumite opţiuni. De exemplu cdromul nu este încărcat la bootarea calculatorului şi este încărcat
cu opţiunea readonly. Vă rog să notaţi că directoarele /mnt/floppy şi /mnt/cdrom sunt făcute din
6
Capitolul 6 – Comenzi Linux
oficiu şi tot din oficiu poartă aceste nume. Dacă doriţi să montaţi/încărcaţi sistemul Dvs win98,
urmaţi vă rog următorii paşi:
mkdir /mnt/vfat
Pentru a-l putea încărca oricând doriţi Dvs, tastaţi:
mount -t vfat /dev/hda1 /mnt/vfat
unde
hda1 este prima partiţie a harddiskului Dvs unde este instalat windows 98, hda2 este a doua
partiţie, hdb1 este prima partiţie a celui de al doilea harddisk
La urma urmei, toate acestea pot fi adăugate în fişierul /etc/fstab pentru ca noi să trebuiască să
tastăm doar o parte din comandă şi anume:
/mnt/vfat
Vă recomandăm să nu editaţi fişierul /etc/fstab aiurea, doar dacă sunteţi sigur că ceea ce faceţi este
bine. O metodă simplă de modificare a fişierului cu pricina este să folosiţi comada linuxconf care ar
trebui să fie instalată în sistemul Dvs după ce aţi instalat Linux.
Dacă lucraţi în interfaţa grafică a sistemului Linux s-ar putea să ajungeţi la concluzia că linuxconf
nu funcţionează. Pentru aceasta există o altă comandă care se numeşte:
usermount
mv
Comanda mv mută un fişier într-un director
mv test test2
Mută fişierul test în acelaşi director, sub numele test2. Remarcaţi că acest lucru face exact ceea ce
face comanda de redenumire din dos sau windows.
mv test /home/user/john
Mută fişierul test în directorul /home/user/john
pwd
Comanda pwd afişează calea absolută spre directorul curent.
ps
Comanda ps vă afişează procesele curente care rulează şi numarul lor de id.
ps –avx
Afişează toate procesele ce rulează pe server la un moment dat
rm
Comanda rm şterge un fişier şi poate fi folosită să şteargă şi un director
rm -rf /root
Şterge totul în directorul /root fără a vă întreba dacă doriţi totuşi acest lucru.
Vă recomandăm să nu faceţi acest lucru dacă nu doriţi să reinstalaţi sistemul de la bun început
7
Partea I – Linux
shutdown
Comanda shutdown ne ajută să oprim sistemul de operare înainte de a stinge calculatorul. Această
comandă ne dă posibilitatea de a restarta sistemul.
Opţiuni:
Reporneşte calculatorul imediat:
shutdown -r now
Reporneşte calculatorul la ora 9:30:
shutdown -r 09:30
Pregăteşte sistemul pentru a-l putea opri:
shutdown -h now
Pentru a opri calculatorul, trebuie ieşit din linux, ceea ce este posibil numai după ce toate
modulele din linux au fost închise şi oprite.
sort [lista_fişiere] – sortare lexicografică (de obicei, sortează liniile unui fişîer text).
Exemplu:
cat membri.txt | sort | more
tstty [opt] – se conectează pe un port serial (COM, sub DOS)
Opţiuni:
-parmb activează detecţia de paritate
-parodd setează paritate impară
-(1200 2400 4800 9600 )
touch
Comanda touch crează un fişier gol.
touch test
Crează un fişier care poartă numele test şi care este gol, şi poate fi editat cu ajutorul comenzii joe
test
top
top este un program şi nu o comandă, dar poate fi privit ca un program foarte important. Pentru a
activa programul scrieţi pe linia de comandă: top, urmat de apăsarea tastei ENTER. Astfel veţi
putea vedea cât se foloseşte dintr-un program, cât se foloseşte din procesor şi aşa mai departe.
Pentru a întrerupe programul apasaţi tasta q.
who
Comandă who afişează pe ecran toţi utilizatorii care sunt legaţi pe server. Probabil că vă veţi vedea
şi numele pe ecran.
8
Capitolul 6 – Comenzi Linux
6.2. Unele chestii importante despre redirecţionare şi pipe
6.2.1. Operatorul pipe („|”)
Leagă ieşirea unei comenzi la intrarea alteia, de exemplu „cat lucrare.txt | more” afişează pe
ecran conţinutul fişierului lucrare.txt; dacă lungimea textului depăşeşte lungimea ecranului,
comanda more opreşte afişarea după fiecare ecran plin.
9
Partea I – Linux
-c (count) - afişează numai numărul de linii care se potrivesc cu şablonul
-h (hide) - nu afişează numele fişierului
-i (ignore case) - nu face diferenţă între literele mari şi cele mici la căutare
-l - afişează numai numele fişierelor care conţin şirul căutat (nu şi liniile din aceste fişiere)
-n - afişează liniile care se potrivesc şablonului precedat de numărul de ordine relativ la începutul
fiecărui fişier
-s - nu afişează nimic, se foloseşte atunci când ne interesează dacă s-a găsit sau nu, cel puţin o
potrivire, întoarce 0 - dacă a găsit
1 - dacă nu a găsit
2 - eroare
-v - afişează liniile care nu conţin şirul dat
-w - afişează liniile în care şirul căutat este un cuvânt întreg
-e - se foloseşte dacă vrem ca şablonul să înceapă cu "-"
Şablonul este o expresie regulară.
5) \< - semnifică început de cuvânt (un cuvânt este format din litere, cifre
sau -, orice alt caracter este considerat separator)
6) \> - semnifică sfârşit de cuvânt
7) * - repetă caracterul anterior interpretat ca expresie regulară de cite ori vrem noi
8) \{n\} - unde n este un număr între 0 şi 255
10
Capitolul 6 – Comenzi Linux
repetă expresia anterioară de exact n ori
9) \{n,\} - repetă expresia regulată anterioară de cel puţin n ori
10)\{n,m\} - repetă expresia regulată anterioară de cel puţin n ori şi de cel mult m ori
11)\( expr-regulara\) <=> expr-regulată
12)\n - unde n este între 0 şi 512
\n înlocuieşte un şir cu care s-a înlocuit cea de-a n-a expresie regulară aflată între
paranteze
Exemplu:
grep '^\(.*\) \(.*\) \1$' fis1
Afişează toate liniile care încep şi se termină cu acelaşi cuvânt, separatorul fiind spaţiu şi conţin
mai mult de două cuvinte.
11
Partea I – Linux
split(s,a,c) - unde s este şir, a este tablou şi c un caracter care împarte şirul s în
câmpuri, considerând ca separator caracterul c, sau dacă c lipseşte, separatorul implicit FS şi le dă
ca valoare elementelor tabloului a.
6.5.4. Instrucţiuni
variabila = expresie
instrucţiunile if, for, while ca şi în C
mai există şi for (i în nume-tablou) instrucţiune - i ia ca valori
indicii tabloului şi se execută instrucţiunea
separator de instrucţiuni ;
separator de linie }
(continuarea unei linii se face cu caracterul \ pe ultima poziţie din linie)
print lista-expresii [ > nume-fis] - afişează la ieşirea standard valoarea
expresiilor separate prin OFS şi la sfârşit de linie pune ORS dacă
nu există > nume-fis, dacă există >nume-fis atunci scrierea se face
în fişierul specificat.
6.6.1. Condiţii
conditie vidă - adevărată pentru toate liniile din fişier
12
Capitolul 6 – Comenzi Linux
un numar n - adevărată pentru linia cu numărul de ordine egal cu n (liniile se numerotează
cumulat în lista de fişiere)
$ - condiţie adevărată pentru ultima linie din fişier
/expresie regulara/ - condiţie adevărată pentru liniile care conţin cel puţin un subşir care se
potriveşte cu expresia regulară
expr1,expr2 - adevarată pentru liniile aflate între linia care se potriveşte cu expr1 şi linia care se
potriveşte cu expr2
6.6.2. Exemplu
$sed 1,10 instrucţiune fis1
execută instrucţiune asupra liniilor de la 1 la 10
$sed 10,$ instrucţiune fis1 fis2
execută instrucţiune asupra liniilor de la 10 la sfârşitul
fişierului obţinut prin concatenarea lui fis1 cu fis2
6.6.3. Instrucţiuni
1) p - afişează bufferul temporar la ieşirea standard
Exemplu
$sed p fis1
afişează fiecare linie de două ori
$sed -n p fis1
afişează fiecare linie o dată
2) d - şterge zona temporară
3) i\<ENTER> - are ca parametru un text (dat pe liniile următoare în
fişierul scenariu) pe care îl afişează la ieşirea standard
Exemplu
fis-s:
i\
ttttt\
11111
$sed -f fis-s fis1
4) a\<ENTER> - analog cu \i dar afişează după prelucrarea fiecărei linii
5) y/sir1/sir2 - unde sir1 şi sir2 au lungimi egale
realizează o translatare înlocuind caracterele din fişierele
de intrare care se găsesc în sir1 cu caracterele
corespunzătoare din sir2
6) s/expresie_regulara/sir/[flaguri] - înlocuieşte prima apariţie a unui şir
care se potriveşte cu expresia regulară cu şirul "sir"
flaguri: - dacă lipseşte, se înlocuieşte numai prima apariţie
- dacă este un număr n între 1 şi 512 se înlocuieşte exact a n-a apariţie
- dacă este "g" înlocuieşte toate apariţiile din linii
- dacă este "p" afişează bufferul tampon la ieşire dacă s-a produs vreo modificare
în linia respectivă
13
Partea I – Linux
6.6.4. Exemple sed
1. Se cere să se elimine toate secvenţele <cifra><litera><cifra> dintr-un fişier.
Observaţie: Parametrii din linia de comandă se utilizează cu $1, $2, .. $n şi se pot folosi cu
comanda shift.
14
Capitolul 6 – Comenzi Linux
. înlocuieşte un singur caracter (unul singur)
\c evită înţelesul special al unui caracter c
\< început de cuvânt
\> sfîrşit de cuvânt
[sir] unul dintre caracterele din şir
[^sir] unul dintre caracterele care nu este în şir
* caracterul precedent se va repeta (>=0)
Şirul de căutare se specifică în urma caracterului
/ (pentru căutare înainte) sau
? (căutare înapoi)
6.7.4.1. Comandă
activată când se dă comanda ":" (două puncte). Prin aceasta devin disponibile comenzile în mod
linie ale editorului ex.
6.7.4.2. Inserare
activată prin una dintre comenzile a, A, i, I, o, O. Ieşirea din modul de înserare se face tastând
ESC.
15
Partea I – Linux
16
Capitolul 6 – Comenzi Linux
cc schimbă linie
s înlocuieşte şirul de sub cursor cu cel specificat
r înlocuieşte caracterul de sub cursor cu un caracter nou tastat, după care rămâne în
mod linie curentă
R înlocuieşte caracterele nou tastate rămânând în mod înserare
r-RETURN rupe linia de la cursor
j reuneşte (join) linia curentă cu următoarea
xp inversează următoarele două caractere
~ (tilda) inversează litera mare <--> litera mică
u anulează comanda precedentă
U anulează schimbările din linie
:u anulează precedenta comandă asupra liniei
17
Partea I – Linux
:34 r fişier înserează fişier după linia 34
6.8.1. Comenzi
CTRL K-H: help
CTRL K-U: început de fişier (top of file)
CTRL K-V: sfârşit de fişier (end of file)
CTRL K-B: început bloc (begin bloc)
CTRL K-K: sfârşit bloc (end bloc)
CTRL K-M: mai mult (more)
CTRL K-C: copiere (copy)
CTRL K-W: scriere fişier (write file)
CTRL K-R: citire fişier (read file)
18
Capitolul 6 – Comenzi Linux
6.9.3. Comanda talk
- permite dialogul între doi utilizatori aflaţi la distanţă unul de celălalt.
Sintaxa:
talk gazda!utilizator
talk gazda.utilizator gazda = calculatorul pe care lucrează
talk gazda:utilizator utilizator
talk utilizator@gazda
În timpul conversaţiei ecranul se împarte în două, într-o parte se afişează mesajele unui utilizator
în cealaltă mesajele celuilalt.
Terminarea conversaţiei se face prin CTRL-C dat de oricare dintre utilizatori.
19
Partea I – Linux
În interiorul mesajului se poate introduce un fişier text cu ajutorul comenzii:
~r <nume-fişier>
Observaţie: cu ~r nu se ataşează fişierul, ci i se copiază conţinutul direct în corpul mesajului.
20
Capitolul 6 – Comenzi Linux
după protocolul pe care îl utilizează (FTP- File Transfer Protocol), adică un protocol de transfer de
fişiere.
Acest protocol este o parte din pachetul de protocoale TCP/IP. Este foarte utilizat pentru
transferul de fişiere între calculatoare aflate într-o reţea eterogenă (calculatoare ce rulează sub
sistem LINUX împreună cu calculatoare ce rulează DOS, Windows). Pe calculatoarele sub LINUX
programul care realizează practic comunicaţia pentru transfer de fişiere este o parte a sistemului de
operare şi se încarcă în faza de iniţializare a sistemului. Pentru calculatoarele ce rulează
DOS/Windows există mai multe produse care oferă acest protocol (şi altele). Cele mai cunoscute
sunt:
NCSA Telnet = programul pe care noi îl folosim în primul rând pentru conectarea calculatoarelor
din reţelele Linux/Windows
FTP PC/TCP al firmei FTP Software = programul pe care noi îl folosim în primul rând pentru
conectarea calculatoarelor din reţelele Windows-Windows, Linux – Windows, Linux – Linux
21
Partea I – Linux
putând aduce fişiere de pe maşina de la distanţă pe maşina de pe care s-a conectat (cu comanda get)
şi putând pune fişiere pe maşina de la distanţă de pe maşina de pe care s-a conectat (cu comanda
put).
Comenzile get şi put au următoarea sintaxă:
ftp>get <fişier sursă> [fişier destinaţie]
ftp>put <fişier sursă> [fişier destinaţie]
unde <fişier sursă> este numele fişierului existent (care se doreşte a fi copiat) şi <fişier destinaţie>
este numele copiei nou create. Dacă numele fişierului destinaţie lipseşte, se consideră acelaşi cu
numele fişierului sursă.
Exemplu : după deschiderea sesiunii ftp, după cum am arătat mai sus, utilizatorul mpopescu poate
să transfere fişierul text1.txt de pe nessie (maşina de la distanţă), pe maşina locală cu comanda:
ftp>get text1.txt
Dacă doreşte transferul de pe maşina locală pe nessie a fişierului news.doc trebuie să introducă
comanda:
ftp>put news.doc
După fiecare transfer programul comunică ce a transferat, cât de mare a fost cantitatea de date
transferată şi rata medie de transfer.
22
Capitolul 6 – Comenzi Linux
Succesiunea de comenzi va fi următoarea:
$pine
Apare meniul principal:
? HELP - Get help using Pine
C COMPOSE MESSAGE - Compose and send a message
I FOLDER INDEX - View messages în current folder
L FOLDER LIST - Select a folder to view
A ADDRESS BOOK - Update address book
S SETUP - Configure or update Pine
Q QUIT - Exit the Pine program
Se tastează "L" sau se selectează linia încadrată <CR>
Apare lista de foldere:
INBOX sent-mail saved-messages
Se selectează cuvântul "INBOX" <CR>
Apare lista de mesaje existente:
+ N 4 Oct 12 To: Mihai POPESCU (639) test
Se selectează mesajul cu subiectul "test" şi se tastează "E" pe linia de jos în video invers
apare mesajul
EXPORT: (copy message) to file în home directory:
Se introduce numele fişierului în care se va face copia, în cazul nostru se introduce "test.meg"
Din acest moment în directorul curent (cel de pe maşina de la distanţă din care s-a lansat "pine"
există fişierul "test.msg". Aceasta se poate, constata ieşind din "pine" prin tastarea caracterului "Q"
după care se introduce de la cursor comanda "ls".
Pentru transferul acestui fişier pe dischetă după ce se închide conexiunea cu comanda "exit" sau
"<ALT> X" se deschide o sesiune ftp pe maşina de pe care dorim să copiem fişierul. Să
presupunem că această maşină este hera.
Vom copia fişierul „test.msg” pe dischetă în directorul „exemplu” cu numele „local.txt” cu
următoarea succesiune de comenzi:
$ftp hera
Apare
Connected to hera.ubbcluj.ro.
Name (hera:mpopescu):
Se va introduce numele de login (numele de cont)
Apare
331 Password required for mpopescu.
Password:
Se va introduce parola
Va apare
230 User mpopescu logged in.
ftp>
Se vor da comenzile:
ftp> lcd a:\exemplu
ftp> get test.msg local.txt
Se va închide sesiunea ftp cu comandă:
23
Partea I – Linux
ftp> bye
Va apare
221 Goodbye.
Şi acuma, ce se întâmplă dacă dăm comanda
ftp>?
Dupa afişarea mesajelor referitoare la realizarea conexiunii (se poate cere numele de utilizator şi
eventual parola acestuia), se afişează prompterul specific aplicaţiei:
ftp>
La acest prompter se pot da comenzi. În continuare menţionăm cele mai importante:
get <nume-fişier> [<fişier-local>] transferă fişierul <nume-fişier> de pe maşina-gazdă pe
maşina locală sub numele <fişier-local>
put <fişier-local> [<nume-fişier>] transferă fişierul <fişier-local> de pe maşina locală pe
maşina gazdă sub numele <nume-fişier>
send <fişier-local> [<nume-fişier>] transferă fişierul <fişier-local> de pe maşina locală pe
maşina-gazdă sub numele <nume-fişier>
dir <director-la-distanţă> afişează conţinutul directorului curent de pe maşina pe care
s-a realizat conexiunea
ldir <director-local> afişează conţinutul directorului curent de pe maşina locală
ls afişează conţinutul directorului curent de pe maşina de la
distanţă
lls afişează conţinutul directorului curent de pe maşina locală
cd <director-la-distanţă> schimbă directorul curent pe maşina de la distanţă
lcd <director-local> schimbă directorul curent pe maşina locală
help [comandă] informaţii despre una sau despre toate comenzile lui ftp
bye termină sesiunea
close termină sesiunea şi se întoarce la prompterul înterpretorului
de comenzi
delete <fişier-la-distanţă> şterge <fişier-la-distanţă> aflat pe maşina gazdă
open <gazda> se foloseşte dacă nu s-a deschis o conexiune anterior (s-a
apelat ftp fără numele maşinii gazdă în linia de comandă)
6.10.5. Exerciţii
Obţineţi informaţii despre comenzile:
put, get, mget, mput, help, bye, close, delete, cd.
Explicaţi cum faceţi acest lucru!
6.11. Arhivare
tar [opt] [listfis]
Coamnda tar „lipeşte” mai multe fiîsere la un loc, într-un fişîer arhivă. Nu se face compresia
datelor.
Opţiuni:
-z :compress / uncompress
-r :adauga fis la sf. arhivei
24
Capitolul 6 – Comenzi Linux
-c :scrie la inc.
-x extrage
-t listează conţ. arh.
-v afiş. operaţie
-f specif. nume arhiv. ca fişier următ.
Exemplu:
Arhivare:
tar -c fis1 fis2 -f fisarhiva
Extracţie:
tar -x -f fisarhiva
gzip numearhivă
Comanda gzip face compresia datelor, dar poate lucra cu un singur fişier, nu cu o colecţie de
fişiere. Dacă dorim comprimarea mai multor fişîere într-o singură arhivă, trebuie să le „lipim” cu
tar, apoi să comprimăm cu gzip fişierul rezultat.
Creează arhive .gz; dezarhivare cu opţiunea -d.
Exemplu:
gzip nf
Creează arhiva nf.gz.
25
Partea I – Linux
$ nume_program [-switch][parameteri][< input][> output] & [1] 123
Shell-ul identifică procesul cu un număr de job (ex: [1] ) şi cu PID (număr de identificare al
procesului) (ex: 123)
Pentru a vedea o listă cu procesele pornite şi numărul PID:
$ps -a
Pentru a opri un proces:
$ kill <PID>
Uneori procesele pot fi oprite doar cu una din comenzile:
$ kill -15 <PID>
$ kill -9 <PID>
Shell-ul vă permite să opriţi, definitiv sau temporar, un proces, să-l "trimiteţi" în background, să-l
"aduceţi" din background în foreground. În această situaţie procesele sunt numite job-uri.
Pentru a vedea numărul job-urilor:
$ jobs
Aici job-urile sunt identificate după numărul lor, nu după PID.
Pentru a opri un proces ce rulează în foreground se foloseşte combinaţia de taste (nu dă rezultat
întotdeauna):
CTRL-C
Pentru a opri temporar un proces ce rulează în foreground :
CTRL-Z
Pentru a trimite un proces oprit temporar în fundal (background) (va deveni job):
$ bg <job>
Pentru a aduce un job în foreground:
$ fg <job>
Pentru a opri un job:
$ kill <%job>
unde <job> poate fi: 1, 2, 3, 4,...
Folosind aceste comenzi puteţi arhiva fişiere, puteţi formata un disk, puteţi dezarhiva, toate în
acelaşi timp, iar prompterul va fi tot la dispoziţia dvs pentru a introduce alte comenzi. Incearcaţi
acest lucru în Windows, doar pentru a vedea diferenţa de performanţă. Linux are un mod mai
"inteligent" de a folosi resursele sistemului.
26
Capitolul 6 – Comenzi Linux
remote.freenet.edu este calculatorul aflat la distanţă, iar local.linux.box este maşina dvs Linux.
Pentru a rula de pe local.linux.box un program X aflat pe remote.freenet.edu trebuie să porniţi
interfaţa X, după care porniţi xterm sau rxvt sau alt emulator de terminal şi tastaţi:
$ xhost +remote.freenet.edu
$ telnet remote.freenet.edu
după logare, tastaţi, la terminalul calculatorului de la distanţă:
$ DISPLAY=local.linux.box:0.0
$ nume_program &
În loc de DISPLAY=local.linux.box:0.0 se poate pune setenv DISPLAY local.linux.box:0.0.
Depinde de shell-ul calculatorului remote.
Acum programul nume_program va porni pe remote.freenet.edu şi va fi afişat pe monitorul
calculatorului dvs.
Observaţie: Nu încercaţi acest lucru pe o conexiune dial-up pentru că este prea lentă pentru a fi
utilizabilă!
27
Partea I – Linux
/etc/inittab
/etc/rc.d/*
Observaţie: NU le modificaţi decât dacă ştiţi exact ce aveţi de făcut !
Dacă vreţi să setaţi $PATH şi alte variabile de sistem, să schimbaţi mesajele de login, pre-login,
post-login sau să porniţi automat un program (startup :-) trebuie să aruncaţi o privire în fişierele
următoare:
/etc/issue seteaza mesajul pre-login
/etc/motd setează mesajul post-login
/etc/profile setează $PATH şi alte variabile
/etc/bashrc setează alias-uri şi funcţii
/home/user_1/.bashrc setează alias-urile şi funcţiile utilizatorului user_1
/home/user_1/.bash_profile setează mediul şi porneşte programe
/home/user_1/.profile setează mediul şi porneşte programe
Exemplu:
Iată conţinutul posibil al fişierului .profile
# acesta este un comentariu
echo Mediu:
printenv | less # echivalentul comenzii SET din DOS
alias d='ls -l' # uşor de înţeles ce este alias
alias up='cd..'
echo "Calea este "$PATH
echo "Astăzi este `date`"
echo "Hello, "$LOGNAME
# ce urmează este o funcţie shell
ctgz() # listează conţinutul unei arhive .tar.gz
{
for file în $*
do
gzip -dc ${file} | tar tf –
done
}
# sfârşitul fişierului .profile
$PATH şi $LOGNAME sunt variabile de sistem. Pentru mai multe informaţii consultaţi manualul
bash (man bash).
28
Capitolul 6 – Comenzi Linux
6.16.3. Mesaje kernel
Logaţi-vă ca root şi analizaţi fişierele /var/adm/messages sau /var/log/messages pentru a vedea
mesajele transmise de kernel, inclusiv cele din timpul boot-ării. Poate fi folosită comanda dmesg.
29
Partea I – Linux
Fişierele vor fi decomprimate în directoarele care vor fi create automat.
Utilizatorii de Slackware pot folosi pentru instalarea aplicaţiilor programul pkgtool. Un alt tip de
ahive sunt cele deb, prezente în toate distribuţiile Debian. Unul dintre cele mai bune programe de
instalare a aplicaţiilor este rpm (folosit pentru instalarea aplicaţiilor gata compilate), prezent în
majoritatea distribuţiilor Linux datorită celor de la Red Hat. Combinat cu un program „front end”
(ex: gnorpm , kpackage), arhivele .rpm devin uşor de folosit, lucru care vă va face viaţa mai uşoară.
6.17. Concluzii
Aceasta este doar o introducere în Linux, deci cunoştinţele acumulate sunt minime. Pentru a putea
stăpâni pe deplin sistemul, este nevoie de exerciţiu sau poate de câteva capitole citite în plus. Un
sfat bun ar fi să instalaţi cât mai multe aplicaţii şi să începeţi să lucraţi intens cu ele.
6.18. Exerciţii
- Listaţi conţinutul lui /dev, pe mai multe ecrane, folosind ls şi more. Apoi listaţi
conţinutul aceluiaşi subdirector, dar nu pe ecran, ci în fişierul lista, care va fi creat în
subdirectorul tmp din rădăcină. Afişaţi pe ecran conţinutul lui lista, folosind cat, more şi
apoi less.
- Copiaţi fişierul /etc/mtab în /tmp, cu numele nemontat. Listaţi conţinutul lui nemontat
pe ecran, apoi adăugaţi-i conţinutul la sfârşitul fişierului lista. Afişaţi lista pe ecran.
- Creaţi subdirectorul dirmeu, dirmeu2 şi dirmeu3 în /tmp, cu o singură utilizare a
comenzii de creare directoare. Mai creaţi şi un subdirector cu numele „dirmeu dirmeu2
dirmeu3”, incluzând şi spaţiile în nume. Listaţi conţinutul subdirectorului /tmp.
Atenţie: când un fişier are în nume spaţii, includeţi numele fişierului între ghilimele, pentru că
sistemul nu poate şti dacă este vorba de un singur nume cu spaţii sau mai multe nume
separate cu spaţii. Aproape orice comandă Unix poate lucra cu nume cu spaţii.
- Ştergeţi subdirectoarele dirmeu2, dirmeu3 şi „dirmeu dirmeu2 dirmeu3”, cu o
singură comandă. Mutaţi fişierele lista şi nemontat în directorul dirmeu. Intraţi în
dirmeu. Redenumiţi lista în „fisierul meu drag . de acasa”; includeţi spaţiile şi punctul
în nume! Listaţi conţinutul subdirectorului. Ştergeţi fişierul „fisierul meu drag . de
acasa”.
Observaţie: s-ar putea ca muLinux să nu vă permită redenumirea fişierului în „fisierul meu
drag . de acasa”. În acest caz, şi redenumiţi-l „listamea”. S-ar putea să trebuiască să-l creaţi
din nou înainte.
- Montaţi o dischetă în /mnt. Comparaţi conţinutul lui /etc/mtab şi nemontat din
/tmp/dirmeu întâi cu cmp, apoi cu diff. Observaţi diferenţele. Copiaţi /etc/mtab în
/tmp/dirmeu sub numele montat. Demontaţi discheta. Listaţi conţinutul directorului
/tmp/dirmeu. Ar trebui să aveţi fişierele nemontat şi montat acolo. Ştergeţi ecranul.
Observaţie: este posibil să nu funcţioneze comanda „diff” sub muLinux. Rămâneţi la „cmp”.
- Încercaţi să determinaţi tipul fişierului nemontat cu comanda file.
- Mai creaţi o copie a fişierului nemontat, cu numele fis. Folosind grep, căutaţi secvenţa
de text „rw” în toate fişierele din subdirectorul curent. Căutaţi acum secvenţa „fd0”.
Observaţi rezultatele. Ştergeţi fis.
- Fiind în subdirectorul dirmeu, daţi comanda „cat montat nemontat | sort > sortat”. Ce
face această comandă? Dar dacă omiteţi „> sortat” de la sfârşit? Afişaţi conţinutul lui
sortat. Ştergeţi fişierul sortat.
- Căutaţi în subdirectorul /tmp toate fişierele ale căror nume se termină în „ontat”.
Folosiţi comanda find.
30
Capitolul 6 – Comenzi Linux
- Căutaţi din nou, folosind comanda „find /tmp -name *ontat | grep nemontat”.
Explicaţi ce s-a afişat. Încercaţi aceeaşi comandă, înlocuind „*” cu „?”, sau lăsând doar
„ontat”, fără asterisc sau semnul întrebării. Folosiţi din nou această comandă,
redirectând ieşirea într-un fişier cu numele test. Afişaţi conţinutul lui test.
Observaţie: este posibil ca „find” din muLinux să se comporte puţin diferit faţă de „find” din
RedHat Linux 7.2.
- Arhivaţi cu tar fişierele nemontat şi montat în arhiva arhiva. Apoi comprimaţi cu gzip.
Creaţi un subdirector d. Mutaţi acolo arhiva şi decomprimaţi, apoi dezarhivaţi. Verificaţi
dacă fişierele sunt acolo.
- Ştergeţi toate fişierele din /tmp/dirmeu. Ştergeţi şi subdirectorul dirmeu.
- Afişaţi estimarea mărimii subdirectorului tmp cu comanda „du -h /tmp”. Ce efect are
opţiunea „-h”? Aflaţi cu info sau man.
Observaţie:se poate ca varianta de „du” de sub muLinux să nu suporte opţiunea „-h”, şi să nu
aibă nici pagină de informaţii sau manual. Încercaţi opţiunea „-k”.
- Porniţi Midnight Commander. Treceţi pe alt terminal, de exemplu terminalul 2 (apăsaţi
Alt-F2 simultan, intraţi cu login şi parola). Afişaţi utilizatorii din sistem cu comanda
adecvată.
Observaţie: dacă nu aveţi „Midnight Commander” instalat, porniţi in locul lui un „find / -
name abracadabra”. Această comandă va ţine Linux ocupat o vreme, deoarece el încearcă să
caute fişierul „abracadabra” recursiv în toate subdirectoarele din rădăcină.
- Afişaţi lista proceselor dvs. de pe toate terminalele. Observaţi codul (id-ul) procesului
Midnight Commander. Ucideţi-l fără milă, eventual cu opţiunea „-9” Treceţi pe
terminalul anterior (unde aţi pornit Midnight Commander); observaţi ecranul.
- Afişaţi spaţiul liber de pe sistemul de fişiere hda1. Folosiţi opţiunea -h. Încercaţi şi fără
nici o opţiune.
31
Partea I – Linux
32