Usuń 'microshell/microshell.c'

This commit is contained in:
Robert Stachecki 2021-01-19 17:22:35 +01:00
parent 2069912ec5
commit 85af3a36d6
1 changed files with 0 additions and 78 deletions

View File

@ -1,78 +0,0 @@
//Skrypt wykonany za pomoca poradnika https://www.youtube.com/watch?v=O5YVGg81Gdo https://www.youtube.com/watch?v=5Qim9wufNP0 oraz kursów i instrukcji ogólno dostępnych w internecie
//Kopiowanie oraz korzytsanie z kodu do własnych potrzeb zabronione
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <pwd.h>
#include <string.h>
#include <wait.h>
#include <time.h>
#define space " \n"
#define max_c 500
#define BRIGHT 1
#define GREEN 32
#define BLUE 34
#define PINK 35
#define CYAN 36
void help() {
printf(" Robert Stachecki \n Obslugiwane polecenia: \n exit \n cd \n pwd \n date \n help \n exit \n date \n");
}
void clear(){
printf("\033[H\033[J");
}
const char *getUserName()
{
uid_t uid = geteuid();
struct passwd *pw = getpwuid(uid);
return pw->pw_name;
}
void date(){
time_t t = time(NULL);
struct tm *tm = localtime(&t);
char s[64];
strftime(s, sizeof(s), "%c", tm);
printf("%s\n", s);
}
int main()
{
char cwd[512], hostName[128], *pwd[1000];
register struct passwd *pw;
register uid_t uid;
uid = geteuid ();
pw = getpwuid (uid);
char line[max_c], lend[max_c], * commands[max_c], ** command;
while (1) {
gethostname(hostName, 128);
getcwd(cwd, 512);
printf("%c[%dm%s",0x1B, GREEN, pw->pw_name);
printf("%c[%dm",0x1B,0);
printf("@");
printf("%c[%dm%s ",0x1B, PINK, hostName);
printf("%c[%dm%s",0x1B, CYAN, cwd);
printf("%c[%dm $ ",0x1B, GREEN);
printf("%c[%dm",0x1B,0);
fflush(stdout);
if (fgets(line, max_c, stdin )) {
command = commands;
*command++ = strtok(line,space);
while ((*command++ = strtok(NULL,space)));
if (strcmp(commands[0], "help")==0) help();
else if (strcmp(commands[0], "exit")==0) {
printf ("Zakończono działanie\n");
exit(0);
}
else if (strcmp(commands[0], "cd")==0) {
if (commands[1]==0) printf("Wymagany argument\n");
int ret;
ret = chdir(commands[1]);
strcpy(lend, "pwd");
}
else if (strcmp(commands[0], "date") == 0){ date(); }
else if (strcmp(commands[0], "clear") == 0){ clear(); }
else if (strcmp(commands[0], "pwd")==0) printf ("%s\n", cwd);
}
}
return 0;
}