GNU/Linux >> Znalost Linux >  >> Linux

Najděte čas provedení příkazu nebo procesu v systému Linux

Pravděpodobně znáte čas zahájení příkazu/procesu a jak dlouho proces běží v Linuxu a systémech podobných Unixu. Ale jak víte, kdy příkaz nebo proces skončil a/nebo kolik času zabralo dokončení příkazu/procesu? No, je to snadné! Na systémech podobných Unixu existuje nástroj s názvem 'GNU time' který je speciálně navržen pro tento účel. Pomocí Time utility můžeme snadno měřit celkovou dobu provádění příkazu nebo programu v operačních systémech Linux. Dobrá věc je, že příkaz 'time' je ve většině distribucí Linuxu předinstalován, takže se nemusíte obtěžovat s instalací.

Zjistěte dobu provádění příkazu nebo procesu v Linuxu

Chcete-li měřit dobu provádění příkazu/programu, stačí spustit.

$ /usr/bin/time -p ls

Nebo,

$ čas ls

Ukázkový výstup:

dir1 dir2 file1 file2 mcelogreal 0m0.007suser 0m0.001ssys 0m0.004s
$ čas ls -a . .bash_logout dir1 soubor2 mcelog .sudo_as_admin_successful.. .bashrc dir2 .gnupg .profile .wget-hsts.bash_history .cache soubor1 .local .stackreal 0m0.008suser
 Výše uvedené příkazy zobrazují celkovou dobu provádění 'ls ' příkaz. Nahraďte "ls " pomocí libovolného příkazu/procesu podle vašeho výběru, abyste zjistili celkovou dobu provádění.

Tady,

  1. real -označuje celkový čas, který zabral příkaz/program,
  2. user - označuje čas, který program potřebuje v uživatelském režimu,
  3. sys - označuje čas, který program potřebuje v režimu jádra.

Můžeme také omezit spuštění příkazu pouze po určitou dobu. Další podrobnosti naleznete v následující příručce.

  • Jak spustit příkaz po určitou dobu v systému Linux

čas vs /usr/bin/time

Jak jste si mohli všimnout, použili jsme dva příkazy 'time' a '/usr/bin/time ' ve výše uvedených příkladech. Možná vás tedy zajímá, jaký je mezi nimi rozdíl.

Nejprve se podívejme, co je vlastně 'time ' používá 'type 'příkaz. Pro ty, kteří nevědí, Typ příkaz se používá ke zjištění informací o příkazu Linuxu. Další podrobnosti naleznete v této příručce .

$ typ -a čas time je klíčové slovo shelltime je /usr/bin/time

Jak vidíte ve výše uvedeném výstupu, čas je obojí,

  • Klíčové slovo zabudované do prostředí BASH
  • Spustitelný soubor, např. /usr/bin/time

Protože klíčová slova shellu mají přednost před spustitelnými soubory, když stačí spustit čas příkaz bez úplné cesty, spustíte vestavěný příkaz shell. Ale když spustíte /usr/bin/time , spustíte skutečný GNU čas program. Takže, abyste získali přístup ke skutečnému příkazu, možná budete muset zadat jeho explicitní cestu. Průhledná? Dobře!

Vestavěné klíčové slovo shellu 'time' je dostupné ve většině shellů, jako je BASH, ZSH, CSH, KSH, TCSH atd. Klíčové slovo shellu 'time' má méně možností než spustitelné soubory. Jediná možnost, kterou můžete použít v klíčovém slově 'time', je -p .

Nyní víte, jak zjistit celkovou dobu provádění daného příkazu/procesu pomocí příkazu 'time'. Chcete se dozvědět něco více o nástroji 'GNU time'? Čtěte dál!

Stručný úvod o programu 'GNU time'

Časový program GNU spustí příkaz/program s danými argumenty a po dokončení příkazu shrnuje využití systémových prostředků jako standardní výstup. Na rozdíl od klíčového slova 'time' časový program GNU nezobrazuje pouze čas použitý příkazem/procesem, ale také další zdroje, jako je paměť, I/O a IPC volání.

Typická syntaxe příkazu Time je:

/usr/bin/time [volby] příkaz [argumenty...]

„Možnosti“ ve výše uvedené syntaxi odkazují na sadu příznaků, které lze použít s příkazem time k provedení konkrétní funkce. Seznam dostupných možností je uveden níže.

  • -f , --format - Pomocí této možnosti zadejte požadovaný formát výstupu.
  • -p , --portability - Použijte přenosný výstupní formát.
  • -o soubor, --output =SOUBOR - Zapíše výstup do FILE namísto zobrazení jako standardní výstup.
  • -a , --append - Připojte výstup k SOUBORu namísto jeho přepisování.
  • -v , --verbose - Tato možnost zobrazí podrobný popis výstupu nástroje 'čas'.
  • --quiet - Tato možnost zabrání tomu, aby nástroj time 'time' hlásil stav programu.

Když používáte program 'GNU time' bez jakýchkoliv možností, uvidíte výstup něco jako níže.

$ /usr/bin/time wc /etc/hosts 9 28 273 /etc/hosts0.00user 0.00system 0:00.00elapsed 66%CPU (0avgtext+0avgdata 2024maxresident)k0vstupy+0výstupy (0hlavní+73menší)chyby stránky 0swaps

Pokud spustíte stejný příkaz s klíčovým slovem „time“ zabudovaným do shellu, bude výstup trochu jiný:

$ time wc /etc/hosts 9 28 273 /etc/hostsreal 0m0.006suser 0m0.001ssys 0m0.004s

Někdy možná budete chtít zapsat výstup využití systémových prostředků do souboru, místo aby se zobrazoval v terminálu. Chcete-li to provést, použijte -o příznak jako níže.

$ /usr/bin/time -o soubor.txt ls dir1 dir2 soubor1 soubor2 soubor.txt mcelog

Jak můžete vidět na výstupu, Time utility nezobrazuje výstup. Protože výstup zapisujeme do souboru s názvem file.txt . Pojďme se podívat na tento soubor:

$ cat file.txt 0,00 uživatel 0,00 systém 0:00,00 uplynulo 66 % CPU (0avgtext+0avgdata 2512maxresident)k0vstupů+0výstupů (0hlavních+106menších)chyby stránky 0výměny

Když použijete -o Pokud neexistuje žádný soubor s názvem 'soubor.txt', vytvoří a zapíše výstup do něj. Pokud file.txt je již přítomen, přepíše jeho obsah.

Můžete také připojit výstup k souboru místo jeho přepisování pomocí -a vlajka.

$ /usr/bin/time -a soubor.txt ls

-f příznak umožňuje uživatelům řídit formát výstupu podle jeho libosti. Řekněme například, že následující příkaz zobrazí výstup 'ls ' a zobrazuje pouze uživatele, systém a celkový čas.

$ /usr/bin/time -f "\t%E skutečné,\t%U uživatel,\t%S sys" ls dir1 dir2 soubor1 soubor2 mcelog0:00,00 skutečný, 0,00 uživatel, 0,00 sys

Mějte prosím na paměti, že vestavěný příkaz shellu 'time' nepodporuje všechny funkce časového programu GNU.

Více podrobností o časovém nástroji GNU najdete v manuálových stránkách.

$ člověk čas

Chcete-li se dozvědět více o klíčovém slově „Čas“ vestavěném v Bash, spusťte:

$ čas pomoci

Linux
  1. Naplánujte si úlohu pomocí příkazu Linux at

  2. Zvládněte příkaz Linux ls

  3. Co je to příkaz k nalezení priority procesu v Linuxu?

  1. Jak používat Linuxový příkaz find k hledání souborů

  2. Vyhledejte příkaz v Linuxu

  3. najdete příklady příkazů v Linuxu

  1. Jak najít soubory v Linuxu pomocí příkazu Najít

  2. Průvodce linuxovým příkazem „Najít“.

  3. Stavy procesu Linuxu