Ekstremt nyttigt tip, hvis du bruger terminalen (Deltag i CD-kommando med LS ... og mange flere)

Jeg er en af ​​dem, der bruger meget af tiden terminal (konsol, bash, shell, uanset hvad du vil kalde det), af X- eller Y-grunde skal jeg konstant skifte bibliotek og arbejde på det 🙂

I langt de fleste tilfælde skifter biblioteksændring (For eksempel: cd / opt /) og også vil jeg vide, hvad der er i denne mappe, at kende dette sekund, jeg bruger ls.

Det vil sige, det ville være sådan:

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

Jeg har sagt det mange gange... Jeg er ret doven, jeg kan godt lide at lave så få trin som muligt i terminalen, derfor har jeg efter en masse eksperimenter opnået præcis det jeg ville.

Se følgende, hvilket ikke er andet end jeg går ind / Opt / med den enkle kommando cd / opt /:

Som du kan se, i et trin (cd / opt /) Jeg går ind i biblioteket og OGSÅ viser det indholdet i den mappe, og ... som om det ikke var nok, viser det det for mig med farver 😀

Her er eksemplet med, at jeg åbner /etc/ med cd / osv/:


Farverne er enkle at forstå:

Ingen farve = Filer
Farve blå = Mapper
Grøn farve = Filer med eksekveringstilladelser

Men lad os gå videre til de vigtigste ... Hvordan kan jeg også bare bruge cd til automatisk at liste den mappe, som jeg har adgang til?

Vores arkiv .bashrc (placeret i vores hjem eller personlige mappe) hjælper os med at gøre dette, skal vi først erklære en funktion, som vi vil kalde CDLS:

funktion cdls {cd "$ 1"; ls –farve;}

Vi sætter denne linje på begge sider af vores .bashrc ... her er kommandoen til at gøre det:

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

Du behøver IKKE nødvendigvis at gøre det med denne kommando, målet er, at filen .bashrc indeholder denne linje, så rediger bare denne fil med din foretrukne teksteditor (musemåtte, kate, gedit, nano, vi osv) og tilføj det.
De gemmer ændringen, lukker terminalen, de har åbnet, og åbner en ny.

I det vil vi skrive følgende og trykke på [Gå ind]:

cdls $HOME

Dette skal være nok til at få adgang til vores personlige mappe i terminalen, og den vil også angive dens indhold (med farver og alt).

Jeg mener, hvad CDLS det gør allerede, hvad vi vil ... nu kan vi kun opnå det samme, men med cd

Til dette tilføjer vi i filen .bashrc følgende linje:

alias cd='cdls'

Dette vil gøre, når vi skriver cd ... Den handling, som vi definerer, vil faktisk blive udført for CDLS

Jeg forlader kommandoen, der automatisk placerer denne forrige linje:

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

Men ligesom jeg sagde før, er målet at tilføje denne anden linje til den samme fil, du kan bruge teksteditoren efter eget valg til den.

Når dette er gjort, skal du lukke terminalen og åbne en ny ... i den skal du skrive følgende og trykke på [Gå ind]:

cd /etc/

Og bingo, de kommer ind / Etc/ og også indholdet af denne mappe vil blive vist, og med farver 😉 (ligesom i et tidligere foto)

Hvad er det nyttigt til? 😀

For de nysgerrige, der spekulerer på, hvad betyder denne funktion? ... Jeg efterlader dig den enkle forklaring:

funktion cdls = Her definerer vi, at vi opretter en ny funktion, og den kaldes cdls
cd "$ 1" = Og hvad denne funktion vil gøre (den vil gøre hver gang vi kalder, bruger eller udfører den) er at lave en cd (enter) mod den første parameter, det vil sige ... - »« cd / home / », den« $ 1 »betyder« hvad vi skriver efter cd ", i dette eksempel er den første parameter" / home / ".
; = Dette betyder, at ordren slutter der, eller handling, der skal udføres ... men en funktion kan have flere handlinger at gøre, og vi definerer en anden nu.
ls –farve; = Det betyder, at det ud over enhver handling, der er erklæret før, også opretter et "ls", hvor vi er placeret, og "ls" vil gøre det med farve (–farve).

Sidste ting... de smarteste vil indse, at denne logik (at tage en funktion og konfigurere den til at udføre flere handlinger) har en masse, en masse potentiale, for eksempel... hvis jeg vil indtaste en mappe og også slette en anden, det vil sige, jeg vil indtaste en mappe /hjem/ og også slette / opt / temp / funktionen til dette ville være:

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

Og at skrive i en terminal asdasd / hjem / / opt / test / det ville, fordi det vil indtaste den første parameter (/hjem/) og slet den anden (/ opt / temp /).

Under alle omstændigheder har dette virkelig MEGET potentiale hehe, det er op til dig at udnytte det så meget som muligt.

Hvis du er i tvivl eller spørgsmål, klager eller forslag, hjælper jeg dig gerne, jeg er på ingen måde ekspert, men jeg vil i hvert fald gerne hjælpe 😀

hilsen


54 kommentarer, lad dine

Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.

  1.   blablabla sagde han

    Og alt dette for ikke at bruge Zsh.

    1.    KZKG ^ Gaara sagde han

      Jeg kendte ham ikke rigtig 😉
      Tak for tipet, jeg holder øje med det.

      Imidlertid finder viden ikke sted ... jo flere tip og viden man formår at tilegne sig, jo bedre synes du ikke? 🙂

      1.    MSX sagde han

        Zsh er til queers, mænd bruger sh !!! >: D

        I virkeligheden

        1.    KZKG ^ Gaara sagde han

          HAHAHA nej nej nej ... Jeg tror ikke det, og sig det heller ikke sådan, for nogle kan blive fornærmet.
          Alle bruger det, der er bedst for dem, hvad de kan lide mest 😀

          1.    MSX sagde han

            😉

            En app, som jeg bruger meget til at navigere i mit system, er Autojump:
            https://github.com/joelthelion/autojump/blob/master/README.md

        2.    blablabla sagde han

          Mænd er praktiske, kvinder og skeive er dem, der kan lide at komplicere deres liv. Der kræves ingen yderligere afklaring.

          1.    KZKG ^ Gaara sagde han

            Prøv ikke at kommentere seksuelle præferencer ja? ... Der har været ubehagelige situationer for denne slags ting.

            Håber det er forståeligt.

          2.    blablabla sagde han

            Denne afklaring skal være @msx. Idéer er bygget med sandfærdige, objektive og rationelle udsagn, ikke med fornærmelser eller uhøflighed.

            1.    KZKG ^ Gaara sagde han

              I min kommentar ovenfor bad jeg ham om ikke at sige disse ting (tilgiv redundansen).
              Og nu siger jeg ja igen, men ikke kun rettet mod dig, det er gyldigt for alle.

              Tag det ikke den forkerte måde, hensigten var ikke at få nogen til at føle sig ubehagelige eller dårlige, jeg prøver bare at undgå misforståelse 🙂


          3.    Martin sagde han

            Hahaha, jeg så lige denne kommentar!

            «Denne afklaring burde være for @msx. ideer er konstrueret med sandfærdige, objektive og rationelle udsagn, ikke med fornærmelser eller uhøflighed. "
            Stop med at spise morgenmad med citroner mand, du ser allerede ud som Franklin på $ 100-regningen: http://www.watchingamerica.com/frankfurterallgemeine000009.shtml

            ????

        3.    Abel sagde han

          Nå, jeg tror, ​​jeg kan godt lide at være queer da, for siden jeg lærte at bruge det, er jeg ikke stoppet, og det har jeg ikke tænkt mig at gøre. o_____o

          Bruger mænd sh?, Den kommentar er underlig, der kommer fra nogen, der har en bashrc fuld af ting, så jeg antager, at du er en kvinde. xP

          1.    KZKG ^ Gaara sagde han

            Dette er, hvad jeg ikke ønskede at komme til. Lad os forlade kampen her, ja? 🙂
            Alle bruger hvad de vil ... sh, zsh, eller hvad de vil, og også ... alle har de seksuelle præferencer, de vil have, der har allerede været kamp her for ting som det 🙁

          2.    MSX sagde han

            hahaha xD

            For nylig har zsh udviklet sig meget, så snart jeg har tid - ha, hvor vildfarende! - Jeg vil læse så meget jeg kan af dokumentationen for at drage fordel af det og foretage ændringen 🙂

            Nu taler vi seriøst: det eneste, der generer mig lidt ved zsh er, at det ikke er 100% kompatibelt med Bash, så hvis vi bruger zsh i vores scripts, der udnytter sit fulde potentiale, er det meget, meget muligt, at det nævnte script fejler på den anden side bash På den anden side, selvom vi bruger zsh, skriver vi vores shell-scripts i bash, er det spild at bruge zsh ... o_O

            Alligevel synes jeg, det er værd at zsh. Apropos skal, kender du fisk? Projektet steg fra asken, nu kaldes det fiskfisk, og de udvikler det meget hurtigt.

    2.    hackloper775 sagde han

      Jeg synes, at zsh skal skrives, da terminalen er meget store og små bogstaver

      Selvom cd && ls / rute også er gyldig

      Selvom det er længere at skrive

      Hilsner 😀

      1.    hackloper775 sagde han

        Jeg tog fejl, min finger slukkede

        Jeg siger, at med dette er det opført, og der er adgang til en mappe

        cd && ls / sti

        men bare gør dig klar

        selvom det kun bruges til at liste det

        ls / sti

        kommandoen, der svarer til, er

        cd / sti && ls

        hilsen

        1.    KZKG ^ Gaara sagde han

          Brug && det samme opnås faktisk 😀
          Den eneste forskel er, at "cd / opt / && ls" har 6 flere tegn end bare "cd / opt /", det vil sige, jeg bliver nødt til at trykke på 6 flere taster ^ - ^ U ... jeg er lidt doven for ting som det hehe.

          Derfor sluttede jeg mig til cd + ls ... LOL !!

          1.    hackloper775 sagde han

            Hvad jeg også bruger er, at jeg filtrerer resultaterne efter udvidelser.

            Ejemplo

            Jeg har mange filer i ~ / Downloads mere end 100, og jeg vil kun se .png-filerne for at gøre dette.

            cd Downloads && ls * png

            Hvad skal jeg tilføje eller gøre for at filtrere resultaterne i enklere kode?

            hilsen

            1.    KZKG ^ Gaara sagde han

              Simpelt 😉
              Du opretter en funktion, der f.eks. cdlsf:
              function cdlsf { cd "$1"; ls *.$2; }

              At bruge det ville være:
              cdlsf / opt / png

              Og dette vil kun vise dig filerne . Png en / Opt /
              Det vil sige den første parameter (i eksemplet / Opt /) ville være den mappe, du vil have adgang til, og den 2. parameter (i eksemplet png) ville være den udvidelse, du vil filtrere, når du viser biblioteket.

              Et andet eksempel, hvis du vil gå til / home / user / Pictures og kun se de filer, der er .JPG, ville det være:
              cdlsf / hjem / bruger / Billeder jpg

              ????

              Dette var hvad du ville, ikke?

              PS: Jeg sætter cdlsf til cd (enter) ls (liste) f (filter) ... men selvfølgelig kan du kalde funktionen hvad du vil.


    3.    nogensinde sagde han

      zsh er ikke POSIX, og til sidst tager det længere tid at starte, så jeg foretrækker at være fag, men mere effektiv

      1.    blablabla sagde han

        Først i zsh kan du aktivere POSIX-support. For det andet tager det tid at starte i henhold til hvor mange funktioner du indlæser ved opstart, så det kan være så let som du vil. For det tredje er man med zsh mere praktisk og effektiv end med nogen anden skal. For det fjerde skal du bruge det, før du kritiserer.

        1.    MSX sagde han

          5. plads Når du aktiverer POSIX-support, giver det ingen mening at bruge ZSH.

          Jeg har brugt det i et stykke tid, det er det ikke værd, sh er kort og Bash er perfekt, der er intet, du ikke kan gøre i Bash med de rigtige aliaser og funktioner.

  2.   Marco sagde han

    Jeg kan virkelig godt lide emnet. faktisk skal de oprette en mere omfattende artikel om de kommandoer, der generelt kan bruges i terminalen og i specifikke distroer, som f.eks. Chakra.

  3.   rytter sagde han

    Jeg fandt det meget interessant, bortset fra at lære dette trick, har du forklaret, hvordan hver kommando fungerer.

    Jeg har fulgt dig siden jeg startede i Linux-verdenen (ikke for længe siden ...) og jeg er blevet opfordret til at kommentere bare for at lykønske dig med artiklen 😉

    1.    KZKG ^ Gaara sagde han

      Tak fordi du kom forbi og efterlod os kommentaren 😀
      Hver gang jeg vover at forklare noget, kan jeg godt lide at gøre det så klart som muligt ... Nå, jeg ved meget godt, hvad det er at læse vejledninger på internettet og slet ikke forstå noget hahaha.

      Velkommen to gange ... velkommen til verdenen af ​​Tux haha, og også velkommen til bloggen 🙂
      Hvis du har spørgsmål, ved du det, så giv os besked hehe.

      Hilsner og tak for kommentaren ^ ⁻ ^

  4.   Ivan sagde han

    Jeg har lige læst dit indlæg fra et andet websted, og jeg kunne ikke modstå:

    Ville det ikke være lettere, bare opret et alias inde i .bashrc?

    alias cd = 'ls'

    1.    KZKG ^ Gaara sagde han

      Faktisk er det, jeg prøver at opnå, at gå ind i en mappe X (/ opt / ... / home / user / ... uanset hvad) og også når jeg går ind i den, viser den automatisk indholdet af den mappe.

      Lav det hele med 1 enkelt trin eller kommando.

      Opretter et alias, som du angiver, så vil jeg liste biblioteket, ja, men jeg vil ikke gå ind i det.

      1.    Ivan sagde han

        Fra hvad jeg forstår, er målet med at gøre alt dette, at hvis du f.eks. Vil indtaste "/ etc" gennem kommandoen "cd", når du kommer ind, vil det automatisk vise dig indholdet af den mappe, ikke?

        I så fald kan du forenkle funktionen til et "alias", hvor inde i .bashrc du lægger:

        alias cd = »ls»

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

        cd / osv

        Du kommer ind i biblioteket «/ etc», og det viser automatisk alle de filer og mapper, der er der.

        Hvis jeg misforstod målet, en undskyldning 😛

        1.    KZKG ^ Gaara sagde han

          I virkeligheden vil jeg gå ind i en mappe og en gang inde i den, liste hvad den indeholder.
          Jeg prøvede, hvad du siger, og erklærede, at cd = ls blev aliaset, men det fungerede ikke for mig.
          Jeg konfigurerer det selv, og så gør jeg:
          cd / etc /

          Men det viser / etc / ... men det går ikke ind i den mappe.
          Jeg efterlader et skærmbillede, så du kan se: http://img204.imageshack.us/img204/5272/cdlserror.png

          1.    Ivan sagde han

            Min fejl 😀

            Det var tydeligt, at det ikke ville fungere sådan, og selv da jeg prøvede en:

            alias cdls = 'cd $ 1; ls'

            Af en eller anden mærkelig grund virker det ikke, det viser bare biblioteket, men går ikke ind i D:

            Bash fejl? xD

            En undskyldning for de meningsløse kommentarer! 😀 Og jeg tager funktionen til min bashrc 😛

            1.    KZKG ^ Gaara sagde han

              Et alias er ikke det samme som en funktion, et alias, hvis du vil have det til at være det samme som flere kommandoer, skal du bruge && ... det er ikke som i funktioner, at bruge; og at skrive flere instruktioner fungerer for dig.

              HAHA nah for intet ven, intet at undskylde 😀
              hilsen

              PS: ... forbandet ... hvor nostalgisk bliver jeg, når jeg ser Arch-logoet ... T_T ...


          2.    Ivan sagde han

            Jeg ved, at det ikke er det samme, men jeg regnede med, at det ville fungere (Fejl: P)

            Kun det at bruge «;» virker for mig. i stedet for "&&" inde i et alias D: (Jeg har to aliaser som dette, hvad jeg ikke forstår er hvorfor det ikke fungerer med det alias, jeg ville oprette til denne sag)

            Tak og forresten, jeg tror, ​​jeg bliver på bloggen under titlen "hyppig læser" 😀 Jeg kunne virkelig godt lide indholdet af bloggen 😛

            oooh ja jeg ved, jeg adskiller mig nogle gange fra min kære Arch, men jeg ved ikke hvorfor, det er altid umuligt for mig ikke at vende tilbage til ham xD

            Greetings!

            1.    KZKG ^ Gaara sagde han

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

              En fornøjelse at læse, hvad du siger, en anden Arch-bruger, der tilmelder sig bloggen hahahaha ... en fornøjelse 😀

              Jeg var nødt til at stoppe med at bruge det på grund af meget mærkelige problemer, som kernen gav mig ... men det indtager stadig et sted i mit hjerte 🙁


          3.    Ivan sagde han

            LOL

            Jeg har ikke mødt Arch-bruger, der ikke har stor kærlighed til distributionen, han har "Jeg ved ikke hvad, hvad ved jeg": P, måske og hvis de problemer, jeg gav dig, var for længe siden, du kunne tænke på at gå tilbage til Arch 😀

            Forresten vidste jeg, at jeg et andet sted allerede havde læst dit navn (ja, kaldenavn, pseudonym, kaldenavn, hvad som helst), du er en del af forfatterne af desktop-kunst, ikke? 🙂
            Jeg læste for dem 🙂

  5.   Hugo sagde han

    Faktisk for at liste indholdet af en mappe er det ikke nødvendigt at indtaste det, så jeg tror ikke, at det eksempel, du har valgt, er det lykkeligste, hehe. Med det sagt kan funktioner bruges til mange nyttige ting.

    For eksempel bruger jeg denne funktion til at oprette en mappe og indtaste den med det samme (validering af, at kun en parameter bruges):

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

    1.    Hugo sagde han

      Hmmm ... bloggen spiste en del af kommandoen, jeg prøver at sætte den ufuldstændige linje med HTML-tags:

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

    2.    KZKG ^ Gaara sagde han

      Hvad jeg ønskede at opnå var at gemme et skridt.
      Antag med andre ord, at jeg vil indtaste en mappe (/ etc / squid /) og derefter redigere en fil i den mappe, og jeg kan ikke huske navnet på filen.

      Trinene vil normalt være:
      cd / etc / blæksprutte /
      ls
      nano.conf-fil

      Men med dette tip, som jeg foreslår, konverterer jeg kun de første 2 trin til 1, så det blot ved at gøre:
      cd / etc / blæksprutte /

      Det viser automatisk også indholdet af biblioteket for mig.
      Det handler simpelthen om at gemme et trin 😀

      Du forstår mig?

      ... er, at jeg har svært ved at forklare haha.

      1.    Hugo sagde han

        Nej, forklaringen havde ikke noget problem, jeg mente, at det eksempel, du valgte at illustrere tipset, måske ikke var ideelt, da man kan lave en simpel "ls-mappe".

        Så snart jeg så funktionen, forstod jeg formålet. Jeg bruger også forskellige funktioner i min .bash_aliaserFor eksempel er dette en, som jeg bruger meget til at styre 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 funktion, hvis jeg bare sætter det h Jeg får de sidste 25 kommandoer, men hvis jeg f.eks h montering Jeg får de sidste kommandoer relateret til forsamlinger).

        1.    KZKG ^ Gaara sagde han

          Jeg tager din rolle hehehe ... det fortjener at studere det 😀

        2.    Anibal sagde han

          fantastisk din funktion! tak

        3.    MSX sagde han

          +1

  6.   hackloper775 sagde han

    KZKG ^ Gaara

    Meget godt svar, det tjente mig meget godt, jeg kunne ikke svare på det allerede ovenfor

    Nu bruger jeg cdlsf til at øge min produktivitet, meget godt navn til en kommando 😀

    hilsen

  7.   Christopher castro sagde han

    Som du gør for at indstille tiden til terminalen, havde jeg allerede gjort det før, det var en bashrc, som jeg downloadede, men jeg kan ikke huske, hvad den hed.

  8.   Abel sagde han

    God indrejse, jeg kendte ikke tricket, jeg vil sætte det i praksis for at se, hvordan det fungerer. xP

    Greetings.

    1.    Abel sagde han

      Det ville være rart, hvis min browser blev tilføjet. xD

      Hilsen igen. xD

      1.    KZKG ^ Gaara sagde han

        Hvilken browser bruger du?
        Nå, i en anden kommentar så jeg, at du brugte Firefox 🙂

        1.    Abel sagde han

          Ja, jeg bruger Firefox, men det er mindre og mindre, og det er ikke længere min hovedbrowser, jeg bruger dwb, og det ville være godt, hvis det kunne tilføjes. xP

          Greetings.

  9.   Bill sagde han

    Og vil dette alias ikke forårsage problemer i scripts, når du prøver at bare cd og også output ls? Jeg foretrækker især at lave aliaser med navne, som andre eksekverbare filer ikke bruger, fordi det ikke er første gang, det giver mig problemer ...

  10.   yrigol sagde han

    Hvordan får du de stiplede linjer og tiden efter hver kommando?

  11.   MSX sagde han

    Mit bidrag:
    alias ldir = 'ls | grep -v \\. ' ## lister kun mapperne (pas på, omdøb det ikke til ld, da der er en GNU / Linux-kommando med det navn)
    -
    alias ll = 'ls -lah –farve | 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 ved dette alias er det ulejlighed, der analyserer output af ls, resultat? Det viser filtilladelserne i oktalt format ved siden af ​​rwx, for mig uendeligt mere praktisk og hurtigere end bogstaver.

    -
    alias lg = 'ls -lah –farve | 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 af aliaset ovenfor. Jeg tilføjede en grep i slutningen, så på denne måde når jeg for eksempel gør:
    $ LG lynlås
    Vis mig kun de filer, der indeholder zip i nogen af ​​dens formularer (bemærk -i i slutningen) ud over de oktale tilladelser osv.
    -
    alias grep = 'grep –color = auto' ## farver grep-matchningen
    -

    Jeg har mange flere at dele, men dette lille sted gør mig stram xD

    @KZKG, personale: Tror du, at du åbner et indlæg på bloggen eller på forummet (som vi linker til hver gang et tip relateret til konsollen offentliggøres) for at samle alle disse små perler?

    Greetings!

    1.    KZKG ^ Gaara sagde han

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

  12.   MSX sagde han

    Jeg sagde ikke noget, intet af resten er nødvendigt, alt er perfekt tagget!

  13.   Franklin Rodriguez sagde han

    Hvilken chilener, det er en meget god funktion!