Linux Commands for Beginners 15 - Bash History
Inhoudsopgave:
- De
historyen geschiedenisuitbreidingen gebruiken - De geschiedenislijst opslaan
- Geschiedenis wissen
- Geschiedenisgedrag wijzigen
- Conclusie
, zullen we het hebben over de
history
, waarmee u een lijst met eerder uitgevoerde opdrachten kunt bekijken, door de lijst kunt zoeken en het geschiedenisbestand kunt manipuleren.
De
history
en geschiedenisuitbreidingen gebruiken
history
is een shell ingebouwd en het gedrag kan enigszins verschillen van shell tot shell. We zullen de Bash ingebouwde versie van de
history
.
In zijn eenvoudigste vorm, wanneer het wordt opgeroepen zonder enige optie of argument, geeft de
history
de hele geschiedenislijst met regelnummers weer.
history
… 467 git push 468 tail -f var/logs/error 469 nano +22, 5 functions.sh 470 source project-env/bin/activate 471 history
Als u
!n
typt, wordt de n-de opdracht uit de geschiedenislijst uitgevoerd en
!-n
de opdracht n komt terug. In het volgende voorbeeld voeren we de opdracht op regel
467
:
!467
Een andere manier om een opdracht uit te voeren is door
!word
te gebruiken.
word
verwijst naar de meest recente opdracht die begint met 'word'.
Doorgaans worden in de
history
veel uitvoerregels weergegeven die niet op het scherm passen. Als u de uitvoer pagina voor pagina wilt bekijken, stuurt u deze naar een semafoonprogramma zoals een
more
of
less
opdracht:
history | less
Om de laatste
n
regels weer te geven, geeft u het nummer als argument door aan de opdracht. Als u bijvoorbeeld alleen de laatste vijf regels uit de geschiedenislijst wilt bekijken, typt u:
history -5
Gebruik de pijltoetsen
up
en
down
om door de items in de lijst te navigeren. Wanneer het commando waarnaar u hebt gezocht wordt weergegeven, drukt u op
Enter
om het uit te voeren.
Type
!!
om de vorige opdracht uit te voeren:
!!
Dit is vooral handig als je een opdracht vergeet uit te voeren met
sudo
, en in plaats van de opdracht opnieuw te typen, kun je het volgende typen:
sudo !!
!-1
is hetzelfde als
!!
en voert de laatste opdracht uit de geschiedenislijst uit, !
!-2
voorlaatste, enzovoort.
^word1^word2^
uitbreiding laat je de laatste opdracht opnieuw uitvoeren door “word1” te vervangen door “word2”. Als je per ongeluk het
sduo command
hebt ingevoerd in plaats van het
sudo command
kun je het commando herhalen met het juiste woord met:
^sduo^sudo^
Gebruik de opdracht
grep
om de uitvoer te filteren. Als u bijvoorbeeld alle opdrachten wilt bekijken, inclusief 'nano', zou u het volgende uitvoeren:
history | grep nano
302 sudo nano /etc/resolv.conf 356 nano setup.py 413 sudo nano /etc/hosts 469 nano +22, 5 functions.sh
Als u nu de opdracht
nano setup.py
opnieuw wilt uitvoeren,
nano setup.py
eenvoudig:
!356
Een andere manier om in de opdrachtgeschiedenis te zoeken, is door op
Ctrl-R
drukken. De prompt verandert in het volgende en u kunt beginnen met zoeken naar een eerder uitgevoerde opdracht.
(reverse-i-search)`':
De shell geeft een overeenkomende lijn weer. Druk nogmaals op
Ctrl-R
om naar de volgende overeenkomende suggestie te gaan.
Raadpleeg de Bash-handleiding voor meer informatie over geschiedenisuitbreiding, modificatoren en aanwijzers.
De geschiedenislijst opslaan
Bij het starten van een nieuwe sessie leest Bash standaard de geschiedenislijst uit het
.bash_history
bestand. De lijst met opdrachten die in de huidige sessie worden uitgevoerd, wordt in het geheugen bewaard en in het bestand opgeslagen wanneer de sessie wordt gesloten.
Met de optie
-a
kunt u de huidige lijst met
.bash_history
opslaan in het
.bash_history
bestand:
history -a
De optie
-w
schrijft de volledige geschiedenislijst naar het geschiedenisbestand.
Geschiedenis wissen
Met de
history
kunt u de volledige geschiedenislijst wissen of bepaalde onderdelen verwijderen.
Gebruik de optie
-c
om de geschiedenislijst te wissen:
history -c
Gebruik de optie
-d
om een specifieke regel of lijnen tussen een begin- en eindpositie uit de geschiedenislijst te verwijderen.
Als u bijvoorbeeld de lijnen tussen 365 en 375 (inclusief die lijnen) wilt verwijderen, typt u:
history -d 365 375
Wanneer een negatief geheel getal wordt gebruikt, worden de lijnen teruggeteld vanaf het einde van de geschiedenislijst.
De bovenstaande opdrachten wissen de geschiedenislijst, die in het geheugen wordt bewaard, maar verwijdert geen vermeldingen uit het
.bash_history
bestand op de schijf. Om het bestand te wissen, moet u de geschiedenislijst naar het bestand schrijven:
Geschiedenisgedrag wijzigen
Het gedrag van de Bash-geschiedenis kan worden gedefinieerd met behulp van verschillende omgevingsvariabelen. Wanneer u het geschiedenisgedrag wijzigt, stelt u de variabelen in
~/.bashrc
of een ander configuratiebestand in dat wordt geladen wanneer de gebruiker zich aanmeldt.
Standaard houdt Bash 500 regels in de lijst met opdrachtgeschiedenis. Met de variabele
HISTSIZE
kunt u deze waarde wijzigen. Om deze in te stellen op 10000, voeg je de volgende regel toe aan je
.bashrc
bestand:
HISTSIZE=10000
De variabele
HISTCONTROL
accepteert een dubbele punt gescheiden lijst met waarden die definiëren hoe de opdrachten worden opgeslagen in de geschiedenislijst:
-
ignorespace- commando's die beginnen met spatie worden niet opgeslagen in de geschiedenislijst.ignoredups- dubbele opdrachten worden niet opgeslagen.ignoreboth- is een afkorting, inclusief zowelignorespacealsignoredups.
HISTCONTROL=ignoreboth
Wanneer de variabele
HISTTIMEFORMAT
is ingesteld, staat Bash voor elke opdracht een tijdstempel van uitvoering voor.
Als u bijvoorbeeld instelt:
HISTTIMEFORMAT="%F %T: "
De geschiedenis wordt weergegeven in de volgende indeling:
413 2019-10-27 21:13:07: sudo nano /etc/hosts
Conclusie
De
history
geeft een lijst met eerder uitgevoerde opdrachten weer. U kunt bijvoorbeeld de geschiedenis gebruiken om een lange opdracht te bekijken die u eerder hebt gebruikt en die u zich niet kunt herinneren.
Microsoft Research Asia host poorten op 10 jaar Bash
Microsoft Research Asia is in 1998 van een dozijn mensen gegroeid tot meer dan 350 een decennium later.
Kunnen dichtknijpen Google OS kan andere smaken van Linux onder druk zetten
Een groot deel van de discussie rond het nieuwe pc-besturingssysteem van Google is gericht op een dreigende strijd met Windows, maar de grootste verliezers kunnen andere Linux-besturingssystemen zijn die met enig gematigd succes op netbooks, industrieanalisten hebben genoten zei.
Hoe het linux sleep commando te gebruiken om een bash-script te pauzeren
Sleep is een opdrachtregelprogramma waarmee u het aanroepproces gedurende een bepaalde tijd kunt onderbreken. In deze zelfstudie laten we u zien hoe u het Linux-slaapcommando gebruikt.







