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.

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“.
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.
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
!!

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


