Ekstremt nyttig tips hvis du bruker terminalen (Unite command CD med LS ... og mange flere)

Jeg er en av dem som bruker mye av tiden terminal (konsoll, bash, shell, hva du enn vil kalle det), av X- eller Y-grunner, må jeg stadig bytte katalog og jobbe med det 🙂

I de aller fleste tilfeller er katalogendring (For eksempel: cd / opt /) og jeg vil også vite hva som er i den katalogen, å vite dette andre jeg bruker ls.

Det vil si at det ville være slik:

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

Jeg har sagt det mange ganger ... Jeg er ganske lat, jeg liker å gjøre minst mulig trinn i terminalen. Derfor har jeg oppnådd akkurat det jeg ønsket etter mye eksperimentering.

Se følgende, som ikke er noe annet enn at jeg går inn / opt / med den enkle kommandoen cd / opt /:

Som du kan se, i ett trinn (cd / opt /) Jeg går inn i katalogen og lister OGSÅ opp innholdet i katalogen, og ... som om det ikke var nok, viser det det for meg med farger 😀

Her er eksemplet på at jeg har tilgang /etc/ med cd / etc/:


Fargene er enkle å forstå:

Ingen farge = Filer
Farge blå = Mapper
Grønn farge = Filer med utførelsesrettigheter

Men la oss gå videre til hoved ... Hvordan pokker kan jeg også bruke bare cd til automatisk å liste opp katalogen jeg får tilgang til?

Arkivet vårt .bashrc (ligger i hjemmet eller den personlige mappen) vil hjelpe oss med å gjøre dette, må vi først erklære en funksjon, som vi vil kalle CDLS:

funksjon cdls {cd "$ 1"; ls –farge;}

Vi setter denne linjen på hver side av vår .bashrc ... her er kommandoen for å gjøre det:

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

Du trenger IKKE å gjøre det med denne kommandoen, målet er at filen .bashrc inneholder denne linjen, så bare rediger denne filen med din foretrukne tekstredigerer (musematte, kate, gedit, nano, vi osv) og legg den til.
De lagrer endringen, lukker terminalen de har åpen og åpner en ny.

I den vil vi skrive følgende og trykke [Tast inn]:

cdls $HOME

Dette burde være nok til å få tilgang til den personlige mappen vår i terminalen, og den vil også vise innholdet (med farger og alt).

Jeg mener, hva CDLS det gjør allerede det vi vil ... nå kan vi bare oppnå det samme, men med cd

For dette legger vi til i filen .bashrc følgende linje:

alias cd='cdls'

Dette vil gjøre når vi skriver cd ... Handlingen som vi definerer vil faktisk bli utført for CDLS

Jeg lar deg kommandoen som automatisk vil sette denne linjen over:

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

Men akkurat som jeg sa før, er målet å legge til denne andre linjen i samme fil, du kan bruke tekstredigeringsprogrammet du ønsker til det.

Når dette er gjort, lukker du terminalen og åpner en ny ... i den skriver du følgende og trykker på [Tast inn]:

cd /etc/

Og bingo, de vil komme inn / Etc/ og også innholdet i denne mappen vil bli oppført, og med farger 😉 (akkurat som på et forrige bilde)

Hva er det nyttig for? 😀

For nysgjerrige som lurer på hva betyr denne funksjonen? ... Jeg lar deg den enkle forklaringen:

funksjon cdls = Her definerer vi at vi lager en ny funksjon, og den vil kalles cdls
cd "$ 1" = Og hva denne funksjonen vil gjøre (den vil gjøre hver gang vi ringer, bruker eller utfører den) er å gjøre en cd (enter) mot den første parameteren, det vil si ... - »« cd / home / »,« $ 1 »betyr« hva at vi skriver etter cd ", i dette eksemplet er den første parameteren" / home / ".
; = Dette betyr at ordren slutter der, eller handling som skal utføres ... men en funksjon kan ha flere handlinger å gjøre, og vi vil definere en andre nå.
ls –farge; = Det betyr at i tillegg til enhver handling som er erklært før, vil den også lage et "ls" der vi befinner oss, og "ls" vil gjøre det med farge (–farge).

Den siste tingen ... de smarteste, de vil innse at denne logikken (tar en funksjon og konfigurerer den til å utføre flere handlinger) har mye, mye potensial, for eksempel ... hvis jeg vil gå inn i en mappe, og også slette en annen, det vil si jeg vil ha gå inn på /hjem/ og også slette / opt / temp / funksjonen for dette vil være:

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

Og å skrive inn en terminal asdasd / hjem / / opt / test / fordi det vil gå inn i den første parameteren (/hjem/) og slett den andre (/ opt / temp /).

Uansett, dette har virkelig MYE potensial hehe, det er opp til deg å utnytte det så mye du kan.

Hvis du er i tvil, spørsmål, klage eller forslag, vil jeg gjerne hjelpe deg, jeg er ingen ekspert langt, men i det minste liker jeg å hjelpe 😀

Hilsen


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.

  1.   blablabla sa

    Og alt dette for ikke å bruke Zsh.

    1.    KZKG ^ Gaara sa

      Jeg kjente ham ikke egentlig 😉
      Takk for tipset, jeg vil holde øye med det.

      Imidlertid finner ikke kunnskap sted ... jo flere tips og kunnskap man klarer å tilegne seg, jo bedre, tror du ikke? 🙂

      1.    MSX sa

        Zsh er for skeive, menn bruker sh !!! >: D

        I virkeligheten

        1.    KZKG ^ Gaara sa

          HAHAHA nei nei nei ... Jeg tror ikke det, og ikke si det sånn heller, for noen kan bli fornærmet.
          Alle bruker det som passer best, det de liker best 😀

          1.    MSX sa

            ????

            En app som jeg bruker mye for å navigere i systemet mitt er Autojump:
            https://github.com/joelthelion/autojump/blob/master/README.md

        2.    blablabla sa

          Menn er praktiske, kvinner og skeive er de som liker å komplisere livene deres. Ingen ytterligere avklaring er nødvendig.

          1.    KZKG ^ Gaara sa

            Prøv å ikke kommentere seksuelle preferanser ja? ... Det har vært ubehagelige situasjoner for denne typen ting.

            Håper det er forståelig.

          2.    blablabla sa

            Den avklaringen bør være for @msx. Ideer er bygget med sannferdige, objektive og rasjonelle uttalelser, ikke med fornærmelser eller uhøflighet.

            1.    KZKG ^ Gaara sa

              I kommentaren min ovenfor ba jeg ham om ikke å si disse tingene (tilgi overtalligheten).
              Og nå sier jeg ja igjen, men ikke rettet mot deg bare spesifikt, det er gyldig for alle.

              Ikke ta feil vei, intensjonen var ikke å få noen til å føle seg ukomfortable eller dårlige, jeg prøver bare å unngå misforståelse 🙂


          3.    Martin sa

            Hahaha, jeg så nettopp denne kommentaren!

            «Den avklaringen bør være for @msx. ideer er konstruert med sannferdige, objektive og rasjonelle uttalelser, ikke fornærmelser eller frekkhet. "
            Slutt å spise frokost med sitroner, du ser allerede ut som Franklin på $ 100-regningen: http://www.watchingamerica.com/frankfurterallgemeine000009.shtml

            ????

        3.    Abel sa

          Zsh er det for skeive? Vel, jeg tror jeg liker å være en skeiv da, for siden jeg lærte å bruke den, har jeg ikke stoppet, og jeg tenker ikke å gjøre det. o_____o

          Bruker menn sh?, Den kommentaren er rar fra noen som har en bashrc full av ting, så jeg vil anta at du er en kvinne. xP

          1.    KZKG ^ Gaara sa

            Dette var det jeg ikke ønsket å komme til. Vær så snill, la oss la kampen være her, ja? 🙂
            Alle bruker hva de vil ... sh, zsh, eller hva de vil, og også ... alle har de seksuelle preferansene de vil ha, det har allerede vært kamper her for slike ting 🙁

          2.    MSX sa

            hahaha xD

            I det siste har zsh utviklet seg mye, så snart jeg har tid -ha, hvor villfarende! - Jeg skal lese så mye jeg kan av dokumentasjonen for å dra nytte av det og gjøre endringen 🙂

            Nå som det er seriøst: det eneste som plager meg litt med zsh er at det ikke er 100% kompatibelt med Bash, så hvis vi bruker zsh i skriptene våre og tar ut hele potensialet, er det veldig, veldig mulig at nevnte skript mislykkes i bash, derimot På den annen side, selv om vi bruker zsh, skriver vi skallskriptene våre i bash, det er bortkastet å bruke zsh ... o_O

            Allikevel tror jeg zsh er verdt det. Apropos skall, kjenner du fisk? Prosjektet steg fra asken, nå kalles det fiskfisk og de utvikler det veldig raskt.

    2.    hackloper775 sa

      Jeg tror zsh skal skrives da terminalen er veldig skiftende på små og store bokstaver

      Selv om cd && ls / rute også er gyldig

      Selv om det er lenger å skrive

      Hilsen 😀

      1.    hackloper775 sa

        Jeg tok feil, fingeren min gikk av

        Jeg sa at med dette er det oppført, og en katalog er tilgjengelig

        cd && ls / sti

        men bare gjør deg klar

        men for å bare liste er det brukt

        ls / sti

        kommandoen som tilsvarer

        cd / path && ls

        Hilsen

        1.    KZKG ^ Gaara sa

          Å bruke && det samme oppnås faktisk 😀
          Den eneste forskjellen er at "cd / opt / && ls" har 6 flere tegn enn bare "cd / opt /", det vil si at jeg måtte trykke 6 flere taster ^ - ^ U ... Jeg er litt lat for ting som det hehe.

          Derfor ble jeg med på cd + ls ... LOL !!

          1.    hackloper775 sa

            Det jeg også bruker er at jeg filtrerer resultatene etter utvidelser.

            Ejemplo

            Jeg har mange filer i ~ / Nedlastinger mer enn 100, og jeg vil bare se .png for å gjøre dette.

            cd Nedlastinger && ls * png

            Hva må jeg legge til eller gjøre for å filtrere resultatene i enklere kode?

            Hilsen

            1.    KZKG ^ Gaara sa

              Enkelt 😉
              Du oppretter en funksjon som for eksempel er cdlsf:
              function cdlsf { cd "$1"; ls *.$2; }

              Å bruke det ville være:
              cdlsf / opt / png

              Og dette vil bare vise deg filene . Png en / opt /
              Det vil si den første parameteren (i eksemplet / opt /) vil være katalogen du vil ha tilgang til, og den andre parameteren (i eksemplet png) vil være utvidelsen du vil filtrere når du viser katalogen.

              Et annet eksempel, hvis du vil gå til / home / user / Pictures og bare se filene som er .JPG, ville det være:
              cdlsf / hjem / bruker / Bilder jpg

              ????

              Dette var det du ønsket, ikke sant?

              PS: Jeg la cdlsf for cd (enter) ls (liste) f (filter) ... men åpenbart kan du ringe funksjonen hva du vil.


    3.    noensinne sa

      zsh er ikke POSIX, og på toppen av det hele tar det lengre tid å starte, så jeg foretrekker å være fag, men mer effektiv

      1.    blablabla sa

        Først i zsh kan du aktivere POSIX-støtte. For det andre tar det tid å starte i henhold til hvor mange funksjoner du laster inn ved oppstart, slik at den kan være så lett du vil. For det tredje, med zsh er man mer praktisk og effektiv enn med noe annet skall. For det fjerde, bruk den før du kritiserer.

        1.    MSX sa

          5. Når du slår på POSIX-støtte, er det ikke lenger fornuftig å bruke ZSH.

          Jeg har brukt den en stund, det er ikke verdt det, sh er kort og Bash er perfekt, det er ingenting du ikke kan gjøre i Bash med de riktige aliasene og funksjonene.

  2.   Marco sa

    Jeg liker virkelig faget. faktisk, de bør lage en mer omfattende artikkel om kommandoene som kan brukes generelt i terminalen og i spesifikke distroer, som Chakra.

  3.   rytter sa

    Jeg syntes det var veldig interessant, siden bortsett fra å lære dette trikset, har du forklart hvordan hver kommando fungerer.

    Jeg har fulgt deg siden jeg startet i Linux-verdenen (ikke lenge siden ...) og jeg har blitt oppfordret til å kommentere bare for å gratulere deg med artikkelen 😉

    1.    KZKG ^ Gaara sa

      Takk for at du var innom og etterlot oss kommentaren 😀
      Hver gang jeg våger å forklare noe, liker jeg å gjøre det så klart som mulig ... vel, jeg vet veldig godt hva det er å lese veiledninger på internett og ikke forstå noe i det hele tatt hahaha.

      Velkommen to ganger ... velkommen til Tux-verdenen haha, og også velkommen til bloggen 🙂
      Hvis du har spørsmål, vet du, gi oss beskjed hehe.

      Hilsen og takk for kommentaren ^ ⁻ ^

  4.   Ivan sa

    Jeg har nettopp lest innlegget ditt fra et annet nettsted, og jeg kunne ikke motstå:

    Ville det ikke vært enklere, bare lag et alias inne i .bashrc?

    alias cd = 'ls'

    1.    KZKG ^ Gaara sa

      Egentlig det jeg prøver å oppnå, er å gå inn i en katalog X (/ opt / ... / home / user / ... hva som helst), og når jeg går inn i den, viser den automatisk innholdet i den katalogen.

      Lag det hele med ett enkelt trinn eller kommando.

      Å lage et alias som du indikerer, da vil det føre til en liste over katalogen, ja, men det vil ikke komme inn i det.

      1.    Ivan sa

        Fra det jeg forstår er målet med å gjøre alt dette at hvis du for eksempel vil skrive inn "/ etc" gjennom kommandoen "cd", når du går inn, vil den automatisk vise deg innholdet i den katalogen, ikke sant?

        I så fall kan du forenkle funksjonen til et "alias", der inne i .bashrc du setter:

        alias cd = »ls»

        Med dette, når du er i en terminal, bruker du:

        cd / etc

        Du kommer inn i katalogen «/ etc», og den vil også automatisk vise alle filene og katalogene som er der.

        Hvis jeg misforsto målet, en unnskyldning 😛

        1.    KZKG ^ Gaara sa

          Jeg vil faktisk legge inn en katalog og en gang inne i den, liste opp hva den inneholder.
          Jeg prøvde det du sier, og erklærte at cd = ls ble alias, men det fungerte ikke for meg.
          Jeg konfigurerer det selv, og så gjør jeg:
          cd / etc /

          Men det lister opp / etc / ... men det går ikke inn i den katalogen.
          Jeg legger igjen et skjermbilde slik at du kan se: http://img204.imageshack.us/img204/5272/cdlserror.png

          1.    Ivan sa

            Min feil 😀

            Det var åpenbart at det ikke kom til å fungere slik, og selv da jeg prøvde en:

            alias cdls = 'cd $ 1; ls'

            Av en eller annen merkelig grunn virker det ikke, det viser bare katalogen, men går ikke inn i D:

            Bash feil? xD

            En unnskyldning for meningsløse kommentarer! 😀 Og jeg tar funksjonen for min bashrc 😛

            1.    KZKG ^ Gaara sa

              Et alias er ikke det samme som en funksjon, et alias hvis du vil at det skal være det samme som flere kommandoer, må du bruke && ... det er ikke som i funksjoner at det å bruke; og å skrive flere instruksjoner vil fungere for deg.

              HAHA nah for ingenting venn, ingenting å unnskylde 😀
              Hilsen

              PS: ... jævla ... hvor nostalgisk jeg blir når jeg ser Arch-logoen .... T_T ...


          2.    Ivan sa

            Jeg vet at det ikke er det samme, men jeg skjønte at det ville fungere (Feil: P)

            Bare det å bruke «;» fungerer for meg. i stedet for "&&" inne i et alias D: (Jeg har to aliaser som dette, det jeg ikke forstår er hvorfor det ikke fungerer med aliaset jeg ønsket å lage for denne saken)

            Takk, og forresten, jeg tror jeg vil holde meg på bloggen under tittelen "hyppig leser" 😀 Jeg likte virkelig innholdet på bloggen 😛

            oooh ja jeg vet, noen ganger skiller jeg meg fra min kjære Arch, men jeg vet ikke hvorfor, det er alltid umulig for meg å ikke komme tilbake til ham xD

            Greetings!

            1.    KZKG ^ Gaara sa

              Vel ... Tux er mystisk, han gjør ting og mange ganger forstår vi ham ikke, men han har en plan eller et formål for alle ... HAHA 😀

              En glede å lese hva du sier, en annen Arch-bruker som blir med på bloggen hahahaha ... en glede 😀

              Jeg måtte slutte å bruke den på grunn av rare problemer som kjernen ga meg ... men den opptar fortsatt et sted i hjertet mitt my


          3.    Ivan sa

            LOL

            Jeg har ikke møtt Arch-bruker som ikke tar stor hengivenhet for distribusjonen, han har en "Jeg vet ikke hva, hva vet jeg": P, kanskje og hvis problemene jeg ga deg for lenge siden, kan du tenke på å returnere til Arch

            Forresten, jeg visste at jeg på et annet sted allerede hadde lest navnet ditt (vel, kallenavn, pseudonym, kallenavn, hva som helst), du er en del av forfatterne av stasjonær kunst, ikke sant? 🙂
            Jeg pleide å lese for dem 🙂

  5.   Hugo sa

    For å liste innholdet i en katalog er det ikke nødvendig å gå inn i den, så jeg tror ikke at eksemplet du har valgt er det lykkeligste, hehe. Når det er sagt, kan funksjoner brukes til mange nyttige ting.

    For eksempel bruker jeg denne funksjonen til å opprette en katalog og angi den umiddelbart (bekrefter at bare en parameter brukes):

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

    1.    Hugo sa

      Hmmm ... bloggen spiste en del av kommandoen, jeg prøver å sette den ufullstendige linjen med HTML-koder:

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

    2.    KZKG ^ Gaara sa

      Det jeg ønsket å oppnå var å spare et skritt.
      Anta med andre ord at jeg vil gå inn i en katalog (/ etc / squid /) og deretter redigere en fil i den katalogen, og jeg husker ikke navnet på filen.

      Trinnene vil normalt være:
      cd / etc / blekksprut /
      ls
      nano file.conf

      Men med dette tipset jeg foreslår, konverterer jeg de to første trinnene til bare 2, slik at bare ved å gjøre:
      cd / etc / blekksprut /

      Den vil også automatisk vise innholdet i katalogen for meg.
      Det handler rett og slett om å lagre en trinnpaso

      Du forstår meg?

      ... det er vanskelig for meg å forklare haha.

      1.    Hugo sa

        Nei, forklaringen hadde ikke noe problem, jeg mente at kanskje ikke eksemplet du valgte for å illustrere tipset var ideelt, siden man kan lage en enkel "ls-katalog".

        Så snart jeg så funksjonen, forstod jeg egentlig formålet. Jeg bruker også forskjellige funksjoner i min .bash_aliaserDette er for eksempel en jeg bruker mye for å administrere historikken:

        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
        }

        (Med denne funksjonen, hvis jeg bare setter det h Jeg får de siste 25 kommandoene, men hvis jeg for eksempel setter det h montering Jeg får de siste kommandoene knyttet til forsamlinger).

        1.    KZKG ^ Gaara sa

          Jeg tar rollen din hehehe ... det fortjener å studere den 😀

        2.    Anibal sa

          flott funksjon! Takk

        3.    MSX sa

          +1

  6.   hackloper775 sa

    KZKG ^ Gaara

    Veldig bra svar det tjente meg veldig bra, jeg kunne ikke svare på det allerede ovenfor

    Nå vil jeg bruke cdlsf for å øke produktiviteten min, veldig godt navn for en kommando 😀

    Hilsen

  7.   Christopher castro sa

    Som du gjør for å stille inn tiden til terminalen, hadde jeg allerede gjort det før, det var en bashrc som jeg lastet ned, men jeg husker ikke hva den het.

  8.   Abel sa

    God inngang, jeg visste ikke trikset, jeg vil sette det ut i praksis for å se hvordan det fungerer. xP

    Hilsener.

    1.    Abel sa

      Det ville være fint om nettleseren min ble lagt til. xD

      Hilsen, igjen. xD

      1.    KZKG ^ Gaara sa

        Hvilken nettleser bruker du?
        Vel, i en annen kommentar så jeg at du brukte Firefox 🙂

        1.    Abel sa

          Ja, jeg bruker Firefox, men det blir stadig færre, og det er ikke lenger min hovedleser, jeg bruker dwb og det ville være fint om det kunne legges til. xP

          Hilsener.

  9.   Bill sa

    Og å gjøre dette aliaset vil ikke føre til problemer i skript når du prøver å bare cd og også sende ut ls? Jeg foretrekker spesielt å lage aliaser med navn som andre kjørbare filer ikke bruker, fordi det ikke er første gang det gir meg problemer ...

  10.   yrigol sa

    Hvordan får du de stiplede linjene og tiden etter hver kommando?

  11.   MSX sa

    Mitt bidrag:
    alias ldir = 'ls | grep -v \\. ' ## liste bare katalogene (vær forsiktig, ikke gi den nytt navn til ld da det er en GNU / Linux-kommando med det navnet)
    -
    alias ll = 'ls -lah –farge | awk '\ »{k = 0; for (i = 0; i <= 8; i ++) k + = ((substr ($ 1, i + 2,1) ~ / [rwx] /) * 2 ^ (8-i )); hvis (k) printf ("% 0o", k); print} '\' ''

    Det interessante med dette aliaset er plaget som analyserer resultatet av ls, resultat? Det viser filtillatelsene i oktalt format ved siden av rwx, for meg uendelig mer praktisk og raskere enn bokstaver.

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

    Variant av aliaset ovenfor. Jeg la til en grep på slutten slik at på denne måten når jeg for eksempel gjør:
    $ LG glidelås
    Vis meg bare filene som inneholder zip i noen av skjemaene (legg merke til -i på slutten) i tillegg til de oktale tillatelsene, etc.
    -
    alias grep = 'grep –color = auto' ## farger grep-matching
    -

    Jeg har mange flere å dele, men dette lille stedet gjør meg tett xD

    @KZKG, stab: Tror du at du åpner et innlegg på bloggen eller på forumet (som vi lenker til hver gang et tips relatert til konsollen blir publisert) for å samle alle disse små perlene?

    Greetings!

    1.    KZKG ^ Gaara sa

      Med lenke mener du dette? - » https://blog.desdelinux.net/tag/bash

  12.   MSX sa

    Jeg sa ikke noe, det er ikke noe annet som trengs, alt er perfekt merket!

  13.   Franklin Rodriguez sa

    For en chilener, det er en veldig god funksjon!