Instrumente și Tehnici de bază în Informatică (Semestrul I 2024-2025) PDF
Document Details
Uploaded by WellReceivedForethought5651
Universitatea din București
2024
Vlad Olaru
Tags
Related
- Information Technology II Kuppi (IS +costX tutorial).pdf
- Parte 2 Unidades 4-5-6 Excel, PowerPoint e Internet Páginas 52-82 PDF
- Apostila Excel Básico PDF
- Lecture 3 - Education Part 2 - SOC100 (Thurs) - Prof. McIvor PDF
- Lecture 07 Health Informatics Microsoft Excel PDF
- Excel Exercise 1 - Entering Information PDF
Summary
Aceste note de curs acoperă Instrumente și Tehnici de bază în Informatică, pentru semestrul I 2024-2025. Sunt prezentate concepte legate de interpretor de comenzi, fisiere și directoare, precum și mediul de lucru și variabilele de mediu.
Full Transcript
Instrumente si Tehnici de Baza in Informatica Semestrul I 2024-2025 Vlad Olaru 10/14/2024 Curs 3 - outline interpretorul de comenzi fisiere si directoare (revizitat) 2 ...
Instrumente si Tehnici de Baza in Informatica Semestrul I 2024-2025 Vlad Olaru 10/14/2024 Curs 3 - outline interpretorul de comenzi fisiere si directoare (revizitat) 2 10/14/2024 Interpretorul de comenzi (recapitulare) mod de lucru interactiv (comanda-raspuns) sau batch (automatizarea lucrului cu scripturi) in mod interactiv, afiseaza un prompt indica faptul ca se asteapta o comanda (interna/externa) de la utilizator uzual, $ sau % pt utilizatori obisnuiti, # pt root definit de continutul variabilei de mediu PS1 $ echo $PS1 prompt de continuare in variabila de mediu PS2, uzual > $ cat > out > mai adaugam o line la sfarsitul fisierului out > EOF $ 3 10/14/2024 Mediul de lucru (environment) lista de perechi name = value name este numele unei variabile interne a shell-ului Obs: nu orice variabila interna a shell-ului este variabila de mediu valorile variabilelor influenteaza comportamentul shell-ului, respectiv al comenzilor externe lansate de acesta setate de SO sau utilizator numele scris cu litere mari: PS1, SHELL, HOME, PATH, etc valoarea dereferentiata cu ajutorul simbolului $, eg $SHELL = /bin/bash 4 10/14/2024 Variabile de mediu setate cu comanda interna export marcheaza variabila ca fiind variabila de mediu $ export PS1=“my-new-prompt> ” afisate cu comanda /usr/bin/env intr-un program C, accesibile in al treilea parametru al functiei main a programului lansat in executie de catre shell int main(int argc, char* argv[], char *envp[]) 5 10/14/2024 The Bourne-Again SHell /bin/bash, urmasul primului shell istoric, /bin/sh (Bourne Shell) fisiere de configurare fisiere de start-up inspectate doar la login system-wide: /etc/profile locale, in home directory: ~/.profile, ~/.bash_profile, ~/.bash_login continutul lor e executat automat la login fisiere de start-up inspectate la crearea fiecarui terminal (rc file, “run commands”) ~/.bashrc continutul lor poate fi executat voluntar cu comanda source (sau “.”) source.bashrc..bashrc fisier de logout: ~/.bash_logout continutul executat la iesirea din shell (cu exit sau Ctrl-d) Obs: Ctrl-d in Unix este caracterul EOF, tiparirea Ctrl-d la prompt termina shell-ul istoria comenzilor inregistrata in ~/.bash_history 6 10/14/2024 Structura comenzilor bash pipeline-uri $ cmd1 | cmd2 | … |cmdn # executie paralela a comenzilor $ cmd1 |& cmd2 |& … |& cmdn # “|&” e totuna cu “2>&1 |” liste de comenzi $ cmd1; cmd2; …; cmdn # executie secventiala a comenzilor $ cmd1 && cmd2 && … && cmdn $ cmd1 || cmd2 …. || cmdn variabila bash “?” contine codul de terminare (exit status) al ultimei comenzi executate (valoarea zero inseamna succes) $ echo $? Obs: ? nu e variabila de mediu ! 7 10/14/2024 Job control doua categorii de programe executate in foreground, au acces R/W la terminal executate in background comanda incheiata un “&” ruleaza in background shell-ul returneaza imediat utilizatorului promptul $ cmd & executia unei comenzi in foreground se poate suspenda cu ^Z (Ctrl-z) de fapt, e semnalul SIGTSTP (kill –SIGTSTP ) executia comenzii poate fi reluata ulterior, fie in foreground, fie in background comanda jobs listeaza procesele (joburile) rulate la momentul curent de shell joburile identificate prin numar numarul job-ului poate fi folosit impreuna cu urmatoarele comenzi $ kill %n # termina procesul/job-ul cu nr n $ fg %n # muta in foreground procesul cu nr n $ bg %n # muta jobul n in background $ %n & # muta jobul n in background 8 10/14/2024 Controlul istoriei comenzilor ~/.bash_history exemple !n re-executa comanda cu nr n !-n re-executa comanda curenta – n !string re-executa cea mai recenta comanda care incepe cu string !?string? re-executa cea mai recenta comanda care contine string ^str1^str2 repeta comanda anterioara inlocuind str1 cu str2 interactiv: Ctrl-r urmat de un substring al comenzii cautate din istoric 9 10/14/2024 Comenzi interne: executate direct de catre bash cd alias l=‘ls –l’ fg/bg/kill exit # termina shell-ul cu cod de retur status exec # inlocuieste imaginea bash cu imaginea noului proces # de ex: $ exec firefox externe: programe de pe disc lansate de catre shell pwd echo string ex escape chars: echo –e \a # bell echo –e “aaa\tbbb” # horizontal tab echo –e “aaa\v\bbbb” # vertical tab + backspace echo –e “aaa\t\rbbb” # carriage return echo –e “aaa\t\nbbb” # newline 10 10/14/2024 Tipuri de fisiere fisiere obisnuite (regular files): contin date (text sau binare) directoare: contin numele altor fisiere si informatii despre ele pot fi citite de catre procesele care au permisiunile potrivite DOAR kernelul poate scrie in ele ! fisiere speciale, tip device caracter: pt device-uri caracter (ex: tty, seriala) bloc: pt device-uri orientate pe bloc (ex: discuri) operatiile de R/W nu se fac prin intermediul FS ci al driverelor Obs: orice device (echipament) din sistem e fie fisier bloc, fie caracter FIFO: named pipe, mecanism IPC (Inter-Process Communication) | s.n. anonymous pipes, leaga procese inrudite conecteaza procese fara legatura fisiere de pe disc, cu nume si politica de acces FIFO bidirectionale, spre deosebire de | 11 10/14/2024 Tipuri de fisiere (cont.) socket: abstractie pentru IPC peste retea canal de comunicatie local (socket Unix, un fel de FIFO) canal de comunicatie intre masini conectate in retea (socket TCP/IP) link simbolic: fisier care refera un alt fisier practic fisierul destinatie (link-ul simbolic) contine numele fisierului sursa (fisierul referit) $ ln –s formatul lung al comenzii ls marcheaza in primul caracter tipul fisierului: -, d, c, b, p, s, l comanda generala, distinge si tipuri de fisiere regulate (text, executabile, imagini, etc): $ file 12 10/14/2024 Set UID, set GID fiecare proces (program in executie) are asociat UID, GID real: identitatea reala a utilizatorului provenita din /etc/passwd UID, GID efectiv set-UID, set-GID salvate (copii ale UID/GID efectiv) in mod normal, UID/GID real = UID/GID efectiv cand se executa un program exista posibilitatea de a seta un flag in atributele fisierului executabil a.i.: “pe durata executiei acestui program UID/GID efectiv al procesului devine UID/GID-ul proprietarului fisierului program” Ex: comanda de schimbare a parolei utilizator $ passwd /usr/bin/passwd este un program set-UID la root pt a avea drepturi de scriere in /etc/shadow 13 10/14/2024 Permisiuni de acces la fisiere atribute ale fisierului grupate in trei categorii permisiuni utilizator: S_IRUSR, S_IWUSR, S_IXUSR permisiuni grup: S_IRGRP, S_IWGRP, S_IXGRP permisiuni pt. alti utilizatori: S_IROTH S_IWOTH, S_IXOTH permisiuni speciale: set-uid, set-gid, sticky bit modificabile din shell cu ajutorul comenzii chmod ex: chmod u+rw , chmod g-x , chmod o-rwx , etc sau in octal chmod 755 , chmod 644 , etc accesul la un fisier: conditionat de combinatia dintre UID efectiv (respectiv GID efectiv) al comenzii executate si bitii de permisiune 14 10/14/2024 umask orice fisier nou creat are setata o masca implicita a permisiunilor setata cu comanda umask (comanda interna shell) $ umask 022 bitii setati in umask sunt off in permisiunile noului fisier creat de regula, masca setata in fisierele de configurare shell (eg, /etc/profile) 15 10/14/2024 Stergerea fisierelor un fisier poate avea m.m. link-uri la aceeasi structura interna din kernel (i-node) nume diferite ale aceluiasi fisier s.n. link-uri hard create cu comanda ln $ ln stergerea unui link nu inseamna stergerea fisierului de pe disc ! stergerea ultimului link sterge si fisierul pt. a sterge o intrare de fisier dintr-un director se foloseste rm $ rm stergerea necesita doua permisiuni: permisiunea de a scrie in director permisiunea de a cauta in director (bitul x de executie setat in directorul din care stergem fisierul) 16 10/14/2024 Link-uri simbolice limitari link-uri hard link-ul si fisierul linkat trebuie sa se afle pe acelasi sistem de fisiere (disc formatat) doar root-ul poate crea linkuri hard catre directoare link simbolic: fisier care contine numele fisierului referit (un string) utilizate pentru a circumventa limitarile link-urilor hard create cu comanda ln si flag-ul –s $ ln –s /etc/profile ~/.system-wide-profile in general, comenzile shell dereferentiaza linkul simbolic exceptii: lstat, remove, rename, unlink, samd ex: pt. linkul simbolic creat mai sus $ rm ~/.system-wide-profile # sterge link-ul simbolic, nu sursa, adica /etc/profile $ ls –l ~/.system-wide-profile # afiseaza atributele linkului symbolic, nu ale sursei $ cat ~/.system-wide-profile # afiseaza continutul /etc/profile 17 10/14/2024 Lucrul cu directoare create cu mkdir, sterse cu rmdir $ mkdir $ mkdir –p / # creeaza si directoarele # inexistente on the fly $ rmdir Obs: rmdir nu poate sterge un director decat daca e GOL ! schimbarea directorului curent $ cd # schimba directorul in $ cd # cd $HOME $ cd - # schimba directorul curent in directorul anterior aflarea directorului de lucru curent (current working directory) $ pwd 18