Linux komandrinda - Terminal, tāpat kā visas čaulas, glabā lietotāju iepriekš veiktu komandu vēsturi. Šī vēsture ir noturīga un paliek atmiņā pat tad, kad mēs atsāknējam sistēmu. Šīs glabātās komandas mēs varam optimāli atsaukt un atkārtoti izmantot, lai efektīvāk izmantotu vēstures saglabāšanas funkciju lielākajai daļai čaulu.
Linux bash nāk ar ļoti spēcīgu komandu ar nosaukumu “vēsture”. Šī komanda ir iebūvēta komanda bash, ko izmanto, lai iegūtu vēstures informāciju par komandām, kuras Linux lietotāji ir izpildījuši visās iepriekšējās sesijās. Šajā apmācībā mēs ļausim jums iegūt vislabāko no čaulas vēstures, iemācoties pareizi izmantot vēstures komandu. Linux failā glabā noteikta lietotāja komandu vēsturi ~ /.pēc noklusējuma bash_history.
Šajā apmācībā minēto komandu izpildei mēs izmantosim Linux lietojumprogrammu Terminal.
Visas vēstures apskate
Lietotājs var apskatīt visu savu čaulas komandu vēsturi no vēstures faila, kas saglabāts tikai šim lietotājam, izmantojot šādu vienkāršu komandu:
$ vēsture
Vēsture tiks drukāta uz ekrāna šādā noklusējuma formātā:
Iepriekš redzamajā attēlā varat redzēt visu komandu sarakstu ar numuru, kas piešķirts katrai no tām. Komanda skaitlis 1 atbilst pirmajai komandai, kuru izpildījāt, un pēdējā numurētā komanda apzīmē pēdējo izpildīto komandu.
Ja kopš bash izmantošanas esat izpildījis daudz komandu, ievērosiet, ka šeit parādīsies simtiem un pat tūkstošiem šo komandu. Lai piekļūtu dažām atbilstošām komandām, varat filtrēt vēstures funkcijas parādītos rezultātus. Varat arī pielāgot vēstures komandu, lai parādītu noteiktu komandu skaitu.
Vēstures izvades filtrēšana
Ja vēlaties filtrēt vēstures izvadi, pamatojoties uz noteiktu atslēgvārdu, kuru, iespējams, izmantojāt iepriekšējās komandās, komandu Vēsture varat izmantot šādi:
$ vēsture | grep [atslēgvārds]
Piemērs: Šajā piemērā es vēlos apskatīt tikai tās ping komandas, kuras jebkad esmu izpildījis čaulā. Tāpēc es izmantošu šādu komandu:
$ vēsture | grep ping
Var redzēt, ka manā izvadā tagad tiek rādītas tikai komandas, ieskaitot manu meklēšanas atslēgvārdu “ping” Advertisement
Neseno komandu skaita apskate
Varat arī apskatīt noteiktu komandu skaitu, piemēram:
- N pēdējo komandu skaits
VAI
- N vecāko komandu skaits
N Neseno komandu skaits
Izmantojot šādu komandu, varat apskatīt noteiktu nesen izpildīto komandu skaitu:
$ vēsture | aste -n
Piemērs:
Šajā piemērā es vēlos apskatīt pēdējās 3 komandas, kuras izpildīju ar atslēgvārdu “ping”:
$ vēsture | grep ping | aste -3
Izejā visas vēstures vietā tiek parādītas tikai 3 pēdējās ping komandas
N Vecāko komandu skaits
Izmantojot šo komandu, varat apskatīt noteiktu vecāko palaišanas komandu skaitu:
$ vēsture | galva -n
Piemērs:
Šajā piemērā es vēlos apskatīt vecākās 3 komandas, kuras izpildīju ar atslēgvārdu “ping”:
$ vēsture | grep ping | galva -3
Izejā visas vēstures vietā tiek parādītas tikai 3 vecākās ping komandas
Uzskaitiet visas komandas ar datumu un laika zīmogu
Ja vēlaties apskatīt komandu vēsturi kopā ar datumu un laika zīmogu, lūdzu, izmantojiet šo eksportēšanas komandu:
$ export HISTTIMEFORMAT = "% F,% T"
Tagad, kad vēlaties apskatīt vēsturi, vienkārši palaidiet komandu vēsture, lai redzētu izvadi šādā formātā:
Lūdzu, ņemiet vērā, ka šīs formāta izmaiņas ir īslaicīgas, un, slēdzot sesiju, tās tiks atjaunotas iepriekšējā standartā.
Pārvietošanās komandās no vēstures
Kamēr atrodaties komandrindā, varat pārvietoties pa iepriekš izpildītām komandām un arī atsaukt dažas nesen izmantotās komandas, norādot atslēgvārdu.
Ritinot komandas
Lai pārvietotos pa vēstures komandām, varat izmantot šīs tastatūras vadīklas
Bultiņa uz augšu / Ctrl + P | Izmantojot šīs vadīklas, varat parādīt iepriekš izmantoto komandu. Varat vairākas reizes nospiest šīs vadīklas, lai atgrieztos pie konkrētas komandas vēsturē. |
Bultiņa uz leju / Ctrl + N | Izmantojot šīs vadīklas, varat parādīt nākamo izmantoto komandu. Varat vairākas reizes nospiest šīs vadīklas, lai pārietu uz noteiktu komandu vēsturē. |
Alt + R | Ja pašreizējā rindā rediģējat komandu, kuru esat izvilcis no vēstures, varat izmantot šo vadību, lai atgrieztu to sākotnējā komandā. |
Atsaukt komandas
Varat atsaukt, palaist vai izvēlēties nedarbināt noteiktu komandu no vēstures, izmantojot šādas vadīklas:
Ctrl + R | Izmantojot šo vadīklu, varat atsaukt komandu no vēstures, norādot meklēšanas virkni. |
Ctrl + O | Izmantojot šo vadīklu, varat palaist komandu, kuru esat atsaucis, izmantojot Ctrl + R |
Ctrl + G | Izmantojot šo vadīklu, varat iziet no vēstures, neizpildot komandu, kuru esat atsaucis, izmantojot Ctrl + R |
Piemērs:
Šajā piemērā es nospiedu ctrl + R un pēc tam sniedzu meklēšanas virkni 'ar'. Vēsture parādīja komandu "arch".
Kad es izpildīju komandu 'arch', nospiežot ctrl + O, tā parādīja manas sistēmas CPU arhitektūru:
Bash vēstures izmantošana
Bash vēstures īstā burvība ir dažādu komandu izmantošana un pašas vēstures komandas pielāgošana, lai vislabāk izmantotu vēstures funkciju:
Komandas palaišana no vēstures
- Kā mēs jau iepriekš redzējām, vēstures komanda parāda komandas, saistot ar katru skaitli. Izmantojot šo komandu, varat palaist noteiktu komandu no vēstures, pamatojoties uz tās numuru:
$ !#
Piemērs:
Šeit es palaidu komandas numuru 95 no savas vēstures:
$ !95
Rezultātā tiek parādīts rezultāts “lscpu”, kas manā bash vēsturē tika norādīts kā komandas numurs 95. Šī komanda parāda manu CPU un operētājsistēmas specifikācijas.
- Varat atkārtoti palaist savu iepriekšējo komandu, izmantojot šādu komandu:
$ !!
Piemērs:
Šeit jūs varat redzēt, ka es izpildīju komandu 'arch'. Palaidot iepriekš minēto komandu, es varu atkārtoti palaist komandu “arch”, lai apskatītu savu procesora arhitektūru šādi:
- Lai meklētu komandu no vēstures un pēc tam to palaistu, izmantojiet šo komandu:
$ ![atslēgvārds]
Piemērs:
Es izmantošu šādu komandu, lai atkārtoti palaistu pēdējo komandu ar atslēgvārdu “dconf”:
$ !dconf
Šajā attēlā varat atkārtoti apstiprināt, ka tā bija pēdējā dconf komanda, kuru biju izpildījis.
Izmantojot argumentus no iepriekšējām komandām
Linux bash ļauj palaist jaunu komandu, izmantojot argumentus no iepriekšējās komandas. Tas ir īpaši noderīgi, ja vēlaties izvairīties no garu vai sarežģītu argumentu pārrakstīšanas. Šim nolūkam varat izmantot šādu komandu:
Izmantojot pēdējo argumentu no iepriekšējās komandas
$ [Komanda] !$
Mainīgais !$ ir saglabāts pēdējais arguments no iepriekšējās komandas.
Piemērs:
Šajā piemērā es izveidošu failu ar garu vārdu.
Nano [longnameOfaFile]
Pēc tam es to nokopēšu uz citu vietu, izvairoties no garā nosaukuma atkārtotas ierakstīšanas šādi:
Cp !$ [galamērķis]
Var redzēt, ka es varēju nokopēt failu, nepārrakstot faila nosaukumu, izmantojot mainīgo !$
Izmantojot pirmo argumentu no iepriekšējās komandas
Dažreiz pašreizējā ir noderīgs tikai pirmais arguments no iepriekšējās komandas.
Šajā gadījumā varat izmantot šādu komandu:
$ [komanda] !^
Piemērs:
Šajā piemērā es izpildīju komandu ping, kā argumentus norādot resursdatora nosaukumu un skaitu. Tagad jaunajā komandā es gribu izmantot resursdatora nosaukumu (pirmais arguments), nevis 2 (pēdējais arguments). Šim nolūkam izmantošu šādu komandu:
$ ping !^
Izmantojot visus argumentus no iepriekšējās komandas
Varat arī izmantot visus iepriekšējās komandas argumentus, izmantojot šādu komandu:
$ !*
Izmantojot vienu vēstures komandas argumentu
Varat arī izmantot komandas no savas vēstures, atkārtoti izmantojot to argumentus. Šim nolūkam izmantojiet šādu komandu:
$ [komanda] ![atslēgvārds]: #
Piemērs:
$ atbalss !cp: 2
Šai komandai būs šādi parametri:
komanda: atbalss
Atslēgvārds: cp
#: 2 (otrais komandas arguments)
Pēc izejas parādīts pēdējās cp komandas, kuru es palaidu, 2. arguments:
Izmantojot visus vēstures komandas argumentus
Šī komanda glabās visus meklēšanas vēstures komandas argumentus un izmantos tos pašreizējā komandā:
$ komanda ![atslēgvārds]: *
Piemērs:
Šajā komandā es izdrukāšu visus pēdējās cp komandas argumentus, izmantojot komandu echo šādi:
$ atbalss ![cp]: *
Iepriekšējo komandu modificēšana un palaišana
Ja esat kļūdaini ievadījis komandu vai vēlaties vēlreiz palaist komandu, mainot tajā tekstu; šādi rīkojieties šādi:
$ ^ [previoustext] ^ [newtext]
Piemērs:
Es kļūdaini ievadīju komandu 'grep' kā 'gep' un tagad vēlos palaist komandu, izlabojot tekstu:
$ ^ gep ^ grep
Tagad jūs varat redzēt, ka mana labotā komanda darbosies pareizi šādi:
Notīrīt vēsturi
Lai izdzēstu bash vēsturi, izmantojiet šādu komandu:
$ vēsture -c
Šī komanda notīrīs jūsu vēsturi un noņems visu saturu no faila ~ /.bash_history
Šajā apmācībā mēs esam iemācījušies, ka, lai gan visa vēstures satura drukāšana var nebūt tik noderīga, izejas optimizēšana, izmantojot iemācītās komandas, ir īsts spēļu mainītājs. Prakse kopā ar šo rakstu ļaus jums apskatīt precīzas komandas, kuras vēlaties, atkārtoti palaist un atkārtoti izmantot šīs komandas, kā arī izmantot argumentus no iepriekš izpildītām komandām, lai optimizētu jaunas.