24Aug

Kā lietot savu Bash vēsturi Linux vai macOS terminālā

click fraud protection

Bash čaula ir standarta termināla vide, kas ir iekļauta lielākajā daļā Linux sadalījumu, kas iekļauta ar macOS, un ir pieejama instalēšanai operētājsistēmā Windows 10. Tas atceras komandas, kuras jūs ievadāt un saglabājat vēsturiskajā failā.Jūs droši vien zināt dažus bash vēstures pamati, taču tas ir daudz jaudīgāks nekā jūs varētu saprast.

Tastatūras saīsnes

Lai ritinātu jūsu bash vēsturi, varat izmantot dažus no daudziem noderīgiem tastatūras īsinājumtaustiņiem. Nospiediet šos saīsnes, un komandas, kuras esat iepriekš izmantojis, parādīsies uzvednē.

  • Uz augšu Arrow vai Ctrl + P : pārejiet uz iepriekšējo komandu savā vēsturē.Nospiediet taustiņu vairākas reizes, lai iettu atpakaļ, izmantojot izmantotās komandas.
  • lejupvērstā bultiņa vai Ctrl + N : dodieties uz nākamo komandu savā vēsturē.Nospiediet taustiņu vairākas reizes, lai staigātu uz priekšu, izmantojot izmantotās komandas.
  • Alt + R : atceļ visas izmaiņas komandā, kuru esat izvilcis no savas vēstures, ja to esat labojis pašreizējā rindiņā.
instagram viewer

Bash ir arī īpašs atsaukšanas režīms, ko varat izmantot, lai meklētu komandas, kuras jūs izmantojāt iepriekš, nevis ritiniet tos pa vienam.

  • Ctrl + R : atgādina pēdējo komandu, kas atbilst jūsu norādītajām rakstzīmēm. Nospiediet šo saīsni un sāciet rakstīt, lai meklētu komandu ar savu bash vēsturi.
  • Ctrl + O : izpildiet komandu, kuru atradāt ar Ctrl + R.
  • Ctrl + G : atstājiet vēstures meklēšanas režīmu, neveicot komandu.

Skatīt savu bash vēsturi

Jūs varat izdrukāt visu savu bash vēsturi ekrānā, izpildot vienu komandu:

vēsture

Jūs redzēsiet visu komandu sarakstu savā bash vēsturē kopā ar skaitli pa kreisi no katra. Komanda ar "1" blakus tai ir vecākā komanda jūsu bash vēsturē, bet komanda ar vislielāko skaitu ir visjaunākā.

Jūs varat darīt visu, kas jums patīk ar produkciju. Piemēram, varat to caurvēt grepcommand, lai meklētu komandu vēsturi.

vēsture |grep your_search

Jūs varētu arī caurlaide to asti komandu, lai apskatītu tikai nelielu skaitu nesenās komandas jūs esat palaist. Piemēram, šī komanda parādīs pēdējos 5 ierakstus jūsu vēsturē.

vēsture |asti -5

Komandu palaišana no vēstures

Bash var ātri "paplašināt" iepriekšējās komandas vai arī izvērst tās un mainīt tās.Šī funkcija ir pazīstama kā "vēstures paplašināšana" un izmanto izsaukuma zīmi, kas pazīstama kā "sprādziens".Vienkārši ierakstiet tos uzvednē un nospiediet taustiņu Enter, lai palaistu tos tā, kā jūs darbinātu kādu citu komandu.

Lai palaistu konkrētu komandu no savas vēstures pēc tā numura, izmantojiet šādu komandu:

! #

Piemēram, pieņemsim, ka jūs vēlaties palaist 12. komandu no bash vēstures. Tā ir komanda ar "12" pa kreisi no tās, kad palaižat vēstures komandu. Jūs vēlaties ierakstīt šādu komandu.

! 12

Lai atkārtoti palaistu pēdējo komandu, kuru jūs palaidāt, ierakstiet šādu. Tam ir tāds pats efekts kā vienreiz nospiežot bultiņu uz augšu, lai apskatītu iepriekšējo komandu un pēc tam nospiežot taustiņu Enter.

!

Jūs varat arī atsaukties uz komandu noteiktu skaitu līniju atpakaļ.Piemēram,! -2 palaistu otru, lai izpildītu pēdējo komandu, kuru izpildījāt.!!nozīmē to pašu, kas! -1.

Šī paplašināšana darbojas jebkurā vietā.Jūs varat pievienot kaut ko, kas jums patīk pirms vai pēc!vai kāda cita izteiciena šajā sadaļā.Piemēram, jūs varat ievadīt šādu komandu, lai atkārtoti palaistu pēdējo komandu, kuru jūs izmantojāt, izmantojot sudo, piešķirot tam root tiesības. Tas ir īpaši noderīgi, ja jūs aizmirstat pievienot sudo pirms komandas palaišanas.

sudo!

Vai, piemēram, jūs varētu atkārtoti palaist iepriekšējo komandu un caurlaide savu izvadi grep, lai meklētu kādu tekstu.

!|grep teksts

Lai meklētu komandu savā vēsturē un palaistu to, ierakstiet šādu. Tas darbosies ar pēdējo komandu, kas atbilst jūsu norādītajam tekstam:

! Teksts

Tātad, ja jūs nesen vadījāt komandu, kas sākās ar ping, jūs varat palaist šādu komandu, lai meklētu to. Tas meklēt atpakaļ pa vēsturi, atrodiet jaunāko komandu, kas sākas ar "pi", un nekavējoties palaidiet to:

! Pi

Jūs varat pievienot: p uz jebkuru no iepriekš minētajām izvēršanas un bash izdrukās komandu uz termināli, to nedarbinot. Tas ir noderīgi, ja jūs vēlaties apstiprināt, ka izvēlaties pareizu komandu, pirms to palaižat.

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

atkārtoti izmantojiet argumentus no savas vēstures.

Bash arī ļauj jums palaist jaunu komandu, bet izmantot vēsturi iepriekšējo komandu argumentus. Tas var palīdzēt ātri atkārtoti izmantot garus vai sarežģītus argumentus, nepieprasot tos atkārtot.

komanda! $

Piemēram, pieņemsim, ka jūs vadījāt komandu, pieskarieties /home/chris/ some_long_file_name_you_dont_want_to_type_again. Tagad jūs vēlaties palaist komandu nano /home/chris/ some_long_file_name_you_dont_want_to_type_again. Tā vietā, lai rakstītu visu no nulles, jūs varētu palaist:

nano! $

!! Tas, ka bash automātiski aizpilda pēdējo argumentu no jūsu iepriekšējās komandas.

Tas aizpilda tikai pēdējo argumentu. Tātad, ja jūs palaidīsit ping google.com-c 4 un pēc tam palaidīsiet ping! $, Tas tikai paplašināsies uz "ping 4".

Lai novērstu šo situāciju, varat izmantot šādu triku, lai izvērstu pirmo argumentu rindā, nevis pēdējo:

komandu! ^

Tātad, ja jūs vadījāt ping google.com-c 4 un pēc tam palaidāt ping! ^bash varētu paplašināt to uz "ping google.com".

Lai aizpildītu visus argumentus, kas izmantoti iepriekšējā komandā, nevis tikai vienu argumentu, izmantojiet šādu:

komanda! *

Tātad, ja jūs vadījāt ping!* tā vietā bash automātiski aizpildīs visus argumentus, kurus izmantojāt iepriekšējā komandā.

Jūs varat izmantot to pašu triku, kuru izmantojat, lai palaistu komandas no savas vēstures, lai iegūtu no tiem argumentus. Vienkārši izmantojiet šādu formu:

command! abc:#

Piemēram, agrāk mēs vadījām komandu sudo hostname ubuntu. Ja mēs palaistu šādu komandu, bash meklēt atpakaļ pa vēsturi, lai atrastu pēdējo komandu, kas sākas ar rakstītajiem burtiem, un aizpildiet norādīto argumentu. Tātad, jamēs echo! su: 2, bash meklēs atpakaļ, lai atrastu pēdējo komandu, kas sākas ar "su", un aizpilda otro argumentu, kas ir "ubuntu".

Citi triki darbojas, kā jūs varētu sagaidīt. Piemēram, nomainot numuru ar zvaigznīti, kas pazīstams kā aizstājējzīme, izraisa bash, lai aizpildītu visus argumentus no komandas:

command! Abc: *

Atkārtojiet iepriekšējo komandu un modificējiet to

Bash arī ļauj atkārtoti palaist iepriekšējo komanduun norādiet kaut ko, kas būtu jāmaina. Tas var būt noderīgs, lai labotu neprecizitāti komandā.Piemēram, nākamā komanda atkārtojas iepriekšējā komandā, aizstājot tekstu "abc" tajā ar tekstu "xyz".

^ abc ^ xyz

Piemēram, ja jūs nejauši vadījāt ping gogle.com, tad jūs varētu palaist ^ gog ^ goog un bash palaist komandu ping google.com.

Kur tiek saglabāta jūsu vēsture un kā to notīrīt

Bash čaula saglabā komandu vēsturi, kuru esat ievadījis sava lietotāja konta vēstures failā pēc noklusējuma ~ /. bash_history. Piemēram, ja jūsu lietotājvārds ir bobs, šis fails atrodams /home/bob/. Bashhistory.

Tā kā jūsu vēsture ir saglabāta failā, tā turpinās starp sesijām. Jūs varat palaist dažas komandas, izrakstīties, atgriezties nākamajā dienā, un šīs komandas joprojām būs jūsu vēstures failā, kas būs gatavs skatīšanai un lietošanai. Katram lietotāja kontam ir savs vēstures failu ar atsevišķu komandu vēsturi.

Lai notīrītu bash vēsturi, varat palaist šādu komandu. Tas izdzēš jūsu lietotāja konta faila. bash_history saturu:

vēsture -c

Bash tikai pēc noklusējuma atceras ierobežotu komandu skaitu, neļaujot vēstures failam kļūt pārāk liels. Vēsturisko ierakstu skaits bash atceras, ko kontrolē HISTSIZEvariable. Pēc noklusējuma parasti ir 500 vai 1000 ieraksti. Varat palaist šādu komandu, lai apskatītu jūsu sistēmas vēstures lielumu.

echo $ HISTSIZE

Lai iestatītu savu vēsturi uz nulli, palaidiet šādu komandu.

HISTSIZE = 0

Pašreizējās sesijas laikā bash neuzglabās vēsturiskos ierakstus, ja vien palaist komandu, piemēram, HISTSIZE = 1000, lai to atgrieztu noteiktā skaitā ierakstu.

Kā ignorēt telpas un dublikātus

Bash ļauj ignorēt vēstures ierakstus, kas sākas ar atstarpi, ja jūs iestatāt HISTCONTROLvariable uz ignorespace.

HISTCONTROL = ignorespace

Ievadiet atstarpi pirms komandas, pirms tā tiek palaista bash čaulā, un komanda darbosies pareizi, bet neparādīsies jūsu vēsturē, ja šis mainīgais ir iespējots. Tas ļauj saglabāt vēsturi mazliet tīrāku, izvēloties palaist komandas, lai tās netiktu parādītas jūsu vēsturē.

Bash arī ļauj ignorēt dublēt komandas, kas var pārblīvēt savu vēsturi. Lai to izdarītu, iestatiet HISTCONTROL ignorēšanu.

HISTCONTROL = ignoredup

Lai izmantotu gan ignorespace, gan ignoredup funkciju, mainiet HISTCONTROL mainīgo ignorējot.

HISTCONTROL = ignorēt

. Ievērojiet, ka iestatītie bash mainīgie saglabāsies tikai pašreizējās sesijas laikā.Jums būs jāpievieno šie faili sava lietotāja konta failā. bashrc, lai šīs vērtības tiktu automātiski iestatītas katrā startētajā bash sesijā, ja vēlaties.

Bash čaula ir sarežģīts rīks, kurā ir daudz vairāk iespēju nekā šie. Konsultējieties ar sadaļām Bash History Builtins un History Expanding oficiālajā bash rokasgrāmatā, lai iegūtu detalizētāku informāciju un citus uzlabotus trikus, kurus varat izmantot.