Skip to content

Mariusq17/dropbox-shell-c

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

Dropbox Shell (C Implementation)

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.

🛠️ Cerințe Preliminare

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-essential

🚀 Instalare și Configurare dbxcli

Shell-ul depinde de executabilul oficial Dropbox (dbxcli). Acesta trebuie instalat în calea sistemului (/usr/bin) pentru a fi găsit de program.

  1. 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/
  1. Autentificare:
dbxcli account

(Urmează link-ul generat în terminal, autorizează aplicația, copiază codul primit și lipește-l înapoi în terminal).

⚙️ Compilare și Rulare

Proiectul include un Makefile pentru automatizarea procesului.

  1. Compilare:
make
  1. Rulare:
./myshell
# Alternativ: make run
  1. Curățare (Ștergere executabil):
make clean

📖 Comenzi Disponibile

Odată 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.

About

A custom Linux shell for Dropbox implemented in C using system calls (fork, exec, wait).

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors