BASH-programmering

Bash-opdrachtgeschiedenis gebruiken en aanpassen

Bash-opdrachtgeschiedenis gebruiken en aanpassen
De bash-shell is de standaardopdrachtregelomgeving die beschikbaar is in de meeste Linux-distributies. Net als bij alle shell-omgevingen, houdt het een overzicht bij van opdrachten die eerder door de gebruiker zijn uitgevoerd. Dit record wordt bewaard en onderhouden, zelfs als we ons systeem opnieuw opstarten.

U kent misschien het basisgebruik van het geschiedeniscommando, maar het kan veel meer dan dat. Bash-geschiedenis wordt meestal opgeslagen in het bestand ~/.bash_history. Hiermee kunt u het opgeslagen record op een efficiënte manier oproepen en opnieuw gebruiken om het beste uit de functie voor het opslaan van bash-geschiedenis te halen. Niet alleen dit, maar u kunt ook de uitvoer van de bash-opdracht aanpassen en besturen op de manier die u wilt.

In dit artikel zullen we uitleggen hoe je de bash-opdrachtgeschiedenis effectief kunt gebruiken en aanpassen om het meeste uit de functies te halen.

We hebben Debian 10 gebruikt voor het uitvoeren van de opdrachten en procedure die in dit artikel worden genoemd.

Geschiedenis van bash-opdrachten gebruiken

1. De bash-geschiedenis bekijken

Om de volledige geschiedenis van shell-opdrachten te bekijken, kunt u de volgende opdracht in Terminal uitvoeren:

$ geschiedenis

Het toont de volledige geschiedenis voor een specifieke gebruiker uit het geschiedenisbestand dat speciaal voor die gebruiker is opgeslagen. U ziet alle opdrachten die beginnen met een nummer dat aan elk van hen is toegewezen. Het toont de oudere commando's bovenaan, beginnend met nummer 1 en de nieuwere commando's onderaan at.

2. Zoeken in de geschiedenisuitvoer

U kunt ook naar een specifiek trefwoord zoeken vanuit de geschiedenisuitvoer. Koppel de geschiedenisopdracht met grep en een specifiek trefwoord om als volgt te zoeken naar opdrachten die overeenkomen met uw opgegeven trefwoord:

$ geschiedenis | grep [zoekwoord]

Als u bijvoorbeeld alle opdrachten wilt weergeven die het trefwoord "vinden" bevatten, zou de opdracht zijn:

$ geschiedenis | grep vondst

3. Laatste n opdrachten bekijken

De geschiedenisopdracht geeft standaard het laatste 1000 aantal opdrachten weer dat door een gebruiker is uitgevoerd. Als u alleen een specifiek nummer wilt weergeven, laten we zeggen n nummer van de laatst uitgevoerde opdracht, voer dan de volgende opdracht uit in Terminal:

$ geschiedenis n

Om bijvoorbeeld de laatste 7 uitgevoerde opdrachten weer te geven, zou de opdracht zijn:

$ geschiedenis 7

Om het aantal van de laatste n run-opdrachten te bekijken die een specifiek trefwoord bevatten, kunt u de volgende syntaxis gebruiken:

$ geschiedenis | grep trefwoord |tail -n

Een voorbeeld hiervan zou zijn om de laatste 4 uitgevoerde commando's te bekijken met het trefwoord "java".

$ geschiedenis | grep java |tail -n

4. Oudste commando's bekijken

Om het oudste n aantal opdrachten te bekijken, kunt u de volgende syntaxis in Terminal gebruiken:

$ geschiedenis | hoofd -n

Gebruik de volgende syntaxis om het oudste n aantal opdrachten met een specifiek trefwoord te bekijken:

$ geschiedenis | grep trefwoord |head -n

Een voorbeeld hiervan zou zijn om de oudste 4 uitgevoerde commando's te bekijken met het trefwoord "java".

$ geschiedenis | grep java |head -4

5. Wis de Bash-geschiedenis volledig

Voer de volgende opdracht uit in Terminal om de volledige bash-geschiedenis te verwijderen:

$ geschiedenis -cw

Geschiedenis van bash-opdrachten aanpassen

Om de bash-opdrachtgeschiedenis aan te passen, moeten we wijzigingen aanbrengen in de ~/.bashrc-bestand. Om de ~/.bashrc-bestand, gebruik dan de volgende opdracht:

$ nano ~/.bashrc

Als u klaar bent met het wijzigen van het bestand, gebruikt u Ctrl+O en Ctrl+X om de nano-editor op te slaan en te sluiten.

Voer vervolgens de volgende opdracht uit om de wijzigingen toe te passen:

$ bron ~/.bashrc

1. Datum en tijdstempel toevoegen aan Bash-geschiedenis

Als u de datum en tijdstempel samen met de opdrachtgeschiedenis wilt weergeven, kunt u dat doen door de volgende regel toe te voegen in ~/.bashr:

$ export HISTTIMEFORMAT='%F, %T '

Voer nu de geschiedenis commando en het toont de opdrachtgeschiedenis met bijbehorende gegevens en tijdstempel.

2. Toenemende omvang van Bash-geschiedenis

Bash houdt standaard 500 opdrachten in de geschiedenislijst history. We kunnen deze waarde echter wijzigen met behulp van de HISTSIZE-waarde.

Voer de volgende opdracht uit in Terminal om de huidige grootte van de bash-geschiedenis te bekijken:

$ echo $HISTSIZE

Evenzo is de standaardgrootte van het bash-geschiedenisbestand 500. Het is het maximale aantal vermeldingen dat in het geschiedenisbestand zit.

Als je de bash-geschiedenis wilt vergroten, laten we zeggen 10000, voeg je de volgende regels toe in ~/.bashrc-bestand:

$ HISTSIZE=10000
$ HISTFILESSIZE=10000

Om te controleren of de grootte van de bash-geschiedenis met succes is gewijzigd, voert u de volgende opdrachten uit in Terminal:

$ echo $HISTSIZE
$ echo $HISTFILESSIZE

3. Bash-opdrachten toevoegen aan het geschiedenisbestand History

Wanneer een bash-sessie is gesloten, kunt u kiezen of u de opdrachten in het geschiedenisbestand wilt overschrijven of toevoegen met behulp van de variabele histappend. Voer de volgende opdracht uit in Terminal om de huidige instellingen te bekijken:

$ shopt gesprongen

De "aan" in de uitvoer geeft aan dat de optie histappend is ingeschakeld en dat de opdrachten worden toegevoegd aan het geschiedenisbestand in plaats van te worden overschreven. Terwijl "uit" wordt weergegeven, is de optie histappend uitgeschakeld en wordt het bestand overschreven.

Open de ~/.bashrc-bestand en:

Voeg de volgende regel toe als u de opdrachten aan het geschiedenisbestand wilt toevoegen in plaats van te overschrijven:

$ shopt -s histappend

Of voeg de volgende regel toe als u de toevoegoptie wilt uitschakelen en het bestand bij afsluiten wilt overschrijven:

$ shopt -u histappend

4. Sla Bash-geschiedenis onmiddellijk op

Bash slaat de sessie standaard alleen op in het bash-geschiedenisbestand als de sessie is afgelopen. Om dit standaardgedrag te wijzigen en ervoor te zorgen dat elke opdracht die u hebt uitgevoerd onmiddellijk wordt opgeslagen, kunt u PROMPT_COMMAND gebruiken.

Bewerk de ~/.bashrc-bestand en voeg de volgende regel toe:

$ PROMPT_COMMAND='geschiedenis -a'

Telkens wanneer u een opdracht uitvoert, wordt deze onmiddellijk toegevoegd aan het geschiedenisbestand.

5. Beheer Bash-geschiedenis

We kunnen bepalen hoe bash onze opdrachtgeschiedenis opslaat via de HISTCONTROL-variabele. We kunnen het specificeren om dubbele vermeldingen te negeren en/of om vermeldingen met voorloopspaties te negeren.

Om deze functies toe te passen, opent u de ~/.bashrc en voeg de volgende regel toe met waarden gescheiden door de dubbele punt als volgt:

$ export HISTCONTROL=ignorespace:ignoredups

6. Specifieke opdrachten negeren

We kunnen ook bepalen welke commando's in de geschiedenis moeten worden genegeerd met behulp van een variabele HISTIGNORE. Het is een door dubbele punten gescheiden lijst met patronen waarin we alle commando's kunnen specificeren die we uit de geschiedenis willen negeren.

Als we bijvoorbeeld de basiscommando's zoals history, ls, pwd-commando's niet in de geschiedenislijst willen zetten, dan voegen we de volgende regel toe aan de ~/.bashrc-bestand:

$ export HISTIGNORE="geschiedenis:ls:pwd:"

Met de Linux bash-opdrachtgeschiedenis kun je veel meer doen dan alleen de oude opdrachten herhalen. In dit artikel hebben we geleerd hoe we de bash-geschiedenis kunnen gebruiken om de opdrachten te bekijken die eerder zijn uitgevoerd en ook hebben we geleerd om de manier waarop bash de opdrachtgeschiedenis opslaat te controleren.

Beste gameconsole-emulators voor Linux
Dit artikel bevat een lijst van populaire emulatiesoftware voor gameconsoles die beschikbaar is voor Linux. Emulatie is een softwarecompatibiliteitsla...
Beste Linux-distributies voor gaming in 2021
Het Linux-besturingssysteem heeft een lange weg afgelegd van zijn oorspronkelijke, eenvoudige, servergebaseerde uiterlijk. Dit besturingssysteem is de...
Hoe u uw gamesessie op Linux kunt vastleggen en streamen
In het verleden werd het spelen van games alleen als een hobby beschouwd, maar met de tijd zag de game-industrie een enorme groei in termen van techno...