/programs/system/shell/Docs_rus.txt |
---|
39,13 → 39,16 |
echo Âûâîäèò <äàííûå> íà ýêðàí |
exit çàâåðøåíèå ðàáîòû Shell |
free ïîêàçûâàåò îáú¸ì îïåðàòèâíîé ïàìÿòè: âñåé, ñâîáîäíîé è èñïîëüçóåìîé |
help ïîêàçàòü ïå÷åíü êîìàíä shell. Ñ ïàðàìåòðîì <êîìàíäà> ñïðàâêà ïî êîìàíäå |
help ïîêàçàòü ïåðå÷åíü êîìàíä shell. Ñ ïàðàìåòðîì <êîìàíäà> ñïðàâêà ïî êîìàíäå |
history cïèñîê ïîñëåäíèõ èñïîëüçîâàííûõ êîìàíä |
kill óáèâàåò ïðîöåññ ïî <PID>. kill all óáèâàåò âñå ïîëüçîâàòåëüñêèå ïðîöåññû PID >=2 |
kill óáèâàåò ïðîöåññ ïî <PID>. kill all óáèâàåò âñå ïðîöåññû, ñëîòû >=2 |
ls âûâîäèò ñïèñîê ôàéëîâ â òåêóùåì êàòàëîãå èëè óêàçàííîì <êàòàëîãå> |
mkdir cîçäàåò <êàòàëîã>. Ïîääåðæèâàþòñÿ àáñîëþíûå è îòíîñèòåëüíûå ïóòè |
more âûâîäèò ñîäåðæèìîå <ôàéëà> íà ýêðàí |
ps ïîêàçûâàåò ñïèñîê ïðîöåññîâ è èõ PID |
ps ïîêàçûâàåò ñïèñîê ïðîöåññîâ è èõ PID, |
åñëè çàäàòü <èìÿ>, ïîêàæåò %CPU, èñïîëüçóåìóþ ïàìÿòü è çàïîìíèò |
âíóòðåííþþ ïåðåìåííóþ LASTPID (ïîëåçíî äëÿ êîìàíäû waitfor) |
<èìÿ> - ýòî ïåðâûå 10 áóêâ èìåíè èñïîëíÿåìîãî ôàéëà áåç ðàñøèðåíèÿ |
pwd ïîêàçûâàåò èìÿ òåêóùåãî êàòàëîãà |
reboot ïåðåçàãðóæàåò êîìïüþòåð èëè ÿäðî KolibriOS. reboot kernel ïåðåçàïóñòèòü ÿäðî Kolibri |
rm óäàëÿåò <ôàéë> |
53,5 → 56,22 |
shutdown âûêëþ÷àåò êîìïüþòåð |
sleep ïðèîñòàíàâëèâàåò ðàáîòó Shell'à íà çàäàííîå <âðåìÿ â ñîòûõ äîëÿõ ñåêóíäû> |
touch ñîçäà¸ò ïóñòîé <ôàéë> èëè èçìåíÿåò äàòó/âðåìÿ ñîçäàíèÿ ôàéëà. Íå ðàáîòàåò |
uptime ïîêàçûâàåò âðåìÿ ðàáîòó ñèñòåìû ñ ìîìåíòà çàãðóçêè |
ver ïîêàçûâàåò âåðñèþ Shell, ver kernel - âåðñèþ è íîìåð ðåâèçèè ÿäðà OS, ver cpu - èíôîðìàöèþ î ïðîöåññîðå |
uptime ïîêàçûâàåò âðåìÿ ðàáîòû ñèñòåìû ñ ìîìåíòà çàãðóçêè |
ver ïîêàçûâàåò âåðñèþ Shell, ver kernel - âåðñèþ è íîìåð ðåâèçèè ÿäðà OS, |
ver cpu - èíôîðìàöèþ î ïðîöåññîðå |
waitfor åñëè ïåðåä ýòèì áûëà çàïóùåíà ïðîãðàììà, ïðèîñòàíàâëèâàåò |
âûïîëíåíèå êîìàíäíîãî ôàéëà äî åå çàâåðøåíèÿ ïî LASTPID |
èëè äî çàâåðøåíèÿ ÿâíî óêàçàííîãî ïàðàìåòðà <PID> |
Ñêðèïòû è çàïóñê íà èñïîëíåíèå |
======================================= |
Åñëè èìÿ èñïîëíèìîãî ôàéëà íà÷èíàåòñÿ ñ / òî ñ÷èòàåòñÿ ÷òî ïóòü ÿâëÿåòñÿ àáñîëþòíûì. |
 ïðîòèâíîì ñëó÷àå, ïîèñê ñíà÷àëà ïðîâîäèòñÿ â òåêóùåì êàòàëîãå, à çàòåì â /rd/1. |
Äàëåå, åñëè ôàéë íàéäåí, ïðîâåðÿþòñÿ ïåðâûå 4 áàéòà íà ñèãíàòóðó #SHS. |
Ñ ýòîé ñèãíàòóðû íà÷èíàåòñÿ êîìàíäíûé (ïàêåòíûé) ôàéë. |
 êîìàíäíîì ôàéëå äîïóñòèìû âñå êîìàíäû ïðèâåäåííûå âûøå, à êîììåíòàðèè |
íà÷èíàþòñÿ ñ ñèìâîëà # â ïåðâîé ïîçèöèè ñòðîêè. |
Åñëè íà âûïîëíåíèå áûë çàäàí èñïîëíÿåìûé ôàéë, çàïîìíèò LASTPID |
/programs/system/shell/History.txt |
---|
1,5 → 1,6 |
Shell 0.7.5 // 01.01.2017 // Siemargl |
Shell 0.7.5 // 06.01.2017 // Siemargl |
* ¥«ª¨¥ ¡ £ä¨ªáë, ¨§¬¥¥ «®£¨ª ®¡à ¡®âª¨ áâ५®ª ¢¢¥àå/¢¨§, çâ®¡ë ª ª ã ¢á¥å |
®¡ ¢«¥ ª®¬ ¤ waitfor ¨ ¢ ਠâ ps á ¯ à ¬¥â஬ |
Shell 0.7.4 // 23.01.2014 // Albom |
* ¡®â á ¡ãä¥à®¬ ®¡¬¥ (ª®¯¨à®¢ ¨¥ Ctrl+C ¨ ¢áâ ¢ª Ctrl+V áâப¨ 楫¨ª®¬) |
/programs/system/shell/all.h |
---|
42,6 → 42,7 |
#include "cmd/cmd_uptime.c" |
#include "cmd/cmd_history.c" |
#include "cmd/cmd_cp.c" |
#include "cmd/cmd_waitfor.c" |
#include "modules/module_command.c" |
#include "modules/module_program_console.c" |
/programs/system/shell/bin/eng/.shell |
---|
1,5 → 1,6 |
#SHS |
about |
echo |
ver kernel |
echo |
echo Type 'help' for help |
echo |
/programs/system/shell/cmd/cmd_ps.c |
---|
2,7 → 2,7 |
int cmd_ps(char param[]) |
{ |
int i, n; |
int i, n, sel; |
char *buf1k; |
unsigned PID; |
short STATE; |
11,6 → 11,8 |
if (NULL == buf1k) |
return FALSE; |
sel = param && strlen(param) > 0; |
for (i = 1;;i++) |
{ |
n = kol_process_info(i, buf1k); |
17,7 → 19,18 |
PID = *(buf1k+30); |
STATE = *(buf1k+50); |
if ( 9 != STATE) |
{ |
if (!sel || 0 == strnicmp(param, buf1k+10, 10)) |
{ |
printf (" %7d %s\n\r", PID, buf1k+10); |
if (sel) |
{ |
LAST_PID = PID; |
int cpu_tck = kol_system_cpufreq() / 100; |
printf (" CPU %d%% RAM %d\n\r", *(int*)buf1k / cpu_tck , *(int*)(buf1k+26)+1); |
} |
} |
} |
if (i == n) |
break; |
} |
/programs/system/shell/cmd/cmd_waitfor.c |
---|
0,0 → 1,52 |
int cmd_waitfor(char param[]) |
// waits for LASTPID or pid in param |
{ |
int i, n, sel, sel_pid; |
char *buf1k; |
unsigned PID; |
short STATE; |
sel = param && strlen(param) > 0; |
sel_pid = LAST_PID; |
if (sel) |
{ |
sel_pid = _atoi(param); |
} |
if (0 == sel_pid) |
return FALSE; |
#if LANG_ENG |
printf(" Awaing finish PID %d\n\r", sel_pid); |
#elif LANG_RUS |
printf(" ¦¨¤ ¥¬ § ¢¥à襨ï PID %d\n\r", sel_pid); |
#endif |
buf1k = malloc(1024); |
if (NULL == buf1k) |
return FALSE; |
while(1) |
{ |
for (i = 1;;i++) |
{ |
n = kol_process_info(i, buf1k); |
PID = *(buf1k+30); |
STATE = *(buf1k+50); |
if (PID == sel_pid) |
if(9 == STATE) |
goto exit_normal; |
else break; |
if (i == n) |
goto exit_normal; |
} |
kol_sleep(10); // 100ms |
} |
exit_normal: |
free(buf1k); |
return TRUE; |
} |
/programs/system/shell/globals.h |
---|
20,6 → 20,7 |
char CMD_HISTORY[CMD_HISTORY_NUM][256]; |
char CMD_NUM = 0; |
char CMD_HISTORY_NUM_REAL = 0; |
unsigned LAST_PID = 0; |
/// =========================================================== |
66,8 → 67,8 |
int cmd_killall(char process_name[]); |
int cmd_history(char arg[]); |
int cmd_cp(char param[]); |
int cmd_waitfor(char param[]); |
/// =========================================================== |
#if LANG_ENG |
/programs/system/shell/locale/eng/globals.h |
---|
16,7 → 16,7 |
{"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}, |
{"mkdir", " Makes directory. Usage:\n\r mkdir <folder name> ;creates the folder in working directory\n\r mkdir <path><folder name> ;create folder by specified path\n\r", &cmd_mkdir}, |
{"more", " Displays a file data to the screen. Usage:\n\r more <file name>\n\r", &cmd_more}, |
{"ps", " Lists the current processes running\n\r", &cmd_ps}, |
{"ps", " Lists the current processes running\n\r or shows more info on <procname> and save LASTPID\n\r", &cmd_ps}, |
{"pwd", " Displays the name of the working directory\n\r", &cmd_pwd}, |
{"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}, |
26,5 → 26,6 |
{"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 ver cpu ;information about CPU\n\r", &cmd_ver}, |
{"waitfor", " Stops console waiting while process finish. Usage:\n\r waitfor ;waiting previous started executable LASTPID\n\r waitfor <PID>;awaiting PID finish\n\r", &cmd_waitfor}, |
}; |
/programs/system/shell/locale/rus/globals.h |
---|
16,7 → 16,7 |
{"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}, |
{"ps", " 뢮¤¨â ᯨ᮪ ¯à®æ¥áᮢ\n\r", &cmd_ps}, |
{"ps", " 뢮¤¨â ᯨ᮪ ¯à®æ¥áᮢ\n\r ᫨ 㪠§ ® <¨¬ï¯à®æ¥áá >, ¯®ª §ë¢ ¥â ¡®«ìè¥ ¤ ëå ¨ á®åà ï¥â LASTPID\n\r", &cmd_ps}, |
{"pwd", " ®ª §ë¢ ¥â ¨¬ï ⥪ã饩 ¤¨à¥ªâ®à¨¨\n\r", &cmd_pwd}, |
{"reboot", " ¥à¥§ £à㦠¥â ª®¬¯ìîâ¥à ¨«¨ ï¤à® KolibriOS. ᯮ«ì§®¢ ¨¥:\n\r reboot ;¯¥à¥§ £à㧨âì \n\r reboot kernel ;¯¥à¥§ ¯ãáâ¨âì ï¤à® Kolibri\n\r", &cmd_reboot}, |
{"rm", " ¤ «ï¥â ä ©«. ᯮ«ì§®¢ ¨¥:\n\r rm <¨¬ï ä ©« >\n\r", &cmd_rm}, |
26,5 → 26,6 |
{"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 ver cpu ;¨ä®à¬ æ¨ï ® ¯à®æ¥áá®à¥\n\r", &cmd_ver}, |
{"waitfor", " ਮáâ ¢«¨¢ ¥â ¢ë¯®«¥¨¥ ª®¬ ¤. ᯮ«ì§®¢ ¨¥:\n\r waitfor ;®¦¨¤ ¥¬ ¯à¥¤ë¤ã騩 § ¯ãé¥ë© ¯à®æ¥áá LASTPID\n\r waitfor <PID>;¦¤¥¬ § ¢¥àè¥¨ï ¯à®æ¥áá á 㪠§ ë¬ PID\n\r", &cmd_waitfor}, |
}; |
/programs/system/shell/modules/module_command.c |
---|
8,6 → 8,8 |
if ('\0' == CMD[0]) return; |
CMD_NUM = -1; |
for (i = 0; i < CMD_HISTORY_NUM_REAL; i++) |
if ( 0 == strcmp( CMD_HISTORY[i], CMD ) ) |
return; |
20,8 → 22,6 |
if (CMD_HISTORY_NUM_REAL < CMD_HISTORY_NUM-1) |
CMD_HISTORY_NUM_REAL++; |
CMD_NUM = -1; |
} |
/programs/system/shell/modules/module_executable.c |
---|
48,6 → 48,7 |
if ( !program_console(result) ) |
{ |
LAST_PID = result; |
#if LANG_ENG |
printf (" '%s' started. PID = %d\n\r", cmd, result); |
#elif LANG_RUS |
/programs/system/shell/system/string.c |
---|
70,7 → 70,25 |
} |
int strnicmp(const char* string1, const char* string2, unsigned count) |
{ |
int pc = 0; |
while (1) |
{ |
if (toupper(*string1)<toupper(*string2)) |
return -1; |
if (toupper(*string1)>toupper(*string2)) |
return 1; |
if (*string1=='\0' || pc == count) |
return 0; |
string1++; |
string2++; |
pc++; |
} |
} |
void strcpy(char strDest[], const char strSource[]) |
{ |
unsigned i; |
/programs/system/shell/system/string.h |
---|
18,3 → 18,4 |
void reverse(char *s); |
void itoa(int i, char *s); |
int _atoi( char *s ); |
int strnicmp(const char* string1, const char* string2, unsigned count); |