Mimořádně užitečný tip, pokud používáte terminál (příkaz Připojit CD s LS ... a mnoho dalších)

Jsem jedním z těch, kteří hodně času využívají terminál (konzole, bash, shell, jak to chcete nazvat), z X nebo Y důvodů musím neustále měnit adresář a pracovat na něm 🙂

Ve velké většině případů se změna adresáře (Například: cd / opt /) a také chci vědět, co je v tomto adresáři, vědět tuto druhou, kterou používám ls.

To znamená, že by to bylo takto:

kzkggaara @ geass: ~ $ cd / opt /
kzkggaara @ geass: / opt / $
kzkggaara @ geass: / opt / $ ls
nessus

Říkal jsem to mnohokrát ... Jsem docela líný, rád dělám co nejméně kroků v terminálu, proto jsem po mnoha experimentech dosáhl přesně toho, co jsem chtěl.

Podívejte se na následující, což není nic jiného než vstup do mě / opt / jednoduchým příkazem cd / opt /:

Jak vidíte, v jednom kroku (cd / opt /) Vstoupím do adresáře a TAKÉ vypíše obsah tohoto adresáře a ... jako by to nestačilo, ukazuje mi to barvami 😀

Zde je můj příklad přístupu /atd/ s cd / atd/:


Barvy jsou snadno pochopitelné:

Žádná barva = Soubory
Modrá barva = Složky
Zelená barva = Soubory s oprávněním ke spuštění

Ale pojďme k hlavnímu ... Jak sakra používám pouze cd, mohu také automaticky vypsat adresář, do kterého přistupuji?

Náš archiv .bashrc (nachází se v naší domovské nebo osobní složce) nám v tom pomůže, musíme nejdříve deklarovat funkci, kterou budeme nazývat CDL:

funkce cdls {cd "$ 1"; ls –color;}

Dali jsme tuto linii na obě strany naší .bashrc ... zde je příkaz:

echo "" >> $HOME/.bashrc && echo "function cdls { cd "$1"; ls --color;}" >> $HOME/.bashrc

S tímto příkazem to NEMUSÍTE nutně dělat, cílem je soubor .bashrc obsahuje tento řádek, takže tento soubor upravte pomocí preferovaného textového editoru (podložka pod myš, kate, gedit, nano, vi atd) a přidejte jej.
Uloží změnu, zavře terminál, který mají otevřený, a otevře nový.

V něm napíšeme následující a stiskneme [Enter]:

cdls $HOME

To by mělo stačit pro přístup k naší osobní složce v tomto terminálu a bude také obsahovat seznam jejího obsahu (s barvami a vším).

Chci říct, co CDL už dělá to, co chceme ... nyní můžeme dosáhnout pouze stejného, ​​ale s cd

Za tímto účelem přidáme do souboru .bashrc následující řádek:

alias cd='cdls'

To bude, když budeme psát cd … Akce, kterou definujeme, bude skutečně provedena CDL

Nechám vám příkaz, který automaticky umístí tento řádek výše:

echo "" >> $HOME/.bashrc && echo "alias cd='cdls'" >> $HOME/.bashrc

Ale jak jsem již řekl, cílem je přidat tento další řádek do stejného souboru, můžete pro něj použít textový editor podle vašeho výběru.

Jakmile to provedete, zavřete terminál a otevřete nový ... do něj napište následující a stiskněte [Enter]:

cd /etc/

A bingo, vstoupí / Etc/ a také bude uveden obsah této složky a v barvách 😉 (stejně jako na předchozí fotografii)

K čemu je to užitečné? 😀

Pro zvědavce, kteří se diví, co tato funkce znamená? … Nechám vám jednoduché vysvětlení:

funkční CDL = Zde definujeme, že vytváříme novou funkci a bude se jmenovat cdls
cd "$ 1" = A to, co tato funkce udělá (bude to dělat pokaždé, když zavoláme, použijeme nebo provedeme), je vytvořit cd (enter) k 1. parametru, tedy ... - »« cd / home / »,« $ 1 »znamená« co že píšeme po cd ", v tomto příkladu je 1. parametr" / home / ".
; = To znamená, že tu objednávka končí, nebo akce, která má být provedena ... ale funkce může mít více akcí a nyní definujeme druhou.
ls –barva; = Znamená to, že kromě jakékoli dříve deklarované akce provede také „ls“, kde se nacházíme, a „ls“ to udělá barvou (–color).

Poslední věc ... nejchytřejší, uvědomí si, že tato logika (převzetí funkce a její konfigurace pro provedení několika akcí) má hodně, velký potenciál, například ... pokud chci vstoupit do složky a také smazat jinou, to znamená, že chci vstoupit do /Domov/ a také smazat / opt / temp / funkce pro toto by byla:

function asdasd { cd "$1"; rm -Rv "$2"; }

A psaní terminálu asdasd / home / / opt / test / bylo by to, protože vstoupí do 1. parametru (/Domov/) a odstraňte druhý (/ opt / temp /).

Každopádně, toto má opravdu SPOUSTU potenciálních hehe, je jen na vás, abyste to co nejvíce využili.

Pokud máte jakékoli pochybnosti nebo dotazy, stížnosti nebo návrhy, rád vám pomůžu, nejsem zdaleka odborník, ale alespoň rád pomůžu 😀

pozdravy


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.

  1.   blablabla řekl

    A to vše za nepoužívání Zsh.

    1.    KZKG ^ Gaara řekl

      Opravdu jsem ho neznal 😉
      Díky za tip, budu na to dávat pozor.

      Znalosti se však nekonají ... čím více tipů a znalostí člověk dokáže získat, tím lépe, nemyslíte? 🙂

      1.    MSX řekl

        Zsh je pro diváky, muži používají sh !!! >: D

        V realitě

        1.    KZKG ^ Gaara řekl

          HAHAHA ne, ne, ne ... nemyslím si to, a také to tak neříkej, protože některé by se mohly urazit.
          Každý používá to, co mu nejlépe vyhovuje, co má nejraději 😀

          1.    MSX řekl

            😉

            Aplikace, kterou hodně používám k navigaci v mém systému, je Autojump:
            https://github.com/joelthelion/autojump/blob/master/README.md

        2.    blablabla řekl

          Muži jsou praktičtí, ženy a diváci jsou ti, kteří si rádi komplikují život. Není třeba žádné další objasnění.

          1.    KZKG ^ Gaara řekl

            Zkuste prosím nekomentovat sexuální preference ano? … Pro takové věci nastaly nepříjemné situace.

            Doufám, že je to pochopitelné.

          2.    blablabla řekl

            Toto objasnění by mělo být pro @msx. Nápady jsou vytvářeny pravdivými, objektivními a racionálními tvrzeními, nikoli urážkami nebo hrubostí.

            1.    KZKG ^ Gaara řekl

              Ve svém výše uvedeném komentáři jsem mu řekl, aby tyto věci neříkal (odpusťte nadbytečnost).
              A teď říkám znovu ano, ale není zaměřen pouze na vás, je platný pro všechny.

              Neberte to špatně, záměrem nebylo, aby se někdo cítil nepohodlně nebo špatně, jen se snažím vyhnout nedorozuměním 🙂


          3.    Martin řekl

            Hahaha, právě jsem viděl tento komentář!

            «Toto vysvětlení by mělo být pro @msx. Myšlenky jsou konstruovány s pravdivými, objektivními a racionálními tvrzeními, ne s urážkami nebo hrubostí. “
            Přestaň snídat s mužem s citrony, na 100 $ účtu už vypadáš jako Franklin: http://www.watchingamerica.com/frankfurterallgemeine000009.shtml

            ????

        3.    Abel řekl

          Je to queer zsh? No, myslím, že se mi líbí být queerem, protože protože jsem se to naučil používat, nezastavil jsem se a nemyslím si to. o_____o

          Používají muži sh?, Ten komentář je divný od někoho, kdo má bashrc plný věcí, takže budu předpokládat, že jste žena. xP

          1.    KZKG ^ Gaara řekl

            K tomu jsem se nechtěl dostat. Prosím, nechme tu boj, ano? 🙂
            Každý používá, co chce ... sh, zsh, nebo cokoli chce, a také ... každý má sexuální preference, které chce mít, už se o takové věci vedly boje 🙁

          2.    MSX řekl

            hahaha xD

            V poslední době se zsh hodně vyvinul, jakmile budu mít čas --ha, jak klamné! - Přečtu si jeho dokumentaci, jak jen mohu, abych to využil a provedl změnu 🙂

            Když teď mluvím vážně: jediná věc, která mi na zsh trochu vadí, je, že není stoprocentně kompatibilní s Bashem, takže pokud použijeme zsh ve svých skriptech a využijeme jeho plný potenciál, je velmi, velmi možné, že uvedený skript selže na druhé straně v bash Na druhou stranu, i když používáme zsh, píšeme naše shell skripty v bash, je zbytečné používat zsh ... o_O

            Přesto si myslím, že zsh stojí za to. Když už mluvíme o skořápce, znáte ryby? Projekt povstal z popela, nyní se mu říká fishfish a vyvíjejí ho velmi rychle.

    2.    hackloper775 řekl

      Myslím, že by měl být napsán zsh, protože terminál rozlišuje velká a malá písmena

      Ačkoli cd && ls / route je také platný

      I když je to delší psaní

      Zdravím 😀

      1.    hackloper775 řekl

        Mýlil jsem se, prst mi zmizel

        Dal jsem to s tím, že je to uvedeno a je přístupný adresář

        cd && ls / cesta

        ale jen se připrav

        přestože se používá pouze seznam

        ls / cesta

        příkaz, který je ekvivalentní, je

        cd / cesta && ls

        pozdravy

        1.    KZKG ^ Gaara řekl

          Použitím && je totéž dosaženo 😀
          Jediný rozdíl je v tom, že „cd / opt / && ls“ má o 6 znaků více než jen „cd / opt /“, to znamená, že bych musel stisknout ještě 6 kláves ^ - ^ U ... jsem trochu líný pro takové věci hehe.

          Proto jsem se připojil k CD + LS… LOL !!

          1.    hackloper775 řekl

            Používám také to, že výsledky filtruji podle rozšíření.

            příklad

            Mám mnoho souborů v ~ / Downloads více než 100 a chci vidět pouze .png, jak to udělat.

            Stahování CD && ls * png

            Co bych musel přidat nebo udělat, abych filtroval výsledky v jednodušším kódu?

            pozdravy

            1.    KZKG ^ Gaara řekl

              Jednoduché 😉
              Vytvoříte funkci, která je například cdlsf:
              function cdlsf { cd "$1"; ls *.$2; }

              Použití by bylo:
              cdlsf / opt / png

              Zobrazí se pouze soubory . Png en / opt /
              To znamená, že první parametr (v příkladu / opt /) bude adresář, do kterého chcete vstoupit, a druhý parametr (v příkladu png) bude přípona, kterou chcete filtrovat, když uvedete seznam adresáře.

              Další příklad, pokud chcete přejít na / home / user / Pictures a zobrazit pouze soubory, které jsou .JPG, by bylo:
              cdlsf / home / user / Pictures jpg

              ????

              To jsi chtěl, že?

              PS: Dal jsem cdlsf pro cd (enter) ls (list) f (filter) ... ale samozřejmě můžete funkci volat, jak chcete.


    3.    vůbec řekl

      zsh není POSIX a navíc to trvá déle, než začnu, takže dávám přednost tomu být teplouš, ale efektivnější

      1.    blablabla řekl

        Nejprve v zsh můžete povolit podporu POSIX. Zadruhé, spuštění trvá podle toho, kolik funkcí načtete při spuštění, takže může být tak lehké, jak chcete. Za třetí, s zsh je jeden praktičtější a efektivnější než s jakýmkoli jiným shellem. Za čtvrté, použijte jej před kritikou.

        1.    MSX řekl

          5. Když zapnete podporu POSIX, nemá smysl používat ZSH.

          Používám to už nějakou dobu, nestojí to za to, sh je krátký a Bash je perfektní, v Bash se nedá nic dělat se správnými aliasy a funkcemi.

  2.   Marco řekl

    Moc se mi to téma líbí. ve skutečnosti by měli vytvořit rozsáhlejší článek o příkazech, které lze obecně použít v terminálu a v konkrétních distribucích, jako je Chakra.

  3.   Nepříjemný řekl

    Považoval jsem to za velmi zajímavé, protože kromě výuky tohoto triku jste vysvětlili, jak jednotlivé příkazy fungují.

    Sleduji vás od doby, kdy jsem začal ve světě Linuxu (nedávno) ... a byl jsem vyzván, abych to komentoval, jen abych vám poblahopřál k článku 😉

    1.    KZKG ^ Gaara řekl

      Děkujeme, že jste se zastavili a zanechali nám komentář 😀
      Kdykoli se odvážím něco vysvětlit, rád to vysvětlím co nejjasněji ... no, vím velmi dobře, co to je číst výukové programy na internetu a vůbec nic nerozumět hahaha.

      Vítejte dvakrát ... vítejte ve světě Tux haha ​​a také vítejte na blogu 🙂
      Máte-li jakékoli dotazy, dejte nám vědět hehe.

      Zdravím a děkuji za komentář ^ ⁻ ^

  4.   Ivan řekl

    Právě jsem četl váš příspěvek z jiného webu a nemohl jsem odolat:

    Nebylo by to jednodušší, stačí vytvořit alias uvnitř .bashrc?

    alias cd = 'ls'

    1.    KZKG ^ Gaara řekl

      Vlastně to, co se snažím dosáhnout, je zadat adresář X (/ opt /… / home / user /… cokoli) a také když jej zadám, automaticky uvede obsah tohoto adresáře.

      Udělejte vše pomocí jediného kroku nebo příkazu.

      Když uděláte alias, jak uvedete, potom bych vypsal adresář, ano, ale nezadal bych ho.

      1.    Ivan řekl

        Z toho, co chápu, je cílem toho všeho udělat to, že pokud chcete například zadat „/ etc“ pomocí příkazu „cd“, po zadání vám automaticky zobrazí obsah tohoto adresáře, že?

        Pokud je to tak, můžete funkci zjednodušit na „alias“, kam do .bashrc vložíte:

        alias cd = »ls»

        S tímto v terminálu používáte:

        cd / atd

        Vstoupíte do adresáře «/ etc» a také automaticky zobrazí seznam všech souborů a adresářů, které se tam nacházejí.

        Pokud jsem nepochopil cíl, omluva 😛

        1.    KZKG ^ Gaara řekl

          Ve skutečnosti chci vstoupit do adresáře a jakmile do něj vstoupím, seznam, co obsahuje.
          Snažil jsem se, co říkáte, deklarovat, že cd = ls pomocí aliasingu, ale pro mě to nefungovalo.
          Nakonfiguruji si to sám a pak udělám:
          cd / etc /

          Ale uvádí seznam / etc /…, ale nejde do tohoto adresáře.
          Zanechávám snímek obrazovky, abyste viděli: http://img204.imageshack.us/img204/5272/cdlserror.png

          1.    Ivan řekl

            Moje chyba 😀

            Bylo zřejmé, že to tak nebude fungovat, a to i když jsem zkusil:

            alias cdls = 'cd $ 1; ls'

            Z nějakého podivného důvodu to nefunguje, pouze vypisuje adresář, ale nejde do D:

            Bash chyba? xD

            Omluva za zbytečné komentáře! 😀 A beru funkci pro svůj bashrc 😛

            1.    KZKG ^ Gaara řekl

              Alias ​​není stejný jako funkce, alias, pokud chcete, aby byl stejný jako několik příkazů, musíte použít && ... není to jako ve funkcích, že using; a psaní dalších pokynů bude fungovat pro vás.

              HAHA nah za nic, příteli, nic k omluvě 😀
              pozdravy

              PS:… sakra… jak nostalgický jsem, když vidím logo Arch…. T_T ...


          2.    Ivan řekl

            Vím, že to není stejné, ale myslel jsem si, že to bude fungovat (Chyba: P)

            Pouze to, že použití «;» funguje pro mě. namísto „&&“ uvnitř aliasu D: (Mám dva takové aliasy, čemu nerozumím, proč to nefunguje s aliasem, který jsem chtěl pro tento případ vytvořit)

            Děkuji a mimochodem, myslím, že na blogu zůstanu pod názvem „častý čtenář“ 😀 Obsah blogu se mi opravdu líbil 😛

            oooh ano, vím, někdy se oddělím od svého drahého Archa, ale nevím proč, vždy je nemožné, abych se k němu nevrátil xD

            Zdravím!

            1.    KZKG ^ Gaara řekl

              No ... Tux je záhadný, dělá věci a mnohokrát mu nerozumíme, ale má plán nebo účel pro každého ... HAHA 😀

              Radost číst, co říkáte, další uživatel Arch, který se připojí k blogu hahahaha ... potěšení 😀

              Musel jsem ho přestat používat kvůli velmi zvláštním problémům, které mi jádro dalo ... ale stále zaujímá místo v mém srdci 🙁


          3.    Ivan řekl

            lol

            Nesetkal jsem uživatele Archu, který by k distribuci nebral velkou náklonnost, má „Nevím co, co vím“: P, možná a kdyby problémy, které jsem vám dal, byly dávno, můžete přemýšlet o návratu do Archu

            Mimochodem, věděl jsem, že někde jinde jsem už četl vaše jméno (no, přezdívka, pseudonym, přezdívka, cokoli), jste součástí autorů artedeskitorio, že? 🙂
            Četl jsem jim 🙂

  5.   Hugo řekl

    Vlastně k uvedení obsahu adresáře není nutné jej zadávat, takže si nemyslím, že příklad, který jste si vybrali, je nejšťastnější, hehe. To znamená, že funkce lze použít k mnoha užitečným věcem.

    Například používám tuto funkci k vytvoření adresáře a jeho okamžitému zadání (ověření, že se používá pouze jeden parametr):

    function mkcd () {
    FNERR="Parametros incorrectos.\nUso: mkcd "
    if [ $# -eq 1 ] ; then
    mkdir -p "$1" && cd "$1"
    else
    echo -e $FNERR
    fi
    }

    1.    Hugo řekl

      Hmmm ... blog obsahoval část příkazu, pokusím se vložit neúplný řádek se značkami HTML:

      FNERR="Parametros incorrectos.\nUso: mkcd <nombre del directorio a crear>"

    2.    KZKG ^ Gaara řekl

      To, co jsem chtěl udělat, bylo zachránit se o krok.
      Jinými slovy, předpokládejme, že chci zadat adresář (/ etc / squid /) a poté upravit soubor v tomto adresáři, a nepamatuji si název souboru.

      Kroky by normálně byly:
      cd / etc / squid /
      ls
      nano file.conf

      Ale s tímto tipem, který navrhuji, převádím první 2 kroky pouze na 1, takže jednoduše provedením:
      cd / etc / squid /

      Automaticky také vypíše obsah adresáře pro mě.
      Je to prostě o uložení kroku 😀

      Rozumíš mi?

      ... je pro mě těžké vysvětlit haha.

      1.    Hugo řekl

        Ne, vysvětlení nemělo žádný problém, myslel jsem, že příklad, který jste vybrali pro ilustraci špičky, nebyl ideální, protože lze vytvořit jednoduchý adresář „ls“.

        Ve skutečnosti, jakmile jsem viděl funkci, pochopil jsem účel. Také používám různé funkce v mém .bash_aliasesNapříklad toto je jeden, který hodně používám ke správě historie:

        h () {
        if [ $# -eq 0 ] ; then
        history | tail -n 25 | less
        elif [ $# -eq 1 ] ; then
        history | egrep -i "$1" | less
        else
        echo -e "Parametros incorrectos."
        fi
        }

        (S touto funkcí, pokud jsem jen uvedl h Dostávám posledních 25 příkazů, ale pokud bych například dal h montáž Dostávám poslední příkazy týkající se sestav).

        1.    KZKG ^ Gaara řekl

          Beru tvoji roli hehehe ... zaslouží si ji prostudovat 😀

        2.    Anibal řekl

          skvělá vaše funkce! dík

        3.    MSX řekl

          +1

  6.   hackloper775 řekl

    KZKG ^ Gaara

    Velmi dobrá odpověď, sloužila mi velmi dobře, už jsem na ni nemohl reagovat již výše

    Nyní použiji cdlsf ke zvýšení produktivity, což je velmi dobré jméno pro příkaz 😀

    pozdravy

  7.   Christopher castro řekl

    Když nastavíte čas terminálu, udělal jsem to už dříve, byl to bashrc, který jsem stáhl, ale nepamatuji si, jak se to jmenovalo.

  8.   Abel řekl

    Dobrý vstup, trik jsem neznal, uvedu ho do praxe, abych zjistil, jak to funguje. xP

    Zdravím.

    1.    Abel řekl

      Bylo by hezké, kdyby byl přidán můj prohlížeč. xD

      Zdravím vás znovu. xD

      1.    KZKG ^ Gaara řekl

        Jaký prohlížeč používáte?
        V dalším komentáři jsem viděl, že jste použili Firefox 🙂

        1.    Abel řekl

          Ano, používám Firefox, ale je toho čím dál méně a už to není můj hlavní prohlížeč, používám dwb a bylo by dobré, kdyby se dal přidat. xP

          Zdravím.

  9.   Guillermo řekl

    A nedělá tento alias problémy se skriptováním, když se snažíte jen na cd a také na výstup ls? Obzvláště dávám přednost vytváření aliasů se jmény, která jiné spustitelné soubory nepoužívají, protože to není poprvé, co mi dělá problémy ...

  10.   yrigol řekl

    Jak získáte přerušované čáry a čas po každém příkazu?

  11.   MSX řekl

    Můj příspěvek:
    alias ldir = 'ls | grep -v \\. ' ## seznam pouze adresářů (pozor, nepřejmenovávejte to na ld, protože existuje příkaz GNU / Linux s tímto názvem)
    -
    alias ll = 'ls -lah –color | awk '\ »{k = 0; for (i = 0; i <= 8; i ++) k + = ((substr ($ 1, i + 2,1) ~ / [rwx] /) * 2 ^ (8-i)); if (k) printf ("% 0o", k); tisk} '\' ''

    Zajímavostí tohoto aliasu je awk, který analyzuje výstup ls, result? Zobrazuje oprávnění souboru v osmičkovém formátu vedle rwx, pro mě nekonečně praktičtější a rychlejší než písmena.

    -
    alias lg = 'ls -lah –color | awk '\' '{k = 0; for (i = 0; i <= 8; i ++) k + = ((substr ($ 1, i + 2,1) ~ / [rwx] /) * 2 ^ (8- i)); if (k) printf ("% 0o", k); tisk} '\' '| grep -i'

    Varianta alias výše. Na konec jsem přidal grep, takže tímto způsobem, když udělám například:
    $lgzip
    Zobrazit mi kromě osmičkových oprávnění atd. Pouze soubory, které obsahují zip v libovolné z jeho forem (všimněte si -i na konci) atd.
    -
    alias grep = 'grep –color = auto' ## vybarví grep odpovídající
    -

    Mám mnoho dalších, o které se mohu podělit, ale toto malé místo mě dělá těsným xD

    @KZKG, zaměstnanci: Myslíte si, že otevřete příspěvek na blogu nebo na fóru (na které odkazujeme pokaždé, když je zveřejněn tip týkající se konzoly), abyste shromáždili všechny tyto malé perly?

    Zdravím!

    1.    KZKG ^ Gaara řekl

      Pod odkazem to myslíte? - » https://blog.desdelinux.net/tag/bash

  12.   MSX řekl

    Nic jsem neřekl, nic jiného není potřeba, všechno je perfektně označeno!

  13.   Franklin Rodriguez řekl

    Jaký chilský, to je velmi dobrá funkce!