Bash shell je standardní terminálové prostředí obsažené ve většině distribucí Linux, které jsou dodávány s macOSem a jsou k dispozici pro instalaci v systému Windows 10. Pamatuje si zadané příkazy a ukládá je do souboru historie.
SOUVISEJÍCÍ: Nejlepší klávesové zkratky pro Bash (aka terminál Linux a MacOS)
Nejlepší klávesové zkratky pro Bash
: Vrátit všechny změny příkazu, který jste vybrali z historie, pokud jste je upravili na aktuálním řádku.
Zobrazit historii basů
Můžete vytisknout celou historii bash na obrazovku spuštěním jediného příkazu:
historie
Zobrazí se seznam všech příkazů ve vašem bash history, spolu s číslem vlevo od každého. Příkaz s "1" vedle něj je nejstarším příkazem ve vaší historii bash, zatímco příkaz s nejvyšším číslem je nejnovější. SOUVISEJÍCÍ:
Staňte se uživatelským koncovým uživatelem Linuxu s těmito 8 trikyPomocí výstupu můžete udělat vše, co se vám líbí. Například byste jej mohli přivést do příkazu
grep
a vyhledat historii příkazů.
history | grep your_searchDalo by se také připojit k příkazu
tail
pro zobrazení pouze malého počtu posledních příkazů, které jste spustili. Následující příkaz například zobrazí poslední 5 záznamů ve vaší historii.
Spustit příkazy z historie
Bash může rychle rozbalit předchozí příkazy nebo je rozbalit a modifikovat. Tato funkce je známá jako "rozšíření historie" a používá vykřičník, známý jako "bang". Jednoduše zadejte je na výzvu a stiskněte klávesu Enter a spusťte je, jako byste spustili libovolný jiný příkaz.
Pro spuštění určitého příkazu z historie číslem použijte následující příkaz:
! #Pro Příklad: Řekněme, že jste chtěli spustit 12. příkaz z vaší historie bash. To je příkaz s "12" nalevo od něj, když spustíte příkaz
historie
. Zadejte následující příkaz:
! 12
Chcete-li znovu spustit poslední příkaz, který jste spustili, zadejte následující. To má stejný účinek jako stisknutí jednou šipkou nahoru pro zobrazení předchozího příkazu a poté stisknutím klávesy Enter.
!!Můžete také na příkaz zobrazit určitý počet řádků zpět. Například
! - 2by spustil druhý až poslední příkaz, který jste spustili.
!!znamená totéž jako
! - 1
pracuje kdekoli na trati. Můžete přidat vše, co se vám líbí před nebo po!!
nebo některý z dalších výrazů v této části. Například můžete zadat následující příkaz, abyste znovu spustili poslední příkaz, který jste prošlisudo
a dali mu oprávnění root. To je obzvláště užitečné, pokud zapomenete přidatsudo
před spuštěním příkazu.
sudo !!
Nebo můžete například znovu spustit předchozí příkaz a potrubí jeho výstup do grep pro hledání nějaký text.
!! | grep text
Chcete-li vyhledat příkaz ve své historii a spustit jej, zadejte následující. Tím se spustí poslední příkaz, který odpovídá zadanému textu:
! text
Takže, pokud jste nedávno spustili příkaz, který začal sping
, můžete spustit následující příkaz a vyhledat jej. Budete vyhledávat zpět svou historii, najděte nejnovější příkaz začínající "pi
" a okamžitě jej spustit:
! Pi
Můžete přidat: p
na libovolné z výše uvedených rozšíření a bash vytiskne příkaz k terminálu bez jeho spuštění. Toto je užitečné, pokud chcete potvrdit, že vybíráte správný příkaz před jeho spuštěním
! 12: p
!!: p
! Text: p
Bash také umožňuje spustit nový příkaz, ale použít argumenty z předchozích příkazů ve vaší historii. To znamená, že jste spustili příkaz
touch / home / chris / some_long_file_name_you_dont_want_to_type_again
. Nyní chcete spustit příkaznano / home / chris / some_long_file_name_you_dont_want_to_type_again
. Spíše než zadat celou věc od začátku, můžete spustit:nano! $
! $
by způsobilo, že bash automaticky vyplní poslední argument z vašeho předchozího příkazu. vyplní poslední argument. Takže pokud spustíteping google.com -c 4
a pak spustíte
ping! $, rozbalí se to na
ping 4Chcete-li tuto situaci vyřešit, použijte následující trik pro rozbalení prvního argumentu na řádku namísto posledního:
příkaz! ^Takže pokud jste spustili
ping google.com -c 4
a pak spustil
ping! ^
, bash by to rozbalil na "ping google.com"
.Vyplňte všechny argumenty použité v předchozím příkazu místo jediný argument byste použili následující příkaz:
!Pokud jste namísto toho spustili
ping! *
, bash automaticky vyplnil všechny argumenty, které jste použili v předchozím příkazu
Můžete použít stejný trik, který používáte pro spuštění příkazů z historie, abyste získali argumenty od nich. Použijte následující formulář:
command! Abc: #Například jsme spustili příkaz
sudo hostname ubuntu
dřív. Pokud spustíme následující příkaz, bash vyhledá zpět historii a najde poslední příkaz beginni ng s písmeny, které zadáváme, a vyplníme argument, který specifikujeme. Takže pokud spustíme
echo! Su: 2
, bash vyhledá poslední příkaz začínající "su
" a vyplní druhý argument, ubuntu".
Další triky fungují, jak byste mohli očekávat. Například nahrazení čísla hvězdičkou, známou jako zástupný znak, způsobí, že bash vyplní všechny argumenty z příkazu:příkaz! Abc: *
Převrátit předchozí příkaz a upravitBash také povolí můžete znovu spustit předchozí příkaz a určit něco, co by mělo být změněno. To může být užitečné pro opravu překlepu v příkazu. Například následující příkaz znovu spusťte předchozí příkaz a nahrazuje text "
abc
" v textu s textem "
xyz
^ abc ^ xyzNapříklad pokud jste náhodou spustili
ping gogle.com, můžete spustit
^ gog ^ goog
a bash spustil příkaz
ping google.com.
Kde je uložena vaše historie a jak ji vymazatSložka bash ukládá ve výchozím nastavení historii příkazů, které jste spouštěli do souboru historie uživatelského účtu, ve formátu ~ / .bash_history. Pokud je například vaše uživatelské jméno bob, tento soubor najdete na /home/bob/.bash_history.
Protože vaše historie je uložena v souboru, přetrvává mezi relacemi. Můžete spustit některé příkazy, odhlásit se, vrátit se příští den a tyto příkazy budou stále ve vašem souboru historie připraveny k zobrazení a použití. Každý uživatelský účet má vlastní soubor historie se samostatnou historií příkazů.Chcete-li vymazat historii bash, můžete spustit následující příkaz. Tím se vymaže obsah souboru .bash_history vašeho uživatelského účtu:
historie -c
HISTSIZE
proměnná. Výchozí hodnota je obvykle 500 nebo 1000 položek. Můžete spustit následující příkaz pro zobrazení velikosti historie bash ve vašem systému:
echo $ HISTSIZE
Chcete-li nastavit historii na nulu, spusťte následující příkaz:
HISTSIZE = 0aktuální příkaz, bash neuloží žádné záznamy historie, pokud nezpracujete příkaz jako
HISTSIZE = 1000
a nastavíte jej zpět na určitý počet položek.
Jak Ignorovat mezery a duplikáty
Bash umožňuje nastavit proměnnou
HISTCONTROLna
ignorespace ignorovat položky historie, které začínají mezerou.
Zadejte před příkazem místo před jeho spuštěním v bash shellu a příkaz běží normálně, ale v historii se nezobrazí, pokud máte tuto proměnnou zapnutou. To vám umožní udržet historii trochu čistší a zvolit si spouštění příkazů, aniž by se objevily ve vaší historii.Bash také umožňuje ignorovat duplicitní příkazy, které mohou přeplnit vaši historii. Chcete-li tak učinit, nastavte
HISTCONTROLna
ignoredups.
HISTCONTROL = ignoredups
Chcete-li použít funkciignorespace
a
HISTCONTROL
proměnná naignoreboth
HISTCONTROL = ignorebothVšimněte si, že proměnné bash, které jste nastavili, budou existovat pouze pro aktuální relaci. Budete je muset přidat do souboru .bashrc svého uživatelského účtu, aby tyto hodnoty byly automaticky nastaveny v každé relaci bash, kterou začnete, pokud to chcete.
Bash shell je složitý nástroj s mnoha dalšími možnostmi. Podrobnější informace a další pokročilé triky, které můžete použít, naleznete v sekci Historie Bash Builtins a Historie expanze v oficiálním manuálu.
Jak uspořádat záložky pracovních listů v abecedním pořadí v aplikaci Excel
Pokud máte ve svém sešitu aplikace Excel velké množství listů, může být obtížné najít určitý pracovní list. Třídění karet listu v abecedním pořadí by usnadnilo nalezení toho, co hledáte. Kromě uspořádání tabulek pracovního listu aplikací barev můžete také uspořádat abecedně nebo alfanumericky, pokud jste použili vlastní názvy do pracovních listů.
Pokud jste v poslední době sledovali zprávy, možná jste slyšeli něco, co se nazývá bloková křivka. Je to koncept, který dělá data velmi bezpečné pro konkrétní použití. Pravděpodobně jste to slyšeli ve spojení s Bitcoinem, ale má aplikace daleko za oblíbenou kryptocurrencí každého. Zde je stručné vysvětlení, jak to funguje.