
рдореИрдВ рдкреЗрд╢реЗ рд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдПрдбрдорд┐рдирд┐рд╕реНрдЯреНрд░реЗрдЯрд░ рд╣реВрдВред рдореИрдВ рд╡рд┐рднрд┐рдиреНрди рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рджреВрд░рд╕реНрде рд╕рд░реНрд╡рд░реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реВрдВред рд╕рд░реНрд╡рд░ рд╕реЗ рд╢реЗрд▓ рдПрдХреНрд╕реЗрд╕ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдХреНрд╕рд░ рдЖрдк рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рд╕реБрдирддреЗ рд╣реИрдВред рдПрдХ рддрд░рдл, рдЕрдиреБрд░реЛрдз рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ: рд╕рд░реНрд╡рд░ рдореЗрд░рд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЯреНрд░рд┐рдлрд╝рд▓реНрд╕ рдкрд░ рдЯрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ (рдЪрд▓реЛ рдХрд╣рддреЗ рд╣реИрдВ, рджреЗрдЦреЗрдВ рдХрд┐ рдбрд┐рд╕реНрдХ рд╕реНрдерд╛рди рдмрд╛рд╣рд░ рдЪрд▓рд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдпрджрд┐ рд╕рднреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдЪрд▓ рд░рд╣реА рд╣реИрдВ)ред рджреВрд╕рд░реА рдУрд░, рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдЕрдХреНрд╕рд░ рдпреВрдирд┐рдХреНрд╕ рдореЗрдВ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдХреЛрдИ рдЕрдиреБрднрд╡ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рдмрд╛рдд рдХреА рдХреЛрдИ рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдареАрдХ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдЕрдирдЬрд╛рдиреЗ рдореЗрдВ рдбрд┐рд╕реНрдХ рд╕реЗ рдХреБрдЫ рдорд┐рдЯрд╛ рджреЗрддрд╛ рд╣реИ рдпрд╛ рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдирд┐рдпрдореЛрдВ рдХреЛ рд╣рдЯрд╛рдХрд░ рдореЗрд░реА рдкрд╣реБрдВрдЪ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░рддрд╛ рд╣реИред рдЕрдХреНрд╕рд░, рдЧреНрд░рд╛рд╣рдХ рд╕реНрд╡рдпрдВ рдЗрд╕реЗ рд╕рдордЭрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рдХрд┐рд╕реА рдЕрдиреНрдп рддрд░реАрдХреЗ рдХреЛ рджреЗрдЦреЗ рдмрд┐рдирд╛ рдПрдХреНрд╕реЗрд╕ рджреЗрдиреЗ рдкрд░ рдЬреЛрд░ рджреЗрддреЗ рд╣реИрдВред
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдПрдХ рдЫрдВрдЯрдиреА рд╡рд╛рд▓рд╛ рдЦреЛрд▓ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕реБрдбреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ "рдЦрддрд░рдирд╛рдХ" рдХрдорд╛рдВрдб рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рднрд▓реЗ рд╣реА, рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рд╕рдм рдХреБрдЫ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ рд╕рднреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ рд╕реАрдЦрдирд╛ рд╣реИ, рд╕рд╡рд╛рд▓реЛрдВ рдХреА рдПрдХ рдЭрдбрд╝реА рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдирд╛ рд╣реИ рдФрд░ рд╕рдордЭрдирд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдХреНрдпрд╛ рдФрд░ рдХреНрдпреЛрдВ рд╕рдлрд▓ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рд╕рдорд░реНрдерди рдкрд░ рдЦрд░реНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕рдордп рдХрд╛рдлреА рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИред
рдПрдХ рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реБрдП, рдореИрдВ рдкрд╛рдпрдерди рдХреЗ рд▓рд┐рдП
рд╕реАрдПрдордбреА рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдЖрдпрд╛ рд╣реВрдВред рдпрд╣ рдореЙрдбреНрдпреВрд▓ рдЖрдкрдХреЛ рдХрдо рд╕реЗ рдХрдо рд▓рд╛рдЧрдд рдкрд░ рдХрдорд╛рдВрдб рдХреЗ рдЖрд╡рд╢реНрдпрдХ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдПрдХ рдЭрд▓рдХ рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдЖрдЗрдП рдПрдХ рдЫреЛрдЯреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ-рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ, рдЬрд┐рд╕реЗ рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдкреВрд░рдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╡рд╣рд╛рдБ рд╡рд╣ рд╣реИред рдХреЗрд╡рд▓ 25 рд▓рд╛рдЗрдиреЗрдВред рдЖрдкрдХреЛ рд╕реНрдкреЙрдЗрд▓рд░ рдХреЗ рдиреАрдЪреЗ рдЫрд┐рдкрд╛рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдлрд╝рд╛рдЗрд▓ рдХреЛ cli.py рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВ рдФрд░ рдЗрд╕реЗ рдЪрд▓рд╛рдПрдВред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЦрд╝реБрд╢реА рд╕реЗ рд╣рдореЗрдВ рдмрдзрд╛рдИ рджреЗрдЧрд╛ рдФрд░ рдХрдорд╛рдВрдб рдкреНрд░реЙрдореНрдкреНрдЯ рдЬрд╛рд░реА рдХрд░реЗрдЧрд╛ред рдпрд╣рд╛рдБ рдЙрдирдХреЗ рдХрд╛рдо рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
$ ./cli.py 'help' > help ( 'help __') =========================================================================== hello help > help hello hello - 'hello world' > hello hello world > ...
рдХреЛрдб рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВред рд╣рдореЗрдВ Cmd рд╕реЗ Cli рд╡рд░реНрдЧ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛, рдореВрд▓ рднрд╛рд╖рд╛ рдореЗрдВ рдЕрднрд┐рд╡рд╛рджрди рдФрд░ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдорджрдж рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдЧреБрдгреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ред рдФрд░ рджреЛ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рднреА рдЬреЛрдбрд╝рд╛ - рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдФрд░ do_helloред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд┐рдзрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдЯрд╛рдЗрдк рдХреА рдЧрдИ рдХрдорд╛рдВрдб рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИред Do_hello рд╡рд┐рдзрд┐ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдореЗрдВ рд╕реНрдерд┐рдд рд╣реЛрдЧреАред
Do_hello рд╡рд┐рдзрд┐ рд╣рдорд╛рд░реЗ cli рдХреА рдПрдХрдорд╛рддреНрд░ рдХрдорд╛рдВрдб рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреА рд╣реИ (рдареАрдХ рд╣реИ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╕рд╣рд╛рдпрддрд╛ рдХреЛ рдЫреЛрдбрд╝рдХрд░) - рд╣реИрд▓реЛред Cmd рдореЙрдбреНрдпреВрд▓ рдЙрд╕ рдХрдиреНрд╡реЗрдВрд╢рди рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддрд╛ рд╣реИ рдЬреЛ
do_command рдЬреИрд╕реА рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ cli рдореЗрдВ
рдХрдорд╛рдВрдб рдХрдорд╛рдВрдб рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЯреНрд░рд┐рдкрд▓ рдЙрджреНрдзрд░рдг рдЪрд┐рд╣реНрдиреЛрдВ рдореЗрдВ рдЯрд┐рдкреНрдкрдгреА, рд╡рд┐рдзрд┐ рдХреЗ рд╢рд░реАрд░ рдореЗрдВ рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐, рдЗрд╕ рдЖрджреЗрд╢ рдкрд░ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛрддреА рд╣реИред
рдЖрд░реНрдЧреНрд╕ рддрд░реНрдХ рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рддрд░реНрдХреЛрдВ рдХреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрдВрд╕реЛрд▓ рдореЗрдВ "рд╕рднреА рдХреЛ рд╣реИрд▓реЛ" рдЯрд╛рдЗрдк рдХрд░рддрд╛ рд╣реИ, рддреЛ
рдЖрд░реНрдЧреНрд╕ рдЪрд░ рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧ "рд╣рд░ рдХреЛрдИ" рд╣реЛрдЧрд╛ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдХреЗрд╡рд▓ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреЗ рддрд░реНрдХреЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рддреЗ рд╣реИрдВред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд╕реНрд╡рдд: рдкреВрд░реНрдг (рдЯреИрдм рджреНрд╡рд╛рд░рд╛) рдФрд░ рдХрдорд╛рдВрдб рдЗрддрд┐рд╣рд╛рд╕ (рдКрдкрд░ рддреАрд░) рдЙрдкрд▓рдмреНрдз рд╣реИрдВред рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдорджрдж рдХрдорд╛рдВрдб рднреА рдЙрдкрд▓рдмреНрдз рд╣реИ (рдЗрд╕реЗ "рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ?"), рдЬреЛ, рдЬрд╛рджреВ рдХреА рдкреНрд░рдЪреБрд░ рдорд╛рддреНрд░рд╛ рдореЗрдВ рдЦреБрд░рд╛рдХ рдХреА рдорджрдж рд╕реЗ, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдореЗрдВ рдХрдорд╛рдВрдб рдХреЗ рд▓рд┐рдП рдорджрдж рдореЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рд░реВрдкрд░реЗрдЦрд╛ рд╣реЛрдиреЗ рд╕реЗ, рд╣рдо рдХреЛрдб рдореЗрдВ
do_cmd рдЬреИрд╕реА рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдЕрдкрдиреЗ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЗрдВрдЯрд░рдлреЗрд╕ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рд╣реЗрд▓реЛ рдХрдорд╛рдВрдб рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реИрдВ рдЬреЛ рдкреЗрд▓реЛрдб рдирд╣реАрдВ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рдХрдорд╛рдВрдб рдЬреЛрдбрд╝рддрд╛ рд╣реИред
рд╣рдорд╛рд░рд╛ рдирдпрд╛ рдмрдирд╛рдпрд╛ рдЦреЛрд▓ рддреИрдпрд╛рд░ рд╣реИред рдЗрд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрд▓рдн рд╕реНрдерд╛рди рдкрд░ рд▓реЗ рдЬрд╛рдПрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
/ usr / рд╕реНрдерд╛рдиреАрдп / рдмрд┐рди / рдореЗрдВ ред рд╢рд╛рдпрдж рд╣рдорд╛рд░реА рд▓рд┐рдкрд┐ рдХреЗ рдкрде рдХреЛ
/ etc / рдЧреЛрд▓реЗ рдореЗрдВ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ ред
рд╣рдорд╛рд░реЗ рд╢реЗрд▓ рдХреЗ рд╕рд╛рде рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ: