Skip to content

godfather991/XTXShell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Setup xtxshell

make # 编译
./xtxshell #启动shell

注意:若未安装readline库,makefile会自动安装,请授予sudo权限。

Design of xtxshell

xtxshell是一个使用C语言实现的简单shell,支持以下功能:

  • 用户输入命令与参数,能正常执行命令

    • 常规命令使用C语言的execvp实现,从而无需从PATH中查找命令的路径。

    • cd命令及以下特性使用C语言中的额外处理实现。

  • 输入、输出重定向到文件

  • 管道

  • 后台执行程序

  • 作业控制(jobs)

  • 历史命令(history)记录

    • 使用文件记录,从而实现shell关闭后历史命令仍然存在。
  • 文件名tab补全,各种快捷键

  • 环境变量、简单脚本

Detailed Usage

xtxshell是一个使用C语言实现的简单shell,支持以下功能:

  • 用户输入命令与参数,能正常执行命令

    ls -l
    cd .
    cd ..
  • 输入、输出重定向到文件

    ls -l > ls.txt
    cat < ls.txt
  • 管道

    ls -l | grep README
  • 后台执行程序

    sleep 10 &
  • 作业控制(jobs)

    # In Bash 1
    sleep 10
    
    # In Bash 2
    sleep 10 &
    jobs
  • 历史命令(history)记录

    • 打开shell时自动加载历史命令,关闭shell时自动保存历史命令

    • 上下键切换历史命令

  • 文件名tab补全,各种快捷键

    • 支持文件名tab补全

    • 支持Ctrl+C在内的快捷键

    • 支持Ctrl+D退出shell

  • 环境变量、简单脚本

    # 设置环境变量
    export aaa=1000
    echo ${aaa}
    
    # 运行脚本
    chmod -R 777 .
    ./test.sh

About

Course project for C/UNIX

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors