Skip to main content

PY_3

Implementation of simple UNIX like shell using Python.

Main module is commands.py and for running the shell using the command

python commands.py

All commands are implemented as separated modules which are present in different files with the filename same as the name of the command.

SUPPORTED COMMANDS

  • Directory related commands

    • ls: list directory contents
    • mkdir: make directories
    • pwd: return working directory name
    • rmdir: remove directories
    • cd: change current working directory
  • FileDirectory related commands

    • cat: concatenate and print files
    • cp: copy files
    • rm: remove directory links
    • mv: move files
    • grep: file pattern searcher
    • head: display first lines of a file
    • tail: display the last part of a file
    • sizeof: size of file
    • find: walk a file hierarchy
  • Built-in commands

    • date: display date or time
    • whoami: display effective user id
    • hostname: print hostname of current host system
    • timeit: measures execution time
    • exit: terminate the shell
    • history: previous commands
  • Ctrl-C signal handling

Unittest

Unittest module is used for testing for the entire shell. The unittest unit testing framework was originally inspired by JUnit and has a similar flavor as major unit testing frameworks in other languages. test_file.py has test for the modules in it.

Example:

pragyas-mbp-2:PY_3 pragkuma$ python test_file.py
----------------------------------------------------------------------
Ran 22 tests in 0.112s
OK

Input/Output Format

Input from the 'stdin' in an infinite loop till an “exit” is entered. The corresponding output should be printed to 'stdout'.

Example:

pragyas-mbp-2:PY_3 pragkuma$ python commands.py 
MyShell> find . -name grep
./grep
MyShell> date -u
Mon Aug 5 09:14:11 UTC 2019
MyShell> whoami
pragkuma
MyShell> sizeof hostname.py
2278 bytes
MyShell> exit
exiting prompt

Help/Usage of command

Write the name of the command followed by --help in order to get the usage of the command.

Example:

MyShell> find --help
usage: 
NAME
     find -- walk a file hierarchy
DESCRIPTION
    The find utility recursively descends the directory tree for each path listed,
    evaluating an expression (composed of the ``primaries'' and ``operands'' listed below)
    in terms of each file in the tree.

       [-h] [-name NAME] [args [args ...]]

positional arguments:
  args                  enter the filenames

optional arguments:
  -h, --help            show this help message and exit
  -name NAME, --name NAME
                        expression determines what to find

Metadata

Release files for Adobe-cli 0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for Adobe-cli 0.1
File Interpreter ABI Platform
Adobe_cli-0.1-py2-none-any.whl Python 2 none any Details

Release files / Adobe_cli-0.1-py2-none-any.whl

Download URL Adobe_cli-0.1-py2-none-any.whl
Size 3.4 kB
Tags Python 2
SHA-256 checksum
How to use checksums
251f6be3692ea12cf3f3a42c12b443855f0a380f33c2d9b3de69d86d1a32abf2
BLAKE2b-256 checksum
How to use checksums
9ab920263298d588874016661dc38cad743cba4c8281ebf4e2d1919fbea15303
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/2.7.16

Security for Adobe-cli 0.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

0.1 This release

1 release file No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page