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:
history
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ā.
grep
komandu, lai meklētu komandu vēsturi.
history | grep your_search
tail
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ē.
history | tail -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
history
komandu Jūs vēlaties ierakstīt šādu komandu.
!12
!!
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
!!
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 pievienot
sudo
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 text
!text
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
: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
!text: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.
command !$
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.
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:
command !^
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'
command !*
Tātad, ja jūs skrējāt
ping !*
Tā vietā bash automātiski aizpildīs visus argumentus, kurus izmantojāt iepriekšējā komandā.
command !abc:#
Piemēram, mēs vadījām komandu
sudo hostname 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:
command !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:
history -c
HISTSIZE
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 $HISTSIZE
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
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ē.
HISTCONTROL
uz
ignoredups.
HISTCONTROL=ignoredups
ignorespace
un
ignoredups
funkcija, iestatiet
HISTCONTROL
mainīgais līdz
ignoreboth.
HISTCONTROL=ignoreboth
Ņ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.