Un shell minimalist scris în C care interfațează cu utilitarul dbxcli pentru a gestiona fișierele din Dropbox direct din linia de comandă Linux. Proiectul demonstrează manipularea proceselor folosind fork, exec și wait, precum și gestionarea memoriei și a fluxurilor de intrare/ieșire.
Asigură-te că ai instalate pachetele de bază pentru compilare (gcc, make). Dacă comanda make nu funcționează, rulează:
sudo apt update && sudo apt install build-essentialShell-ul depinde de executabilul oficial Dropbox (dbxcli). Acesta trebuie instalat în calea sistemului (/usr/bin) pentru a fi găsit de program.
- Descarcă și instalează:
# Descarcă executabilul
wget https://github.com/dropbox/dbxcli/releases/download/v3.0.0/dbxcli-linux-amd64
# Redenumește și oferă permisiuni de execuție
mv dbxcli-linux-amd64 dbxcli
chmod +x dbxcli
# Mută în folderul de binare globale (OBLIGATORIU)
sudo mv dbxcli /usr/bin/- Autentificare:
dbxcli account(Urmează link-ul generat în terminal, autorizează aplicația, copiază codul primit și lipește-l înapoi în terminal).
Proiectul include un Makefile pentru automatizarea procesului.
- Compilare:
make- Rulare:
./myshell
# Alternativ: make run- Curățare (Ștergere executabil):
make cleanOdată pornit shell-ul, poți folosi următoarele comenzi interne:
| Comandă | Descriere | Utilizare |
|---|---|---|
| ls | Listează fișierele din folderul curent sau cel specificat | ls [folder] |
| cd | Schimbă directorul curent virtual | cd <folder> sau cd .. |
| mkdir | Creează un director nou (cu verificare duplicat) | mkdir <nume> |
| put | Upload fișier local în Dropbox (previne suprascrierea) | put <fisier_local> [destinatie] |
| get | Download fișier din Dropbox pe PC | get <fisier_remote> [destinatie] |
| mv | Mutare sau Redenumire (detectează automat folderele) | mv <sursa> <destinatie> |
| rm | Ștergere fișier/folder (suportă force mode) | rm [--force] <tinta> |
| lcl | Execută comenzi locale de Linux | lcl <comanda_linux> |
| help | Afișează manualul de utilizare pentru o comandă | help <comanda> |
| commands | Afișează lista tuturor comenzilor disponibile | commands |
| exit | Închide aplicația | exit |
Proiect realizat pentru cursul de Sisteme de Operare.