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.
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ē.
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.
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 grep
komandu, 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
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
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: *
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ā.
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ĒJIET
mainī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.
Bash ļauj ignorēt vēstures ierakstus, kas sākas ar atstarpi, ja iestatāt HISTCONTROL
mainī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 HISTCONTROL
uz 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.