Kā izmantot savu bash vēsturi Linux vai macOS terminālā
Bash apvalks ir standarta termināla vide, kas ir iekļauta lielākajā daļā Linux sadalījumu, kas ir iekļauta MacOS, un ir pieejama instalēšanai operētājsistēmā Windows 10. Tā atceras ievadītās komandas un saglabā tās vēstures failā. Jūs, iespējams, zināt dažus bash vēstures pamatus, bet tas ir daudz spēcīgāks, nekā jūs varētu saprast.
Tastatūras īsceļi
Lai pārlūkotu savu bash vēsturi, varat izmantot dažus noderīgus tastatūras īsceļus. Nospiediet šos īsceļus un iepriekš izmantotās komandas parādīsies uzvednē.
- Augšupvērstā bultiņa vai Ctrl + P: Dodieties uz iepriekšējo komandu savā vēsturē. Nospiediet taustiņu vairākas reizes, lai iet atpakaļ pa izmantotajām komandām.
- Uz leju vai Ctrl + N: Dodieties uz nākamo komandu savā vēsturē. Nospiediet taustiņu vairākas reizes, lai pārietu uz priekšu, izmantojot izvēlētās komandas.
- Alt + R: Atjaunojiet visas komandas izmaiņas, kuras esat noņēmis no vēstures, ja esat to rediģējis pašreizējā rindā.
Bash ir arī īpašs „atsaukšanas” režīms, kuru varat izmantot, lai meklētu iepriekš palaistas komandas, nevis ritinot tās pa vienam.
- Ctrl + R: Atgādiniet pēdējo komandu, kas atbilst jūsu sniegtajām rakstzīmēm. Nospiediet šo saīsni un sāciet rakstīt, lai meklētu komandas vēstures vēsturi.
- Ctrl + O: Palaidiet komandu, kuru atradāt ar Ctrl + R.
- Ctrl + G: Atstājiet vēstures meklēšanas režīmu, neizmantojot komandu.
Skatiet savu bash vēsturi
Jūs varat izdrukāt visu bash vēsturi ekrānā, palaižot vienu komandu:
vēsture
Jūs redzēsiet sarakstu ar visām komandām jūsu bash vēsturē kopā ar numuru 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 jaunākā.
Ar izeju varat darīt visu, ko vēlaties. Piemēram, jūs varat to pārnest uz grep
komandu, lai meklētu jūsu komandu vēsturi.
vēsture | grep your_search
Jūs varētu arī to izvilkt uz astes
komandu, lai apskatītu tikai nelielu skaitu pēdējo palaistās komandas. Piemēram, šāda komanda rādītu pēdējos 5 ierakstus jūsu vēsturē.
vēsture | astes -5
Palaist komandas no savas vēstures
Bash var ātri “paplašināt” iepriekšējās komandas vai paplašināt 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 tos palaist, kā jūs palaist jebkuru citu komandu.
Lai no sava vēstures izpildītu konkrētu komandu, izmantojiet šādu komandu:
!#
Piemēram, pieņemsim, ka tu gribi palaist 12. komandu no savas bash vēstures. Tā ir komanda ar “12” pa kreisi no tā, kad palaižat vēsture
komandu. Jūs ierakstāt šādu komandu.
!12
Lai atkārtoti palaistu pēdējo komandu, ievadiet šādu. Tam ir tāda pati iedarbība, kā vienreiz nospiežot augšupvērsto bultiņu, lai apskatītu iepriekšējo komandu, un pēc tam nospiežot Enter.
!!
Varat arī atsaukties uz komandu ar noteiktu skaitu rindu atpakaļ. Piemēram, !-2
palaist otro līdz pēdējo komandu. !!
nozīmē to pašu !-1
.
Šis paplašinājums darbojas jebkurā līnijas vietā. Jūs varat pievienot jebko, kas jums patīk pirms vai pēc !!
vai jebkuru citu šajā iedaļā minēto izteicienu. Piemēram, varat ievadīt šādu komandu, lai atkārtoti izpildītu pēdējo komandu sudo
, dodot tai root privilēģijas. Tas ir īpaši noderīgi, ja esat aizmirsis pievienot sudo
pirms komandas palaišanas.
sudo !!
Vai, piemēram, jūs varat atkārtoti izpildīt iepriekšējo komandu un izvadīt izeju uz grep, lai meklētu kādu tekstu.
!! | grep teksts
Lai meklētu komandu vēsturē un palaist to, ierakstiet šādu. Tas palaidīs pēdējo komandu, kas atbilst jūsu norādītajam tekstam:
!tekstu
Tātad, ja jūs nesen vadījāt komandu, kas sākās ar ping
, varat meklēt šādu komandu, lai to meklētu. Tas meklēs atpakaļ jūsu vēsturē, atrodiet pēdējo komandu, kas sākas ar “pi
Un nekavējoties palaidiet to:
!pi
Jūs varat pievienot a : p
uz jebkuru no iepriekš minētajiem paplašinājumiem un bash izdrukās komandu terminālim bez tā palaišanas. Tas ir noderīgi, ja vēlaties apstiprināt, ka esat izvēlējies pareizo komandu pirms to palaišanas.
!12: lpp
!!: p
!teksts: p
Atkārtoti izmantot argumentus no jūsu vēstures
Bash ļauj jums palaist jaunu komandu, bet izmantot argumentus no iepriekšējām komandām vēsturē. Tas var palīdzēt jums ātri atkārtoti izmantot ilgi vai sarežģītus argumentus bez nepieciešamības tos atkārtoti ievadīt.
komanda! $
Piemēram, pieņemsim, ka jūs izpildījāt komandu pieskarties / mājai / chris / some_long_file_name_you_dont_want_to_type_again
. Tagad jūs vēlaties palaist komandu nano / home / chris / daži_long_file_name_you_dont_want_to_type_again
. Nevis ierakstot visu no nulles, jūs varat palaist:
nano! $
The !$
tas padara bash automātiski aizpildītu pēdējo argumentu no jūsu iepriekšējās komandas.
Tas aizpilda tikai pēdējo argumentu. Tātad, ja jūs vadāt ping google.com -c 4
un pēc tam palaist ping! $
, tas tikai paplašināsies līdz “ping 4
“.
Lai atrisinātu šo situāciju, varat izmantot šādu triku, lai paplašinātu pirmo rindas argumentu, nevis pēdējo:
komandu! ^
Tātad, ja jūs skrējāt ping google.com -c 4
un tad skrēja ping! ^
, bash to paplašinātu uz “ping google.com "
.
Lai aizpildītu visus argumentus, kas izmantoti iepriekšējā komandā, nevis tikai vienu argumentu, izmantojiet tālāk minēto:
komanda! *
Tātad, ja jūs skrējāt ping! *
tā vietā bash automātiski aizpildītu visus argumentus, kurus izmantojāt iepriekšējā komandā.
Jūs varat izmantot to pašu triku, ko izmantojat, lai palaistu komandas no savas vēstures, lai iegūtu no tiem argumentus. Izmantojiet tikai šādu formu.
komanda! abc: #
Piemēram, mēs izpildījām komandu sudo hostname ubuntu
agrāk. Ja mēs izpildīsim šādu komandu, bash meklēs atpakaļ vēsturē, lai atrastu pēdējo komandu, kas sākas ar burtiem, kurus rakstām, un aizpildiet norādīto argumentu. Tātad, ja mēs darbosimies echo! su: 2
, bash meklēs atpakaļ, lai atrastu pēdējo komandu, kas sākas ar “su
"Un aizpildiet savu otro argumentu, kas ir"ubuntu
“.
Citi triki darbojas, kā jūs varētu gaidīt. Piemēram, nomainot numuru ar zvaigznīti, kas pazīstama kā aizstājējzīme, bash aizpilda visus argumentus no komandas:
komanda! abc: *
Atkārtot iepriekšējo komandu un modificējiet to
Bash arī ļauj jums atkārtot iepriekšējo komandu un norādīt kaut ko, kas būtu jāmaina. Tas var būt noderīgs komandas kļūdas labošanai. Piemēram, šāda komanda atkārtoti izpildīs 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
, jūs 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 notīrīt
Bash apvalks saglabā komandu vēsturi, ko esat lietojis lietotāja konta vēstures failā vietnē ~ / .bash_history pēc noklusējuma. Piemēram, ja lietotājvārds ir bob, jūs atradīsiet šo failu vietnē /home/bob/.bash_history.
Tā kā jūsu vēsture ir saglabāta failā, tā saglabājas starp sesijām. Varat palaist dažas komandas, izrakstīties, atgriezties nākamajā dienā, un šīs komandas joprojām būs jūsu vēstures failā, kas ir gatavs apskatīšanai un lietošanai. Katram lietotāja kontam ir savs vēstures fails ar atsevišķu komandu vēsturi.
Lai dzēstu bash vēsturi, varat palaist šādu komandu. Tas dzēš lietotāja konta .bash_history faila saturu:
vēsture -c
Bash atceras tikai ierobežotu skaitu komandu pēc noklusējuma, neļaujot vēstures datnei augt pārāk liels. Vēstures ierakstu skaits, kas atceras, tiek kontrolēts HISTSIZE
mainīgais. Noklusējums parasti ir 500 vai 1000 ieraksti. Jūs varat palaist šādu komandu, lai apskatītu jūsu sistēmas bash vēstures lielumu.
echo $ HISTSIZE
Lai iestatītu vēsturi uz nulli, izpildiet šādu komandu.
HISTSIZE = 0
Pašreizējai sesijai bash nesaglabās nekādus vēstures ierakstus, izņemot gadījumus, kad izpildīsit komandu HISTSIZE = 1000
iestatīt to atpakaļ uz noteiktu skaitu ierakstu.
Kā ignorēt telpas un dublikātus
Bash ļauj ignorēt vēstures ierakstus, kas sākas ar atstarpi, ja iestatāt HISTCONTROL
mainīgs uz ignorēšana.
HISTCONTROL = ignorēšanas vieta
Ierakstiet atstarpi pirms komandas, pirms to palaižat bash apvalkā, un komanda darbosies normāli, bet netiks parādīta jūsu vēsturē, ja šī mainīgā versija ir iespējota. Tas ļauj jums saglabāt savu vēsturi mazliet tīrāku, izvēloties palaist komandas bez tām parādoties jūsu vēsturē.
Bash arī ļauj ignorēt dublējošās komandas, kas var traucēt jūsu vēsturi. Lai to izdarītu, iestatiet HISTCONTROL
uz ignoredups.
HISTCONTROL = ignorēti
Lai izmantotu gan ignorēšana
un ignoredups
iezīme, iestatiet HISTCONTROL
mainīgs uz neziņš.
HISTCONTROL = ignoreboth
Ņemiet vērā, ka iestatītie mainīgie mainīgie mainīsies tikai pašreizējai sesijai. Lai pievienotu šīs vērtības katrai jūsu sāktajai sesijas sesijai, jums tās būs jāpievieno jūsu lietotāja konta failam .bashrc, ja vēlaties, lai.
Bash apvalks ir sarežģīts instruments ar daudzām citām iespējām. Detalizētāku informāciju un citus uzlabotus trikus, kurus varat izmantot, skatiet oficiālajā bash rokasgrāmatā sadaļā Bash History Builtins un History Expansion..