Giter VIP home page Giter VIP logo

hubtou / pnu Goto Github PK

View Code? Open in Web Editor NEW
4.0 2.0 2.0 839 KB

The PNU project: a learning exercise to reimplement UNIX command-line tools in Python, forming a portable utilities collection

License: BSD 3-Clause "New" or "Revised" License

Makefile 12.56% Roff 12.74% Python 70.29% Shell 4.41%
unix python tools utilities shell learning learning-exercise learning-python learning-unix portability

pnu's Introduction

PNU logo

PNU, as in PNU is Not Unix, is a challenge project and a learning exercise to reimplement UNIX command-line tools in Python, forming a kind of "pytnix" portable user-land utilities collection.

It's meant to be pronounced "Pneu" (tyre in French), a "pun" which seems appropriate as it's clearly another reinvention of the wheel, longtime after the GNU project :-)

Objectives:

Project status:

pip install PNU

or you can install PNU plus a selection of additional third-parties tools with this command:

pip install pytnix
  • This page is both for the challenge description and for referencing unix tools rewrites made by contributors.
  • To contribute you can simply create:
    • your own Github repositories and link them to the project by using the pnu-project topic
    • your own PyPi packages and link them to the project by using the pnu-project keyword (but please don't use the "pnu-" package prefix for your own entries)

How to contribute:

Suggested tasks and progression:

The following, (A)D&D inspired, level structure is proposed for gamification. We suggest level bosses in order to complete a level (but no Demogorgon here, we are not in Stranger Things :-)) and associated ๐Ÿ† trophies for fun :-)

We're also thinking about offering Habitica's quests for further gamification.

The following classification of commands is still in progress.

Basic levels

Level 1 sub projects

Handling return codes, printing to the terminal:

Level 2 sub projects

Basic string handling:

Basic math or data structures, school level:

Level 3 sub projects

Basic filters, command line & environment processing, file operations:

Level 4 sub projects

Basic text processing utilities, multiple files or many options:

  • cat => with full options
  • nl
  • cmp
  • comm
  • uniq => suggested level boss. Trophy: 1๏ธโƒฃ

Level 5 sub projects

Basic utilities using more complex parsing:

Intermediate levels

System utilities (implying minimum Unix system knowledge). Regular expressions, text parsing. CSV, JSON, XML, HTML data handling.

Level 6 sub projects

Basic system utilities.

Level 7 sub projects

Basic system utilities, possibly recursive ones:

Level 8 sub projects

Level 9 sub projects

Level 10 sub projects

Advanced levels

Full screen text applications, windowed applications, office documents manipulation, image manipulation, web scraping, network applications, automation.

Interactive full screen applications:

Advanced system utilities, data compression:

Level 11 sub projects

Level 12 sub projects

Level 13 sub projects

Level 14 sub projects

Level 15 sub projects

Master levels

Languages (interpreters, compilers), database management systems, network protocols:

Level 16 sub projects

Level 17 sub projects

Level 18 sub projects

Level 19 sub projects

Level 20 sub projects

  • sh => Suggested level boss. Trophy: ๐Ÿš

Immortal levels

It's a long way to the top if you wanna get your entry in the "Deities & Demigods" of hackers, but here are some examples to inspire you from the Unix & open source pantheon (note: having a :neckbeard: beard is not mandatory)

However, all of this is beyond the scope of the project and probably not a good idea to implement in Python :-)

Demigods level transcending projects

Full operating system kernels & device drivers:

Deities level transcending projects

Making your own hardware platform and all the software to run it.

  • Although not Unix related, ๐Ÿง™โ€โ™‚๏ธ The Woz springs to mind here and his excellent autobiography, iWoz, is highly recommended for a good glimpse into a true hacker's mind.

pnu's People

Contributors

hubtou avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.