Mastering af bashistorien
Bourne Again Shell, bedre kendt som bash, er standard for de fleste Linux distributioner. Det er ekstremt kraftfuldt, så vidt kommandokalerne går, og holder alle former for nifty tricks til dem, der er villige til at lære. En af de bedste funktioner er efter min mening kommandoblogsystemet.
Der er mange muligheder at bruge med bash-historien, nogle af dem jeg bruger næsten hver gang jeg åbner et kommandoskal. I dag dækker jeg nogle af de mest nyttige aspekter af historien, men jeg vil bestemt ikke være i stand til at dække dem alle.
Op / Ned pile
Mange af jer kender sikkert denne, men for alle, der ikke gør det, vil det gøre dit liv meget lettere. Når som helst du er i kommandoskallen, skal du blot bruge op- og nedpilen på tastaturet til at flytte gennem listen over tidligere indtastede kommandoer. Næste gang du indtaster en lang kommando, der viser sig at have en skrivefelt, behøver du ikke at skrive på hele det hele, bare slå op-pilen og foretage de nødvendige redigeringer.
!!
En lignende egenskab til den ovenfor nævnte er double bang (!!). De tegn, der er indtastet i skallen, repræsenterer den sidste indtastede kommando. Lad os sige, at du forsøger kun at køre en kommando for at finde ud af, at du har brug for rodrettigheder til at gøre det. I stedet for at genindtaste hele kommandoen kan du blot indtaste
sudo !!
Bash vil erstatte !! for den foregående kommando, som i eksemplet nedenfor.
Dette virker også længere bagud, du kan gøre noget lignende
! -5
at huske kommandoen 5 poster tilbage i historien.
!(ord)
Måske for nogle dage siden har du skrevet en lang, kompleks kommando i din shell, for eksempel en række muligheder for "wterm". Du kan finde og genindtaste end kommando ved at bruge historiens indbyggede søgning. Du tilføjer blot de første få bogstaver i kommandoen efter! og bash vil finde det.
Pas på med denne. Du kan ende med at køre noget andet end det du havde forventet. Brug ikke dette til potentielt farlige kommandoer som "rm" eller "fdisk".
!?(ord)
Dette ligner den sidste funktion, idet den søger i historien for det indtastede ord, men i modsætning til! (Ord) finder dette ordet hvor som helst i kommandoen, ikke kun begyndelsen.
Pas på med denne. Du kan ende med at køre noget andet end det du havde forventet. Brug ikke dette til potentielt farlige kommandoer som "rm" eller "fdisk".
Ctrl-R
Denne kan være mit personlige favorithistorieværktøj. Det er lidt som !! punkt ovenfor, men interaktivt. I din kommando skal du trykke Ctrl-R, og det vil starte en søgning. Når du skriver, vil bash søge i historien og vise resultaterne, mens du skriver. Når det viser den kommando, du vil have, skal du blot trykke på Enter, og den vil køre den kommando. Dette kan være sikrere end ting som !? fordi du kan se, hvad kommandoen vil være før du kører den, så du behøver ikke at gætte eller stole på hukommelsen.
Manuel søgning
Måske kan du ikke lide den måde, Ctrl-R fungerer på, eller du vil se alle de kommandoer, du har skrevet, eller bare dem der indeholder et bestemt ord. Historikkommandoen viser dig din fulde kommandobeskrivelse sammen med historienummeret for hver kommando (hold den tanke, vi dækker disse numre på et øjeblik).
Du kan også angive antallet af elementer, som historikkommandoen vil vise. For at se de sidste 10 poster i historien, kan du skrive
historie 10
For at se alle historikposter, der indeholder et bestemt ord, kan du bruge grep til at filtrere resultaterne som nedenfor.
!(nummer)
Når du bruger historik- kommandoen til at se din kommandolinjeliste, vil du bemærke, at hvert element i listen har et nummer der er forbundet med det. Du kan bruge det til at huske den pågældende kommando. For eksempel kan punkt 87 køres igen ved at indtaste
! 87
ind i din shell.
Ord udskiftning
Denne er ret stor. Hvor mange gange har du skrevet ud nogle store lange kommandoer kun for at indse, at du sætter, siger, hdd, når du ville have hdc ? God bash har du dækket. Du kan erstatte et ord i den foregående kommando med en anden ved hjælp af "^" som i eksemplet nedenfor
Administrerer din historie
Som standard gemmes historien i ~ / .bash_history. Du kan håndtere denne fil, men du finder det passende, men der er nogle nyttige ting, du kan forsøge at administrere det automatisk. Nemlig indstiller miljøvariablerne HISTSIZE og HISTFILIZER . For at indstille antallet af indgange, der kan gemmes i historikfilen til 1000, skal du indtaste
eksport HISTFILESIZE = 1000
ind i din shell. Dette begrænser filen til 1000 poster. Hvis du vil gøre denne ændring permanent, skal du placere den pågældende eksportkommando i din .bashrc eller .bash_profile-fil.