A bash-like shell.
make #make dev pour l'affichage des messages de debug
make clean
Architecture du projet :
.
├── Makefile
├── README.md #vous êtes ici
├── bin/ #les binaires compilés par le Makefile
├── obj/ #les fichiers objet
└── src/ #les sources
├── libs/
└── shell/
Dépendences :
Il peut être nécessaire d'installer les librairies PAM pour su :
sudo apt-get install libpam0g-dev
Les commandes make disponibles :
make #compilation du shell et des commandes
make dev #idem, avec messages de debug
make clean #nettoyage du répertoire obj/
make distclean #nettoyage du répertoire bin/
Pour utiliser su
:
sudo chown root ./bin/libs/su
sudo chgrp root ./bin/libs/su
sudo chmod 4711 ./bin/libs/su #setuid bit
Le shell peut être lancé en 3 modes différents afin de mettre en oeuvre
l'utilisation des librairies statiques et dynamiques. Voir l'option mode
.
./bin/knutShell [-m <mode>]
./bin/knutShell connect [<addr>] <port>
Options :
-
-m <mode>
: Sous quelle forme utiliser nos commandes.exec
: utilisation des versions exécutables (défaut)static
: utilisation des libraries statiquesdynamic
: utilisation des libraries dynamiques
-
connect
: connection à un KnutShell distantaddr
: (optionel) l'adresse ipport
: le port
Le shell supporte les opérateurs ;
, |
, &&
, ||
pour séparer les
commandes.
Un commande peut aussi être mise en background avec &
.
KnutShell comprend également les parenthèses.
Enfin, les redirections >
, >>
, <
, et <<
(voir man bash
,
Here documents) sont en places.
Par exemple, essayez :
#dans un KnutShell
ls -all | wc -l > resultat.txt
echo start; (cp toto.txt / || echo error)
vim
cat < monFichier.txt && echo fin cat
echo start; (sleep 4 && echo Coucou) &
cat <<stop
exit
Pour se connecter à un KnutShell distant via TCP :
#serveur
./bin/knutShell #va afficher "Listenning on port XXXX"
#client
./bin/knutShell connect XXXX
./bin/knutShell connect 192.168.0.1 XXXX #l'ip est par défaut 127.0.0.1