1.功能需求
- 能实现内置的cd,pwd命令
- 输出要跟真正的shell尽量一致
- 可以实现ls,ps,vim等功能(这里可以用fork+exec,popen等实现,程序中采用的是fork+exec)
2.代码演示
-
头文件head.h
#ifndef _HEAD_H #define _HEAD_H #include<stdio.h> #include<stdlib.h> #include<unistd.h> #include<sys/types.h> #include<sys/socket.h> #include<arpa/inet.h> #include<pthread.h> #include<string.h> #include<sys/ioctl.h> #include<fcntl.h> #include<stdbool.h> #include<pwd.h> #include<sys/wait.h> #include<signal.h> #include<sys/select.h> #include<poll.h> #include<dirent.h> #endif
-
颜色宏定义color.h
#ifndef _COLOR_H #define _COLOR_H #define NONE "\033[0m" #define BLACK "\033[0;30m" #define L_BLACK "\033[1;30m" #define RED "\033[0;31m" #define L_RED "\033[1;31m" #define GREEN "\033[0;32m" #define L_GREEN "\033[1;32m" #define YELLOW "\033[0;33m" #define L_YELLOW "\033[1;33m" #define BLUE "\033[0;34m" #define L_BLUE "\033[1;34m" #define L_PINK "\033[1;35m"