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 /
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.
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.
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
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.
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'.
En met 'bg' stuur je ze naar de achtergrond 🙂
Kijk naar jou ... goede truc! Bedankt voor het delen.
Knuffel! Paul.
De post is uitstekend, ze laten je altijd dingen onthouden die je wist en uiteindelijk bent vergeten, maar die echt nuttig zijn.
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 !!
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".
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.
Zeer goed!
Eigenlijk zou ls / tmp voldoende moeten zijn om de directory weer te geven zonder de huidige te verlaten.
U kunt de opdracht ook samenvoegen met ";" zoals in voorbeeld nr. 10 zou het zo zijn:
(cd / tmp; ls)
groeten
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.
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.
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.
Het werkte voor mij op raspbian en niet op boog.
Merveilleux!!
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
Sorry, voor het niet lezen van alle berichten,
De test wordt ook gedaan in centos.
Goed met Ctrl + U en Ctrl + Y.
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
Zeer goede bijdrage! Bedankt voor het passeren.
Knuffel! Paul.
Gefeliciteerd met het artikel.
Heel praktisch en ik heb een paar commando's geleerd.
Hoewel ik al een beetje "ervaren" ben in deze zaken, worden deze trucs altijd gewaardeerd, dus ... voor de kofferbak van trucs !!!
geweldig, bedankt voor de trucs, ze zijn echt handig 😀
De paden van de console zijn ondoorgrondelijk 😉
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!
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 .. !!
Allemaal heel erg handig. Dank je.