Stejně jako mnoho lidí pracujících s linuxovými stroji preferuji používání rozhraní příkazového řádku, když je to možné a když to dává smysl. V některých případech je snazší najít, zkontrolovat a upravit některé konfigurace pomocí prstů, protože prostě „znají“ příkazy, které potřebujete napsat, a je to rychlejší než otevřít GUI a hledat sekvenci nabídek, které potřebujete klikněte.
Jistě, jsou některé případy, kdy je používání GUI rychlejší a tento úkol děláte jen jednou nebo dvakrát, takže koho to zajímá, že? Ale pokud je to něco, co budete muset udělat vícekrát, možná s určitými obměnami, váš mozek systémového administrátora přemýšlí:"Můžu to zautomatizovat?" V mnoha případech bude odpověď ano, ale snaha o automatizaci úkolu se v jiných situacích nevyplatí.
[ Také by se vám mohlo líbit: Linuxový terminálový trik:Hackněte příkaz cd, abyste si zapamatovali, kde jste byli]
Kdybych mohl znovu použít poslední příkazy, které jsem napsal.
Historie
Nejjednodušší možností, pokud jde o obnovení posledních příkazů, které jste zadali v konzole Linuxu, je použít history
. V tomto příkladu pracujete se serverem HTTP a opakovaně zastavujete službu a upravujete soubor httpd.conf
a poté restartujte httpd
pro kontrolu výsledků v prohlížeči.
Následující příkaz vám zobrazí posledních 10 použitých příkazů:
❯ history | tail -10
10057 systemctl stopt httpd.service
10058 systemctl stop httpd.service
10059 sudo systemctl stop httpd.service
10060 sudo systemctl start httpd.service
10061 systemctl status httpd.service
10062 history
10063 systemctl status httpd.service
10064 ps -ef|grep httpd
10065 man httpd.conf
10066 view /etc/httpd/conf/httpd.conf
Odtud můžete buď zkopírovat a vložit řádek (pokud potřebujete příkaz upravit nebo jej použít v jiném terminálu), nebo zadat vykřičník následovaný posloupností příkazu v historii:
> !10061
Tento řádek vyvolává příkaz systemctl status httpd.service
z historie a pak už jen stisknete ENTER (nebo před opětovným provedením příkaz upravte).
Není to špatné, ale stále musíte zadat sekvenci nebo zkopírovat a vložit pomocí myši. Není velký dohodu, ale chcete se soustředit na svůj hlavní úkol.
Některé dobré alternativy
Předchozí příkazy z historie můžete vyvolat pomocí UP klávesa šipky. Procházejte seznam pomocí NAHORU a DOLŮ klíče.
Tento přístup je v pořádku, ale co když chcete obnovit něco, o čem víte, že jste to použili před 15 minutami? To bude určitě v seznamu historie, ale možná budete muset provést nějakou těžbu.
Můžete například použít history
, odešlete výstup do grep
a uveďte pouze ty příkazy, které odpovídají vašim potřebám. V tomto příkladu zobrazím všechny příkazy v history
které zahrnují http řetězec:
> history | grep http
10544* systemctl status httpd.service
10545* systemctl stopt httpd.service
10546* systemctl stop httpd.service
10547* sudo systemctl stop httpd.service
10548* sudo systemctl start httpd.service
10549* systemctl status httpd.service
10551* systemctl status httpd.service
10552* ps -ef|grep httpd
10553* man httpd.conf
10554* view /etc/httpd/conf/httpd.conf
10561* systemctl status httpd.service
Takže odtud můžete znovu použít vykřičník a pořadové číslo. Například:!10546
Ale můžete si myslet:„To je v pořádku, ale moje spojení mezi mozkem a prsty je tak rychlé, že nechci být rozptylován. Vím to přesně příkaz, který hledám."
Dobře, i na to existuje řešení.
Když váš mozek a prsty vědí, co hledají
Pokračováním v tomto příkladu si chcete vyvolat příkazy související s httpd
rychle.
Možností pro vás je použít CTRL+R , který vás vyzve k zadání podřetězce. Použijte jej k vyvolání posledního příkaz, který jste zadali a který obsahuje tento řetězec.
Při psaní řetězce z příkazu se zobrazí poslední příkaz, který tento řetězec použil. Pokud je příkaz to, co hledáte, stiskněte ENTER a bude proveden.
Pokud v tomto okamžiku budete stále tisknout CTRL+R , předposlední zobrazí se příkaz, který obsahuje tento vyhledávací řetězec, což je v tomto příkladu view /etc/httpd/conf/httpd.conf
příkaz.
Můžete přejít zpět (CTRL+R ) a vpřed (CTRL+S ).
[ Chcete si vyzkoušet své schopnosti správce systému? Proveďte hodnocení dovedností ještě dnes. ]
Sbalit
Když znáte část příkazu, který jste nedávno provedli, můžete si ji rychle vyvolat pomocí zde probíraných zkratek. To může být užitečné zejména v případě, že jste příkaz použili již dávno a stále je v historii shellu, ale vaše prsty si ho „pamatují“.
Je zřejmé, že existují efektivnější způsoby provádění každodenních úkolů než psaní:Vytváření aliasů pro příkazy, které často používáte, vytváření skriptů, automatizace atd. Ale když je psaní nezbytné, je lepší to dělat efektivně.