Leer Linux

Geschiedenisopdracht in Linux met voorbeelden

Geschiedenisopdracht in Linux met voorbeelden

Het geschiedeniscommando in Linux is geen ingewikkeld jargon. Het is precies wat je denkt dat het is, en er zit geen verborgen betekenis achter. Op dezelfde manier waarop u naar uw browsergeschiedenis kijkt na een lange dag op internet, ziet u de geschiedenisopdracht. Het draait allemaal om het volgen van je eerdere bewegingen en acties, maar in dit geval is het op een Linux-terminal of opdrachtregel.

Daarom kunnen we het geschiedeniscommando onder het Linux-domein gemakkelijk definiëren als een manier om eerder uitgevoerde commando's te bekijken. In dit geval kunnen we de terminal zien als een browser waar je verschillende commando's op een continu tijdsbestek uitvoert. Deze uitgevoerde commando's worden afzonderlijk geïnterpreteerd als gebeurtenissen. Elke gebeurtenis krijgt dan een gebeurtenisnummer toegewezen. Daarom hebben we commando's met id's als gebeurtenisnummers die zijn opgeslagen in een geschiedenisbestand na hun terminaluitvoering.

De betekenis van de gebeurtenis-ID's is duidelijk wanneer je later misschien een specifiek commando moet terugroepen dat je hebt uitgevoerd. U wilt misschien ook een eerder uitgevoerde opdracht wijzigen. Daarom kunnen we het inleidende begrip van de geschiedenisopdracht besluiten om alle eerder uitgevoerde opdrachten of alleen een specifieke opdracht op de terminal weer te geven. We mogen ook de haalbare optie van het wijzigen van de vermelde opdracht niet vergeten.

De geschiedenis zich laten herhalen

We kunnen dit historische artikel op een leuke manier beginnen en door George Santayana te citeren. Deze beroemde persoon associeert het onvermogen om het verleden te herinneren met de vloek om het te herhalen. Wanneer we echter het Linux-universum binnenstappen, kwalificeert dit citaat alleen als een mythe. Het is omdat de Linux-filosofie realistisch gezien het tegenovergestelde is van het genoemde citaat van George Santayana. Wanneer u zich op de Linux-terminal een actie uit het verleden herinnert, hoeft u zich er geen zorgen over te maken, omdat de kans groot is dat het nooit zal ontrafelen.

Tenzij je natuurlijk een meester wordt in het Linux-geschiedeniscommando, dan kun je tijdreizen naar het verleden en je eerdere eindzonden corrigeren als dat je wens is. Het gebruik van het Linux history-commando is op geen enkele manier geassocieerd met luiheid. Het bespaart tijd door efficiëntie. Naarmate je verder komt in het onder de knie krijgen van het Linux-besturingssysteem, zul je merken dat je met langere en gecompliceerde opdrachten werkt. Zelfs als je je IQ vergelijkt met dat van Albert Einstein, heb je niet de tijd om alle commando's die je uitvoert te onthouden en begin je al snel vreselijke fouten te maken. Werken op de Linux-terminal stelt een persoon bloot aan twee soorten fouten:

Je kunt het geschiedeniscommando zien als de ninjastrijder die deze twee soorten fouten uitroeit om je productiviteit te verhogen. Een gedachte voordat we met de tutorial beginnen, er is meer aan de Linux-geschiedenisopdracht dan alleen het gebruik van de pijl-omhoog-toets van je toetsenbord. Onze aanpak zorgt ervoor dat je er professioneler uitziet.

Voer het geschiedeniscommando van Linux in

Het initiëren van de geschiedenisopdracht is net zo eenvoudig als het typen van het woord geschiedenis op uw Linux-terminal. Dus start je terminal en geef deze eenvoudige spellingquiz door.

geschiedenis

geschiedenis commando

Als u op enter drukt, krijgt u een lijst met alle opdrachten die u op de terminal hebt uitgevoerd met hun toegewezen id's of gebeurtenisnummers. Het nummeringssysteem dat de Linux-terminalinterface gebruikt, toont de oudste opdracht bovenaan de lijst en de nieuw getypte opdracht onderaan de lijst. Zoals je kunt zien, kreeg het geschiedeniscommando dat ik zojuist heb getypt het id-nummer 24.

geschiedenis commando lijst

Overweeg het scenario van een zeer actieve Linux-terminal. Als we de geschiedenisopdracht op deze terminal zouden typen, zou de uitvoer, laten we zeggen, een lijst zijn met 500 opdrachten die zijn opgeslagen in het geschiedenisbestand. Het geschiedeniscommando is dus nuttig bij het filteren van een gespecificeerd gegroepeerd segment van commando's. Laten we zeggen dat we de laatste 10 opdrachten willen zien die op de terminal zijn uitgevoerd. We zullen onze weg door de terminal filteren door het volgende te typen:.

geschiedenis 10

laatste tien commando's in het geschiedenisbestand

Zoals u kunt zien, filterde de opdracht 'geschiedenis 10' de laatste tien opdrachten die op deze terminal werden gebruikt en vermeldde ze op onze terminal met opname in de opdracht 'geschiedenis 10'.

Dat is een manier om dit doel te bereiken. Een andere nerdy manier om dit te doen is door het geschiedeniscommando uit te lijnen met een ander commando genaamd tail commando. Typ de volgende opdracht, zoals weergegeven in de onderstaande schermafbeelding:.

geschiedenis | staart -n 10

het staartcommando gebruiken om de laatste tien commando's in het geschiedenisbestand weer te geven

De opdracht vermeldt ook de laatste 10 uitgevoerde opdrachten op de Linux-terminal, inclusief degene die we zojuist hebben uitgevoerd.

Eigenlijk de geschiedenis herhalen

Het is tijd voor het leuke gedeelte van het gebruik van de geschiedenisopdracht. Laten we beginnen door de geschiedenis zich daadwerkelijk te laten herhalen?. Aangezien u bekend bent met de geschiedenisopdrachten en de bijbehorende gebeurtenis-ID's, gaan we terug naar de terminal. Om een ​​specifiek vermelde opdracht te herhalen, noteer je de gebeurtenis-ID en bespot je de volgende opdracht, zoals afgebeeld op de schermafbeelding:. Gebruik geen spaties bij het typen van de opdracht.

!17

gebeurtenis-ID gebruiken om een ​​vorige opdracht uit te voeren

In mijn geval wilde ik het bestand Linux /etc/host bekijken en werd om een ​​authenticatiewachtwoord gevraagd. Zodra mijn inloggegevens waren goedgekeurd, voerde de opdracht zichzelf uit.

uitgevoerde opdracht op het geschiedenisbestand

Er is ook een geval waarin u de vorige opdracht die u hebt uitgevoerd wilt herhalen. Dit doel bereiken is net zo eenvoudig als het typen van twee uitroeptekens op uw terminal. Gebruik geen spaties.

!!

vorige opdracht opnieuw uitvoeren

opnieuw uitgevoerd geschiedeniscommando

Zoals je kunt zien, bracht de opdracht ons terug naar het Linux /etc/host-bestand dat ik eerder had geopend. Er was het dubbele uitroepcommando nodig om mijn vorige commando opnieuw te gebruiken, dat vanzelf werd uitgevoerd. Misschien was je gewend aan het toetsenbord Pijl-omhoog-toets, waarvoor je twee acties moest uitvoeren, één keer omhoog scrollen en vervolgens op de enter-knop drukken. Het dubbele uitroepcommando ziet er echter sneller en professioneler uit, omdat u maar een enkele actie hoeft uit te voeren.

Aangezien de opdracht die ik heb gebruikt Sudo-rechten vereist, kan ik mijn dubbele uitroeptekens vooraf laten gaan door een Sudo-opdracht om hetzelfde verwachte resultaat te krijgen.

sudo !!

omgaan met de opdracht Sudo-geschiedenis

Een enkel uitroepteken gecombineerd met een gebeurtenis-ID zal het weergegeven commando uitvoeren dat aan dat ID is gekoppeld. Een dubbel uitroepteken zorgt ervoor dat je je meest recent gebruikte commando uitvoert met de optie om het commando vooraf te laten gaan met Sudo als het een sudoer-gebruiker vereist om uit te voeren.

Misschien wil je ook je nerdigheid naar een hoger niveau tillen en een manier vinden om je 3 te herhalenrd of 6dit vorige opdracht. In dit geval moet u de gebeurtenis-ID noteren die aan de opdracht is gekoppeld. U combineert dan de gebeurtenis-ID met een koppelteken en een enkel uitroepteken als volgt:.

!-21

het uitvoeren van een eerdere opdracht op het geschiedenisbestand

Aan mijn kant wilde ik een vraag stellen over mijn 21st vorige opdracht, en het bleek een ping-verzoek te zijn voor mijn localhost IP-adres. Het gebruik van deze opdrachtreeks is handig wanneer u een eerder uitgevoerde opdracht wilt controleren en wilt bepalen of de parameters die u hebt gebruikt om de opdracht uit te voeren nog steeds geldig of niet bevooroordeeld zijn.

Opdrachtreeksen

Laten we zeggen dat je een opdracht op je terminal hebt uitgevoerd, maar je hebt de opdracht niet volledig onthouden. U bent echter zeker van de effectiviteit van het commando en hoe het u heeft geholpen. Het is erg handig om een ​​deel van de tekenreeks te kennen waaruit dit commando bestaat. In mijn geval ben ik er zeker van dat ik ooit een opdracht heb uitgevoerd om mijn systeem bij te werken. Laten we zeggen dat ik dit systeemupdate-commando nog niet volledig heb onthouden, maar ik weet dat een deel van het commando de tekenreeks 'apt' bevat als de eerste bewoording van het commando. Om deze opdracht opnieuw te gebruiken, typ ik de volgende opdracht op mijn terminal:. Aangezien voor de meeste systeemupdate-opdrachten de autorisatie van een sudoer-gebruiker vereist is, zal ik de opdrachtreeks die ik met Sudo wil gebruiken als prefix plaatsen.

sudo !geschikt

geschiedenisopdracht met strings

Zoals je kunt zien, heb ik mijn Linux-systeem met succes bijgewerkt vanaf de opdrachtregel zonder de volledige opdracht 'sudo apt update' te gebruiken. Deze hack uit de Linux-geschiedenisopdrachthandleiding is handig bij het omgaan met langere opdrachten die vervelend kunnen zijn om te typen of kunnen leiden tot een zeurende typfout. Mogelijk bewerkt u een bestand waarvan het relatieve pad een lange opdracht oplevert, of u kopieert alleen bestanden. Hoe dan ook, je hebt een stressvrije benadering nodig om je repetitieve commando's te recyclen.

Aangezien we het hebben gehad over het autorisatie-aspect van sudoer-gebruikers, kunnen we tegen een muur oplopen als we niet voorzichtig zijn. De meeste opdrachten van gebruikers met sudoer-privileges hebben het voorvoegsel Sudo nodig om uit te voeren. Typ daarom een ​​tekenreekscommando zoals '!sudo' voor de opdrachten die met Sudo beginnen, is mogelijk niet genoeg, omdat dit kan leiden tot de uitvoering van een ongewenste reeks opdrachten. We kunnen echter een vangnet bieden door het gebruik van de parameter :p die een printmodifier is. Daarom zou het combineren van onze tekenreeksopdracht ermee moeten resulteren in de volgende uitvoer:.

!sudo:p

geschiedenis commando met de print modifier

De opdracht drukte de beschikbare Sudo-opdrachten af ​​die ik zojuist heb gebruikt I. Om deze opdracht opnieuw te gebruiken, gebruik ik de pijl-omhoog-toets van het toetsenbord en druk op enter om deze uit te voeren. Als de lijst meer dan één Sudo-opdracht liet zien, zou ik nog steeds de pijl-omhoog-toets gebruiken om naar de specifieke Sudo-opdracht te navigeren die ik opnieuw wilde gebruiken.

Dit zijn niet alle opties die we hebben bij het omgaan met strings. Er is ook een geval waarin u alleen een bepaalde tekenreeks kent die is gedefinieerd in de opdracht die u wilt gebruiken. Het is een geval waarin u niet zeker bent van de eerste tekenreeksen die de opdracht definiëren die u eerder hebt gebruikt. Hier gebruik je zowel het uitroepteken als het vraagteken om je commando te vinden.

!?ping

een specifiek commando uit het geschiedenisbestand uitvoeren via strings

ik gebruikte de '!?ping'-commandoreeks, die mijn vorige ping-verzoek onmiddellijk uitvoerde. U kunt deze reeks gebruiken om eerdere opdrachten op uw terminal uit te voeren die uniek zijn voor anderen.

Interactief zoeken

Laten we aannemen dat je verschillende eerdere commando's hebt die je hebt uitgevoerd, en dat ze vergelijkbare of overeenkomende reeksen hebben. Van al deze overeenkomende aanwijzingen, wil je misschien alleen een specifieke opdrachtreeks in die vouw uitvoeren. Met een interactieve zoekopdracht kom je bij dit ene commando dat je wilt uitvoeren. Om de interactieve zoekactie te starten, combineert u de toetsen Ctrl+r. Uw Linux-terminaldisplay zou er ongeveer zo uit moeten zien als hieronder:.

geschiedenisopdracht en interactief zoeken

Typ gewoon de zoeksleutel voor de opdracht die u moet uitvoeren. In mijn geval typte ik 'apt' en zoals je kunt zien, verscheen het tussen de apostrof en de backtick. U kunt typen als meer tekenreeksaanwijzingen over de opgevraagde opdracht, en de interactieve zoekopdracht zal de gerelateerde resultaten voortdurend bijwerken. Als u op enter drukt, wordt het gevonden commando onmiddellijk uitgevoerd.

sudo apt update

interactief zoeken gebruiken

Bovendien wil je misschien het gevonden commando bewerken voordat je het uitvoert. Gebruik hiervoor de linker en rechter pijltjestoetsen op het toetsenbord. De gevonden opdracht wordt nu weergegeven op de terminal, waar u de benodigde wijzigingen kunt aanbrengen.

sudo apt update && cd FOSSLinux

een interactieve zoekopdracht bewerken

Geschiedenisopdrachten verwijderen

Tot nu toe kunt u nu opdrachten uit het geschiedenisbestand ophalen, opvragen, bijwerken en uitvoeren. Het kan echter zijn dat u op zoek bent naar een manier om de geschiedenislijst van sommige of alle opdrachten te legen. Misschien ben jij dat type gebruiker dat niet wil dat iemand bijhoudt hoe ze hun Linux-systeem hebben gebruikt. De parameter -d helpt je om enkele ongewenste commando's in het geschiedenisbestand te verwijderen. In mijn geval bevat mijn geschiedenisbestand een verkeerd gespelde opdracht met een gebeurtenis-ID-nummer 44.

opdracht geschiedenis vinden om te verwijderen

Om van deze verkeerd gespelde opdracht af te komen, doe ik het volgende op mijn terminal:.

geschiedenis -d 44

gebeurtenis-ID gebruiken om geschiedenisopdracht te verwijderen

Het opnieuw uitvoeren van de opdracht 'geschiedenis' toont aan dat de verkeerd gespelde opdracht is verwijderd.

het verwijderen van het geschiedeniscommando bevestigen

De verwijderoptie is niet alleen van toepassing op een enkele opdracht, maar omvat ook een reeks opdrachten. Overweeg bijvoorbeeld het volgende commando:.

geschiedenis -d 10 20

Deze opdracht verwijdert de geschiedenisbestandsvermeldingen van gebeurtenis-ID 10 naar gebeurtenis-ID 20. Een ander geschiedeniscommando om te overwegen is het volgende:.

geschiedenis -d -6

Dit commando verwijdert de laatste zes commando's die je hebt getypt op de terminal die is opgeslagen in het geschiedenisbestand.

Als je alles uit de lijst met geschiedenisbestanden wilt wissen, kun je de volgende opdracht bespotten:.

geschiedenis -c

wis alle geschiedenisopdrachten

Conclusie

U heeft nu alle benodigde informatie om te beslissen of uw terminalgeschiedenis zich wel of niet moet herhalen. Voor geavanceerde gebruikers zijn er gevallen waarin u een app via de terminal kunt uitvoeren en mogelijk wordt gevraagd een spoor van gevoelige informatie achter te laten. Het geschiedenisbestand slaat ook dergelijke gevoelige gegevens op. Daarom is het een goede gewoonte om altijd uw geschiedenisbestand te wissen voordat u de opdrachtregel verlaat, vooral in gevallen die leiden tot de opslag van gevoelige gegevens. Het geschiedeniscommando geeft je de kracht om de goede tijden op de terminal opnieuw te beleven en ook je eerdere fouten in de opdrachtregel te herstellen.

De scrollrichting van de muis en touchpads omkeren in Windows 10
Muis en Touchpads maken computergebruik niet alleen eenvoudig, maar ook efficiënter en minder tijdrovend. We kunnen ons een leven zonder deze apparate...
Hoe de muisaanwijzer en cursorgrootte, kleur en schema op Windows 10 te veranderen
De muisaanwijzer en cursor in Windows 10 zijn zeer belangrijke aspecten van het besturingssysteem. Dit geldt ook voor andere besturingssystemen, dus i...
Gratis en open source game-engines voor het ontwikkelen van Linux-games
Dit artikel behandelt een lijst met gratis en open source game-engines die kunnen worden gebruikt voor het ontwikkelen van 2D- en 3D-games op Linux. E...