- Numele echipei: Inner Shell
- Grupa: 252
- Membrii: Buzatu Giulian, Ilie Dumitru, Neculae Andrei-Fabian
- Inainte de a rula, trebuie sa ne asiguram ca avem instalate build-essential, cmake si make
sudo apt install build-essential
sudo apt install cmake
sudo apt install make
- Daca se foloseste scriptul, este necesar sa ii dam drepturi de executie
chmod +x build.sh
- Folosind scriptul build.sh (run este optional)
./build.sh [run]
- Manual
cmake -B build -S src -DCMAKE_RUNTIME_OUTPUT_DIRECTORY=../bin
cd build
make
cd ../bin
./Flesh
-
Istoric comenzi
- Limita de cativa MB
- Pe disk, pentru a se salva chiar daca inchidem shell-ul
- Salvare pe disk in caz de Ctrl + C
- Salvare pe disk in caz de kill
- history
- Afiseaza tot istoricul, inclusiv comenzile din sesiunile anterioare
- history -c
- Sterge tot istoricul
- history -n
- Afiseaza numarul de comenzi din istoric
- history -number
- Afiseaza ultimele [number] comenzi
- !!
- Executa ultima comanda
-
Piping
- Operatorul |
- Output-ul primei comenzi este input pentru a doua comanda
- Utilizare: cat logfile.txt | sort | uniq -c
- Operatorul |
-
Redirectionare
- Operatorul >
- Redirectioneaza output-ul catre o fila txt (overwrite)
- Utilizare: echo "Hello World!" > output.txt
- Operatorul >>
- Redirectioneaza output-ul catre o fila txt (append)
- Utilizare: echo "Hello World!" >> output.txt
- Operatorul <
- Preia input-ul dintr-o fila txt
- Utilizare: sort < input.txt
- Operatorul >
-
Operatori Logici
- Operatorul &&
- Executa comanda urmatoare doar daca prima comanda a avut succes
- Utilizare: g++ test.cpp -o test && ./test
- Operatorul ||
- Executa comanda urmatoare doar daca prima comanda a avut esec
- Utilizare: g++ test.cpp -o test || echo "Compilation failed"
- Operatorul &&
-
Control Flow
- Separatorul ;
- Permite executia mai multor comenzi secvential
- Utilizare: sleep 10; echo "Hello World!"
- Separatorul '&'
- Permite executia mai multor comenzi in background
- Utilizare: echo "Hello World 1!" & sleep 10 & echo "Hello World 2!"
- Separatorul ;
-
Sistemul de foldere
- cd [path]
- cd -
- ~
-
Comenzi custom
- quit
- clear
- sudo [comanda custom]
-
Functionalitatea corecta a sagetilor
- Up, Down -> Istoric comenzi
- Left, Right -> Navigare prin litere
- Ctrl + Up, Ctrl + Down -> Navigare prin cuvinte
-
Ctrl Signals
- Ctrl + C (SIGINT) - Anuleaza executia comanda curenta
- Ctrl + Z (SIGTSTP) - Suspenda executia comenzii curente
- Ctrl + \ (SIGQUIT) - Inchide Flesh
- Ctrl + D - Inchide Flesh
-
Extra
- Logo
- Culori (ANSI Escape Sequences)
-
Variabile de mediu
- $
- Ansi Escape Sequences 1
- Ansi Escape Sequences 2
- Append to file in C
- Ascii Art Tool
- Basic Signal Handling (pentru Ctrl + C)
- Creating Pipes in C
- Execvp (pentru a executa comenzi)
- getenv (pentru ~)
- Proper handling of SIGINT/SIGQUIT
- Terminos (pentru functionalitatea sagetilor)
- Terminos syntax configuration with bitwise operators