Linux Commands for Beginners 15 - Bash History
Innholdsfortegnelse:
- Bruke
history
og historieutvidelsene - Lagre historielisten
- Rydding av historie
- Endre historieoppførsel
- Konklusjon
, vil vi snakke om
history
, som lar deg se en liste over tidligere utførte kommandoer, søke gjennom listen og manipulere historiefilen.
Bruke
history
og historieutvidelsene
history
er et skall som er innebygd, og oppførselen kan avvike noe fra skall til skall. Vi vil dekke Bash-innebygde versjonen av
history
.
I sin enkleste form viser
history
kommandoen hele historielisten med linjenumre når den påberopes uten alternativ eller argument.
history
… 467 git push 468 tail -f var/logs/error 469 nano +22, 5 functions.sh 470 source project-env/bin/activate 471 history
Å skrive
!n
kjører den n-th-kommandoen fra historielisten, og
!-n
kommandoen linjer tilbake. I følgende eksempel utfører vi kommandoen på linje
467
:
!467
En annen måte å utføre en kommando er å bruke
!word
Utvidelse av
!word
.
word
refererer til den siste kommandoen som begynner med 'word'.
Vanligvis viser
history
mange linjer med utdata som ikke passer på skjermen. Hvis du vil se utdataene en side om gangen, kan du rør den til et personsøkerprogram som
more
eller
less
kommando:
history | less
For å vise de siste
n
linjene, pass nummeret som et argument til kommandoen. For å vise bare de fem siste linjene fra historielisten, skriver du:
history -5
Bruk piltastene
up
og
down
å navigere i oppføringene i listen. Når kommandoen du har søkt etter, vises, trykk
Enter
å utføre den.
Type
!!
for å utføre forrige kommando:
!!
Dette er spesielt nyttig når du glemmer å legge en kommando med
sudo
, og i stedet for å skrive inn kommandoen på nytt kan du skrive:
sudo !!
!-1
er det samme som
!!
og utfører den siste kommandoen fra historielisten, !
!-2
sekunder til sist, og så videre.
^word1^word2^
utvidelse lar deg kjøre den siste kommandoen og erstatte "word1" med "word2". Hvis du tilfeldigvis skrev
sduo command
stedet for
sudo command
kan du gjenta kommandoen ved å bruke riktig ord med:
^sduo^sudo^
Bruk
grep
kommandoen for å filtrere utdataene. For å se alle kommandoer inkludert "nano" vil du for eksempel kjøre:
history | grep nano
302 sudo nano /etc/resolv.conf 356 nano setup.py 413 sudo nano /etc/hosts 469 nano +22, 5 functions.sh
Hvis du vil kjøre
nano setup.py
kommandoen på nytt, skriver du bare:
!356
En annen måte å søke gjennom kommandohistorikken er ved å trykke på
Ctrl-R
. Spørsmålet endres til følgende, og du kan begynne å søke etter en tidligere utført kommando.
(reverse-i-search)`':
Skallet vil vise en matchende linje. Trykk
Ctrl-R
igjen for å gå til neste matchede forslag.
Se i Bash-manualen for mer informasjon om History Expansion, modifikatorer og betegnere.
Lagre historielisten
Når du starter en ny økt, leser Bash som standard historielisten fra
.bash_history
filen. Listen over kommandoer som utføres i den nåværende økten, blir lagret i minnet og lagret i filen når økten er lukket.
Alternativet
-a
lar deg lagre gjeldende
.bash_history
i
.bash_history
filen:
history -a
Alternativet
-w
skriver den komplette historielisten til historiefilen.
Rydding av historie
history
lar deg fjerne den komplette historielisten eller fjerne bestemte deler.
For å fjerne historielisten bruker du alternativet
-c
:
history -c
Hvis du vil slette en bestemt linje eller linjer mellom en start- og sluttposisjon fra historielisten, bruker du alternativet
-d
.
For å fjerne linjene mellom 365 og 375 (inkludert linjene), skriver du for eksempel:
history -d 365 375
Når et negativt heltall brukes, telles linjene tilbake fra slutten av historielisten.
Kommandoene over tømmer historielisten, som er lagret i minnet, men fjerner ikke oppføringer fra
.bash_history
filen på disken. For å tømme filen, må du skrive historielisten til filen:
Endre historieoppførsel
Oppførselen til Bash-historien kan defineres ved bruk av flere forskjellige miljøvariabler. Når du endrer historienes oppførsel, angir du variablene i
~/.bashrc
eller en hvilken som helst annen konfigurasjonsfil som lastes inn når brukeren logger seg på.
Som standard holder Bash 500 linjer i kommandologgen.
HISTSIZE
variabelen lar deg endre denne verdien. For å sette den på 10000 legger du til følgende linje i
.bashrc
filen:
HISTSIZE=10000
HISTCONTROL
variabelen godtar en
HISTCONTROL
liste over verdier som definerer hvordan kommandoene lagres i historielisten:
-
ignorespace
- kommandoer som begynner med mellomrom, lagres ikke i historielisten.ignoredups
- dupliserte kommandoer lagres ikke.ignoreboth
- er enignoreboth
, inkludert bådeignorespace
ogignoredups
.
HISTCONTROL=ignoreboth
Når variabelen
HISTTIMEFORMAT
er satt, avhenger Bash en tidsstempel for utførelse for kommandoen på hver linje.
Hvis du for eksempel angir:
HISTTIMEFORMAT="%F %T: "
Historikken vises i følgende format:
413 2019-10-27 21:13:07: sudo nano /etc/hosts
Konklusjon
history
viser en liste over tidligere utførte kommandoer. Du kan for eksempel bruke historikken til å vise en lang kommando du har brukt før, som du ikke kan huske.
Chip Makers Face Longest Decrease in History, sier Gartner

Halvlederindustrien står overfor en av de tøffeste periodene i sin historie, med global chip salget forventes å avta ...
Computer History Museum deler original Photoshop-kode

Enhver bruker kan se nærmere på den opprinnelige koden for Photoshop, som forvandlet bilderedigering i over 20 år siden og fortsetter å presse kantene.
BrowsingHistoryView: Se Browsing History of 4 browsere samtidig

Browsing History View lar deg se Browsing History data of Internet Explorer, Chrome, Firefox og Safari samtidig, på Windows.