GNU/Linux >> Znalost Linux >  >> Linux

12 UNIX / Linux Příklady možností výstupního formátu časového příkazu

Časový příkaz systému Linux je užitečný k identifikaci času, který příkaz trvá.

Pomocí příkazu Linux time můžete zjistit, kolik času zabralo provedení příkazu, skriptu shellu nebo jiného programu.

Ve výchozím nastavení příkaz time provede daný příkaz nebo program. Po spuštění zobrazí statistiky a využití zdrojů při standardní chybě.

Příkaz Time poskytuje několik možností příkazového řádku a různé možnosti formátu, jak je vysvětleno v tomto tutoriálu

1. Příklad použití základního časového příkazu

Syntaxe příkazu Time:

$ time [-options] <command arg1 arg2 ..>

Například příkaz time je spuštěn na příkaz sleep bez jakékoli volby.

$ /usr/bin/time sleep 2
0.00user 0.00system 0:02.00elapsed 0%CPU (0avgtext+0avgdata 2288maxresident)k
0inputs+0outputs (0major+172minor)pagefaults 0swaps

Pojďme nyní pochopit některé důležité možnosti příkazového řádku tohoto příkazu.

2. Zapsat výstup časové statistiky do souboru pomocí volby -o

Tato možnost omezuje odesílání výsledků příkazu na standardní chybu, ale zapisuje výsledky do výstupního souboru. Tato možnost přepíše zadaný soubor.

Zde je příklad:

$ /usr/bin/time -o time.txt sleep 2

$ cat time.txt
0.00user 0.00system 0:02.00elapsed 0%CPU (0avgtext+0avgdata 2288maxresident)k
0inputs+0outputs (0major+175minor)pagefaults 0swaps

3. Připojit výstup časové statistiky k existujícímu souboru pomocí volby -a

Tato volba umožňuje připojit výstup příkazu time do souboru. Používá se spolu s volbou -o. Tato volba zabraňuje přepsání obsahu výstupního souboru připojením výstupu příkazu time do zadaného výstupního souboru.

Zde je příklad:

$ /usr/bin/time -a -o time.txt sleep 4

$ cat time.txt
0.00user 0.00system 0:02.00elapsed 0%CPU (0avgtext+0avgdata 2288maxresident)k
0inputs+0outputs (0major+175minor)pagefaults 0swaps
0.00user 0.00system 0:04.00elapsed 0%CPU (0avgtext+0avgdata 2288maxresident)k
0inputs+0outputs (0major+176minor)pagefaults 0swaps

4. Zobrazit procento využití CPU – %P

Volby formátování výstupu můžete zadat pomocí volby -f. Tato možnost umožňuje uživateli poskytnout možnosti formátování výstupu. Možná přepíše formát zadaný v proměnné prostředí TIME. Níže jsou popsány následující možnosti formátování – %P, %M, %S, %e, %E, %C, %Z, %c, %x.

Tato volba udává procento CPU, které má proces příkazu (tj. spuštěný pod časovým příkazem) pro své provedení. Toto je pouze čas uživatele + systém vydělený celkovou dobou běhu. Vytiskne také znak procenta.

$ /usr/bin/time -f "\t%P CPU Percentage" find / -name my-program.sh
/root/my-program.sh
        82% CPU Percentage

Zde výstup příkazu ukazuje, že příkaz find zabral 82 % CPU.

5. Maximální velikost rezidentní sady displeje – %M

Tato možnost poskytuje maximální rezidentní sadu velikosti procesu příkazu (tj. spuštění pod časovým příkazem) během jeho životnosti v kilobajtech.

$ /usr/bin/time -f "\t%M Max Resident Set Size (Kb)" find / -name my-program.sh
/root/my-program.sh
        8688 Max Resident Set Size (Kb)

Zde výstup příkazu ukazuje, že příkaz find zabral 8688 KB jako maximální rezidentní velikost procesu.

6. Zobrazit celkový počet sekund CPU – %S

Tato možnost udává celkový počet sekund CPU používaných systémem jménem procesu (v režimu jádra) v sekundách.

$ /usr/bin/time -f "\t%S CPU-seconds" find / -name my-program.sh
/root/my-program.sh
        0.35 CPU-seconds

Zde výstup příkazu ukazuje, že příkaz find zabral v režimu jádra 0,35 sekundy CPU.

7. Zobrazení uplynulého reálného času v sekundách – %e

Tato možnost udává uplynulý reálný čas (tj. nástěnné hodiny) použitý procesem v sekundách.

$ /usr/bin/time -f "\t%e Elapsed Real Time (secs)" sleep 2
        2.00 Elapsed Real Time (secs)

Zde výstup příkazu ukazuje, že provedení příkazu spánku uplynulo do 2 sekund.

8. Zobrazení uplynulého reálného času v jiném formátu – %E

Tato možnost udává uplynulý reálný čas (tj. nástěnné hodiny) použitý procesem v tomto formátu – [hodiny:]minuty:sekundy.

$ /usr/bin/time -f "\t%E Elapsed Real Time (format)" sleep 2
        0:02.00 Elapsed Real Time (format)

Zde výstup příkazu ukazuje, že provedení příkazu spánku trvalo 0 hodin, 0 minut a 2 sekund.

9. Zobrazit název programu a argumenty příkazového řádku – %C

Tato možnost poskytuje název a argumenty příkazového řádku příkazu (tj. spustit pod příkazem time).

$ /usr/bin/time -f "\t%C (Program Name and Command Line)" find / -name my-program.sh
/root/my-program.sh
        find / -name my-program.sh test_time (Program Name and Command Line)

Zde výstup příkazu time zobrazuje název spouštěného příkazu a jeho argumenty příkazového řádku.

10. Zobrazit systémovou velikost stránky v bytech – %Z

Tato možnost udává velikost stránky systému v bajtech. Toto je konstanta pro každý systém, ale může se lišit od jednoho systému k jinému.

$ /usr/bin/time -f "\t%Z System Page Size (bytes)" sleep 2
        4096 System Page Size (bytes)

Zde výstup příkazu ukazuje, že příkaz sleep použil 4096 bajtů jako velikost systémové stránky.

11. Zobrazení počtu přepínačů kontextu – %c

Tato možnost udává, kolikrát byl proces nedobrovolně přepnut do kontextu (protože vypršel časový úsek).

$ /usr/bin/time -f "\t%c Context Switches" find / -name my-program.sh
/root/my-program.sh
        254 Context Switches

Zde výstup příkazu ukazuje, že 254krát došlo k přepnutí kontextu procesu během provádění příkazu find pod příkazem time.

12. Zobrazit stav ukončení příkazu – %x

Tato volba udává stav ukončení příkazu (tj. spuštění pod časovým příkazem).

$ /usr/bin/time -f "\t%x Exit Status" top1
/usr/bin/time: cannot run top1: No such file or directory
        127 Exit Status

Zde výstup příkazu ukazuje, že příkaz top1 selhal, protože tento soubor top1 jako soubor neexistuje.

Podle manuálové stránky příkazu time může být stav ukončení příkazu time následující:

  • Pokud byl vyvolán příkaz určený k příkazu time, stav ukončení je stav ukončení příkazu, který je spuštěn s příkazem time.
  • Pokud příkaz určený k příkazu time nelze nalézt, je to 127.
  • 126, pokud lze příkaz zadaný do time příkazu nalézt, ale nelze jej vyvolat.
  • Nějakou jinou nenulovou hodnotu (1–125), pokud se něco pokazilo.

Nakonec je rozdíl mezi prováděním pouze „time“ a „/usr/bin/time“. Vysvětlili jsme to v našem dřívějším úvodu k článku příkazů času.


Linux
  1. Příklady příkazů času Linux

  2. 10 Příklady příkazů Xargs v Linuxu / UNIXu

  3. sa Příklady příkazů v Linuxu

  1. UNIX / Linux:10 příkladů příkazů Netstat

  2. Pinky Příklady příkazů v Linuxu

  3. Příklady příkazů tee v Linuxu

  1. 7 Příklady příkazů Linux df

  2. 5 UNIX / Linux Příklady příkazů Traceroute

  3. 8 Příklady příkazů Linux TR