一个功能丰富的 Unix/Linux Shell 实现,支持内置命令、输入输出重定向、管道、命令补全和历史记录管理等特性。
- 内置命令:
exit,echo,type,pwd,cd,history - 命令执行: 支持 PATH 环境变量中的外部命令
- 输入输出重定向:
- 标准输出重定向 (
>和>>) - 标准错误重定向 (
2>和2>>) - 同时重定向 stdout 和 stderr
- 标准输出重定向 (
- 管道支持: 使用
|连接多个命令 - 命令补全:
- Tab 键自动补全命令(内置命令 + PATH 中的可执行文件)
- Tab 键自动补全文件名和路径
- 历史记录:
- 持久化历史记录(保存到
~/.shell_history) history命令查看命令历史history -r <file>从文件读取历史history -w <file>保存历史到文件history -a <file>追加历史到文件
- 持久化历史记录(保存到
- 路径展开: 支持
~展开为用户主目录
- 操作系统: Linux / Unix (支持 macOS)
- 编译器: GCC 7+ 或 Clang 5+
- 构建工具: CMake 3.10+
- 依赖库:
- GNU Readline 库
- C++17 标准库
- POSIX 兼容系统
# 克隆仓库
git clone https://github.com/Viveksssss/tinyshell.git
cd tinyshell
# 创建构建目录
mkdir build && cd build
# 配置和编译
cmake ..
make
# 运行 Shell
./shell