Home - Rasfoiesc.com
Educatie Sanatate Inginerie Business Familie Hobby Legal
Doar rabdarea si perseverenta in invatare aduce rezultate bune.stiinta, numere naturale, teoreme, multimi, calcule, ecuatii, sisteme




Biologie Chimie Didactica Fizica Geografie Informatica
Istorie Literatura Matematica Psihologie

Linux


Index » educatie » » informatica » Linux
» INTRODUCERE IN UNIX/LINUX


INTRODUCERE IN UNIX/LINUX


INTRODUCERE IN UNIX/LINUX

Obiective

Familiarizarea cu comenzile de baza Linux, cu editarea textelor in Emacs, compilarea codului sursa cu Gcc si rularea executabilului obtinut.

Tema

I.           Comenzi Linux

Verificati ca sunteti in directorul personal (home directory).

Creati directorul <Nume> unde Nume este numele de familie.

Listati continutul directorului curent ca sa verificati ca <Nume> s-a creat corect.

Pozitionati-va in <Nume>.

Verificati ca pozitionarea s-a creat corect.

Cu editorul pico creati un fisier <Nume> si introduceti-va numele complet. Salvati si iesiti.

Verificati prin 2 moduri ca exista fisierul <Nume>.

Numarati cate caractere, cuvinte si linii sunt in <Nume> (cautati optiunile comenzii wc

Listati pe ecran continutul fisierului <Nume>

Creati un directorul <Nume>2 in care sa fie fisierul <Nume>2 cu comanda cat

Mutati fisierul <Nume> pe Desktop cu numele "Bla".

Copiati pe desktop tot directorul <Nume>.

Pozitionati-va pe Desktop, listati recursiv tot continutul directorului <Nume> din directorul personal (cautati in manual optiunea de listare).

Listati recursiv si cu varianta lunga continutul curent de fisiere si subdirectoare intr-un fisier "Iesire". Cum ne dam seama care este director si care fisier? Vizualitati acel fisier cu o comanda.

Pozitionati-va pe Desktop, stergeti directorul <Nume> din Catalogul personal (Home), pozitionati-va printr-o comanda cat mai scurta inapoi in directorul personal si stergeti ecranul, DUPA ce imi aratati si mie ce-ati lucrat J

II.        Emacs-Gcc

Sa se execute pasii de mai jos de creare, compilare si rulare prim program C. Ce difera intre rularea in background si rularea obisnuita?

Creati erori prin program si vedeti ce atentioneaza Gcc. (stergeti/modificati antetul, linia de return, inceputul/sfarsitul comentatiilor, ", ; , "int' de la "int main", "void", printf->mprintf, acolada)

Introducere

Laboratoarele la aceasta disciplina se desfasoara pe calculatoare ruland sistemul de operare Linux, aceasta cu mai multe obiective:



  • dobandirea de experienta pe o platforma alternativa celei DOS/Windows
  • utilizarea unui mediu frecvent folosit in dezvoltarea de programe (compilatorul gcc, editorul Emacs, utilitarul make pentru managementul proiectelor)
  • familiarizarea cu modul de a rezolva o problema prin conectarea unor utilitare simple si generale, concept caracteristic sistemului UNIX

Linux este o versiune a sistemului de operare UNIX dezvoltat initial in anii '70 la Bell Labs, fiind creat in mare parte in limbajul C. Sistemul de operare Linux e un efort comun al multor programatori, dezvoltat sub licenta GNU, conform careia codul sau sursa este distribuit si disponibil public in mod gratuit.

Lansarea unui terminal

Click pe imaginea cu aspect de ecran de calculator.

Inlantuirea comenzilor

Fisierul standard de intrare = tastatura

Fisierul standard de iesire = monitorul

sort

Apelata fara nici un parametru, ea va astepta introducerea liniilor de text de la tastatura (intrarea standard), pana la introducerea caracterului ^D dupa care va sorta liniile si le va afisa in ordine pe ecran (iesirea standard).

Intrarea si iesirea standard pot fi schimbate folosind operatorii de Redirectare:

sort < date.txt

Preia liniile care trebuie sortate din fisierul date.txt, iar rezultatele vor fi afisate pe ecran. Se redirecteaza, deci, numai intrarea standard.

sort > ordonat.txt

Liniile de text sunt citite de la tastatura, dar rezultatul este scris intr-un fisier

sort < date.txt > ordonat.txt

Redirectarile se pot combina, astfel incat liniile sa fie citite dintr-un fisier, iar rezultatul sa fie scris in altul.

Comenzile se pot si inlantui, 2 sau mai multe: iesirea generata de una devine intrarea alteia, cu operatorul pipe '|'.

ls | more

Face ca iesirea lui ls sa fie legata la intrarea lui more, a.i. se afiseaza pagina cu pagina fisierele din directorul curent.

<comanda cu optiuni> & este lansarea in background, adica interpretorul de comenzi (terminalul) afiseaza prompterul imediat ce s-a lansat comanda, si se pot executa mai departe si alte comenzi in terminal. emacs &

Comenzi Unix/Linux

UNIX are un sistem de fisiere arborescent.

Spre deosebire de DOS/Windows, separatorul intre componentele numelui de fisier este slash si nu backslash.

Numele de fisiere contin intreaga ierarhie de fisiere porneste de la o radacina unica, notata .

Comenzile Unix = programe executabile care pot fi gasite in directoarele /bin, /usr/bin.

In continuare, argumentele comenzilor sunt scrise cursiv, textul intre [ ] denota un argument optional (la folosire NU se scriu si parantezele!), iar <ceva> inseamna ca in loc de "ceva" se scrie numele adevarat al comenzii/fisierului etc.

Cu TAB se completeaza automat numele comenzilor si argumentelor.

man [optiuni] [sectiune] comanda

Este una dintre cele mai importante comenzi. Ea are ca efect afisarea paginii de manual care descrie comportarea comenzii date ca argument.

man cd

E posibila citirea unei pagini de manual referitoare chiar la man: man man

pwd

Printeaza directorul curent

mkdir nume_catalog

Creeaza un catalog (folder, director) cu numele dat.

cd [nume_catalog]

Schimba catalogul curent, trecand in cel specificat. La fel ca si sub DOS/Windows . denota catalogul curent iar catalogul parinte. Notatia ~ se refera la catalogul personal - home directory al utilizatorului curent. Fara nici un argument, muta in catalogul personal - home directory al utilizatorului.

ls [nume_catalog]

Listeaza (afiseaza numele pentru) fisierele si subdirectoarele din directorul dat (implicit: catalogul curent).

cat [<lista de fisiere>]

Afiseaza la fisierul standard de iesire continutul fisierelor date in lista (se pot astfel concatena mai multe fisiere). Fara nici un argument, afiseaza intrarea standard la iesirea standard.

cp [optiuni] sursa destinatie

Face o copie a lui sursa, cu numele nou destinatie.

cp [optiuni] fisier_1 fisier_2 fisier_n dir

Copiaza fisierele indicate in catalogul dir. Optiuni: -i (interactiv): intreaba inainte de a suprascrie; -r (recursiv): copiaza toate fisierele si subcataloagele din catalogul sursa indicat.

mv [optiuni] fisier1 fisier2

Redenumeste fisier1, cu numele fisier2

mv [optiuni] fisier_1 fisier_2 fisier_n dir

Muta fisierele indicate in catalogul dir. Optiuni: -i (interactiv): intreaba inainte de a suprascrie. (Un catalog e mutat implicit impreuna cu intreg continutul, deci optiunea -r nu mai apare, spre deosebire de copiere).

rm [optiuni] fisier

Sterge fisierele date. Optiunea -i (interactiv) solicita confirmare, -f forteaza (fara confirmare) iar -r sterge recursiv tot continutul catalogului indicat.

rmdir nume_catalog

Sterge catalogul indicat (acesta trebuie sa fie golit intai).

less nume_fisier sau more nume_fisier

Afiseaza pagina cu pagina continutul (backspace pentru "new page", enter pentru "new line"

dir

Afiseaza subdirectoarele directorului current

pico nume_fisier

Editare simpla de texte

touch nume_fisier

Creeaza fisierul nume_fisier

Clear

Sterge ecranul

Editorul Emacs

Emacs este un editor complex de texte, care foloseste in acelasi timp si ca mediu integrat de dezvoltare de programe (de exemplu in limbajul C) si ofera multe alte facilitati (e-mail, browser web, etc). Emacs poate fi usor adaptat preferintelor fiecarui utilizator si interfatat cu alte programe scriind functii (extensii) in LISP. Frecvent folosita este versiunea xemacs, realizata special pentru mediul X Windows.

emacs nume_fisier.c &

Pentru editarea programelor C, e util sa activam optiunea Options -> Syntax Highlighting care va colora diferit diversele elemente de limbaj, usurand intelegerea si detectarea erorilor.

C- = Ctrl+f
M-f= Alt+f

C- Undo

C-x 2 Clonare fereastra

C-x C-n Zona de lucru (buffer) noua

C-x o Schimbare fereastra activa ('o' este litera 'o' si nu zero!)

C-x k Inchidere (kill) zone de lucru (buffer)

C-x b Selectarea zonei curente de lucru

C-x C-s Salvarea zonei de curente de lucru

C-x C-w Salvarea zonei de lucru cu alt nume

C-x C-f Deschidere unui fisier intr-o zona de lucru

C-x C-c Inhidere emacs (cu salvare)

M-w Copy

C-w Cut

C-y Paste

C-s Cautare(search) in zona de lucru

C-g Renuntare o comanda neterminata (care astapta alti parametri)

C-x i cauta un fisier in directorul mentionat de utilizator (implicit cel curent).

Scrieti un prim program in Emacs


#include <stdio.h>

int main(void)


Compilatorul gcc

Fisierele sursa din limbajul C au extensia .c. Pentru a compila programul nume.c, se executa


gcc -o progr -Wall nume.c


Argumentul optiunii -o indica numele dat executabilului. Daca nu se foloseste optiunea -o progr, executabilul e denumit implicit a.out. (In UNIX, fisierele executabile nu sunt identificate prin extensie .exe), ci prin faptul ca au drept de executie)

La compilare e util sa nu blocam generarea avertismentelor. Aceasta se specifica cu optiunea -Wall (warnings: all).


Optiunile la compilare pot fi introduse in orice ordine. E important de inteles ca
-o nume e o singura optiune, chiar daca e formata din doua cuvinte separate prin spatii. E incorecta intercalarea altor optiuni intre -o si nume.


Erori de compilare

Compilatorul gcc creeaza executabilul. Daca sunt erori, acesta nu este creat, iar erorile sunt tiparite pe ecran cu numele fisierului si numarul liniei sursa: /home/student/pi.c:8:error:

error: studio.h: No such file or directory
Compilatorul nu a gasit fisierul indicat, deoarece a fost scris cu nume eronat: nu este studio.h, ci stdio.h, de la Standard Input/Output.

error: syntax error before 'return'
Daca uitam sa terminam linia anterioara cu punct-virgula. Adesea cauza reala a erorii poate sa se afle de fapt putin inainte de locul in care o detecteaza compilatorul.

error: syntax error at end of input
Daca se uita acoloada inchisa } si deci fisierul se termina in mod neasteptat.

Rularea programelor compilate

Ne pozitionam cu cd in directorul unde se afla executabilul <output> si executam comanda

output eventual cu redirectari

Comenzi suplimentare

ln fisier1 [fisier2]

creeaza o noua intrare in director pentru fisierul precizat

chmod drepturi fisier

schimba drepturile de acces ale unui fisier

du [optiune] [director]

afiseaza informatii privind spatiul ocupat de fisierele dintr-un director (inclusiv subdirectoarele sale). du .  afiseaza aceste informatii pentru directorul curent.

ps [optiuni] [proces]

afiseaza starea proceselor care ruleaza pe sistem la momentul curent.

kill proces

oprirea unui proces in curs de executie

date

afiseaza data si ora curente

who [am I]

afiseaza numele utilizatorilor conectati la sistem

echo [-n] argumente

afiseaza argumentele date

login [utilizator]

intrare in sistem

logout

iesire din sistem

lpr [optiuni] fisier

tipareste la imprimanta fisierele date

wc [optiuni] [fisiere]

numara caractere, cuvinte si linii in fisiere

grep [optiuni] [sir  de caractere] fisier

filtreaza liniile unui fisier, cautand sabloane

find director conditie

se cauta in directoarele date si in subdirectoarele lor fisierele care satisfac conditie. De exemplu, comanda find . -print afiseaza toate fisierele din subarborele curent.

od [optiuni] fisier

afiseaza continutul unui fisier in diferite formate: octal, zecimal, hexa, ASCII etc.

Bibliografie

Marius Minea, Laborator Programare, http://www.cs.utt.ro/~marius/curs/pc/lab0.html

Laborator Sisteme de Operare https://labs.cs.utt.ro/labs/so/html/index.html

O lista utila de comenzi pe categorii https://www-zeuthen.desy.de/dv/documentation/unix_guide/index.html

Pagina cu manualele online (acelasi lucru ce-l obtineti din man <nume-comanda> https://www.linuxmanpages.com/





Politica de confidentialitate





Copyright © 2024 - Toate drepturile rezervate