Extremt användbart tips om du använder terminalen (Unite command CD med LS ... och många fler)

Jag är en av dem som använder mycket av tiden terminala (konsol, bash, skal, vad du än vill kalla det), av X- eller Y-skäl måste jag ständigt byta katalog och jobba med den 🙂

I de allra flesta fall ändras katalogändring (Till exempel: cd / opt /) och också vill jag veta vad som finns i den katalogen, för att veta den andra jag använder ls.

Det vill säga det skulle vara så här:

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

Jag har sagt det många gånger ... Jag är ganska lat, jag gillar att göra minsta möjliga antal steg i terminalen, det är därför jag har uppnått precis vad jag ville efter mycket experiment.

Se följande, vilket är inget annat än att jag går in /välja/ med det enkla kommandot cd / opt /:

Som du kan se, i ett steg (cd / opt /) Jag går in i katalogen och listar också innehållet i den katalogen, och ... som om det inte var tillräckligt, det visar det för mig med färger 😀

Här är exemplet på att jag kommer åt /etc/ med cd / etc/:


Färgerna är enkla att förstå:

Ingen färg = Filer
Blå färg = Mappar
Grön färg = Filer med körbehörigheter

Men låt oss gå vidare till det viktigaste ... Hur i helvete kan jag också automatiskt lista den katalog jag har tillgång till med bara cd?

Vårt arkiv .bashrc (finns i vårt hem eller personliga mapp) hjälper oss att göra detta måste vi först deklarera en funktion som vi kommer att kalla CDLS:

funktion cdls {cd "$ 1"; ls –färg;}

Vi sätter denna linje på vardera sidan av vår .bashrc ... här är kommandot att göra det:

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

Du behöver INTE nödvändigtvis göra det med det här kommandot, målet är att filen .bashrc innehåller den här raden, så redigera den här filen med din textredigerare (musmatta, kate, gedit, nano, vi, etc.) och lägg till den.
De sparar ändringen, stänger terminalen som de har öppnat och öppnar en ny.

I den skriver vi följande och trycker på [Stiga på]:

cdls $HOME

Detta borde vara tillräckligt för att komma åt vår personliga mapp i terminalen, och det kommer också att lista dess innehåll (med färger och allt).

Jag menar vad CDLS det gör redan vad vi vill ... nu kan vi bara uppnå detsamma men med cd

För detta lägger vi till i filen .bashrc följande rad:

alias cd='cdls'

Detta kommer att göra när vi skriver cd ... Den åtgärd som vi definierar kommer faktiskt att utföras för CDLS

Jag lämnar kommandot som automatiskt sätter den här föregående raden:

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

Men precis som jag sa tidigare är målet att lägga till den här andra raden i samma fil, du kan använda den textredigerare du väljer för den.

När detta är gjort stänger du terminalen och öppnar en ny ... i den skriver du följande och trycker på [Stiga på]:

cd /etc/

Och bingo, de kommer in / Etc/ och även innehållet i den här mappen kommer att listas och med färger 😉 (precis som i ett tidigare foto)

Vad är det användbart för? 😀

För nyfikna som undrar vad betyder den här funktionen? ... jag lämnar den enkla förklaringen:

funktion cdls = Här definierar vi att vi skapar en ny funktion, och den kommer att kallas cdls
cd "$ 1" = Och vad den här funktionen kommer att göra (den kommer att göra varje gång vi ringer, använder eller utför den) är att skapa en cd (enter) mot den första parametern, det vill säga ... - »« cd / home / », den« $ 1 »betyder« vad vi skriver efter cd ", i detta exempel är den första parametern" / home / ".
; = Detta betyder att den ordningen slutar där, eller en åtgärd som ska utföras ... men en funktion kan ha fler åtgärder att göra, och vi kommer att definiera en andra nu.
ls –färg; = Det betyder att förutom alla åtgärder som förklarats tidigare kommer det också att göra ett "ls" där vi finns, och "ls" gör det med färg (–färg).

Det sista ... det smartaste, de kommer att inse att den här logiken (att ta en funktion och konfigurera den för att utföra flera åtgärder) har mycket, mycket potential, till exempel ... om jag vill gå in i en mapp och också radera en annan, det vill säga jag vill komma in /Hem/ och ta bort / opt / temp / funktionen för detta skulle vara:

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

Och att skriva in en terminal asdasd / home / / opt / test / eftersom det kommer att ange den första parametern (/Hem/) och radera den andra (/ opt / temp /).

Hur som helst, detta har verkligen en hel del potential hehe, det är upp till dig att dra nytta av det så mycket du kan.

Om du har några tvivel eller frågor, klagomål eller förslag hjälper jag dig gärna, jag är ingen expert överlägset men åtminstone gillar jag att hjälpa help

hälsningar


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.

  1.   blablabla sade

    Och allt detta för att inte använda Zsh.

    1.    KZKG ^ Gaara sade

      Jag kände inte riktigt honom 😉
      Tack för tipset, jag håller koll på det.

      Men kunskap sker inte ... ju fler tips och kunskaper man lyckas skaffa sig, desto bättre, tycker du inte? 🙂

      1.    MSX sade

        Zsh är för queers, män använder sh !!! >: D

        I realida

        1.    KZKG ^ Gaara sade

          HAHAHA nej nej nej ... Jag tror inte det, och säg inte heller det så, för vissa kan bli förolämpade.
          Alla använder det som passar bäst, vad de gillar mest 😀

          1.    MSX sade

            😉

            En app som jag använder mycket för att navigera i mitt system är Autojump:
            https://github.com/joelthelion/autojump/blob/master/README.md

        2.    blablabla sade

          Män är praktiska, kvinnor och skeppare är de som gillar att komplicera sina liv. Inga ytterligare förtydliganden krävs.

          1.    KZKG ^ Gaara sade

            Försök att inte kommentera sexuella preferenser ja? ... Det har funnits obekväma situationer för den här typen av saker.

            Hoppas det är förståeligt.

          2.    blablabla sade

            Det förtydligandet bör vara för @msx. Idéer är byggda med sanningsenliga, objektiva och rationella uttalanden, inte med förolämpningar eller oförskämdhet.

            1.    KZKG ^ Gaara sade

              I min kommentar ovan sa jag till honom att inte säga dessa saker (förlåt överflödet).
              Och nu säger jag ja igen, men inte riktat till dig bara specifikt, det gäller för alla.

              Ta inte det på fel sätt, avsikten var inte att få någon att känna sig obekväm eller dålig, jag försöker bara undvika missförstånd 🙂


          3.    Martin sade

            Hahaha, jag såg just den här kommentaren!

            «Det förtydligandet bör vara för @msx. idéer är konstruerade med sanningsenliga, objektiva och rationella uttalanden, inte med förolämpningar eller oförskämdhet. "
            Sluta äta frukost med citroner man, du ser redan ut som Franklin på $ 100-räkningen: http://www.watchingamerica.com/frankfurterallgemeine000009.shtml

            ????

        3.    abel sade

          Tja, jag tror att jag gillar att vara en queer då för eftersom jag lärde mig att använda det har jag inte slutat och jag tänker inte göra det. o_____o

          Använder män sh?, Den kommentaren är konstig från någon som har en bashrc full av saker, så jag antar att du är en kvinna. xP

          1.    KZKG ^ Gaara sade

            Det här är vad jag inte ville komma till. Snälla, låt oss lämna striden här, ja? 🙂
            Alla använder vad de vill ... sh, zsh, eller vad de än vill, och också ... alla har de sexuella preferenser de vill ha, det har redan kämpats här för sådana saker 🙁

          2.    MSX sade

            hahaha xD

            På senare tid har zsh utvecklats mycket, så snart jag har tid -ha, hur illusioner! - Jag ska läsa så mycket som möjligt av dess dokumentation för att dra nytta av det och göra förändringen

            Nu är det seriöst: det enda som stör mig lite om zsh är att det inte är 100% kompatibelt med Bash, så om vi använder zsh i våra skript för att ta ut sin fulla potential är det mycket, mycket möjligt att nämnda skript misslyckas i å andra sidan bash, å andra sidan, även om vi använder zsh så skriver vi våra skalskript i bash, det är slöseri att använda zsh ... o_O

            Ändå tycker jag att zsh är värt det. På tal om skal, känner du fisk? Projektet steg från askan, nu kallas det fiskfisk och de utvecklar det väldigt snabbt.

    2.    hackloper775 sade

      Jag tycker att zsh bör skrivas eftersom terminalen är mycket skiftlägeskänslig

      Även om cd && ls / route också är giltig

      Även om det är längre att skriva

      Hälsningar 😀

      1.    hackloper775 sade

        Jag hade fel, mitt finger gick av

        Jag säger att med detta listas det och en katalog är åtkomlig

        cd && ls / path

        men gör dig bara redo

        även om det bara listas används det

        ls / väg

        kommandot som motsvarar är

        cd / path && ls

        hälsningar

        1.    KZKG ^ Gaara sade

          Att använda && samma sak uppnås faktiskt 😀
          Den enda skillnaden är att "cd / opt / && ls" har 6 fler tecken än bara "cd / opt /", det vill säga att jag måste trycka på 6 tangenter till ^ - ^ U ... jag är lite lat för saker som det hehe.

          Det var därför jag gick med på cd + ls ... LOL !!

          1.    hackloper775 sade

            Vad jag också använder är att jag filtrerar resultaten efter tillägg.

            Exempel

            Jag har många filer i ~ / Nedladdningar mer än 100 och jag vill bara se .png för att göra detta.

            cd Nedladdningar && ls * png

            Vad skulle jag behöva lägga till eller göra för att filtrera resultaten i enklare kod?

            hälsningar

            1.    KZKG ^ Gaara sade

              Enkelt 😉
              Du skapar en funktion som till exempel är cdlsf:
              function cdlsf { cd "$1"; ls *.$2; }

              Att använda det skulle vara:
              cdlsf / opt / png

              Och det här listar bara filerna . Png en /välja/
              Det vill säga den första parametern (i exemplet /välja/) skulle vara den katalog du vill komma åt och den andra parametern (i exemplet png) skulle vara det tillägg som du vill filtrera när du listar katalogen.

              Ett annat exempel, om du vill gå till / home / user / Pictures och bara se filerna som är .JPG, skulle det vara:
              cdlsf / home / user / Pictures jpg

              ????

              Detta var vad du ville, eller hur?

              PS: Jag lägger cdlsf efter cd (enter) ls (lista) f (filter) ... men självklart kan du ringa funktionen vad du vill.


    3.    någonsin sade

      zsh är inte POSIX, och till att börja med tar det längre tid att börja, så jag föredrar att vara fag, men effektivare

      1.    blablabla sade

        Först kan du aktivera POSIX-stöd i zsh. För det andra tar det tid att börja enligt hur många funktioner du laddar i början, så det kan vara så lätt som du vill. För det tredje, med zsh är man mer praktisk och effektiv än med något annat skal. För det fjärde, använd den innan du kritiserar.

        1.    MSX sade

          5: e. När du aktiverar POSIX-stöd är det ingen mening att använda ZSH.

          Jag har använt det ett tag, det är inte värt det, sh är kort och Bash är perfekt, det finns inget du inte kan göra i Bash med rätt alias och funktioner.

  2.   ram sade

    Jag gillar verkligen ämnet. i själva verket bör de skapa en mer omfattande artikel om kommandona som kan användas i allmänhet i terminalen och i specifika distros, som Chakra.

  3.   ryttare sade

    Jag tyckte det var väldigt intressant eftersom du förutom att lära dig detta trick har förklarat hur varje kommando fungerar.

    Jag har följt dig sedan jag började i Linux-världen (inte så länge sedan ...) och jag har uppmuntrats att kommentera bara för att gratulera dig till artikeln 😉

    1.    KZKG ^ Gaara sade

      Tack för att du kom in och lämnade kommentaren us
      När jag vågar förklara något gillar jag att göra det så tydligt som möjligt ... ja, jag vet mycket väl vad det är att läsa handledning på internet och inte förstår någonting alls hahaha.

      Välkommen två gånger ... välkommen till Tux-världen, och också välkommen till bloggen 🙂
      Om du har några frågor vet du, låt oss veta hehe.

      Hälsningar och tack för kommentaren ^ ⁻ ^

  4.   ivan sade

    Jag läste just ditt inlägg från en annan webbplats och kunde inte motstå:

    Skulle det inte vara enklare, bara skapa ett alias inuti .bashrc?

    alias cd = 'ls'

    1.    KZKG ^ Gaara sade

      Egentligen det jag försöker uppnå är att ange en katalog X (/ opt / ... / hem / användare / ... vad som helst) och när jag går in i den listas det automatiskt innehållet i den katalogen.

      Gör allt med ett enda steg eller kommando.

      Gör ett alias som du anger, då skulle jag lista katalogen ja, men jag skulle inte komma in i den.

      1.    ivan sade

        Enligt vad jag förstår är målet med att göra allt detta att om du till exempel vill ange "/ etc" genom kommandot "cd", när du går in, kommer det automatiskt att visa dig innehållet i den katalogen, eller hur?

        Om så är fallet kan du förenkla funktionen till ett "alias", där inuti .bashrc du lägger:

        alias cd = »ls»

        Med detta, när du är i en terminal använder du:

        cd / etc

        Du kommer in i katalogen «/ etc» och den listar också automatiskt alla filer och kataloger som finns där.

        Om jag missförstod målet, en ursäkt 😛

        1.    KZKG ^ Gaara sade

          I själva verket vill jag ange en katalog och en gång inuti den, lista vad den innehåller.
          Jag försökte vad du säger och förklarade att cd = ls aliasing, men det fungerade inte för mig.
          Jag konfigurerar det själv och sedan gör jag:
          cd / etc /

          Men det listar / etc / ... men det går inte in i den katalogen.
          Jag lämnar en skärmdump så att du kan se: http://img204.imageshack.us/img204/5272/cdlserror.png

          1.    ivan sade

            Mitt misstag 😀

            Det var uppenbart att det inte skulle fungera så, och även när jag försökte:

            alias cdls = 'cd $ 1; ls'

            Av någon konstig anledning fungerar det inte, det listar bara katalogen men går inte in i D:

            Bash-fel? xD

            En ursäkt för meningslösa kommentarer! 😀 Och jag tar funktionen för min bashrc 😛

            1.    KZKG ^ Gaara sade

              Ett alias är inte detsamma som en funktion, ett alias om du vill att det ska vara samma som flera kommandon, måste du använda && ... det är inte som i funktioner, att använda; och att skriva fler instruktioner fungerar för dig.

              HAHA nah för ingenting vän, inget att ursäkta 😀
              hälsningar

              PS: ... fan ... hur nostalgisk blir jag när jag ser Arch-logotypen .... T_T .


          2.    ivan sade

            Jag vet att det inte är detsamma men jag tänkte att det skulle fungera (Fel: P)

            Endast det att använda «;» fungerar för mig. istället för "&&" inuti ett alias D: (Jag har två alias som detta, det jag inte förstår är varför det inte fungerar med det alias jag ville skapa för det här fallet)

            Tack och förresten tror jag att jag kommer att stanna kvar på bloggen under titeln "frekvent läsare" 😀 Jag gillade verkligen bloggens innehåll 😛

            oooh ja jag vet, jag skiljer mig ibland från min kära Arch men jag vet inte varför, det är alltid omöjligt för mig att inte återvända till honom xD

            Hälsningar!

            1.    KZKG ^ Gaara sade

              Tja ... Tux är mystisk, han gör saker och många gånger förstår vi honom inte, men han har en plan eller ett syfte för alla ... HAHA 😀

              Ett nöje att läsa vad du säger, en annan Arch-användare som går med i bloggen hahahaha ... ett nöje 😀

              Jag var tvungen att sluta använda den på grund av mycket konstiga problem som kärnan gav mig ... men den upptar fortfarande en plats i mitt hjärta 🙁


          3.    ivan sade

            hahahaha

            Jag har inte träffat en Arch-användare som inte känner stor tillgivenhet för distributionen, han har en "Jag vet inte vad, vad vet jag": P, kanske och om problemen jag gav dig för länge sedan, du kan tänka på att gå tillbaka till Arch 😀

            Förresten visste jag att någon annanstans jag redan hade läst ditt namn (ja, nick, pseudonym, smeknamn, vad som helst), du är en del av skrivbordsförfattarna, eller hur? 🙂
            Jag brukade läsa för dem 🙂

  5.   Hugo sade

    För att lista upp innehållet i en katalog är det inte nödvändigt att ange den, så jag tror inte att det exempel du valt är det lyckligaste, hehe. Med det sagt kan funktioner användas för många användbara saker.

    Till exempel använder jag den här funktionen för att skapa en katalog och ange den omedelbart (bekräftar att endast en parameter används):

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

    1.    Hugo sade

      Hmmm ... bloggen åt en del av kommandot, jag ska försöka sätta den ofullständiga raden med HTML-taggar:

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

    2.    KZKG ^ Gaara sade

      Vad jag ville göra var att spara mig ett steg.
      Anta med andra ord att jag vill ange en katalog (/ etc / squid /) och sedan redigera en fil i den katalogen, och jag kommer inte ihåg namnet på filen.

      Stegen skulle normalt vara:
      cd / etc / bläckfisk /
      ls
      nano file.conf

      Men med detta tips som jag föreslår konverterar jag bara de två första stegen till 2, så att helt enkelt genom att göra:
      cd / etc / bläckfisk /

      Det kommer också automatiskt att lista innehållet i katalogen för mig.
      Det handlar helt enkelt om att spara ett steg 😀

      Du förstår mig?

      ... det är svårt för mig att förklara haha.

      1.    Hugo sade

        Nej, förklaringen hade inga problem, jag menade att det exempel du valde för att illustrera tipset kanske inte var perfekt, eftersom man kan skapa en enkel "ls-katalog".

        Så snart jag såg funktionen förstod jag syftet. Jag använder också olika funktioner i min .bash_aliasTill exempel är det här jag använder mycket för att hantera historik:

        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 den här funktionen, om jag bara säger h Jag får de 25 sista kommandona, men om jag till exempel lägger till h fäste Jag får de sista kommandona relaterade till församlingar).

        1.    KZKG ^ Gaara sade

          Jag tar din roll hehehe ... det förtjänar att studera det 😀

        2.    Anibal sade

          bra din funktion! tack

        3.    MSX sade

          +1

  6.   hackloper775 sade

    KZKG ^ Gaara

    Mycket bra svar det tjänade mig mycket bra, jag kunde inte längre svara på det redan ovan

    Nu ska jag använda cdlsf för att öka min produktivitet, mycket bra namn för ett kommando 😀

    hälsningar

  7.   Christopher castro sade

    Som du gör för att ställa in tiden till terminalen hade jag redan gjort det tidigare, det var en bashrc som jag laddade ner men jag kommer inte ihåg vad den hette.

  8.   abel sade

    Bra inträde, jag visste inte tricket, jag kommer att omsätta det i praktiken för att se hur det fungerar. xP

    Hälsningar.

    1.    abel sade

      Det skulle vara trevligt om min webbläsare lades till. xD

      Hälsningar igen. xD

      1.    KZKG ^ Gaara sade

        Vilken webbläsare använder du?
        Tja, i en annan kommentar såg jag att du använde Firefox 🙂

        1.    abel sade

          Ja, jag använder Firefox men det blir mindre och mindre och det är inte längre min huvudsakliga webbläsare, jag använder dwb och det skulle vara trevligt om det kunde läggas till. xP

          Hälsningar.

  9.   Guillermo sade

    Och kommer det inte att ge skriptproblem att göra detta alias när man försöker bara cd och även skicka ut ls? Jag föredrar särskilt att skapa alias med namn som andra körbara filer inte använder, för det är inte första gången det ger mig problem ...

  10.   yrigol sade

    Hur får du de streckade linjerna och tiden efter varje kommando?

  11.   MSX sade

    Mitt bidrag:
    alias ldir = 'ls | grep -v \\. ' ## lista bara katalogerna (var försiktig, döp inte om den till ld eftersom det finns ett GNU / Linux-kommando med det namnet)
    -
    alias ll = 'ls -lah –färg | awk '\ »{k = 0; för (i = 0; i <= 8; i ++) k + = ((substr ($ 1, i + 2,1) ~ / [rwx] /) * 2 ^ (8-i)); om (k) printf ("% 0o", k); tryck} '\' ''

    Det intressanta med detta alias är det besvär som analyserar resultatet av ls, resultat? Det visar filbehörigheterna i oktalt format bredvid rwx, för mig oändligt mer praktiskt och snabbare än bokstäver.

    -
    alias lg = 'ls -lah –färg | awk '\' '{k = 0; för (i = 0; i <= 8; i ++) k + = ((substr ($ 1, i + 2,1) ~ / [rwx] /) * 2 ^ (8- i)); om (k) printf ("% 0o", k); tryck} '\' '| grep -i'

    Variant av aliaset ovan. Jag lade till en grep i slutet så att på detta sätt när jag till exempel gör:
    $ LG dragkedja
    Visa mig bara de filer som innehåller zip i någon av dess former (lägg märke till -i i slutet) förutom de oktala behörigheterna, etc.
    -
    alias grep = 'grep –color = auto' ## färgar grep-matchningen
    -

    Jag har många fler att dela men den här lilla platsen gör mig tight xD

    @KZKG, personal: Tror du att du öppnar ett inlägg på bloggen eller på forumet (som vi länkar till varje gång ett tips relaterat till konsolen publiceras) för att samla alla dessa små pärlor?

    Hälsningar!

    1.    KZKG ^ Gaara sade

      Med länk menar du detta? - » https://blog.desdelinux.net/tag/bash

  12.   MSX sade

    Jag sa ingenting, inget annat behövs, allt är perfekt taggat!

  13.   Franklin Rodriguez sade

    Vilken chilenare, det är en mycket bra funktion!