Linux 简易版 SHELL 实现
一、前言
在之前的讲解中,我们已经涉及了进程管理的核心内容。今天,我们将利用这些知识,使用 C 语言实现一个简易版的 Shell,帮助理解命令行的交互与执行原理。
二、SHELL 实现
1. 获取命令行,实现交互
实现 Shell 的第一步是从键盘获取用户的输入,即命令行。
设置打印格式
我们需要定义提示符的左右括号及分隔符,并获取当前用户、主机名和路径来构建提示符。
#define LEFT "["
#define RIGHT "]"
#define LABLE "#"
#define LINE_SIZE 1024
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <pwd.h>
#include <sys/wait.h>
int quit = 0;
char commandline[LINE_SIZE];
char pwd[LINE_SIZE];
const char *getusername() {
return getenv("USER");
}
const char *gethostname() {
return getenv("HOSTNAME");
}
void getpwd {
getcwd(pwd, (pwd));
}
{
(LEFT RIGHT LABLE , getusername(), gethostname(), pwd);
}


