Skal

Få ut det bästa av Linux Bash History

Få ut det bästa av Linux Bash History

Linux-kommandoraden - Terminalen, som alla skal, håller en historik över kommandon som tidigare utförts av en användare. Denna historia är beständig och förblir i minnet även när vi startar om vårt system. Dessa lagrade kommandon kan återkallas och återanvändas av oss på det mest optimala sättet för att effektivt använda historiens sparande funktion för de flesta skal.

Linux bash kommer med ett mycket kraftfullt kommando som kallas "historia". Detta kommando är ett inbyggt bash-kommando, som används för att extrahera historikinformation om kommandon som har utförts av Linux-användare under alla tidigare sessioner. I denna handledning kommer vi att göra det möjligt för dig att få ut det bästa av din skalhistorik genom att lära dig rätt användning av kommandot historik. Linux lagrar kommandohistoriken för en viss användare i en fil ~ /.bash_history som standard.

Vi kommer att använda terminalapplikationen för Linux för att köra kommandon som nämns i denna handledning.

Visa hela historiken

En användare kan visa hela historiken för sina shell-kommandon från historikfilen som sparats exklusivt för den användaren genom att använda följande enkla kommando:

$ historia

Historiken kommer att skrivas ut på skärmen i följande standardformat:

I bilden ovan kan du se en lista med alla kommandon med ett nummer som tilldelats var och en av dem. Kommandot nummer 1 motsvarar det första kommandot du körde och det senast numrerade kommandot representerar det senaste kommandot du utförde.

Om du har kört många kommandon sedan du använde bash, kommer du att observera att det kommer att finnas hundratals och till och med tusentals av dessa kommandon här. För att komma åt några relevanta kommandon kan du filtrera resultaten som visas med historikfunktionen. Du kan också anpassa kommandot historik för att visa ett visst antal kommandon åt dig.

Filtrera historikutgången

Om du vill filtrera din historikutgång baserat på ett specifikt nyckelord som du kanske har använt i de tidigare kommandona kan du använda kommandot historik enligt följande:

$ historia | grep [nyckelord]

Exempel: I det här exemplet vill jag bara se ping-kommandon jag någonsin har kört i skalet. Därför kommer jag att använda följande kommando:

$ historia | grep ping

Du kan se att min output nu bara visar kommandona inklusive mitt sökord "ping" Annons

Visa ett antal senaste kommandon

Du kan också visa ett visst antal kommandon, till exempel:

ELLER

N Antal senaste kommandon

Du kan visa ett visst antal nyligen körda kommandon genom följande kommando:

$ historia | svans -n

Exempel:

I det här exemplet vill jag visa de tre senaste kommandona som jag körde, med nyckelordet 'ping':

$ historia | grep ping | svans -3

Utgången visar bara de tre senaste ping-kommandona istället för hela historiken

N Antal äldsta kommandon

Du kan visa ett visst antal av de äldsta körkommandona genom följande kommando:

$ historia | huvud -n

Exempel:

I det här exemplet vill jag se de äldsta tre kommandona som jag körde med nyckelordet 'ping':

$ historia | grep ping | huvud -3

Utgången visar bara de 3 äldsta pingkommandona istället för hela historiken

Lista alla kommandon med datum och tidsstämpel

Om du vill se din kommandohistorik tillsammans med datum och tidsstämpel, använd följande exportkommando:

$ export HISTTIMEFORMAT = "% F,% T"

Nu när du vill visa historiken, kör bara historik-kommandot för att se utdata i följande format:

Observera att denna ändring i format är tillfällig och att den återställs till den tidigare standarden när du stänger sessionen.

Navigera kommandon från historik

Medan du befinner dig på kommandoraden kan du navigera genom tidigare körda kommandon och även komma ihåg några nyligen använda kommandon genom att tillhandahålla ett nyckelord.

Bläddra igenom kommandon

Du kan använda följande tangentbordskontroller för att navigera genom historikommandon

Uppåtpil / Ctrl + PMed dessa kontroller kan du visa det tidigare kommandot du använde. Du kan trycka på dessa kontroller flera gånger för att gå tillbaka till ett visst kommando i historiken.
Nedåtpil / Ctrl + NMed hjälp av dessa kontroller kan du visa nästa kommando du använde. Du kan slå dessa kontroller flera gånger för att gå vidare till ett specifikt kommando i historiken.
Alt + ROm du redigerar ett kommando som du har tagit från historiken på en aktuell rad kan du använda den här kontrollen för att återställa det till det ursprungliga kommandot.

Återkallar kommandon

Du kan återkalla, köra eller välja att inte köra ett specifikt kommando från historiken med följande kontroller:

Ctrl + RMed den här kontrollen kan du återkalla ett kommando från historiken genom att ange en söksträng.
Ctrl + OMed den här kontrollen kan du köra kommandot du har återkallat genom Ctrl + R
Ctrl + GMed den här kontrollen kan du avsluta historiken utan att köra kommandot du har återkallat via Ctrl + R

Exempel:

I det här exemplet tryckte jag på ctrl + R och gav sedan söksträngen 'ar'. Historiken visade kommandot 'arch'.

När jag körde kommandot 'arch' genom att trycka på ctrl + O, visade det CPU-arkitekturen i mitt system:

Använda Bash-historien

Den verkliga magin i bash-historien är att använda olika kommandon och anpassa historik-kommandot för att utnyttja historikfunktionen på bästa sätt:

Kör kommandon från historien

$ !#

Exempel:

Här kör jag kommandot nummer 95 från min historik:

$ !95

Utgången visar resultatet av 'lscpu' som listades som kommandonummer 95 i min bash-historik. Detta kommando visar mina specifikationer för CPU och operativsystem.

$ !!

Exempel:

Här kan du se att jag körde kommandot 'arch'. Genom att köra ovan nämnda kommando kan jag köra kommandot 'arch' igen för att se min CPU-arkitektur enligt följande:

$ ![nyckelord]

Exempel:

Jag kommer att använda följande kommando för att köra om det sista kommandot med nyckelordet 'dconf' i det:

$ !dconf

Du kan bekräfta i följande bild på nytt att det var det senaste dconf-kommandot jag körde.

Använda argument från tidigare kommandon

Med Linux bash kan du köra ett nytt kommando med hjälp av argument från föregående kommando. Det är särskilt användbart när du vill undvika att skriva in långa eller komplicerade argument igen. Du kan använda följande kommando för detta ändamål:

Med det sista argumentet från föregående kommando

$ [Kommando] !$

Variabeln !$ har det sista argumentet från det tidigare kommandot lagrat i det.

Exempel:

I det här exemplet skapar jag en fil med ett långt namn.

Nano [longnameOfaFile]

Jag kommer sedan att kopiera den till en annan plats genom att undvika att skriva det långa namnet igen enligt följande:

Cp !$ [destinationsmapp]

Du kan se att jag kunde kopiera en fil utan att skriva in filnamnet igen med hjälp av variabeln !$

Med det första argumentet från föregående kommando

Ibland är bara det första argumentet från föregående kommando användbart i det aktuella.

I så fall kan du använda följande kommando:

$ [kommando] !^

Exempel:

I följande exempel körde jag ping-kommandot genom att ange värdnamn och ett antal som argument. Nu vill jag använda värdnamnet (första argumentet) snarare än 2 (det sista argumentet) i mitt nya kommando. Jag kommer att använda följande kommando för detta ändamål:

$ ping !^

Med alla argument från föregående kommando

Du kan också använda alla argument från föregående kommando genom att använda följande kommando:

$ !*

Använda ett argument från ett historik-kommando

Du kan också använda kommandon från din historik genom att använda deras argument igen. Använd följande kommando för detta ändamål:

$ [kommando] ![nyckelord]:#

Exempel:

$ eko !cp: 2

Detta kommando tar följande parametrar:

kommando: eko

Nyckelord: cp

#: 2 (andra argumentet för kommandot)

Följande utdata visar det andra argumentet för det sista cp-kommandot jag körde:

Använda alla argument från ett historik-kommando

Följande kommando lagrar alla argument från det sökta historik-kommandot och använder dem i det aktuella kommandot:

$ kommando ![nyckelord]:*

Exempel:

I följande kommando kommer jag att skriva ut alla argument för det senaste cp-kommandot genom att använda echo-kommandot enligt följande:

$ eko ![cp]: *

Ändra och köra tidigare kommandon

Om du fel skrev ett kommando eller vill köra ett kommando igen genom att ändra text i det; följande är sättet att göra det:

$ ^ [föregående text] ^ [nytext]

Exempel:

Jag skrev fel kommandot 'grep' som 'gep' och nu vill jag köra kommandot genom att korrigera texten:

$ ^ gep ^ grep

Nu kan du se att mitt korrigerade kommando körs ordentligt enligt följande:

Rensa historik

För att radera historien om din bash, använd följande kommando:

$ historia -c

Detta kommando rensar din historik och tar bort allt innehåll från filen ~ /.bash_history

I den här handledningen har vi lärt oss att medan utskrift av hela historikinnehållet kanske inte är så användbart, är det den verkliga spelväxlaren att optimera utdata genom de kommandon vi lärde oss. Öva tillsammans med den här artikeln gör att du kan se exakta kommandon du vill, köra om och återanvända dessa kommandon, och även använda argument från tidigare körda kommandon för att optimera nya.

Gratis och öppen källkodsmotorer för utveckling av Linux-spel
Den här artikeln kommer att täcka en lista över gratis motorer med öppen källkod som kan användas för att utveckla 2D- och 3D-spel på Linux. Det finns...
Shadow of the Tomb Raider for Linux Tutorial
Shadow of the Tomb Raider är det tolfte tillskottet till Tomb Raider-serien - en action-äventyrsspelfranchise skapad av Eidos Montreal. Spelet mottogs...
Hur man förbättrar FPS i Linux?
FPS står för Bildrutor per sekund. FPS: s uppgift är att mäta bildfrekvensen i videouppspelningar eller spelprestanda. Med enkla ord betecknas antalet...