Téma Jannah Licencia nie je overená. Prejdite na stránku možností témy a overte licenciu. Pre každý názov domény potrebujete jednu licenciu.

Ako objaviť terminálové príkazy, ktoré okamžite zmenia váš zážitok

3 triky s terminálmi, ktoré by ste si priali vedieť skôr

Ako to zistiť Príkazy terminálu Okamžite zmeniť svoj zážitok?
V tomto článku sa s vami podelím o tajomstvá výkonných príkazov Terminálu, ktoré často zostávajú skryté alebo prehliadané. Naučíte sa príkazy, ktoré zjednodušia každodenné úlohy, zrýchlia váš systém a poskytnú vám výkonné nástroje na úplnú kontrolu. Začnem rýchlou odpoveďou a potom to rozvediem:

Príkazy ako grep و tail و tmux Môže zmeniť spôsob, akým spravujete súbory, trasujete a vykonávate súbežné príkazy. Poskytnem kontext, tipy na riešenie problémov a praktické príklady, ktoré vám pomôžu s istotou ho používať od prvého dňa.

linux-terminal-otvoriť-na-desktope-ubuntu-na-prenosnom-obrazovke Ako objaviť príkazy terminálu, ktoré okamžite zmenia váš zážitok

Každá časť v tejto príručke je starostlivo napísaná tak, aby zodpovedala tomu, čo hľadáte: jasná odpoveď na prvom mieste, usporiadané podnadpisy, praktické príklady a interné odkazy na súvisiace témy, ktoré vám pomôžu hlbšie sa ponoriť do problematiky.

Začnime – a Terminál vás už nesklame.

Či už sa s terminálom len učíte, alebo ste ostrieľaný profesionál, vždy existuje množstvo malých trikov, ktoré sa môžete naučiť – trikov, ktoré vám ušetria čas. Mám pre vás tri užitočné triky v Bash, ktoré si môžete pridať do svojho arzenálu.

Nahradiť proces, previesť dáta do dočasných dátových súborov

Možno ste sa stretli so situáciou, keď ste ako parameter potrebovali cestu k súboru, ale mali ste k dispozícii iba dáta.

Predpokladajme napríklad, že chcete upraviť text, ktorý je už v termináli:

echo "foo" | nano

Vyššie uvedený príkaz nefunguje, pretože nemôžete smerovať dáta do nano; namiesto toho musíte zadať cestu k súboru, napríklad takto: nano /cesta/k/súboru.txt.

Na vyriešenie tohto problému často použijete postupnosť príkazov podobnú nasledujúcej:

echo foo > bar.txt
nano bar.txt

Pomocou dvoch samostatných príkazov vytvoríte súbor a potom s ním vykonáte operáciu. Tento prístup nie je ideálny, pretože súbory zostanú roztrúsené po celom súborovom systéme a navyše je potrebné zapísať ich cesty. Tento problém rieši substitúcia operácií:

echo <(true)

Ak spustíte vyššie uvedený príkaz, uvidíte, že sa cesta k súboru vypíše nasledovne:

/dev/fd/16

Substitúcia procesu generuje dočasný súbor z výstupu príkazu, čo umožňuje inému príkazu čítať z neho. V predchádzajúcom príklade „<(true)“ generuje výstupnú cestu a „echo“ ju prijíma. Dáta vo výstupe sú jednoducho „true“.

Prečítajte si tiež:  Prečo používatelia uprednostňujú Linux Mint pred Windowsom 11

radu
Časť „fd“ v ceste odkazuje na termín „deskriptor súboru“, čo je identifikátor, ktorý programy používajú interne na odkazovanie na otvorené súbory. Tento príklad má číslo deskriptora súboru 16. Deskriptory súborov sú špecifické pre procesy, ktoré ich používajú – v tomto prípade „echo“.

Použime substitúciu užitočným spôsobom:

nano <(echo "foo")

Vyššie uvedený príkaz je rovnaký ako napísanie nasledujúceho príkazu:

echo "foo" > /tmp/foo
nano /tmp/foo

Pri spustení príkazu nano <(echo “foo”) nebudete môcť text ukladať a upravovať, pretože súbor je špeciálne vytvorený na použitie iba na čítanie, ale miesto jeho uloženia môžete zmeniť pomocou klávesovej skratky Ctrl+o.

Výmena I/O procesu

Výraz „<(foo)“ vytvorí substitúciu pre vstupnú operáciu. Alebo môžete vytvoriť substitúciu aj pre výstupnú operáciu:

echo "foo" > >(cat)

Vyššie uvedený príkaz je rovnaký ako napísanie nasledujúceho príkazu:

echo "foo" > /tmp/foo
cat /tmp/foo

Hoci tieto dva príkazy môžu vyzerať odlišne, fungujú rovnako. Toto sa stane jasnejším, keď pochopíte, že príkaz echo "foo" > >(cat) zapisuje "foo" do špeciálneho súboru, z ktorého príkaz cat číta.

v skratke,

  • echo <(true) je náhrada za vstupnú operáciu a príkaz echo prijíma dáta cez špeciálnu cestu k súboru (v tomto prípade sú dáta len „true“).
  • echo „foo“ > >(cat) je substitúcia pre výstupnú operáciu. Príkaz cat prijíma echo slovo cez špeciálnu cestu. Prvý znak „>“ je operátor presmerovania a druhý je súčasťou samotného substitučného výrazu.

Na záver tejto časti si myslím, že príklad zo skutočného života ju pekne spojí:

diff <(ls -1 ~) <(ls -1 /tmp)

Tento príkaz porovná rozdiely medzi dvoma adresármi. Operácia nahradenia vstupu je v tomto prípade užitočná, pretože funkcia diff predpovedá cesty k súborom, čo poskytujú operácie nahradenia.

Prečítajte si tiež:  Bežné linuxové herné mýty, ktorým by ste mali prestať veriť

Poznámka
Symbol „ls -1“ je jednotka, nie písmeno l.

Príkazy na rozšírenie záznamov pre replikáciu

Vývojári v jazyku Bash často používajú termín „rozbaliť“. Môže to znieť komplikovane, ale jednoducho to znamená zmenu niečoho malého na niečo väčšie – jeho rozšírenie. Najbežnejším príkladom je vlnovka (~), ktorá sa rozbalí do cesty k vášmu domovskému adresáru.

Nasledujúce tri príklady sa nazývajú rozšírenia protokolu. Všetky tieto výrazy rozširujú jednoduché vstupy znakov na položky v protokole shellu.

Bum, bum!!

Toto je jeden z najčastejšie používaných príkazov po cd a ls. Je ľahko použiteľný a zrozumiteľný. Znovu spustí posledný vykonaný príkaz.

ls
!!

Ako objaviť terminálové príkazy, ktoré okamžite zmenia váš zážitok

Z výstupu príkazu vidíte, že príkaz ls sa vykoná dvakrát.

Rozbaliť konkrétnu položku v histórii
Najprv si skontrolujte históriu a vyberte vhodný príkaz:

history

Potom si jednoducho vyberte jedno z čísel vľavo a zadajte ho ako N:

!N
Terminál zobrazuje históriu príkazu Bash: Bol zadaný dvojitý výkričník a znova sa vykonal posledný príkaz. Jednoduchý zoznam adresárov. Ako objaviť príkazy terminálu, ktoré okamžite zmenia váš zážitok.

Pozor
Pred opätovným vykonaním príkazu ho dvakrát skontrolujte, pretože ak omylom vykonáte nesprávny príkaz, váš deň bude zlý.

Najlepšie na rozširovaní týchto číslovaných položiek histórie je, že ich čísla sú konštantné, čo vám umožňuje ich identifikovať. Táto perzistencia samozrejme pretrváva až po odstránení súboru ~/.bash_history.

Rozbaliť podľa názvu pre jednoduchší výber

Opakované vyhľadávanie v histórii príkazov s cieľom nájsť konkrétny očíslovaný príkaz môže byť únavné. Existuje alternatívny, efektívnejší prístup: Bash vám umožní zadať začiatok príkazu a vykoná najnovšiu zhodu.

echo foo
!e
!ech

Toto je ideálne pri prepínaní medzi viacerými objednávkami počas jednej terminálovej relácie. Pre dlhšie trvajúce (oveľa staršie) objednávky však uprednostňujem použitie nástroja na fuzzy historické vyhľadávanie.

Skupiny velenia

Niekedy možno budete chcieť vykonať viacero príkazov ako skupinu, pričom ich výstupy sa budú považovať za jeden výsledok. Zoberme si nasledujúci príklad:

echo foo > /tmp/foo.txt
echo bar >> /tmp/foo.txt

Znak „>“ sa nazýva operátor presmerovania a odošle výsledok príkazu do zadaného súboru, pričom nahradí jeho obsah; znak „>>“ vykoná to isté, až na to, že do súboru pridá niečo – toto sa nazýva operátor presmerovania.

Prečítajte si tiež:  Zlepšenie herného zážitku s Linuxom pomocou Vulkan Shader a toho, čo potrebujete vedieť

Vyššie uvedený príkaz vytvorí súbor podobný tomuto:

foo bar

Niekedy, keď sú vaše príkazy zložitejšie, môže byť použitie tohto prístupu neúčinné kvôli veľkému počtu nepotrebných riadkov. Jednoduchším prístupom je použitie bloku príkazov.

Skupina príkazov kombinuje všetky svoje výstupy príkazov do jednej skupiny, čo výrazne uľahčuje spracovanie výsledku.

{ echo foo; echo bar; } > /tmp/foo.txt

Výstup bude rovnaký ako pri predchádzajúcom príkaze. Presmerovanie je potrebné vykonať iba raz, takže nie je potrebný operátor presmerovania (>>).

Pozor
Za každým príkazom, najmä za posledným, sa musí umiestniť bodkočiarka. Medzery musia byť tiež umiestnené medzi zátvorkami a slovami príkazov.

To, že príkazy mimo skupiny sa vykonajú iba raz, môžete dokázať vykonaním nasledujúcej postupnosti príkazov:

{ echo "A"; echo "B"; } | wc -l

okno-terminálu-zobrazuje-skupinu-príkazov-s-dvoma-príkazmi-echo-v-nej-hodnote-je-presmerované-do-wc-príkazu-ktorý-vykonáva-počet-riadkov-ktorý-zobrazuje-číslo-2 Ako objaviť terminálové príkazy, ktoré okamžite zmenia váš zážitok

Sada príkazov odosiela oba výstupy echa spolu ako jeden stream. Preto príkaz „wc“ počíta oba riadky spolu ako jednu správu a zobrazuje hodnotu 2; inak zobrazuje hodnotu 1 na dvoch samostatných riadkoch.

Príklad použitia z reálneho života:

{ ping -c 1 example.com; ping -c 1 example.net; } > /tmp/ping.txt

Stručne:

Substitúcia procesu nahradí proces dočasnou cestou k súboru. Napríklad nano <(echo „foo“) a echo „foo“ > >(cat).

Rozšírenia registra shellu sú špeciálne znaky, ktoré odkazujú na položky registra bash. Napríklad !foo, !N alebo !!.

Skupina príkazov kombinuje výstup viacerých príkazov do jedného výsledku. Napríklad { echo „foo“; echo „bar“; } > /tmp/foo.txt.

Všetko, čo je vysvetlené vyššie, predstavuje len malú časť toho, čo bash ponúka. Ak máte radi rozšírenia histórie shellu, určite si zamilujete náš návod na používanie príkazu history. Možno vás budú zaujímať aj triky, ktoré uľahčia učenie sa príkazového riadku.

Po prečítaní týchto príkazov a tipov sa Terminál nestane len rozhraním, ale nástrojom na prekonávanie bariér a zvyšovanie efektivity. Začnite implementáciou jedného alebo dvoch denne a uvidíte, ako sa zmení vaša rýchlosť dokončenia a spokojnosť s prácou. Nečítajte len – experimentovanie a opakovanie premieňajú vedomosti na zručnosti.

Prejsť na horné tlačidlo