nl.phhsnews.com


nl.phhsnews.com / Hoe u uw basishistorie in de Linux- of macOS-terminal gebruikt

Hoe u uw basishistorie in de Linux- of macOS-terminal gebruikt


De bash-shell is de standaardterminalomgeving die bij de meeste Linux-distributies wordt meegeleverd, die is meegeleverd met macOS en beschikbaar is voor installatie op Windows 10. Het onthoudt de opdrachten die u typt en slaat ze op in een geschiedenisbestand. Je kent waarschijnlijk wel een paar basisbegrippen van de bash-geschiedenis, maar het is veel krachtiger dan je zou denken.

Toetsenbordsneltoetsen

GERELATEERD: De beste sneltoetsen voor Bash (ook bekend als de Linux- en macOS-terminal)

Om door je bash-geschiedenis te bladeren, kun je enkele van de vele handige sneltoetsen van bash gebruiken. Druk op deze snelkoppelingen en de opdrachten die u eerder hebt gebruikt, verschijnen bij de prompt.

  • Pijl omhoog of Ctrl + P : ga naar het vorige commando in uw geschiedenis. Druk meerdere keren op de toets om terug te lopen door de opdrachten die u hebt gebruikt.
  • Pijl-omlaag of Ctrl + N : ga naar het volgende commando in uw geschiedenis. Druk meerdere malen op de toets om vooruit te lopen door de opdrachten die u hebt gebruikt.
  • Alt + R : herstel alle wijzigingen in een opdracht die u uit uw geschiedenis hebt getrokken als u deze op de huidige regel hebt bewerkt.

Bash heeft ook een speciale "recall" -modus die u kunt gebruiken om te zoeken naar opdrachten die u eerder hebt uitgevoerd, in plaats van ze één voor één te doorlopen.

  • Ctrl + R : Roep de laatste opdracht op die overeenkomt met de tekens die u verstrekt. Druk op deze snelkoppeling en begin met typen om uw bash-geschiedenis te doorzoeken voor een opdracht.
  • Ctrl + O : voer de opdracht uit die u hebt gevonden met Ctrl + R.
  • Ctrl + G : verlaat de geschiedeniszoekmodus zonder een opdracht uit te voeren.

Uw basishistorie bekijken

U kunt uw volledige bash-geschiedenis afdrukken op het scherm door een enkele opdracht uit te voeren:

geschiedenis

U ziet een lijst met alle opdrachten in uw bash-geschiedenis, samen met een nummer links van elk. De opdracht met een "1" ernaast is de oudste opdracht in je bash-geschiedenis, terwijl de opdracht met het hoogste nummer de meest recente is.

GERELATEERD: Word een gebruiker van Linux Terminal Power met deze 8 tricks

Met de uitvoer kunt u alles doen wat u maar wilt. U kunt het bijvoorbeeld naar de opdrachtgreppipen om uw opdrachtgeschiedenis te doorzoeken.

geschiedenis | grep your_search

U kunt het ook naar de opdrachttailpipen om slechts een klein aantal recente opdrachten te bekijken die u hebt uitgevoerd. Met de volgende opdracht worden bijvoorbeeld de laatste 5 vermeldingen in uw geschiedenis weergegeven.

geschiedenis | tail -5

Run commando's uit je geschiedenis

Bash kan snel vorige commando's "uitvouwen", of uitbreiden en aanpassen. Deze functie staat bekend als "geschiedenisuitbreiding" en gebruikt een uitroepteken, ook wel "knal" genoemd. Typ ze gewoon bij de prompt en druk op Enter om ze uit te voeren alsof je een andere opdracht uitvoert.

Gebruik een van de volgende opdrachten om een ​​specifieke opdracht uit je geschiedenis uit te voeren:

! #

Laten we bijvoorbeeld zeggen dat je de 12e opdracht uit je bash-geschiedenis wilde uitvoeren. Dat is de opdracht met een "12" aan de linkerkant wanneer u de opdrachtgeschiedenisuitvoert. Typ de volgende opdracht.

! 12

Typ het volgende om de laatste opdracht die u hebt uitgevoerd opnieuw uit te voeren. Dit heeft hetzelfde effect als eenmaal op de pijl-omhoog drukken om de vorige opdracht te bekijken en vervolgens op Enter te drukken.

!!

U kunt ook een opdracht naar een bepaald aantal regels terug verwijzen. Bijvoorbeeld! - 2voert de voorlaatste opdracht uit die u hebt uitgevoerd.!!betekent hetzelfde als! - 1.

Deze uitbreiding werkt overal op de lijn. U kunt alles toevoegen wat u wilt vóór of na!!of een van de andere uitdrukkingen in dit gedeelte. U kunt bijvoorbeeld de volgende opdracht typen om de laatste opdracht die usudohebt uitgevoerd, opnieuw uit te voeren, met rootbevoegdheden. Dit is vooral handig als u vergeetsudotoe te voegen voordat u een opdracht uitvoert.

sudo !!

Of u kunt bijvoorbeeld de vorige opdracht opnieuw uitvoeren en de uitvoer naar grep pipen om te zoeken naar wat tekst.

!! | grep-tekst

Typ het volgende om een ​​opdracht in uw geschiedenis te zoeken en uit te voeren. Hiermee wordt de laatste opdracht uitgevoerd die overeenkomt met de tekst die u opgeeft:

! text

Dus, als je onlangs een opdracht hebt uitgevoerd die begon metping, kun je de volgende opdracht uitvoeren om ernaar te zoeken. Dit zal achterwaarts door uw geschiedenis zoeken, de meest recente opdracht die begint met "pi" lokaliseren en deze onmiddellijk uitvoeren:

! Pi

U kunt eentoevoegen: pnaar een van de bovenstaande uitbreidingen en bash zal het commando naar de terminal afdrukken zonder het uit te voeren. Dit is handig als u wilt bevestigen dat u de juiste opdracht selecteert voordat u het uitvoert.

! 12: p
!!: p
! Tekst: p

Argumenten uit uw geschiedenis opnieuw gebruiken

Met Bash kunt u ook een nieuwe opdracht uitvoeren, maar argumenten uit eerdere opdrachten in uw geschiedenis gebruiken. Dit kan je helpen snel lange of ingewikkelde argumenten te hergebruiken zonder ze opnieuw te hoeven typen.

opdracht! $

Stel dat je de opdrachttouch / home / chris / some_long_file_name_you_dont_want_to_type_againhebt uitgevoerd. U wilt nu de opdrachtnano / home / chris / some_long_file_name_you_dont_want_to_type_againuitvoeren. In plaats van alles vanuit het niets te typen, zou je kunnen rennen:

nano! $

De! $zou bash automatisch het laatste argument van je vorige commando laten invullen.

Dit alleen vult het laatste argument in. Dus als uping google.com -c 4uitvoert en vervolgensping! $uitvoert, wordt dit gewoon uitgebreid naar "ping 4".

Om deze situatie op te lossen, kunt u de volgende truc gebruiken om het eerste argument op de regel uit te vouwen, in plaats van het laatste:

-commando! ^

Dus, als uping google.com -c 4 en danping! ^, bash zou dit uitbreiden naar "ping google.com".

Om alle argumenten in te vullen die in de vorige opdracht zijn gebruikt in plaats van alleen een enkel argument, zou je het volgende gebruiken:

commando! *

Dus als je in plaats daarvanping! *uitvoerde, vulde bash automatisch alle argumenten in die je in het vorige commando gebruikte .

U kunt dezelfde truc gebruiken die u gebruikt om opdrachten uit uw geschiedenis uit te voeren om argumenten van hen te krijgen. Gebruik gewoon het volgende formulier.

command! Abc: #

We hebben bijvoorbeeld de opdracht uitgevoerdsudo hostnaam ubuntueerder Als we de volgende opdracht uitvoeren, zal bash achteruit zoeken door de geschiedenis om de laatste opdracht te vinden ng met de letters die we typen en vul het argument in dat we opgeven. Dus, als weecho! Su: 2uitvoeren, zal bash terug zoeken om de laatste opdracht te vinden die begint met "su" en het tweede argument invullen, dat is "ubuntu".

Andere trucs werken zoals je zou verwachten. Als u bijvoorbeeld het nummer vervangt door een asterisk, ook wel het jokerteken genoemd, wordt bash gebruikt om alle argumenten uit de opdracht in te vullen:

-opdracht! Abc: *

De vorige opdracht opnieuw uitvoeren en wijzigen

Bash staat ook toe om de vorige opdracht opnieuw uit te voeren en iets op te geven dat moet worden gewijzigd. Dit kan handig zijn om een ​​typfout in een opdracht te corrigeren. Met de volgende opdracht voert u bijvoorbeeld de vorige opdracht opnieuw uit en vervangt u daarin de tekst "abc" door de tekst "xyz".

^ abc ^ xyz

For Als u bijvoorbeeld per ongelukping gogle.comhebt uitgevoerd, kunt u^ gog ^ googuitvoeren en zou bash de opdrachtping google.comuitvoeren.

Waar uw geschiedenis is opgeslagen en hoe u deze kunt wissen

De bash-shell slaat de geschiedenis op van de opdrachten die u standaard in ~ / .bash_history hebt uitgevoerd in het geschiedenisbestand van uw gebruikersaccount. Als uw gebruikersnaam bijvoorbeeld bob is, vindt u dit bestand op /home/bob/.bash_history.

Omdat uw geschiedenis is opgeslagen in een bestand, blijft deze tussen sessies bestaan. Je kunt wat opdrachten uitvoeren, uitloggen, de volgende dag terugkomen en die commando's zullen nog steeds in je geschiedenisbestand staan ​​om te bekijken en te gebruiken. Elk gebruikersaccount heeft een eigen geschiedenisbestand met een afzonderlijke opdrachthistorie.

Om uw bash-geschiedenis te wissen, kunt u de volgende opdracht uitvoeren. Hiermee wordt de inhoud van het .bash_history-bestand van uw gebruikersaccount gewist:

history -c

Bash onthoudt slechts een beperkt aantal opdrachten standaard, waardoor wordt voorkomen dat het geschiedenisbestand te groot wordt. Het aantal geschiedenisitems dat bash onthoudt, wordt bepaald doorHISTSIZEvariabel. De standaardinstelling is meestal 500 of 1000 items. U kunt de volgende opdracht uitvoeren om de grootte van de bash-geschiedenis op uw systeem te bekijken.

echo $ HISTSIZE

Voer de volgende opdracht uit om uw geschiedenis in te stellen op nul.

HISTSIZE = 0

Voor de huidige sessie, slaat bash geen geschiedenisvermeldingen op tenzij u een opdracht zoalsHISTSIZE = 1000uitvoert om het terug te zetten naar een bepaald aantal vermeldingen.

Spaties en duplicaten negeren

Bash kunt u geschiedenisvermeldingen negeren die beginnen met een spatie als u deHISTCONTROL-variabele instelt opignorespace.

HISTCONTROL = ignorespace

Typ een spatie vóór een opdracht voordat u deze in de bash uitvoert shell en de opdracht wordt normaal uitgevoerd, maar verschijnt niet in uw geschiedenis als u deze variabele hebt ingeschakeld. Hiermee kunt u uw geschiedenis een beetje schoner houden en ervoor kiezen om opdrachten uit te voeren zonder dat deze in uw geschiedenis worden weergegeven.

Met Bash kunt u ook dubbele opdrachten negeren die uw geschiedenis nog verder kunnen slepen. Hiertoe stelt uHISTCONTROLin opgenegeerde waarden.

HISTCONTROL = ignoredups

Als u zowel de functieignorespacealsignoredupswilt gebruiken, stelt u deHISTCONTROLvariabele naarignoreboth.

HISTCONTROL = ignoreboth

Merk op dat bash-variabelen die u instelt, alleen zullen blijven bestaan ​​voor de huidige sessie. Je moet deze toevoegen aan het .bashrc-bestand van je gebruikersaccount om deze waarden automatisch in te stellen in elke bash-sessie die je start, als je daar de voorkeur aan geeft.

De bash-shell is een complexe tool met veel meer opties dan deze. Raadpleeg de gedeelten Bash History Builtins en History Expansion in de officiële bash-handleiding voor meer gedetailleerde informatie en andere geavanceerde tricks die je kunt gebruiken.


Hoe Bluetooth Audio op twee luidsprekers tegelijk te spelen met de Galaxy S8

Hoe Bluetooth Audio op twee luidsprekers tegelijk te spelen met de Galaxy S8

Het is geen geheim dat Bluetooth 5.0 best indrukwekkend is, en als een resultaat kan de Galaxy S8 dit behoorlijk goed doen dingen die andere telefoons gewoon niet kunnen doen. Bluetooth-audio afspelen op twee aangesloten apparaten tegelijk is een van die functies: Dual Audio. Hier is hoe het te gebruiken.

(how-top)

Google Home gebruiken Uw Netflix-profiel gebruiken op basis van uw stem

Google Home gebruiken Uw Netflix-profiel gebruiken op basis van uw stem

Google Home vragen om een ​​bepaalde show of film op Netflix af te spelen, was een van de eerste functies die beschikbaar zijn op het platform, maar daar was altijd een flagrante kwestie: het speelde altijd vanuit het primaire profiel, ongeacht wie de opdracht uitvoerde. Nu verandert dat. GERELATEERD: Google Home zal de Netflix-profielen van uw gezin niet verder vermengen In het verleden ging het zo: "Ok Google, speel The Walking Dead op Netflix.

(how-top)