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);