GNU/Linux >> Znalost Linux >  >> Linux

Jak používat Linux Time Command:Vše, co potřebujete vědět

Ať už jste správce systému nebo uživatel virtuálního privátního serveru (VPS), osvojení si různých příkazů Linuxu vám pomůže provádět úkoly efektivněji.

V tomto tutoriálu se dozvíte o linuxovém příkazu time – co to je, jeho účel a jak jej používat.

Co je Linux Time Command?

Příkaz time v operačních systémech Linux a Unix vám umožňuje určit, jak dlouho bude trvat spuštění konkrétního příkazu. Obvykle se používá k měření výkonu skriptů nebo příkazů. Čím rychleji příkaz dokončí svůj úkol, tím lepší bude jeho výkon.

Kromě toho může příkaz time také zobrazovat využití systémových prostředků procesu, což z něj činí užitečný nástroj pro kontrolu účinnosti konkrétního příkazu.

Chcete si například vybrat mezi dvěma úlohami cron, které mohou spouštět stejnou úlohu. Spuštěním příkazu time můžete určit, jak dlouho bude každé cronové úloze trvat dokončení úloh.

Než však začneme mluvit o tom, jak používat linuxový příkaz time, mějte na paměti, že se liší v závislosti na shellu, který používáte. V systému Linux existují tři různé verze příkazu time:

  • Bash – je již zabudován do shellu a lze jej spustit zadáním time .
  • Zsh stejně jako Bash je také již zabudován do systému a spouští se zadáním time .
  • Výchozí GNU Linux (GNU) dostupné zadáním explicitní cesty k příkazu usr/bin/time .

Chcete-li zkontrolovat, která verze příkazu Linux time platí pro váš systém, zadejte do svého shell programu následující:

$ type time
  • Pokud získáte výstup,čas je klíčové slovo shellu , používáte příkaz Bash time.
  • Pokud získáte výstup čas je vyhrazené slovo , používáte příkaz Zsh time.
  • Pokud získáte výstup čas je usr/bin/time , používáte příkaz GNU time.

Alternativně můžete příkaz GNU time v Linuxu zjednodušit vytvořením příkazu alias pro usr/bin/time.

Použití Time Command v Linuxu

V této části se naučíte syntaxi příkazu time Linuxu a jak číst jeho výstup.

Seznámení se syntaxí Linux Time Command

Použití příkazu time je velmi jednoduché – vše, co musíte udělat, je otevřít váš shellový program a zadat:

$ time [command]

Abyste mohli plně využít příkaz time, musíte rozumět jeho syntaxi:

$ time [command] [arg1] [arg2] ... [argN]
time [options] [command] [arg1] [arg2] ... [argN]

Čas spustí daný příkaz s libovolnými danými argumenty (arg ). Jakmile příkaz dokončí svou úlohu, čas vydá informace, které zahrnují dobu, kterou trvalo spuštění příkazu, a zdroje, které používá.

Pokud příkaz programu skončí s nenulovým stavem indikujícím selhání, čas vydá varovnou zprávu a stav ukončení.

Zadáním formátu řetězce používaného příkazem můžete určit, které informace se mají zobrazit v sekci využití systémových prostředků.

Pokud uživatel nezadá žádný formát, ale proměnná prostředí time je nastavena, bude jako formát použita její hodnota. V opačném případě bude použit výchozí formát zabudovaný do času.

Možnosti jsou specifikátory zdrojů, které mění výstup času. Musí se objevit před příkazem. Cokoli zadané po příkazu bude považováno za argument.

Chcete-li zobrazit všechny možnosti, které můžete použít pro čas, zadejte do příkazového řádku následující:

$ man time

Zobrazí se seznam možností, které můžete použít k úpravě výstupu příkazu času Linuxu. Mějte však na paměti, že tyto možnosti se mohou lišit v závislosti na konkrétním operačním systému a verzi, kterou používáte.

Začněme jednoduchým prvním příkladem. Chcete-li zjistit, jak dlouho trvá spuštění příkazu ls slouží k zobrazení obsahu zvoleného adresáře, zadejte do shellu následující:

$ time ls

Uvidíte výstup příkazu ls a čas potřebný k jeho dokončení.

Nyní zkusme začlenit argument. V tomto příkladu se pokusíme zjistit, jak dlouho bude trvat přesunutí souboru do jiného adresáře:

$ time mv example.txt example-dir

Výsledkem je soubor example.txt soubor byl přesunut do example-dir a uvidíte čas potřebný k dokončení procesu.

Porozumění výstupu

Abyste plně porozuměli výhodám linuxového příkazu time, musíte vědět, jak číst jeho výstup.

Čtení výstupu v terminálu

Výchozí výstup vestavěného příkazu time obsahuje následující informace:

  • V reálném čase (reálném). Reálný čas, který proces trvá od začátku do konce. To zahrnuje veškerý čas strávený jinými procesy a čas strávený čekáním na jejich dokončení.
  • Čas uživatele (uživatele). Množství času CPU stráveného v uživatelském režimu během procesu. Jiné procesy a zablokovaný čas nejsou zahrnuty.
  • Systémový čas (sys). Celkový čas CPU strávený v režimu jádra během procesu. Podobně jako čas uživatele se nezapočítávají další procesy a čas strávený blokováním jinými procesy.

Zde je příklad. Pokud do příkazového řádku zadáme níže uvedený příkaz, systém stáhne instalační program pro open-source program virtuálního stroje VirtualBox:

$ time wget https://download.virtualbox.org/virtualbox/6.1.28/virtualbox-6.1_6.1.28-147628~Ubuntu~eoan_amd64.deb

Po dokončení stahování uvidíte tři postavy – skutečné , uživatel a sys . Jak můžete vidět, zobrazují uplynulý čas v reálném, uživatelském a systémovém režimu během stahování v minutách a sekundách.

Zápis výstupu do souboru

Občas můžete chtít uložit informace, které jste obdrželi pomocí času. Naštěstí existuje možnost formátu, která vám umožní zapsat výstup příkazu do souboru.

Pokud použijete příkaz GNU time, -o volba vám to umožní – vytvoří nový výstupní soubor obsahující informace o druhém příkazu.

Například zadáním následujícího příkazu uložíte informace o pingu hostinger.com a podrobnosti o jeho zpracování do nového souboru:

$ time -o hostinger-ping-info.log ping hostinger.com

Všimněte si, že pokud používáte prostředí Bash a chcete použít -o nebo jakoukoli jinou možnost, budete muset vyvolat příkaz externího času pomocí explicitní cesty usr/bin/time místo pouhého času .

$ usr/bin/time -o hostinger-ping-info.log ping hostinger.com

Chcete-li zkontrolovat obsah hostinger-ping-info.log , použijte kočku příkaz:

$ cat hostinger-ping-info.log

Získání podrobného výstupu v souboru

Výchozí výstup příkazu time nemusí obsahovat všechny podrobnosti, které chcete vědět o konkrétním procesu. Chcete-li zobrazit podrobný výstup, přidejte do příkazu time v Linuxu volbu -v.

Pokud například chcete zjistit ping nebo dobu odezvy hostinger.com a zobrazit podrobné informace o procesu, zadejte následující příkaz:

$ time -v ping hostinger.com

Pokud nepoužíváte příkaz GNU time nebo jste narazili na standardní chybový proud, zkuste spustit příkaz externího času zadáním celé cesty usr/bin/time místo toho:

$ usr/bin/time -v ping hostinger.com

Alternativně mohou uživatelé přizpůsobit typy informací, které chtějí vidět ve výstupu při zadávání příkazu time, pomocí těchto možností výstupního formátu:

% Doslovné „%“.
C Název a argumenty příkazového řádku časovaného příkazu.
D D průměrná velikost oblasti nesdílených dat procesu v kilobajtech.
E Uplynulý skutečný čas (nástěnné hodiny) použitý procesem v (hodinách:)minutách:sekundách.
F Počet hlavních nebo I/O vyžadujících chyb stránky, ke kterým došlo během běhu procesu. Jedná se o chyby, kdy stránka migrovala z primární paměti.
I počet vstupů systému souborů podle procesu.
K Průměrné celkové využití paměti procesem v kilobajtech.
M Maximální velikost rezidentní sady procesu během jeho životnosti v kilobajtech.
O Počet výstupů systému souborů podle procesu.
P Procento CPU, které tato úloha získala. Jedná se pouze o uživatelské a systémové časy dělené celkovou dobou běhu. Vytiskne také znak procenta.
R Počet menších nebo obnovitelných chyb stránky. Toto jsou stránky, které nejsou platné, ale které ještě nebyly nárokovány jinými virtuálními stránkami. Data na stránce jsou tedy stále správná, ale systémové tabulky je třeba aktualizovat.
S Celkový počet sekund CPU používaných systémem jménem procesu (v režimu jádra) v sekundách.
U Celkový počet sekund CPU, které proces přímo použil (v uživatelském režimu) v sekundách.
W Počet, kolikrát byl proces vyměněn z hlavní paměti.
X Průměrné množství sdíleného textu v procesu v kilobajtech.
Z Velikost stránky systému z v bajtech. Jako systémová konstanta se může mezi systémy lišit.
c Počet, kolikrát byl proces nedobrovolně přepnut do kontextu (protože vypršel časový úsek).
e Uplynulý skutečný čas (nástěnné hodiny) použitý procesem v sekundách.
k Počet signálů doručených procesu.
p Průměrná velikost nesdíleného zásobníku procesu v kilobajtech.
r Počet zpráv soketu přijatých procesem.
s Počet zpráv soketu odeslaných procesem.
t Průměrná velikost rezidentní sady procesu v kilobajtech.
w Počet případů, kdy byl program dobrovolně přepnut z kontextu, například při čekání na dokončení I/O operace.
x Stav ukončení příkazu.

Pokud například chcete zobrazit počet zpráv soketu přijatých příkazem, zadejte do shellu následující:

$ /usr/bin/time -f "Socket Messages Received: %r" command

Alternativně, pokud používáte prostředí Bash, můžete preferovat TIMEFORMAT vestavěného příkazu time. TIMEFORMAT používá konkrétní formátovací řetězec, který uživatelům umožňuje určit, jak se mají zobrazovat informace o čase.

Zde je seznam hodnot parametru TIMEFORMAT:

%% Doslova %.
%[p][l]R Uplynulý čas v sekundách.
%[p][l]U Počet sekund CPU, které proces strávil v uživatelském režimu.
%[p][l]S Počet sekund CPU, které proces strávil v systémovém režimu.
%P Procento CPU, vypočtené jako (%U + %S) / %R.

Závěr

Příkaz time v Linuxu je vynikající nástroj pro kontrolu doby provádění a celkového výkonu konkrétního procesu. V této příručce jste se naučili linuxový příkaz time, jeho účel, syntaxi a výstup.

Doufáme, že vám tato příručka pomohla naučit se efektivněji procházet systémem Linux.


Linux
  1. Jak používat Linuxový příkaz grep

  2. Jak používat příkaz „at“ k naplánování úkolu na daný nebo pozdější čas v Linuxu

  3. Jak používat Linux Touch Command + příklady

  1. Jak používat příkaz historie v Linuxu

  2. Jak používat Su Command v Linuxu

  3. 10 základních linuxových příkazů, které potřebujete znát

  1. Jak používat příkaz historie Linuxu

  2. Jak používat Linux Screen Command

  3. Jak používáte regulární výrazy s příkazem cp v Linuxu?