Top 10 trucs voor de terminal

1. Voer het laatste commando uit met !!

De titel zegt het al, typ gewoon het volgende in een terminal ...

!!

… Om het laatst ingevoerde commando opnieuw uit te voeren. Deze truc is erg handig als we vergeten in te voeren sudo in het begin. In dat geval moet u invoeren:

sudo !!

Om meer complexe manieren te ontdekken om het meeste uit deze truc te halen, raad ik aan om dit te lezen oud bericht.

2. Voer de laatste opdracht uit maar corrigeer een typefout

Deze truc is erg handig als we een commando invoeren met een simpele typefout. Als we bijvoorbeeld uitvoeren:

echo "desdelinuxz"

U kunt het corrigeren door het volgende in te voeren:

^z

3. Roep een teksteditor op om een ​​lange opdracht in te voeren

Soms moet u eindeloze opdrachten invoeren in de terminal. In dat geval kan de hulp van een eenvoudige teksteditor, zoals nano of emacs, nuttig zijn.

Om de editor te openen, drukt u gewoon op Ctrl + x + e in een terminal. De tekst die u tot nu toe heeft ingevoerd, wordt naar de teksteditor gekopieerd zodra deze is geopend.

Van zijn kant zal de gebruikte editor degene zijn die is gespecificeerd in de $ EDITOR variabele. Om deze configuratie te wijzigen, is het mogelijk om uit te voeren ...

export EDITOR = nano

... Vervanging van nano door uw favoriete editor.

4. Voer een commando uit zonder het in de geschiedenis op te slaan

Een echte hacker kan deze truc niet negeren. Zoals iedereen weet, bewaart bash de geschiedenis van uitgevoerde opdrachten, die heel gemakkelijk toegankelijk is met behulp van de toetsenbordpijlen of Ctrl + R (om een omgekeerd zoeken in de geschiedenis).

In dit geval moet u ervoor zorgen dat de ingevoerde opdracht niet in de geschiedenis wordt opgeslagen, een spatie ervoor plaatsen:

opdracht

5. Stel automatisch de laatste parameter van een commando in

Stel dat de eerder uitgevoerde opdracht was

cp bestand.txt / var / www / wp-content / uploads / 2009/03 /

Om toegang te krijgen tot de betreffende directory, voert u de opdracht in cd gevolgd door Alt +. o Esc +. :

cd 'ALT +.'

Dit is slechts een verkorte manier om het volgende in te voeren:

cd / var / www / wp-content / uploads / 2009/03 /
Door op de genoemde sneltoets te blijven drukken, is het mogelijk om door de geschiedenis van de laatst uitgevoerde opdrachten te bladeren.

6. Voer een commando uit op een bepaald tijdstip

Ja, ja, daarvoor bestaat het cron. Soms willen we echter een opdracht uitvoeren om op een bepaald tijdstip uit te voeren, maar slechts één keer.

Stel dat we het commando willen uitvoeren ls -l om middernacht. In dat geval moeten we het op de volgende manier uitvoeren:

echo "ls -l" | om middernacht

7. Verkrijg uw externe IP

Dankzij de service van http://ifconfig.me/ Het is mogelijk om verschillende gegevens van uw internetverbinding rechtstreeks vanaf de terminal te kennen:

curl ifconfig.me/ip // IP-adres curl ifconfig.me/host // Remote Server curl ifconfig.me/ua // User Agent curl ifconfig.me/port // Poort

8. Leer hoe u Ctrl + u en Ctrl + y gebruikt

Hoe vaak is het u overkomen dat u een commando begon te typen en herinnerde u zich dat voordat het nodig was om iets anders te doen? Welnu, het is mogelijk om een ​​soort knip-plak te maken, zodat het later gemakkelijker is om het commando dat nog in de helft was, opnieuw in te voeren.

Stel dat je begint te schrijven ...

cd / home / user

en je herinnerde je dat voordat je iets in de huidige directory moest controleren. Druk in dat geval op Ctrl + U (Het zou zoiets zijn als een "snee").

Voer de opdracht in die eerst moest worden uitgevoerd. Veronderstellen ...

ls -l

... en druk vervolgens op Ctrl + y (Het werkt als een "pasta").

9. Maak de terminal gemakkelijk schoon

met Ctrl + l de terminal is in een handomdraai schoon te maken.

10. Ga naar een directory, voer een commando uit en keer terug naar de huidige directory

Deze truc is een genot. Om een ​​reeks opdrachten uit te voeren zonder de huidige directory te verlaten, groepeert u ze tussen haakjes. Zoals bijna iedereen weet, moet u om een ​​reeks opdrachten uit te voeren, ze samenvoegen met &&. Met behulp van deze concepten kunnen we zoiets als het volgende uitvoeren:

(cd / tmp && ls)

Het resultaat van deze opdracht (let op de haakjes) is een lijst met de bestanden en mappen in de map / tmp. En dat allemaal zonder onze huidige directory te verlaten. Een juweel!

Yapa. Maak een lijst van de meest gebruikte opdrachten

Om ze te zien meest gebruikte commando's voer gewoon het volgende uit:

geschiedenis | awk '{a [$ 2] ++} END {voor (i in a) {print a [i] "" i}}' | sorteren -rn | hoofd

In mijn geval waren de winnaars:

450 yaourt 415 sudo 132 git 99 cd 70 leafpad 70 killall 68 ls 52 pacman 50 xrandr 45 top

Voor terminalfans, zoals deze server, raad ik aan om te bezoeken opdrachtregelfu. En waarom niet, stop niet met kijken naar het archief van onze blog.

Missen er trucs? Vergeet niet om hieronder te delen en te reageren. 🙂

Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.

  1.   vos zei

    Er was er een die ik gebruikte die hoofdletters wegliet in mijn invoer, omdat eerlijk gezegd veel bestanden die op deze manier begonnen, in mij zouden glippen.

  2.   Jezus Perales zei

    Ik denk dat een van de belangrijkste de geschiedenisopdracht is waarin het een genummerde lijst retourneert
    van de commando's die je hebt gebruikt en als je een van deze wilt gebruiken, gebruik dan de volgende regel
    ! 22

    die het commando zal uitvoeren dat in je geschiedenis staat op nummer 22 😀

    Zoeken naar een commando met automatische aanvulling is
    Ctrl + r

    1.    Xurxo zei

      Ik gebruik ook altijd Ctrl + r om de laatste opdracht te herhalen; Zodra de laatste verschijnt, kunt u terug bladeren door de geschiedenis door op Up Pag (pijl omhoog) te drukken.

      Groeten.

  3.   Rodrigo bravo zei

    Goed artikel. Bedankt voor het delen van deze tips.
    Ik wil er een delen die ik dagelijks gebruik, namelijk 'fg', waarmee je de applicaties kunt openen die je eerder stopte met 'Ctrl + z'.

    1.    giskard zei

      En met 'bg' stuur je ze naar de achtergrond 🙂

    2.    laten we linux gebruiken zei

      Kijk naar jou ... goede truc! Bedankt voor het delen.
      Knuffel! Paul.

  4.   Gabriel zei

    De post is uitstekend, ze laten je altijd dingen onthouden die je wist en uiteindelijk bent vergeten, maar die echt nuttig zijn.

  5.   Qvic zei

    Terminal cheats zijn altijd welkom.
    Ongelooflijk wist ik niet dat het toevoegen van een spatie aan de opdracht was weggelaten uit de geschiedenis.
    Heel erg bedankt, groeten !!

  6.   Ezechiël zei

    om automatisch complete filtergeschiedenis te gebruiken, voegt u het bestand $ HOME / .inputrc toe
    "\ E [5 ~": geschiedenis-zoeken-achteruit
    "\ E [6 ~": geschiedenis-zoeken-vooruit

    en je had bijvoorbeeld op een gegeven moment gebruikt:
    $ cd / een / pad / langer / dan / de / shit

    en nu je het weer wilt gebruiken, moet je het volgende doen:
    $ cd
    en druk vervolgens op de "Page Up" of "Page Down" toetsen om door alle commando's in de geschiedenis te navigeren die begonnen met "cd".

    1.    giskard zei

      OF…. Druk, zonder iets te bewerken, op Ctrl + R en vervolgens op cd (als u iets wilt zoeken met 'cd') en door herhaaldelijk op Ctrl + R te drukken, ziet u alle opdrachten die het bevatten totdat u bij het gewenste commando komt. Het is duidelijk dat als het de onmiddellijk voorafgaande is, u er een krijgt.

    2.    laten we linux gebruiken zei

      Zeer goed!

  7.   antiek zei

    Eigenlijk zou ls / tmp voldoende moeten zijn om de directory weer te geven zonder de huidige te verlaten.

  8.   moordenaar zei

    U kunt de opdracht ook samenvoegen met ";" zoals in voorbeeld nr. 10 zou het zo zijn:

    (cd / tmp; ls)

    groeten

    1.    RudaMale zei

      De ";" Het werkt anders dan de "&&" (en), als we commando-1 && commando-2 doen, wordt het tweede commando alleen uitgevoerd als de uitvoer van het eerste "0" is, dat wil zeggen, zonder fout. In het geval van de puntkomma wordt de tweede opdracht uitgevoerd ongeacht de uitvoer van de eerste. Om uit te breiden is er de operator «||» (of), in dit geval wordt het tweede commando alleen uitgevoerd als het eerste een foutmelding geeft op de uitvoer. Groeten.

  9.   anoniem zei

    Om ervoor te zorgen dat elke regel die de geschiedenis onthoudt datum en tijd heeft, is er een omgevingsvariabele in de ~ .bashrc van de normale gebruiker of root.

    # nano.bashrc
    export HISTTIMEFORMAT = »% F% T»

    # geschiedenis
    492 2014-09-02 14:25:57 revdep-herbouw -i -v
    493 2014-09-02 14:31:14 eclean-dist -d
    494 2014-09-02 14:31:23 localepurge -v
    495 2014-09-02 14:31:29 etc-update
    496 2014-09-02 14:31:54 emerge –depclean –pretend
    497 2014-09-02 14:39:08 bijgewerkt b

    Er zijn meer opties, namelijk voor het aantal regels dat het bespaart, ik ben ze aan het testen.

  10.   ChuckT zei

    Zeer goede post. Echt heel handig. Truc nummer 4, het uitvoeren van een commando zonder opgeslagen te worden in de geschiedenis, heeft voor mij alleen gewerkt op Ubuntu, niet op Debian of Centos.

    1.    Azureus zei

      Het werkte voor mij op raspbian en niet op boog.

  11.   Chaparral zei

    Merveilleux!!

  12.   erjuak zei

    Hallo,
    wat moet een spatie worden geplaatst voordat een commando wordt uitgevoerd, zodat het niet in de geschiedenis wordt geregistreerd, omdat het niet werkt ...
    [gebruiker @ host /] $ ls -l
    Totaal 104
    dr-xr-xr-x. 2 root root 4096 21 augustus 03:55 bin
    dr-xr-xr-x. 5 root root 3072 20 aug. 17:26 boot
    drwxr-xr-x. 2 root root 4096 9 december 2013 cgroup

    [user @ host /] $ geschiedenis
    1024 ls
    1025 ls
    1026 geschiedenis
    1027 ls -l
    1028 geschiedenis

    interessant artikel..

    groeten

  13.   erjuak zei

    Sorry, voor het niet lezen van alle berichten,
    De test wordt ook gedaan in centos.

  14.   eliotime3000 zei

    Goed met Ctrl + U en Ctrl + Y.

  15.   NauTiluS zei

    Op mijn systeem werkte de lijst met meest gebruikte commando's voor mij door de variabele te veranderen in $ 5.

    Uitvoervoorbeeld:

    1122 minuten
    362 jaar
    279 wissen
    214 cd
    142 graven
    141 jaar
    130 vnstat
    122 mv
    112 ww
    112 geschiedenis

    Dit komt omdat ik in mijn .bashrc-bestand de volgende regel heb:
    # Toon de datum van het geschiedeniscommando
    export HISTTIMEFORMAT = '% F% T:'

    Ik ben er bijna zeker van dat velen hier in de buurt meerdere terminals tegelijkertijd hebben gebruikt.
    Nu weet ik niet of ik je moet vertellen dat het een terminaltruc is, maar aangezien ik meestal veel vensters heb of het scherm gebruik om meerdere terminals open te hebben, maakt dit elke opdracht mogelijk die in een van die terminals wordt ingevoerd, zoals het zal worden weerspiegeld in allemaal.

    Dit gaat in het .bashrc-bestand:

    GESCHIEDENIS = 90000
    HISTFILESIZE = $ HISTSIZE
    HISTCONTROL = ignorespace: ignoredups

    geschiedenis () {
    _bash_history_sync
    ingebouwde geschiedenis "$ @"
    }

    _bash_history_sync () {
    ingebouwde geschiedenis -a # 1
    HISTFILESIZE = $ HISTSIZE # 2
    ingebouwde geschiedenis -c # 3
    ingebouwde geschiedenis -r # 4
    }

    PROMPT_COMMAND = _bash_history_sync

    1.    laten we linux gebruiken zei

      Zeer goede bijdrage! Bedankt voor het passeren.
      Knuffel! Paul.

  16.   Roy zei

    Gefeliciteerd met het artikel.
    Heel praktisch en ik heb een paar commando's geleerd.

  17.   linuXgirl zei

    Hoewel ik al een beetje "ervaren" ben in deze zaken, worden deze trucs altijd gewaardeerd, dus ... voor de kofferbak van trucs !!!

  18.   niet genoemd zei

    geweldig, bedankt voor de trucs, ze zijn echt handig 😀

  19.   wijnoogst zei

    De paden van de console zijn ondoorgrondelijk 😉

  20.   desicoder zei

    De truc om op control + u en control + y te drukken, hangt niet af van de shell, maar van de configuratie die de tty heeft. Tot op de dag van vandaag zijn de tty onder Linux zeer complexe entiteiten, in feite heb ik hun werking onderzocht en ik kan er zeker van zijn dat ze veel meer ins en outs hebben dan het lijkt. De tty hebben een aantal controletekens die hun status wijzigen, het is me bijvoorbeeld wel eens overkomen dat ik een binair bestand catat, en nadat alle "rotzooi" op het scherm verschijnt, is de prompt vreemd of met een andere codering. Dit komt doordat er in een willekeurig bestand een grote kans bestaat dat u tty-controletekens tegenkomt.

    Voer dit bijvoorbeeld uit in een shell:

    print '33c'

    Dat zal het scherm wissen (alsof je helder loopt).

    Andere combinaties, zoals control + L om het scherm leeg te maken, komen van de shell zelf die wordt gebruikt, de klassieke / bin / shells brengen deze functie meestal niet.

    Bovendien zijn er tegenwoordig veel complexe opties voor het omgaan met bestanden en sockets onder Linux. Als u bijvoorbeeld een tty-apparaat opent met open (), in de AIO-modus (asynchrone invoer / uitvoer), ontvangt het proces een SIGIO elke keer dat er gegevens beschikbaar zijn in de invoerbuffer.

    Als bash bijvoorbeeld werkt door simpelweg de regels te lezen en commando's uit te voeren (zoals het doet bij het uitvoeren van een script), zou deze reeks tekens gewoon worden opgenomen als onderdeel van de commando's wanneer je op control + L drukt, maar aangezien bash controle heeft van de buffer van invoer kan het detecteren.

    Soms ben ik tijdens het programmeren bijvoorbeeld fcntl gaan gebruiken om een ​​niet-blokkerende invoerbuffer te krijgen, die ik zelfs met ncurses-bibliotheken heb gebruikt (manipuleer de controle tty voordat ncurses in het programma wordt gestart).

    Saludos!

  21.   Lautaro zei

    Voor degenen die aan het begin niet met de spatie werkten, en misschien om deze aan de notitie toe te voegen, is er een variabele met de naam HISTIGNORE, waarbij het teken dat wordt toegevoegd voordat een commando is geconfigureerd om in de geschiedenis te worden genegeerd.
    In sommige installaties komt deze variabele niet vandaan
    Groeten en goed bericht! direct naar favorieten!

    Merk op dat ik in de commentaren ook verschillende interessante dingen zag .. !!

  22.   ramon hidalgo zei

    Allemaal heel erg handig. Dank je.