Skip to content

Viveksssss/TinyShell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

🐚 Tinyshell

一个功能丰富的 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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors