Skip to content

🐚 ᴘʏᴛʜᴏɴ ᴜɴɪx sʜᴇʟʟ ɪs ᴀ ʟɪɢʜᴛᴡᴇɪɢʜᴛ, ᴜɴɪx-ʟɪᴋᴇ ᴄᴏᴍᴍᴀɴᴅ sʜᴇʟʟ ʙᴜɪʟᴛ ᴇɴᴛɪʀᴇʟʏ ɪɴ ᴘʏᴛʜᴏɴ.ᴅᴇsɪɢɴᴇᴅ ғᴏʀ ᴅᴇᴠᴇʟᴏᴘᴇʀs ᴡʜᴏ ᴡᴀɴᴛ ᴛᴏ ʟᴇᴀʀɴ ʜᴏᴡ sʜᴇʟʟs ᴡᴏʀᴋ ɪɴᴛᴇʀɴᴀʟʟʏ, ᴇxᴘᴇʀɪᴍᴇɴᴛ ᴡɪᴛʜ ᴄᴏᴍᴍᴀɴᴅ ᴇxᴇᴄᴜᴛɪᴏɴ, ᴀɴᴅ ᴇxᴛᴇɴᴅ ғᴜɴᴄᴛɪᴏɴᴀʟɪᴛʏ

License

Notifications You must be signed in to change notification settings

sinqcos/unix-shell

ᴘʏᴛʜᴏɴ ᴜɴɪx sʜᴇʟʟ

ᴀ ᴍᴏᴅᴜʟᴀʀ, ᴇxᴛᴇɴsɪʙʟᴇ ᴜɴɪx-ʟɪᴋᴇ sʜᴇʟʟ ɪᴍᴘʟᴇᴍᴇɴᴛᴇᴅ ɪɴ ᴘʏᴛʜᴏɴ — ʙᴜɪʟᴛ ғᴏʀ ʟᴇᴀʀɴɪɴɢ, ᴀᴜᴛᴏᴍᴀᴛɪᴏɴ, ᴀɴᴅ ᴀᴅᴠᴀɴᴄᴇᴅ ᴅᴇᴠᴇʟᴏᴘᴍᴇɴᴛ.

📁 ᴘʀᴏᴊᴇᴄᴛ sᴛʀᴜᴄᴛᴜʀᴇ

ᴜɴɪx-sʜᴇʟʟ/
├── ᴍʏsʜᴇʟʟ.ᴘʏ        → ᴇɴᴛʀʏ ᴘᴏɪɴᴛ & ʀᴇᴘʟ  
├── ᴘᴀʀsᴇʀ.ᴘʏ         → ᴄᴏᴍᴍᴀɴᴅ/sᴄʀɪᴘᴛ ᴘᴀʀsɪɴɢ  
├── ᴇxᴇᴄᴜᴛᴏʀ.ᴘʏ       → ᴄᴏᴍᴍᴀɴᴅ ᴇxᴇᴄᴜᴛɪᴏɴ ᴇɴɢɪɴᴇ  
├── ʙᴜɪʟᴛɪɴs.ᴘʏ       → ʙᴜɪʟᴛ-ɪɴ ᴄᴏᴍᴍᴀɴᴅs (ᴄᴅ, ᴀʟɪᴀs, ᴇᴛᴄ.)  
├── ᴊᴏʙᴄᴏɴᴛʀᴏʟ.ᴘʏ     → ᴘʀᴏᴄᴇss & ᴊᴏʙ ᴍᴀɴᴀɢᴇᴍᴇɴᴛ  
├── ᴄᴏᴍᴘʟᴇᴛɪᴏɴ.ᴘʏ     → ᴛᴀʙ & ᴄᴜsᴛᴏᴍ ᴄᴏᴍᴘʟᴇᴛɪᴏɴ  
├── ʜɪsᴛᴏʀʏ.ᴘʏ        → ᴄᴏᴍᴍᴀɴᴅ ʜɪsᴛᴏʀʏ  
├── ᴄᴏɴғɪɢ.ᴘʏ         → ᴄᴏɴғɪɢ & ᴇɴᴠɪʀᴏɴᴍᴇɴᴛ ʜᴀɴᴅʟɪɴɢ  
├── ᴜᴛɪʟs.ᴘʏ          → ᴜᴛɪʟɪᴛʏ ʜᴇʟᴘᴇʀs  
├── ᴘʟᴜɢɪɴs/          → ᴘʟᴜɢɪɴ sʏsᴛᴇᴍ (ᴇxᴛᴇɴsɪʙʟᴇ ᴍᴏᴅᴜʟᴇs)  
│   └── __ɪɴɪᴛ__.ᴘʏ  
├── ᴛᴇsᴛs/            → ᴜɴɪᴛ ᴛᴇsᴛs  
│   └── ᴛᴇsᴛ_sʜᴇʟʟ.ᴘʏ  
└── ʀᴇǫᴜɪʀᴇᴍᴇɴᴛs.ᴛxᴛ

ᴍᴏᴅᴜʟᴇ ᴘᴜʀᴘᴏsᴇ
ᴘᴀʀsᴇʀ.ᴘʏ ᴘᴀʀsᴇs sʜᴇʟʟ ɪɴᴘᴜᴛ, ᴄᴏᴍᴍᴀɴᴅs, ᴀɴᴅ sᴄʀɪᴘᴛs
ᴇxᴇᴄᴜᴛᴏʀ.ᴘʏ ᴇxᴇᴄᴜᴛᴇs ᴄᴏᴍᴍᴀɴᴅs, ʜᴀɴᴅʟᴇs ɪ/ᴏ ᴀɴᴅ ᴘɪᴘᴇʟɪɴᴇs
ʙᴜɪʟᴛɪɴs.ᴘʏ ɪᴍᴘʟᴇᴍᴇɴᴛs ɪɴᴛᴇʀɴᴀʟ ᴄᴏᴍᴍᴀɴᴅs (ᴄᴅ, ᴀʟɪᴀs, ᴇxᴘᴏʀᴛ, ᴇᴛᴄ.)
ᴊᴏʙᴄᴏɴᴛʀᴏʟ.ᴘʏ ᴍᴀɴᴀɢᴇs ʙᴀᴄᴋɢʀᴏᴜɴᴅ ᴊᴏʙs ᴀɴᴅ sɪɢɴᴀʟs
ᴄᴏᴍᴘʟᴇᴛɪᴏɴ.ᴘʏ ᴘʀᴏᴠɪᴅᴇs ᴛᴀʙ ᴄᴏᴍᴘʟᴇᴛɪᴏɴ
ᴘʟᴜɢɪɴs/ ᴍᴏᴅᴜʟᴀʀ ᴘʟᴜɢɪɴ sʏsᴛᴇᴍ ғᴏʀ ᴄᴜsᴛᴏᴍ ᴄᴏᴍᴍᴀɴᴅs/ғᴇᴀᴛᴜʀᴇs
ᴄᴏɴғɪɢ.ᴘʏ ʟᴏᴀᴅs ᴄᴏɴғɪɢᴜʀᴀᴛɪᴏɴ ᴀɴᴅ ᴇɴᴠɪʀᴏɴᴍᴇɴᴛ ᴠᴀʀɪᴀʙʟᴇs

🚀 ǫᴜɪᴄᴋ sᴛᴀʀᴛ

ɪɴᴛᴇʀᴀᴄᴛɪᴠᴇ sʜᴇʟʟ

ᴘʏᴛʜᴏɴ3 ᴍʏsʜᴇʟʟ.ᴘʏ

ʀᴜɴ ᴀ sᴄʀɪᴘᴛ:

ᴘʏᴛʜᴏɴ3 ᴍʏsʜᴇʟʟ.ᴘʏ sᴄʀɪᴘᴛ.sʜ

ʀᴜɴ ᴛᴇsᴛ:

ᴘʏᴛᴇsᴛ ᴛᴇsᴛs

🧩 ᴘʟᴜɢɪɴ ᴅᴇᴠᴇʟᴏᴘᴍᴇɴᴛ

ᴄʀᴇᴀᴛᴇ ᴀ .ᴘʏ ғɪʟᴇ ɪɴsɪᴅᴇ ᴘʟᴜɢɪɴs/ ᴅᴇғɪɴɪɴɢ ᴀ ᴘʟᴜɢɪɴ ᴄʟᴀss:

# ᴘʟᴜɢɪɴs/ʜᴇʟʟᴏ_ᴘʟᴜɢɪɴ.ᴘʏ
ᴄʟᴀss ᴘʟᴜɢɪɴ:
    ᴅᴇғ ʀᴇɢɪsᴛᴇʀ(sᴇʟғ, sʜᴇʟʟ):
        sʜᴇʟʟ.ʀᴇɢɪsᴛᴇʀ_ᴄᴏᴍᴍᴀɴᴅ("ʜᴇʟʟᴏ", sᴇʟғ.ʜᴇʟʟᴏ)

    ᴅᴇғ ʜᴇʟʟᴏ(sᴇʟғ, ᴀʀɢs):
        ᴘʀɪɴᴛ("ʜᴇʟʟᴏ ғʀᴏᴍ ᴘʟᴜɢɪɴ!")

ᴘʟᴜɢɪɴs ᴄᴀɴ:

ʀᴇɢɪsᴛᴇʀ ɴᴇᴡ ᴄᴏᴍᴍᴀɴᴅs ᴏʀ ᴛᴀʙ ᴄᴏᴍᴘʟᴇᴛɪᴏɴs

ʜᴏᴏᴋ ɪɴᴛᴏ sʜᴇʟʟ ᴇᴠᴇɴᴛs (ᴘʀᴇ-ᴇxᴇᴄ, ᴘᴏsᴛ-ᴇxᴇᴄ, ᴘʀᴏᴍᴘᴛ ʀᴇɴᴅᴇʀ)

ᴇxᴛᴇɴᴅ ᴏʀ ᴏᴠᴇʀʀɪᴅᴇ ʙᴜɪʟᴛ-ɪɴ ʙᴇʜᴀᴠɪᴏʀs

🧠 ᴅᴇᴠᴇʟᴏᴘᴇʀ ɴᴏᴛᴇs

ᴍᴏᴅᴜʟᴀʀ, ᴄʟᴀss-ʙᴀsᴇᴅ ᴀʀᴄʜɪᴛᴇᴄᴛᴜʀᴇ ғᴏʀ ᴇᴀsʏ ᴇxᴛᴇɴsɪᴏɴ

ɪɴᴅᴇᴘᴇɴᴅᴇɴᴛ sᴜʙsʏsᴛᴇᴍs (ᴘᴀʀsᴇʀ, ᴇxᴇᴄᴜᴛᴏʀ, ᴊᴏʙᴄᴏɴᴛʀᴏʟ)

ᴜsᴇs ᴘʏᴛʜᴏɴ’s sᴜʙᴘʀᴏᴄᴇss, sɪɢɴᴀʟ, ᴀɴᴅ ʀᴇᴀᴅʟɪɴᴇ ʟɪʙʀᴀʀɪᴇs

ɪᴅᴇᴀʟ ғᴏʀ ᴇxᴘᴇʀɪᴍᴇɴᴛɪɴɢ ᴡɪᴛʜ sʜᴇʟʟ ɪɴᴛᴇʀɴᴀʟs, ɴᴏᴛ ғᴏʀ ᴘᴏsɪx ᴄᴏᴍᴘʟɪᴀɴᴄᴇ

⚠️ ᴄᴜʀʀᴇɴᴛ ʟɪᴍɪᴛᴀᴛɪᴏɴs

ᴍɪɴɪᴍᴀʟ sᴄʀɪᴘᴛɪɴɢ (ɴᴏ ғᴜɴᴄᴛɪᴏɴs, ʜᴇʀᴇ-ᴅᴏᴄs, ᴏʀ ᴄᴀsᴇ/ᴇsᴀᴄ)

sɪᴍᴘʟɪғɪᴇᴅ ᴊᴏʙ ᴄᴏɴᴛʀᴏʟ ᴀɴᴅ ᴇʀʀᴏʀ ʜᴀɴᴅʟɪɴɢ

ᴘᴀʀᴛɪᴀʟ ᴘᴏsɪx ᴄᴏᴍᴘᴀᴛɪʙɪʟɪᴛʏ

🧭 ᴅᴇᴠᴇʟᴏᴘᴍᴇɴᴛ ʀᴏᴀᴅᴍᴀᴘ

ғᴜʟʟ sᴄʀɪᴘᴛɪɴɢ sᴜᴘᴘᴏʀᴛ (ғᴜɴᴄᴛɪᴏɴs, ᴄᴀsᴇ, ʜᴇʀᴇ-ᴅᴏᴄs)

ᴀᴅᴠᴀɴᴄᴇᴅ ᴊᴏʙ ᴄᴏɴᴛʀᴏʟ ᴀɴᴅ ᴘʀᴏᴄᴇss sᴜʙsᴛɪᴛᴜᴛɪᴏɴ

ᴘʟᴜɢɪɴ ʜᴏᴏᴋ sʏsᴛᴇᴍ (ᴘʀᴇ/ᴘᴏsᴛ ᴄᴏᴍᴍᴀɴᴅ ᴇᴠᴇɴᴛs)

ᴅʏɴᴀᴍɪᴄ ᴘʀᴏᴍᴘᴛ ᴄᴜsᴛᴏᴍɪᴢᴀᴛɪᴏɴ ᴀɴᴅ ᴛʜᴇᴍɪɴɢ

ɢɪᴛ & ᴠɪʀᴛᴜᴀʟᴇɴᴠ ɪɴᴛᴇɢʀᴀᴛɪᴏɴ

🤝 ᴄᴏɴᴛʀɪʙᴜᴛɪɴɢ

ғᴏʟʟᴏᴡ ᴄᴏᴅᴇ sᴛʏʟᴇ ɪɴ ᴄᴏɴᴛʀɪʙᴜᴛɪɴɢ.ᴍᴅ

ᴀᴅᴅ ᴜɴɪᴛ ᴛᴇsᴛs ғᴏʀ ᴀʟʟ ɴᴇᴡ ғᴇᴀᴛᴜʀᴇs

sᴜʙᴍɪᴛ ᴄʟᴇᴀʀ, ᴅᴇsᴄʀɪᴘᴛɪᴠᴇ ᴘᴜʟʟ ʀᴇǫᴜᴇsᴛs

📜 ʟɪᴄᴇɴsᴇ

ʟɪᴄᴇɴsᴇᴅ ᴜɴᴅᴇʀ ᴛʜᴇ ᴍɪᴛ ʟɪᴄᴇɴsᴇ

About

🐚 ᴘʏᴛʜᴏɴ ᴜɴɪx sʜᴇʟʟ ɪs ᴀ ʟɪɢʜᴛᴡᴇɪɢʜᴛ, ᴜɴɪx-ʟɪᴋᴇ ᴄᴏᴍᴍᴀɴᴅ sʜᴇʟʟ ʙᴜɪʟᴛ ᴇɴᴛɪʀᴇʟʏ ɪɴ ᴘʏᴛʜᴏɴ.ᴅᴇsɪɢɴᴇᴅ ғᴏʀ ᴅᴇᴠᴇʟᴏᴘᴇʀs ᴡʜᴏ ᴡᴀɴᴛ ᴛᴏ ʟᴇᴀʀɴ ʜᴏᴡ sʜᴇʟʟs ᴡᴏʀᴋ ɪɴᴛᴇʀɴᴀʟʟʏ, ᴇxᴘᴇʀɪᴍᴇɴᴛ ᴡɪᴛʜ ᴄᴏᴍᴍᴀɴᴅ ᴇxᴇᴄᴜᴛɪᴏɴ, ᴀɴᴅ ᴇxᴛᴇɴᴅ ғᴜɴᴄᴛɪᴏɴᴀʟɪᴛʏ

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published