If-Koubou

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

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

Bash apvalks ir standarta termināla vide, kas ir iekļauta lielākajā daļā Linux sadalījumu, kas iekļauta 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 bash daudzajiem noderīgiem īsinājumtaustiņiem. Nospiediet šos saīsnes, un komandas, kuras esat iepriekš izmantojis, parādīsies uzvednē.

  • Augšupvērstā bultiņa 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.
  • Bultiņa uz leju vai Ctrl + N: Pārejiet 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: Atjaunojiet jebkuras izmaiņas komandā, kuru esat izvilcis no vēstures, ja to esat labojis pašreizējā rindiņā.

Basham ir arī īpašs "atgādinājuma" 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.

Skatiet 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 katras puses. Komanda ar "1" blakus tam ir vecākā komanda jūsu bash vēsturē, bet komanda ar visaugstāko skaitu ir visjaunākā.

Ar izlaidi jūs varat darīt visu, kas jums patīk. Piemēram, varat to caurlaidei uz grepkomandu, lai meklētu komandu vēsturi.

vēsture | grep your_search

Jūs varētu arī caurulīt to uz astes komanda, lai apskatītu tikai nedaudzas nesenās komandas, kuras esat palaidis. Piemēram, šī komanda parādīs pēdējos 5 ierakstus jūsu vēsturē.

vēsture | astes -5

Palaist komandas no tavas vēstures

Bash var ātri "paplašināt" iepriekšējās komandas, vai arī izvērst tās un modificēt. Šī 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, piemēram, jūs palaistu jebkuru 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ēsture komandu Jūs vēlaties ierakstīt šādu komandu.

!12

Lai atkārtoti palaistu pēdējo komandu, kuru jūs izmantojā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 varētu palaist otro, lai izpildītu pēdējo komandu, kuru tu vadīji. !! nozīmē to pašu, kas !-1 .

Šī izplešanās darbojas jebkurā vietā. Pirms vai pēc tam varat pievienot visu, kas jums patīk!! vai kāda cita izteiciena šajā sadaļā. Piemēram, jūs varat ievadīt šādu komandu, lai atkārtoti ievadītu pēdējo komandu, kuru jūs izmantojāt sudo, piešķirot tai root privilēģijas. Tas ir īpaši noderīgi, ja aizmirstat pievienotsudo pirms komandas palaišanas.

sudo !!

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

!! | grep teksts

Lai meklētu komandu savā vēsturē un palaistu to, ierakstiet šādu informāciju. Tas darbosies ar pēdējo komandu, kas atbilst 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 savu vēsturi, atrodiet visjaunāko komandu, kas sākas ar "pi"Un nekavējoties palaidiet to:

! pi

Jūs varat pievienot a : p uz jebkuru no iepriekšminētajām paplašinājumiem 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
! teksts: p

Atkārtoti izmantojiet argumentus no 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 touch / 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! $

The !$ bash automātiski aizpildītu pēdējo argumentu no iepriekšējās komandas.

Tas aizpilda tikai pēdējo argumentu. Tātad, ja palaižat ping google.com-c 4 un pēc tam palaist ping! $ , tas vienkārši paplašināsies līdz "ping 4“.

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

komanda! ^

Tātad, ja jūs skrējāt ping google.com-c 4 un tad skrēja ping! ^ , bash varētu paplašināt šo uz "ping google.com ".

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

komandu! *

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

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.

komanda! abc: #

Piemēram, mēs vadījām komandu sudo resursdatora nosaukums ubuntu agrāk. 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 aizpilda norādīto argumentu. Tātad, ja mēs palaistu echo! su: 2 , bash meklēs atpakaļ, lai atrastu pēdējo komandu, kas sākas ar "su"Un aizpildiet 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:

komanda! abc: *

Atkārtojiet iepriekšējo komandu un mainiet to

Bash arī ļauj atkārtot iepriekšējo komandu un norādīt kaut ko, kas būtu jāmaina. Tas var būt noderīgs, lai labotu neprecizitāti komandā. Piemēram, šī komanda atkārto iepriekšējo komandu, aizstājot tekstu "abc"Tajā ar tekstu"xyz“.

^ abc ^ xyz

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

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

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

Tā kā jūsu vēsture tiek 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ē HISIZĒJIETmainīgais. 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 $ HISIZĒJIET

Lai iestatītu savu vēsturi uz nulli, palaidiet tālāk norādīto komandu.

HISTSIZE = 0

Pašreizējās sesijas laikā bash neuzglabās nekādus vēstures ierakstus, ja vien jūs neizmantojat komandu, piemēram HISTSIZE = 1000 lai to atgrieztos noteiktā skaitā ierakstu.

Kā ignorēt telpas un dublikātus

Bash ļauj ignorēt vēstures ierakstus, kas sākas ar atstarpi, ja iestatāt HISTCONTROLmainīgais līdz ignorespace.

HISTCONTROL = ignorespace

Ievadiet atstarpi pirms komandas, pirms to palaižat bash čaulā, un komanda darbosies pareizi, taču neparādīsies jūsu vēsturē, ja šis mainīgais ir aktivizēts. 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ētus komandas, kas var pārblīvēt savu vēsturi. Lai to izdarītu, iestatiet HISTCONTROLuz ignoredutes.

HISTCONTROL = ignoredup

Lai izmantotu abus ignorespace un ignoredutes funkcija, iestatiet HISTCONTROL mainīgais līdz ignoreboth.

HISTCONTROL = ignorēt

Ņemiet vērā, 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.