ᴘʏᴛʜᴏɴ ᴜɴɪx sʜᴇʟʟ
ᴀ ᴍᴏᴅᴜʟᴀʀ, ᴇxᴛᴇɴsɪʙʟᴇ ᴜɴɪx-ʟɪᴋᴇ 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ʜᴇʟʟ
ᴘʏᴛʜᴏɴ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 (ᴘʀᴇ-ᴇxᴇᴄ, ᴘᴏsᴛ-ᴇxᴇᴄ, ᴘʀᴏᴍᴘᴛ ʀᴇɴᴅᴇʀ)
ᴇxᴛᴇɴᴅ ᴏʀ ᴏᴠᴇʀʀɪᴅᴇ ʙᴜɪʟᴛ-ɪɴ ʙᴇʜᴀᴠɪᴏʀ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ɪx ᴄᴏᴍᴘᴀᴛɪʙɪʟɪᴛʏ
ғᴜʟʟ sᴄʀɪᴘᴛɪɴɢ sᴜᴘᴘᴏʀᴛ (ғᴜɴᴄᴛɪᴏɴs, ᴄᴀsᴇ, ʜᴇʀᴇ-ᴅᴏᴄs)
ᴀᴅᴠᴀɴᴄᴇᴅ ᴊᴏʙ ᴄᴏɴᴛʀᴏʟ ᴀɴᴅ ᴘʀᴏᴄᴇss sᴜʙsᴛɪᴛᴜᴛɪᴏɴ
ᴘʟᴜɢɪɴ ʜᴏᴏᴋ sʏsᴛᴇᴍ (ᴘʀᴇ/ᴘᴏsᴛ ᴄᴏᴍᴍᴀɴᴅ ᴇᴠᴇɴᴛs)
ᴅʏɴᴀᴍɪᴄ ᴘʀᴏᴍᴘᴛ ᴄᴜsᴛᴏᴍɪᴢᴀᴛɪᴏɴ ᴀɴᴅ ᴛʜᴇᴍɪɴɢ
ɢɪᴛ & ᴠɪʀᴛᴜᴀʟᴇɴᴠ ɪɴᴛᴇɢʀᴀᴛɪᴏɴ
ғᴏʟʟᴏᴡ ᴄᴏᴅᴇ sᴛʏʟᴇ ɪɴ ᴄᴏɴᴛʀɪʙᴜᴛɪɴɢ.ᴍᴅ
ᴀᴅᴅ ᴜɴɪᴛ ᴛᴇsᴛs ғᴏʀ ᴀʟʟ ɴᴇᴡ ғᴇᴀᴛᴜʀᴇs
sᴜʙᴍɪᴛ ᴄʟᴇᴀʀ, ᴅᴇsᴄʀɪᴘᴛɪᴠᴇ ᴘᴜʟʟ ʀᴇǫᴜᴇsᴛs
ʟɪᴄᴇɴsᴇᴅ ᴜɴᴅᴇʀ ᴛʜᴇ ᴍɪᴛ ʟɪᴄᴇɴsᴇ