1 #pragma once
2 
3 // cwd字符串的最大大小
4 #define SHELL_CWD_MAX_SIZE  256
5 #define INPUT_BUFFER_SIZE 512
6 
7 /**
8  * @brief shell内建命令结构体
9  *
10  */
11 struct built_in_cmd_t
12 {
13     char *name;
14     int (*func)(int argc, char **argv);
15 };
16 
17 extern struct built_in_cmd_t shell_cmds[];
18 /**
19  * @brief 寻找对应的主命令编号
20  *
21  * @param main_cmd 主命令
22  * @return int 主命令编号
23  */
24 int shell_find_cmd(char *main_cmd);
25 
26 
27 /**
28  * @brief 运行shell内建的命令
29  *
30  * @param index 主命令编号
31  * @param argc 参数数量
32  * @param argv 参数列表
33  */
34 void shell_run_built_in_command(int index, int argc, char **argv);
35 
36 /**
37  * @brief cd命令:进入文件夹
38  *
39  * @param argc
40  * @param argv
41  * @return int
42  */
43 int shell_cmd_cd(int argc, char **argv);
44 
45 /**
46  * @brief 查看文件夹下的文件列表
47  *
48  * @param argc
49  * @param argv
50  * @return int
51  */
52 int shell_cmd_ls(int argc, char **argv);
53 
54 /**
55  * @brief 显示当前工作目录的命令
56  *
57  * @param argc
58  * @param argv
59  * @return int
60  */
61 int shell_cmd_pwd(int argc, char **argv);
62 
63 /**
64  * @brief 查看文件内容的命令
65  *
66  * @param argc
67  * @param argv
68  * @return int
69  */
70 int shell_cmd_cat(int argc, char **argv);
71 
72 /**
73  * @brief 创建空文件的命令
74  *
75  * @param argc
76  * @param argv
77  * @return int
78  */
79 int shell_cmd_touch(int argc, char **argv);
80 
81 /**
82  * @brief 删除命令
83  *
84  * @param argc
85  * @param argv
86  * @return int
87  */
88 int shell_cmd_rm(int argc, char **argv);
89 
90 /**
91  * @brief 创建文件夹的命令
92  *
93  * @param argc
94  * @param argv
95  * @return int
96  */
97 int shell_cmd_mkdir(int argc, char **argv);
98 
99 /**
100  * @brief 删除文件夹的命令
101  *
102  * @param argc
103  * @param argv
104  * @return int
105  */
106 int shell_cmd_rmdir(int argc, char **argv);
107 
108 /**
109  * @brief 执行新的程序的命令
110  *
111  * @param argc
112  * @param argv
113  * @return int
114  */
115 int shell_cmd_exec(int argc, char **argv);
116 
117 /**
118  * @brief 重启命令
119  *
120  * @param argc
121  * @param argv
122  * @return int
123  */
124 int shell_cmd_reboot(int argc, char **argv);
125 
126 /**
127  * @brief 关于软件
128  *
129  * @param argc
130  * @param argv
131  * @return int
132  */
133 int shell_cmd_about(int argc, char **argv);
134 
135 /**
136  * @brief 显示系统内存空间信息的命令
137  *
138  * @param argc
139  * @param argv
140  * @return int
141  */
142 int shell_cmd_free(int argc, char **argv);
143 
144 /**
145  * @brief 解析shell命令
146  *
147  * @param buf 输入缓冲区
148  * @param argc 返回值:参数数量
149  * @param argv 返回值:参数列表
150  * @return int
151  */
152 int parse_command(char *buf, int *argc, char ***argv);
153 
154 int shell_cmd_kill(int argc, char **argv);