/programs/system/shell/Docs_rus.txt |
---|
1,15 → 1,16 |
Shell 0.5 // 23.03.2012 // Albom |
Êîíñîëüíûå ïðèëîæåíèÿ Shell |
======================================= |
* Äîáàâëåíà ïîääåðæêà êîíñîëüíûõ ïðèëîæåíèé, êîòîðûå îáùàþòñÿ ñ øåëëîì ÷åðåç èìåíîâàííóþ îáëàñòü |
Îáìåí èíôîðìàöèåé ìåæäó Shell è êîíñîëüíûìè ïðèëîæåíèÿìè îñóùåñòâëÿåòñÿ ÷åðåç èìåíîâàííóþ îáëàñòü. |
Êîíñîëüíîå ïðèëîæåíèå ìîæåò áûòü íàïèñàíî íà ëþáîì ÿçûêå ïðîãðàììèðîâàíèÿ - ýòî îáûêíîâåííàÿ ïðîãðàììà äëÿ ÊîëèáðèÎÑ. |
1) Êîíñîëüíîå ïðèëîæåíèå ïîñëå ñâîåãî çàïóñêà  ÏÅÐÂÓÞ Î×ÅÐÅÄÜ äîëæíî ñîçäàòü èìåíîâàííóþ îáëàñòü ñ èìåíåì pid-SHELL, ãäå pid - èäåíòèôèêàòîð ïðîöåññà ñ çàãëàâíûìè íóëÿìè, |
íàïðèìåð: 42 -> 0042 (ò.å. ñåé÷àñ îãðàíè÷åíèå äî 9999). |
+ íóæíî ñäåëàòü, ÷òîáû ïðîãðàììà êîððåêòíî çàâåðøàëàñü, åñëè çàïóùåíà íå èç øåëëà (ÑÅÉ×ÀÑ ÍÅ ÐÅÀËÈÇÎÂÀÍÎ!!!) |
Êîíñîëüíîå ïðèëîæåíèå ïîñëå ñâîåãî çàïóñêà â ïåðâóþ î÷åðåäü äîëæíî ñîçäàòü èìåíîâàííóþ îáëàñòü ñ èìåíåì pid-SHELL, ãäå pid - èäåíòèôèêàòîð ïðîöåññà áåç çàãëàâíûõ íóëåé, |
íàïðèìåð: 6, 42 èëè 204. |
2) Ïåðâûé áàéò îáëàñòè - êîìàíäà (ò.å. ìàêñèìóì 255 êîìàíä), äàëåå - äàííûå (ìîãóò îòñóòñòâîâàòü). |
Ñïèñîê êîìàíä äëÿ âåðñèè 0.5: |
Ïåðâûé áàéò îáëàñòè - êîìàíäà (ò.å. ìàêñèìóì 255 êîìàíä, ÷òî âïîëíå äîñòàòî÷íî), äàëåå - äàííûå (ìîãóò îòñóòñòâîâàòü). |
Ñïèñîê ðåàëèçîâàííûõ êîìàíä: |
SC_OK 0 íè÷åãî íå äåëàòü |
SC_EXIT 1 âûõîä |
SC_PUTC 2 âûâåñòè íà ýêðàí ñèìâîë |
18,6 → 19,6 |
SC_GETS 5 ñ÷èòàòü ñ êëàâèàòóðû ñòðîêó |
SC_CLS 6 î÷èñòèòü ýêðàí |
3) Ïðîãðàììà äîëæíà ÑÀÌÀ çàáîòèòüñÿ î ðàöèîíàëüíîì èñïîëüçîâàíèè ïðîöåññîðíîãî âðåìåíè. |
Ïðîãðàììà äîëæíà ñàìà çàáîòèòüñÿ î ðàöèîíàëüíîì èñïîëüçîâàíèè ïðîöåññîðíîãî âðåìåíè. |
4) Ïðîãðàììà äîëæíà ÑÀÌÀ çàáîòèòüñÿ î çàêðûòèè èìåíîâàííîé îáëàñòè. |
Ïðîãðàììà äîëæíà ñàìà çàáîòèòüñÿ î çàêðûòèè èìåíîâàííîé îáëàñòè. |
/programs/system/shell/History.txt |
---|
1,3 → 1,15 |
Shell 0.5.4 // 04.06.2012 // Albom |
======================================= |
* Èñïðàâëåí èíòåðôåéñ èñïîëíÿåìûõ êîíñîëüíûõ ïðèëîæåíèé. Òåïåðü îíè äîëæíû ñîçäàâàòü áóôåð ñ èìåíåì pid-SHELL, ãäå pid - èäåíòèôèêàòîð ïðîöåññà áåç çàãëàâíûõ íóëåé |
* Ðåèíêàðíèðîâàíû êîìàíäû ccpuid, free, killall |
+ Äîáàâëåíà êîìàíäà history |
Shell 0.5.3 // 19.04.2012 // Albom |
======================================= |
* Èñïðàâëåíèå â êîìàíäå pwd |
Shell 0.5.2 // 16.04.2012 // Albom |
======================================= |
* Èñïðàâëåíèå â êîìàíäå ls |
/programs/system/shell/all.h |
---|
28,7 → 28,7 |
#include "cmd/cmd_date.c" |
#include "cmd/cmd_exit.c" |
#include "cmd/cmd_cd.c" |
#include "cmd/cmd_memory.c" |
#include "cmd/cmd_free.c" |
#include "cmd/cmd_reboot.c" |
#include "cmd/cmd_mkdir.c" |
#include "cmd/cmd_rmdir.c" |
42,6 → 42,7 |
#include "cmd/cmd_shutdown.c" |
#include "cmd/cmd_uptime.c" |
#include "cmd/cmd_killall.c" |
#include "cmd/cmd_history.c" |
#include "modules/module_command.c" |
#include "modules/module_program_console.c" |
/programs/system/shell/cmd/cmd_free.c |
---|
1,5 → 1,5 |
int cmd_free(char param[]) |
int cmd_memory(char param[]) |
{ |
unsigned total, free, used; |
7,7 → 7,11 |
free = kol_system_memfree(); |
used = total - free; |
printf (" total [kB / MB / %%]: %-7d / %-5d / 100\n\r free [kB / MB / %%]: %-7d / %-5d / %d\n\r used [kB / MB / %%]: %-7d / %-5d / %d\n\r", |
#if LANG_ENG |
printf (" Total [kB / MB / %%]: %-7d / %-5d / 100\n\r Free [kB / MB / %%]: %-7d / %-5d / %d\n\r Used [kB / MB / %%]: %-7d / %-5d / %d\n\r", |
#elif LANG_RUS |
printf (" ᥣ® [ / / %%]: %-7d / %-5d / 100\n\r ¢®¡®¤® [ / / %%]: %-7d / %-5d / %d\n\r ᯮ«ì§ã¥âáï [ / / %%]: %-7d / %-5d / %d\n\r", |
#endif |
total, total/1024, free, free/1024, (free*100)/total, used, total/1024-free/1024, 100-(free*100)/total ); |
return TRUE; |
/programs/system/shell/cmd/cmd_history.c |
---|
0,0 → 1,13 |
int cmd_history(char arg[]) |
{ |
int i; |
for (i = 0; i < CMD_HISTORY_NUM_REAL; i++) |
{ |
printf("%s\n", CMD_HISTORY[i]); |
} |
return TRUE; |
} |
/programs/system/shell/globals.h |
---|
1,5 → 1,5 |
#define SHELL_VERSION "0.5.3" |
#define SHELL_VERSION "0.5.4" |
extern char PATH[256]; |
extern char PARAM[256]; |
19,6 → 19,7 |
char CMD[256]; |
char CMD_HISTORY[CMD_HISTORY_NUM][256]; |
char CMD_NUM; |
char CMD_HISTORY_NUM_REAL = 0; |
unsigned CMD_POS; |
66,6 → 67,7 |
int cmd_shutdown(char arg[]); |
int cmd_uptime(char param[]); |
int cmd_killall(char process_name[]); |
int cmd_history(char arg[]); |
/// =========================================================== |
/programs/system/shell/locale/eng/globals.h |
---|
1,3 → 1,4 |
const command_t COMMANDS[]= |
{ |
{"about", " Displays information about Shell\n\r", &cmd_about}, |
8,8 → 9,9 |
{"date", " Returns the current date and time\n\r", &cmd_date}, |
{"echo", " Echoes the data to the screen. Usage:\n\r echo <data>\n\r", &cmd_echo}, |
{"exit", " Exits from Shell\n\r", &cmd_exit}, |
{"memory", " Displays total, free and used memory\n\r", &cmd_memory}, |
{"free", " Displays total, free and used memory\n\r", &cmd_memory}, |
{"help", " Gives help on commands. Usage:\n\r help ;it lists all builtins\n\r help <command> ;help on command\n\r", &cmd_help}, |
{"history", " Lists used commands\n\r", &cmd_history}, |
{"kill", " Stops a running process. Usage:\n\r kill <PID of process>\n\r", &cmd_kill}, |
{"killall", " Kills all running processes\n\r", &cmd_killall}, |
{"ls", " Lists the files in a directory. Usage:\n\r ls ;lists the files in current directory\n\r ls <directory> ;lists the files at specified folder\n\r", &cmd_ls}, |
20,9 → 22,9 |
{"reboot", " Reboots the computer or KolibriOS kernel. Usage:\n\r reboot ;reboot a PC\n\r reboot kernel ;reboot the KolibriOS kernel\n\r", &cmd_reboot}, |
{"rm", " Removes a file. Usage:\n\r rm file name>\n\r", &cmd_rm}, |
{"rmdir", " Removes a folder. Usage:\n\r rmdir <directory>\n\r", &cmd_rmdir}, |
{"shutdown"," Turns off the computer\n\r", &cmd_shutdown}, |
{"sleep", " Stops the shell for the desired period. Usage:\n\r sleep <time in the 1/100 of second>\n\r Example:\n\r sleep 500 ;pause for 5sec.\n\r", &cmd_sleep}, |
{"shutdown"," Turns off the computer\n\r", &cmd_shutdown}, |
{"touch", " Creates an empty file or updates the time/date stamp on a file. Usage:\n\r touch <file name>\n\r", &cmd_touch}, |
{"uptime", " Displays the uptime\n\r", &cmd_uptime}, |
{"ver", " Displays version. Usage:\n\r ver ;Shell version\n\r ver kernel ;version of KolibriOS kernel\n\r", &cmd_ver}, |
}; |
}; |
/programs/system/shell/locale/rus/globals.h |
---|
1,17 → 1,19 |
const command_t COMMANDS[]= |
{ |
{"about", " 뢮¤¨â ¨ä®à¬ æ¨î ® ¯à®£à ¬¬¥ Shell\n\r", &cmd_about}, |
{"alias", " ®ª §ë¢ ¥â ¨ ¯®§¢®«ï¥â ¨§¬¥¨âì ᯨ᮪ ᨮ¨¬®¢ ª®¬ ¤\n\r", &cmd_alias}, |
// {"ccpuid", " 뢮¤¨â ¨ä®à¬ æ¨î ® CPU\n\r", &cmd_ccpuid}, |
{"ccpuid", " 뢮¤¨â ¨ä®à¬ æ¨î ® CPU\n\r", &cmd_ccpuid}, |
{"cd", " §¬¥ï¥â ⥪ãéãî ¤¥à¨ªâ®à¨î. ᯮ«ì§®¢ ¨¥:\n\r cd <¤¨à¥ªâ®à¨ï>\n\r", &cmd_cd}, |
{"clear", " ç¨é ¥â íªà \n\r", &cmd_clear}, |
{"date", " ®ª §ë¢ ¥â ⥪ãéãî ¤ âã ¨ ¢à¥¬ï\n\r", &cmd_date}, |
{"echo", " 뢮¤¨â ¤ ë¥ íªà . ᯮ«ì§®¢ ¨¥:\n\r echo <¤ ë¥>\n\r", &cmd_echo}, |
{"exit", " ¢¥à襨¥ à ¡®âë Shell\n\r", &cmd_exit}, |
{"memory", " ®ª §ë¢ ¥â ®¡êñ¬ ¯ ¬ïâ¨: ¢á¥©, ᢮¡®¤®© ¨ ¨á¯®«ì§ã¥¬®©\n\r", &cmd_memory}, |
{"free", " ®ª §ë¢ ¥â ®¡êñ¬ ®¯¥à ⨢®© ¯ ¬ïâ¨: ¢á¥©, ᢮¡®¤®© ¨ ¨á¯®«ì§ã¥¬®©\n\r", &cmd_memory}, |
{"help", " ¯à ¢ª ¯® ª®¬ ¤ ¬. ᯮ«ì§®¢ ¨¥:\n\r help ;ᯨ᮪ ¢á¥å ª®¬ ¤\n\r help <ª®¬ ¤ > ;á¯à ¢ª ¯® ª®¬ ¤¥\n\r", &cmd_help}, |
{"history", " ¯¨á®ª ¨á¯®«ì§®¢ ëå ª®¬ ¤\n\r", &cmd_history}, |
{"kill", " ¡¨¢ ¥â ¯à®æ¥áá. ᯮ«ì§®¢ ¨¥:\n\r kill <PID ¯à®æ¥áá >\n\r", &cmd_kill}, |
// {"killall", " ¡¨¢ ¥â ¢á¥ § ¯ãé¥ë¥ ¯à®æ¥ááë\n\r", &cmd_killall}, |
{"killall", " ¡¨¢ ¥â ¢á¥ § ¯ãé¥ë¥ ¯à®æ¥ááë\n\r", &cmd_killall}, |
{"ls", " 뢮¤¨â ᯨ᮪ ä ©«®¢. ᯮ«ì§®¢ ¨¥:\n\r ls ;ᯨ᮪ ä ©«®¢ ¢ ⥪ã饬 ª â «®£¥\n\r ls <¤¨à¥ªâ®à¨ï> ;ᯨ᮪ ä ©«®¢ ¨§ § ¤ ®© ¤¨à¥ªâ®à¨¨\n\r", &cmd_ls}, |
{"mkdir", " ®§¤ ¥â ª â «®£. ᯮ«ì§®¢ ¨¥:\n\r mkdir <¨¬ï ¯ ¯ª¨> ;ᮧ¤ âì ¯ ¯ªã ¢ ⥪ã饬 ª â «®£¥\n\r mkdir <¯ãâì><¨¬ï ¯ ¯ª¨> ;ᮧ¤ âì ¯ ¯ªã ¯® 㪠§ ®¬ã ¯ãâ¨\n\r", &cmd_mkdir}, |
{"more", " 뢮¤¨â ᮤ¥à¦¨¬®¥ ä ©« íªà . ᯮ«ì§®¢ ¨¥:\n\r more <¨¬ï ä ©« >\n\r", &cmd_more}, |
20,8 → 22,8 |
{"reboot", " ¥à¥§ £à㦠¥â ª®¬¯ìîâ¥à ¨«¨ ï¤à® KolibriOS. ᯮ«ì§®¢ ¨¥:\n\r reboot ;¯¥à¥§ £à㧨âì \n\r reboot kernel ;¯¥à¥§ ¯ãáâ¨âì ï¤à® Kolibri\n\r", &cmd_reboot}, |
{"rm", " ¤ «ï¥â ä ©«. ᯮ«ì§®¢ ¨¥:\n\r rm <¨¬ï ä ©« >\n\r", &cmd_rm}, |
{"rmdir", " ¤ «ï¥â ¯ ¯ªã. ᯮ«ì§®¢ ¨¥:\n\r rmdir <¤¨à¥ªâ®à¨ï>\n\r", &cmd_rmdir}, |
{"shutdown"," 몫îç ¥â ª®¬¯ìîâ¥à\n\r", &cmd_shutdown}, |
{"sleep", " áâ ¢«¨¢ ¥â à ¡®âã Shell' § ¤ ®¥ ¢à¥¬ï. ᯮ«ì§®¢ ¨¥:\n\r sleep <¨â¥à¢ « ¢ á®âëå ¤®«ï ᥪã¤ë>\n\r ਬ¥à:\n\r sleep 500 ;¯ 㧠5 ᥪ.\n\r", &cmd_sleep}, |
{"shutdown"," 몫îç ¥â ª®¬¯ìîâ¥à\n\r", &cmd_shutdown}, |
{"touch", " ®§¤ ñâ ¯ãá⮩ ä ©« ¨«¨ ¨§¬¥ï¥â ¤ âã/¢à¥¬ï ᮧ¤ ¨ï ä ©« . ᯮ«ì§®¢ ¨¥:\n\r touch <¨¬ï ä ©« >\n\r", &cmd_touch}, |
{"uptime", " ®ª §ë¢ ¥â uptime\n\r", &cmd_uptime}, |
{"ver", " ®ª §ë¢ ¥â ¢¥àá¨î. ᯮ«ì§®¢ ¨¥:\n\r ver ;¢¥àá¨ï Shell\n\r ver kernel ;¢¥àá¨ï ¨ ®¬¥à ॢ¨§¨¨ ï¤à KolibriOS\n\r", &cmd_ver}, |
/programs/system/shell/modules/module_command.c |
---|
26,6 → 26,10 |
strcpy(CMD_HISTORY[1], CMD_HISTORY[0]); |
strcpy(CMD_HISTORY[0], CMD); |
if (CMD_HISTORY_NUM_REAL < CMD_HISTORY_NUM) |
CMD_HISTORY_NUM_REAL++; |
} |
} |
/programs/system/shell/modules/module_program_console.c |
---|
13,7 → 13,7 |
int size; |
int is_end; |
_itoa(pid, name); |
itoa(pid, name); |
strcat(name, "-SHELL"); |
buffer = NULL; |
/programs/system/shell/system/string.c |
---|
138,3 → 138,35 |
s[4] = 0; |
} |
/* reverse: ïåðåâîðà÷èâàåì ñòðîêó s íà ìåñòå */ |
void reverse(char s[]) |
{ |
int i, j; |
char c; |
for (i = 0, j = strlen(s)-1; i<j; i++, j--) { |
c = s[i]; |
s[i] = s[j]; |
s[j] = c; |
} |
} |
/* itoa: êîíâåðòèðóåì n â ñèìâîëû â s */ |
void itoa(int n, char s[]) |
{ |
int i, sign; |
if ((sign = n) < 0) /* çàïèñûâàåì çíàê */ |
n = -n; /* äåëàåì n ïîëîæèòåëüíûì ÷èñëîì */ |
i = 0; |
do { /* ãåíåðèðóåì öèôðû â îáðàòíîì ïîðÿäêå */ |
s[i++] = n % 10 + '0'; /* áåðåì ñëåäóþùóþ öèôðó */ |
} while ((n /= 10) > 0); /* óäàëÿåì */ |
if (sign < 0) |
s[i++] = '-'; |
s[i] = '\0'; |
reverse(s); |
} |
/programs/system/shell/system/string.h |
---|
14,3 → 14,5 |
int strlen(const char* string); |
char *strchr(const char* string, int c); |
void _itoa(int i, char *s); |
void reverse(char *s); |
void itoa(int i, char *s); |
/programs/system/shell/test.c |
---|
23,7 → 23,7 |
PID = *(buf1k+30); |
free(buf1k); |
_itoa(PID, name); // ôîðìèðóåì èç íîìåðà ïðîöåññà ñòðîêó ñ çàãëàâíûìè íóëÿìè 42 -> 0042 (ò.å. äî 9999) |
itoa(PID, name); // ôîðìèðóåì èç íîìåðà ïðîöåññà ñòðîêó ñ çàãëàâíûìè íóëÿìè 42 -> 0042 (ò.å. äî 9999) |
strcat(name, "-SHELL"); |
*buffer = NULL; |