GNU/Linux >> Znalost Linux >  >> Linux

Výuka příkazů historie Linuxu pro začátečníky (8 příkladů)

Pokud vaše práce zahrnuje spouštění nástrojů a skriptů na příkazovém řádku Linuxu, jsem si jistý, že existuje spousta příkazů, které byste spouštěli každý den. Ti, kdo jsou na příkazovém řádku noví, by měli vědět, že existuje nástroj – nazvaný historie - to vám dává seznam příkazů, které jste provedli dříve.

V tomto tutoriálu probereme základy příkazu historie pomocí několika snadno srozumitelných příkladů. Ale než to uděláme, stojí za zmínku, že všechny příklady zde byly testovány na počítači Ubuntu 16.04LTS.

Příkaz historie Linuxu

Pokud víte, jak efektivně využívat historii příkazového řádku, můžete denně ušetřit spoustu času. Následuje několik příkladů ve stylu otázek a odpovědí, které by vám měly poskytnout dobrou představu o tom, jak můžete použít příkaz historie ve svůj prospěch.

O1. Jak funguje příkaz historie?

Základní použití je jednoduché – stačí spustit příkaz 'history'.

history

Takže můžete vidět, že vaše dříve spuštěné příkazy jsou zobrazeny ve výstupu. Všimněte si, že jsem použil příkaz 'more', abych se ujistil, že zobrazení výstupu je na první stránce pozastaveno (úplný výstup 'history' je obvykle velmi dlouhý).

2. čtvrtletí. Jak zajistit, aby se v historii zobrazovalo také datum a čas?

Pokud chcete, aby příkaz historie zobrazoval datum a čas provedení každého příkazu, můžete to provést exportem proměnné HISTTIMEFORMAT následujícím způsobem:

export HISTTIMEFORMAT="%F %T: "

A je to. Nyní, když spustíte příkaz 'history', uvidíte ve výstupu informace o datu a čase.

Pokud vidíte, že datum a čas jsou u všech příkazů stejné, mělo by to být jasné z následujícího vysvětlení:

If you set the HISTTIMEFORMAT in bash your new entries get stored in the history file with a 
timestamp, older commands that don't have a timestamp (those before you ever set HISTTIMEFORMAT
will display one and the same date-time-stamp (I assume the one from the first entry found with a
real timestamp).

This problem should solve itself after your complete history has been updated in a few days.

You can look in ~/.bash_history to see what is the first line that has a date-time-stamp.
Those are lines starting with a # followed by a (currently) 10 digit number.

Q3. Jak zajistit, aby historie přestala zaznamenávat příkazy?

Pokud nastane situace, kdy nechcete, aby systém ukládal historii vašich příkazů, můžete to udělat pomocí proměnné HISTSIZE. Stačí jej exportovat s nulovou hodnotou a jste v pořádku.

Viz následující příklad:

Takže můžete vidět, že spuštění příkazu 'history' nyní nepřineslo žádné výsledky.

Všimněte si, že je zde také proměnná HISTFILESIZE. Zde je rozdíl mezi těmito dvěma:

HISTSIZE is the number of lines or commands that are stored in memory in a history list while your 
bash session is ongoing.

HISTFILESIZE is the number of lines or commands that (a) are allowed in the history file at startup
time of a session, and (b) are stored in the history file at the end of your bash session for use in
future sessions.

4. Jak zajistit, aby historie nezaznamenávala jediný příkaz?

To lze provést nastavením proměnné HISTCONTROL na 'ignorespace.' Můžete to udělat následujícím způsobem:

export HISTCONTROL=ignorespace

Nyní, kdykoli spustíte příkaz, který nechcete, aby byl zaznamenán v historii, stačí jej provést s mezerou na začátku.

Samozřejmě můžete použít příkaz grep k vyhledání konkrétních klíčových slov nebo příkazů ve výstupu vytvořeném příkazem history. Existuje však také mnohem rychlejší metoda:reverse-i-search.

Je to docela snadné – vše, co musíte udělat, je stisknout CTRL+R na příkazovém řádku a uvidíte, že se vaše výzva změní na něco takového:

Nyní zadejte klíčové slovo, které chcete hledat, a vpravo uvidíte odpovídající návrhy z historie. Zadal jsem například 'man' (bez uvozovek) a první výsledek, který jsem dostal, byl 'man apropos'.

Pokud to není to, co hledáte, můžete získat další odpovídající výsledek opětovným stisknutím kláves CTRL+R. Takže v mém případě byl další výsledek, který jsem dostal, 'man find search'.

Tímto způsobem můžete hledat dál. Jakmile získáte požadovaný výsledek, stačí stisknout klávesu se šipkou vpravo a na výzvu se zobrazí celý příkaz.

Nyní tedy můžete tento příkaz spustit nebo jej použít, jak chcete.

O6. Jak spustit předchozí příkaz?

Existují dva snadné způsoby, jak můžete spustit poslední provedený příkaz:stiskněte CTRL+P nebo spusťte následující příkaz:

!!

Nevěříte (zejména druhému způsobu)? Zkuste to.

V případě, že je požadavkem rychlé provedení předposledního příkazu, můžete to provést následujícím způsobem:

!-1

Tak dále a tak dále.

O7. Jak zajistit, aby historie ignorovala duplicitní záznamy ve výstupu?

To lze provést nastavením HISTCONTROL proměnná na 'ignoreboth' a 'erasedups.' Můžete to udělat následujícím způsobem:

echo HISTCONTROL=ignoreboth:erasedups

Nyní, když spustíte příkaz historie, výstup nebude obsahovat duplikáty.

O8. Jak vymazat historii?

Pokud chcete vymazat existující historii, abyste mohli začít znovu, použijte volbu -c příkazového řádku.

history -c

Závěr

Pravděpodobně budete souhlasit, že historie je velmi důležitý příkaz, o kterém byste si měli být vědomi. V tomto tutoriálu jsme probrali několik důležitých tipů/triků, jak tento nástroj co nejlépe využít. Až si je procvičíte, přejděte na stránku manuálu nástroje, kde najdete další informace.


Linux
  1. Linux cd command tutorial pro začátečníky (8 příkladů)

  2. Linux Date Command Tutorial pro začátečníky (8 příkladů)

  3. Linux hostname Command Tutorial pro začátečníky (5 příkladů)

  1. Výuka příkazů Linux pro začátečníky (5 příkladů)

  2. Linux df Command Tutorial pro začátečníky (8 příkladů)

  3. Linux du Command Tutorial pro začátečníky (10 příkladů)

  1. Výukový program Linux echo Command pro začátečníky (5 příkladů)

  2. Linux env Command Tutorial pro začátečníky (5 příkladů)

  3. Návod k příkazu velikosti Linuxu pro začátečníky (6 příkladů)