da.phhsnews.com


da.phhsnews.com / Sådan bruger du din bashistorie i Linux- eller macOS-terminalen

Sådan bruger du din bashistorie i Linux- eller macOS-terminalen


Bash-skalen er standardterminalmiljøet, der følger med de fleste Linux-distributioner, der følger med macOS, og er tilgængelig til installation på Windows 10. Den husker de kommandoer, du skriver og gemmer dem i en historikfil. Du kender sikkert nogle få basics af bash-historien, men det er meget kraftigere end du måske indser.

Tastaturgenveje

RELATERET: De bedste tastaturgenveje til Bash (også Linux og MacOS Terminal)

For at rulle gennem din bash historie kan du bruge et par af bashs mange nyttige tastaturgenveje. Tryk på disse genveje, og kommandoer, du tidligere har brugt, vises under spørgsmålet.

  • Pil op eller Ctrl + P : Gå til den forrige kommando i din historie. Tryk på tasten flere gange for at gå baglæns gennem de kommandoer, du har brugt.
  • Pil ned eller Ctrl + N : Gå til næste kommando i din historie. Tryk på tasten flere gange for at gå fremad gennem de kommandoer, du har brugt.
  • Alt + R : Ret alle ændringer i en kommando, du har trukket fra din historie, hvis du har redigeret den på den aktuelle linje.

Bash har også en særlig "tilbagekald" -tilstand, du kan bruge til at søge efter kommandoer, du tidligere har kørt, i stedet for at rulle gennem dem en efter en.

  • Ctrl + R : Husk den sidste kommando, der matcher tegn du giver. Tryk på denne genvej, og begynd at skrive for at søge i din bash-historie for en kommando.
  • Ctrl + O : Kør kommandoen du fandt med Ctrl + R.
  • Ctrl + G : Lad historiksøgningstilstanden uden at køre en kommando.

Vis din bashistorie

Du kan udskrive hele bash-historien på skærmen ved at køre en enkelt kommando:

historie

Du vil se en liste over alle kommandoer i din bash historie, sammen med et tal til venstre for hver. Kommandoen med en "1" ved siden af ​​den er den ældste kommando i din bash-historie, mens kommandoen med det højeste nummer er den seneste.

RELATERET: Bliv en Linux Terminal Power User med disse 8 tricks

Du kan gøre alt, hvad du kan lide med output. For eksempel kan du røre den til kommandoengrepfor at søge i din kommandobeskrivelse.

historie | grep your_search

Du kan også røre den til kommandoenhalefor kun at se et lille antal af de seneste kommandoer, du har kørt. For eksempel vil følgende kommando vise de sidste 5 poster i din historie.

historie | hale -5

Kør kommandoer fra din historie

Bash kan hurtigt "udvide" tidligere kommandoer eller udvide dem og ændre dem. Denne funktion er kendt som "historieudvidelse" og bruger et udråbstegn, kendt som et "bang". Indtast dem bare ved prompten, og tryk på Enter for at køre dem som om du ville køre en anden kommando.

For at køre en bestemt kommando fra din historie med nummeret, skal du bruge følgende kommando:

! #

For Eksempel, lad os sige, at du ønskede at køre den 12. kommando fra din bash historie. Det er kommandoen med en "12" til venstre for det, når du kører kommandoenhistorie. Du skriver følgende kommando.

! 12

Indtast følgende for at køre den sidste kommando, du har kørt, igen. Dette har samme virkning som at trykke på pil op en gang for at se den forrige kommando og derefter trykke på Enter.

!!

Du kan også henvise til en kommando et bestemt antal linjer tilbage. For eksempel ville! - 2køre den anden til den sidste kommando, du løb.!!betyder det samme som! - 1.

Denne udvidelse virker hvor som helst på linjen. Du kan tilføje noget, du kan lide før eller efter!!eller et hvilket som helst af de andre udtryk i dette afsnit. Du kan for eksempel skrive følgende kommando for at genoprette den sidste kommando, du løb gennemsudo, hvilket giver det rodrettigheder. Dette er særligt nyttigt, hvis du glemmer at tilføjesudo, før du kører en kommando.

sudo !!

Eller du kan f.eks. Omdanne den foregående kommando og røre dens output til grep for at søge efter nogle tekst.

!! | grep-tekst

Indtast følgende for at søge efter en kommando i din historie og køre den. Dette vil køre den sidste kommando, der svarer til den tekst, du angiver:

! text

Så hvis du for nylig kørte en kommando, der begyndte medping, kan du køre følgende kommando for at søge efter det. Dette vil søge baglæns gennem din historie, find den seneste kommando, der begynder med "pi", og kør det øjeblikkeligt: ​​

! Pi

Du kan tilføje en: ptil nogen af ​​de ovennævnte udvidelser og bash vil udskrive kommandoen til terminalen uden at køre den. Dette er nyttigt, hvis du vil bekræfte, at du vælger den korrekte kommando, inden du kører den.

! 12: p
!!: p
! Text: p

Genbrug argumenter fra din historie

Bash giver dig også mulighed for at køre en ny kommando, men brug argumenter fra tidligere kommandoer i din historie. Dette kan hjælpe dig med hurtigt at genbruge lange eller komplicerede argumenter uden at skulle skrive dem igen.

command! $

Lad os f.eks. Sige at du kørte kommandoentouch / home / chris / some_long_file_name_you_dont_want_to_type_again. Du vil nu køre kommandoennano / home / chris / some_long_file_name_you_dont_want_to_type_again. I stedet for at skrive hele ting fra bunden, kan du køre:

nano! $

The! $ville gøre bash automatisk at udfylde det sidste argument fra din tidligere kommando.

Kun dette udfylder det sidste argument. Så hvis du kørerping google.com -c 4og derefter kørerping! $, vil dette bare udvides til "ping 4".

For at rette op på denne situation kan du bruge følgende trick til at udvide det første argument på linjen, i stedet for den sidste:

kommando! ^

Så hvis du kørteping google.com -c 4og derefter kørteping! ^, ville bash udvide dette til "ping google.com".

For at udfylde alle de argumenter, der blev brugt i den foregående kommando i stedet for bare et enkelt argument, vil du bruge følgende:

kommando! *

Så hvis du kørteping! *i stedet, ville bash automatisk udfylde alle de argumenter, du brugte i den foregående kommando .

Du kan bruge det samme trick du bruger til at køre kommandoer fra din historie for at få argumenter fra dem. Brug kun følgende formular.

kommando! Abc: #

Eksempelvis kørte vi kommandoensudo værtsnavn ubuntutidligere. Hvis vi kører følgende kommando, vil bash søge baglæns gennem historien for at finde den sidste kommando beginni ng med de bogstaver, vi skriver, og udfyld det argument, vi angiver. Så hvis vi kørerecho! Su: 2, vil bash søge tilbage for at finde den sidste kommando, der begynder med "su" og udfylde sit andet argument, som er "ubuntu".

Andre tricks fungerer som du måske forventer. Hvis du f.eks. Erstatter tallet med en stjerne, der kaldes wildcard, får bash at udfylde alle argumenter fra kommandoen:

kommando! Abc: *

Genopret den foregående kommando og modificer det

Bash tillader også Du skal genoprette den foregående kommando og angive noget, der skal ændres. Dette kan være nyttigt for at rette en skrivemaskine i en kommando. F.eks. Vil den følgende kommando genoprette den foregående kommando og erstatte teksten "abc" med teksten "xyz".

^ abc ^ xyz

For Eksempel: Hvis du ved et uheld kørteping gogle.com, kan du derefter køre^ gog ^ googog bash ville køre kommandoenping google.comi stedet.

Hvor din historie er gemt, og hvordan du sletter den.

Bash-shell gemmer historien for de kommandoer, du har kørt i din brugerkontos historikfil ved ~ / .bash_history som standard. For eksempel, hvis dit brugernavn er Bob, finder du denne fil på /home/bob/.bash_history.

Fordi din historie er gemt i en fil, fortsætter den mellem sessioner. Du kan køre nogle kommandoer, logge ud, komme tilbage næste dag, og disse kommandoer vil stadig være i din historikfil klar til visning og brug. Hver brugerkonto har sin egen historikfil med en separat kommandog History.

For at rydde din bash-historie kan du køre følgende kommando. Dette sletter indholdet af din brugerkonto .bash_history-fil:

historie -c

Bash husker kun et begrænset antal kommandoer som standard, hvilket forhindrer, at historikfilen vokser for stor. Antallet af historikposter bash husker styres afHISTSIZEvariabel. Standard er normalt 500 eller 1000 poster. Du kan køre følgende kommando for at se størrelsen på bash-historien på dit system.

echo $ HISTSIZE

For at indstille din historie til nul, kør følgende kommando.

HISTSIZE = 0

Til nuværende session vil bash ikke gemme nogen historikposter, medmindre du kører en kommando somHISTSIZE = 1000for at indstille den til et bestemt antal poster.

Sådan ignoreres mellemrum og duplikater

Bas giver dig mulighed for at ignorere historikposter, der begynder med et mellemrum, hvis du indstiller variablenHISTCONTROLtilignorespace.

HISTCONTROL = ignorespace

Skriv et mellemrum før en kommando, før du kører den i bash shell og kommandoen løber normalt, men vises ikke i din historie, hvis du har denne variabel aktiveret. Dette giver dig mulighed for at holde din historie lidt renere og vælge at køre kommandoer uden at de vises i din historie.

Bash giver dig også mulighed for at ignorere duplikatkommandoer, der kan forstyrre din historie. For at gøre det skal du indstilleHISTCONTROLtilignoredups.

HISTCONTROL = ignoredups

Hvis du vil bruge både funktionenignorespaceogignoredups, skal du indstilleHISTCONTROLvariabel tilignoreboth.

HISTCONTROL = ignoreboth

Bemærk, at bash-variabler du indstiller kun vedvarer for den aktuelle session. Du skal tilføje disse til din brugerkonto .bashrc-fil for at få disse værdier automatisk indstillet i hver bash-session, du starter, hvis du foretrækker det.

Bash shell er et komplekst værktøj med mange flere muligheder end disse. Se Bash History Builtins og History Expansion sektionerne i den officielle bash manual mere detaljerede oplysninger og andre avancerede tricks du kan bruge.


Sådan bruges Smarthome Dør Sensorer rundt om Metal

Sådan bruges Smarthome Dør Sensorer rundt om Metal

ÅBn / luk sensorer, som de, der følger med Samsung SmartThings-kit, er gode til at automatisere bestemte handlinger, når der åbnes døre eller vinduer. Men hvis du har problemer med at få dem til at fungere godt, kan det skyldes, at metallet på døren eller vinduet forårsager problemer med det magnetsystem, som bruges på sensorerne.

(how-top)

Kontroller, hvor lang tid Windows venter, før du dræber apps ved nedlukning

Kontroller, hvor lang tid Windows venter, før du dræber apps ved nedlukning

Når du slukker computeren, slukker Windows ikke med det samme. I stedet giver det løbende applikationer og tjenester noget tid til at lukke først. Du kan kontrollere, hvor længe Windows venter - og om det automatisk lukker kørende programmer eller ej. Du skal normalt ikke ændre disse indstillinger, men det kan være nyttigt, hvis du vil tvinge computeren til at lukke mere hurtigt.

(how-top)