PC Laborator 1

De la WikiLabs

Obiective

În urma parcurgerii acestui laborator veți fi capabili să folosiți comenzi de bază în sistemul de operare Linux.

Sistemul de operare Linux - programe

Majoritatea utilizatorilor de Windows pornesc de la premisa că Linux este greu de folosit și că nu pot rula programele cu care sunt obișnuiți. Cu toate că există, într-adevăr, unele aplicații care nu pot fi rulate (cum ar fi o mare parte din jocuri precum și unele platforme foarte specifice de simulare și sinteză), majoritatea aplicațiilor sunt disponibile în Linux. Următoarea listă prezintă alternative ale aplicațiilor tradiționale:

  • browser web: Google Chromium Browser (Chrome), Mozilla Firefox, Opera
  • player video: VLC Media PLayer
  • editor foto: Inkscape, Gimp
  • suită office: LibreOffice (alternativă la Microsoft Office), Microsoft Office 365 - online, Google Docs - online
  • real time messenger: Pidgin, Skype, Hangouts (online)
  • medii de dezvoltare software: Netbeans, Eclipse, Code::Blocks, IntelliJ
  • procesare de semnal: Matlab, Octave (alternativă la Matlab)
  • sinteză și simulare de circuite digitale: Xilinx ISE, Xilinx Vivado, Altera Quartus

Pentru anumite programe, este de asemenea posibilă rularea acestora într-un emulator de Windows, numit wine. Exista si alternativa de a instala Windows Subsystem for Linux (WSL1 sau WSL2) in Windows 10 (https://docs.microsoft.com/en-us/windows/wsl/install-win10)

Instalare de programe

Instalarea unui program in Linux se face foarte ușor, cu o singură comandă (dacă aplicația este în baza de date a distribuției). Spre exemplu, pe o distribuție din familia Debian (Debian, Ubuntu, Mint, etc.), pentru a instala GNU Octave:

sudo apt-get install -y octave
Observație: Pentru a putea instala o aplicație, este nevoie de acces de tip administrator de sistem. Acest lucru se poate face în două moduri:
  • execuția unei comenzi de către un utilizator care are drept de administrator, folosind comanda sudo;
  • execuția comenzii de către utilizatorul root, care este un cont cu acces nelimitat la toate resursele sistemului; ATENȚIE: Folosiți contul root doar pentru operații de administrare de sistem și deconectați-vă imediat ce ați terminat. Nu dați acces root decât persoanelor în care aveți încredere.

Linux Bash

Daca nu aveti nicio distribuitie de Linux instalata, puteti folosi pentru acest laborator terminalul online de aici: https://cocalc.com/doc/terminal.html Noțiunile legate de utilizarea și administrarea sistemului de operare Linux sunt necesare și obligatorii pentru un inginer electronist. În afară de faptul că Linux este un sistem de operare open-source stabil și sigur, atractivitatea lui vine în special din posibilitatea de a automatiza procese prin scrierea de scripturi în limbaje de scripting puternice și din faptul că este cel mai răspândit sistem de operare folosit pentru dispozitive embedded. În continuare se vor prezenta noțiuni și comenzi necesare pe parcursul laboratorului de Programarea Calculatoarelor.

Pentru a obține informații legate de utilizarea unei comenzi, în terminalul (consola) Linux se poate da comanda man <comanda> pentru a deschide manualul la pagina comenzii respective. Odată deschis, se poate naviga cu săgețile sus/ jos și pagina se închide cu tasta 'q'.

Odată deschis terminalul, prompt-ul de comandă arată de cele mai multe ori în felul următor:

  student@pracsis01 ~/Desktop $ 

Acesta este format din următoarele componente:

  • student reprezintă numele utilizatorului curent și este urmat de caracterul '@' (at);
  • pracsis01 reprezintă numele calculatorului (host name) și care ar trebui să fie unic în rețea; în lipsa acestuia va apărea localhost;
  • ~/Desktop reprezintă directorul curent și este urmat de caracterul '$'
Atenție: Linux este CASE-SENSITIVE, asta înseamnă că se face diferența între literele mari și mici, și în cadrul comenzilor, și în cadrul numelor de fișiere/ directoare.

Pentru un tutorial mai detaliat, ce descrie un număr mai mare de comenzi, puteți vizita http://linuxcommand.org

Structura de directoare in Linux

Toate fișierele și directoarele în Linux sunt plasate într-o ierarhie de tip arbore, unde directorul din vârf se numește rădăcină (root) și este reprezentat prin caracterul slash (/).

Structura de directoare și fișiere în Linux este descrisă în detaliu aici.

În cadrul laboratorului de PC, vom lucra în interiorul directorului personal al utilizatorului student, care este implicit /home/student (slash este separatorul de cale în Linux, analog cu backslash din Windows).

Observație: Calea până la directorul personal este prescurată în Linux prin caracterul ~ . Astfel, ~ este echivalent cu /home/student iar ~/Desktop este echivalent cu /home/student/Desktop. În plus, directorul personal al altor utilizatori poate fi construit folosind caracterul ~ și numele utilizatorului. De exemplu ~admin reprezintă calea până la directorul personal al utilizatorului admin: /home/admin.

Instrucțiuni pentru lucrul cu sistemul de fișiere

Aflarea directorului curent (pwd)

Directorul curent se vede în mod normal în prompt, dar în cazul în care acest prompt nu este vizibil sau a fost modificat, sau directorul curent trebuie utilizat în cadrul unui script, comanda care îl afișează pe acesta pe ecran este pwd (Print Working Directory).

  student@pracsis01 ~/Desktop $ pwd
  /home/student/Desktop

Navigare între directoare (cd)

Navigarea către un director anume se face folosind comanda cd (Change Directory). Comanda cd poate fi folosită în următoarele moduri:

  • navigarea către o cale absolută, care începe cu slash:
  student@pracsis01 ~ $ cd /home/student/Desktop
  student@pracsis01 ~/Desktop $
  • navigarea către o cale relativă, care nu începe cu slash și care depinde de directorul curent:
  student@pracsis01 ~ $ cd Desktop
  student@pracsis01 ~/Desktop $
  • navigarea către directorul personal (home directory), prin apelarea comenzii fără alți parametri:
  student@pracsis01 ~/Desktop $ cd
  student@pracsis01 ~ $
  • navigarea către calea anterioară (util când e nevoie să alternați între două directoare), folosind parametrul -:
  student@pracsis01 ~/Desktop $ cd
  student@pracsis01 ~ $ cd -
  student@pracsis01 ~/Desktop $ cd -
  student@pracsis01 ~ $

Această comandă va eșua dacă directorul specificat nu există, sau nu aveți acces la el sau la unul directoarele părinte.

Observație: Pentru a vă întoarce cu un nivel mai sus în ierarhia de directoare, se poate folosi ”..” în loc de numele directorului. De exemplu:
  student@pracsis01 ~/Desktop $ cd ../Desktop/../Desktop/../../student/Desktop
  student@pracsis01 ~/Desktop $ 

Crearea unui director (mkdir)

Pentru a crea un director se folosește comanda mkdir (MaKe DIRectory) specificând numele directorului care se vrea creat:

  student@pracsis01 ~ $ mkdir work

Această comandă poate eșua dacă nu aveți acces la directorul părinte, dacă directorul părinte nu există, sau dacă directorul care se dorește creat există deja. Pentru a crea un director în situația în care directorul părinte nu există, se poate utiliza fanionul -p:

  student@pracsis01 ~/Desktop $ mkdir -p ~/work/pc/F/group1/ion/lab1

Ștergerea unui fisier sau a unui director (rm)

Pentru a șterge un fișier, un director gol, sau un director care conține alte fișiere sau subdirectoare, se poate folosi comanda rm (ReMove) cu diferite fanioane:

  • pentru a șterge un fișier:
   student@pracsis01 ~/Desktop $ rm program.c
  • pentru a șterge un director, se folosește fanionul -r:
  student@pracsis01 ~/Desktop $ mkdir test
  student@pracsis01 ~/Desktop $ rm test
  rm: cannot remove ‘test’: Is a directory
  student@pracsis01 ~/Desktop $ rm -r test
Atenție: Flag-ul -r va șterge tot conținutul directorului, indiferent ce conține acesta, folosiți-l cu mare atenție.

Afișarea conținutului directorului curent (ls)

Pentru a vedea conținutul directorului curent se poate utiliza comanda ls (LiSt):

  student@pracsis01 ~/Desktop $ ls
  chromium-browser.desktop  C-Lion.desktop  netbeans-8.0.2.desktop Xilinx XPS 14.7.desktop

Pentru a vedea detalii despre fiecare fișier sau director, se poate folosi flag-ul -l. Comanda ls -l este atât de utilizată încât în anumite distribuții (Debian/ Ubuntu) are un alias: ll.

  student@pracsis01 ~/Desktop $ ls -l
  total 44
  -rwxr-xr-x  1 student student 12591 Jun  2 16:44 chromium-browser.desktop
  -rwxr-xr-x  1 student student   136 Aug 20 16:59 C-Lion.desktop
  -rwxr-xr-x  1 student student   261 Jul  9 16:09 netbeans-8.0.2.desktop
  -rwxr-xr-x  1 student student   162 Aug 25 13:38 Xilinx XPS 14.7.desktop

Afișarea unui fișier în consolă (cat)

Pentru a vedea conținutul unui fișier text (cum ar fi o sursă C sau un 'makefile') fără a deschide fișierul pentru editare, se poate utiliza comanda cat (conCAT):

  student@pracsis01 ~/Desktop $ cat /etc/hostname
  pracsis01

Copiatul unui fișier sau director (cp)

Pentru a copia un fișier sau director, se poate utiliza comanda cp (CoPy). În cea mai simplă formă, comanda cp are doi parametri: sursa și apoi destinația, obligatoriu în această ordine. Această comandă se poate folosi în mai multe feluri:

  • copiatul unui fișier dintr-un director în altul:
  student@pracsis01 ~/Desktop $ cp /etc/hostname ~/Desktop/
  • copiatul unui fișier dintr-un director în directorul curent:
  student@pracsis01 ~/Desktop $ cp /etc/hostname .
Observație: În timp ce .. reprezintă directorul părinte, . reprezintă directorul curent.
  • copiatul unui fișier dintr-un director în altul, schimbându-i numele:
  student@pracsis01 ~/Desktop $ cp /etc/hostname ~/Desktop/myhostname
  • copiatul unui director, recursiv, în alt director (se folosește fanionul -r):
  student@pracsis01 ~/Desktop $ cp -r ~/Desktop /tmp
Observație: Această comandă a copiat directorul Desktop al utilizatorului curent în directorul tmp din rădăcină.
  • copiatul unui director, recursiv, în alt director (se folosește fanionul -r), schimbându-i numele:
  student@pracsis01 ~/Desktop $ cp -r ~/Desktop /tmp/MyDesktop

Mutatul unui fișier sau director (mv)

Pentru a muta un fișier sau director, se poate utiliza comanda mv (MoVe). Analog cu copy, în cea mai simplă formă, comanda mv are doi parametri: sursa și apoi destinația, obligatoriu în această ordine. Această comandă se poate folosi în mai multe feluri:

  • mutatul unui fișier dintr-un director în altul:
  student@pracsis01 ~/Desktop $ mv /etc/hostname ~/Desktop/
  • mutatul unui fișier dintr-un director în directorul curent:
  student@pracsis01 ~/Desktop $ mv /etc/hostname .
  • mutatul unui fișier dintr-un director în altul, schimbându-i numele:
  student@pracsis01 ~/Desktop $ mv /etc/hostname ~/Desktop/myhostname
  • mutatul unui director, recursiv, în alt director (nu este necesar un fanion suplimentar ca la copy):
  student@pracsis01 ~/Desktop $ mv ~/Desktop /tmp
  • mutatul unui director, recursiv, în alt director, schimbându-i numele (nu este necesar un fanion suplimentar ca la copy):
  student@pracsis01 ~/Desktop $ mv ~/Desktop /tmp/MyDesktop

Exerciții

  1. Tastati comanda man ls. Ce observati? Incercati man si pentru alte comenzi din aceasta lucrare.
  2. Navigați până în directorul personal al user-ului student.
  3. Creați un director numit work.
  4. În directorul work creați următoarele structuri de directoare:
    • PC/seriaF/grupaN/nume/lab1
    • PC/seriaF/grupaN/nume/lab2
  5. Schimbați directorul curent în /home/student/work/PC/seriaF/grupaN/nume/lab1.
  6. Dați comanda echo Acesta este primul meu fisier text > test.txt
  7. Vizualizați lista de fișiere din directorul curent.
  8. Vizualizați conținutul fișierului din directorul curent.
  9. Faceți o copie a fișierului test.txt numită test2.txt.
  10. Mutați fișierul test2.txt în directorul /home/student/work/PC/seriaF/grupaN/nume/lab2
  11. Schimbați directorul curent în /home/student/work/PC/seriaF/grupaN/nume/lab2.
  12. Vizualizați lista de fișiere din directorul curent.
  13. Vizualizați conținutul fișierului din directorul curent.
  14. Ștergeți directorul /home/student/work

Exerciții pentru acasă

  1. Instalați Virtualbox și descărcați mașina virtuală conform instrucțiunilor de pe pagina de wiki a laboratorului (dacă vă simțiti curajoși, puteți instala Linux direct pe calculator, în paralel cu Windows, sau înlocuindu-l).
  2. Refaceți exercițiile din laborator pe propriul calculator.