Ukaz history v Linuxu ni zapleten žargon. Je točno takšen, kot mislite, da je, in za njim ni nobenega skritega pomena. Na enak način kot po dolgem dnevu v internetu gledate na zgodovino brskalnika, tako dojemate ukaz zgodovine. Gre predvsem za sledenje vašim prejšnjim gibom in dejanjem, vendar je v tem primeru v terminalu ali ukazni vrstici Linux.
Zato lahko udobno določimo ukaz history pod domeno Linux kot način predogleda predhodno izvedenih ukazov. V tem primeru lahko na terminal gledamo kot na brskalnik, v katerem izvajate različne ukaze v neprekinjenem časovnem okviru. Ti izvršeni ukazi se posamezno razlagajo kot dogodki. Nato se vsakemu dogodku dodeli številka dogodka. Zato imamo ukaze z id-ji kot številke dogodkov, shranjene v zgodovinski datoteki po izvedbi terminala.
Pomembnost ID-jev dogodkov je očitna, ko boste pozneje morda morali priklicati določen ukaz, ki ste ga izvedli. Prav tako boste morda želeli spremeniti predhodno izveden ukaz. Zato lahko zaključimo uvodno razumevanje ukaza history, da na terminalu prikažemo vse predhodno izvedene ukaze ali samo določen ukaz. Prav tako ne smemo pozabiti na izvedljivo možnost spreminjanja navedenega ukaza.
Naj se zgodovina ponovi
Ta zgodovinski članek lahko začnemo na zabaven način in z citiranjem Georgea Santayane. Ta slavni posameznik povezuje nezmožnost spominjanja preteklosti s prekletstvom, da bi jo ponavljal. Ko pa stopimo v vesolje Linuxa, se ta citat šteje le za mit. To je zato, ker je filozofija Linuxa resnično nasprotna navedenim citatom Georgea Santayane. Če se na terminalu Linux ne spomnite preteklega dejanja, ga ni treba skrbeti, ker je verjetnost, da se bo kdaj razpletlo.
Če seveda ne postanete mojster ukaza za zgodovino Linuxa, potem lahko potujete v preteklost in popravite svoje prejšnje grehe na terminalu, če je to vaša želja. Uporaba ukaza za zgodovino Linuxa nikakor ni povezava z lenobo. Z učinkovitostjo prihrani čas. Ko napredujete v obvladovanju operacijskega sistema Linux, boste našli delo z daljšimi in zapletenimi ukazi. Tudi če primerjate svoj inteligenčni kvocient s tistim Alberta Einsteina, ne boste imeli časa zapomniti si vseh ukazov, ki jih izvedete, in kmalu začeti delati strašne napake. Delo na terminalu Linux bo posameznika izpostavilo dvema vrstama napak:
-
- Napaka ena: Ta napaka je najpogostejša in vse, kar počne, vam preprečuje, da bi nadaljevali z ukazom, ki ga želite izvršiti.
-
- Napaka dve: Ta napaka je zvijača. Izvedel bo ukaz, ki ste ga sprožili, vendar dal nepričakovane rezultate.
Ukaz zgodovine si lahko predstavljate kot ninja bojevnika, ki odpravi ti dve vrsti napak za povečanje vaše produktivnosti. Še nekaj besed, preden začnemo z vadnico, ukaz za zgodovino Linuxa vsebuje več kot samo uporabo puščične tipke gor. Z našim pristopom boste videti bolj profesionalno.
Vnesite Linuxov ukaz History
Zagon ukaza history je tako preprost kot vnos besede history na vašem terminalu Linux. Zato zaženite terminal in opravite ta preprost kviz o črkovanju.
zgodovino
Če pritisnete Enter, boste dobili seznam vseh ukazov, ki ste jih izvedli na terminalu, z njihovimi dodeljenimi ID-ji ali številkami dogodkov. Sistem oštevilčenja, ki ga uporablja terminalski vmesnik Linuxa, prikazuje najstarejši ukaz na vrhu seznama in novo vtipkani ukaz na dnu seznama. Kot lahko vidite, sem zgodovinskemu ukazu, ki sem ga pravkar vnesel, dodelil številko id 24.
Razmislite o scenariju zelo aktivnega terminala Linux. Če bi na tem terminalu vnesli ukaz history, bi bil rezultat recimo seznam 500 ukazov, shranjenih v zgodovinski datoteki. Ukaz history je torej koristen pri filtriranju določenega združenega segmenta ukazov. Recimo, da si želimo ogledati zadnjih 10 ukazov, izvedenih na terminalu. Pot skozi terminal bomo filtrirali tako, da vtipkamo naslednje.
zgodovina 10
Kot lahko vidite, je ukaz 'history 10' filtriral zadnjih deset ukazov, uporabljenih na tem terminalu, in jih navedel na našem terminalu z vključitvijo v ukaz 'history 10'.
To je eden od načinov za dosego tega cilja. Drug neroden način za to je, če iz ukaza zgodovine iztisnete drug ukaz, imenovan tail command. Vnesite naslednji ukaz, kot je prikazano na spodnjem posnetku zaslona.
zgodovina | rep -n 10
Ukaz vsebuje tudi zadnjih 10 izvršenih ukazov na terminalu Linux, vključno s tistim, ki smo ga pravkar izvedli.
Pravzaprav ponavljajoča se zgodovina
Čas je za zabaven del uporabe ukaza history. Kaj pa, da začnemo s tem, da pustimo, da se zgodovina ponavlja. Ker ste seznanjeni z ukazi zgodovine in z njimi povezanimi ID-ji dogodkov, se vrnimo na terminal. Če želite ponoviti posebej naveden ukaz, si zapišite ID dogodka in se posmehnite naslednjemu ukazu, kot je prikazano na posnetku zaslona. Med tipkanjem ukaza ne uporabljajte presledkov.
!17
V mojem primeru sem si želel ogledati datoteko Linux / etc / host in bil pozvan k geslu za preverjanje pristnosti. Takoj ko so mi potrdila, se je ukaz izvršil sam.
Obstaja tudi primer, ko želite ponoviti prejšnji ukaz, ki ste ga izvedli. Doseganje tega cilja je enostavno, kot če vtipkate dva klicaja na terminalu. Ne uporabljajte presledkov.
!!
Kot lahko vidite, nas je ukaz vrnil v datoteko Linux / etc / host, ki sem jo prej odprl. Ukaz dvojnega klicaja je trajal, da sem ponovno uporabil moj prejšnji ukaz, ki se je izvršil sam. Morda ste bili navajeni tipke s puščico navzgor, ki je zahtevala, da izvedete dve akciji, se enkrat pomaknete navzgor in nato pritisnete gumb za vnos. Vendar je ukaz dvojnega klica bolj hiter in profesionalen, saj morate izvesti samo eno dejanje.
Ker ukaz, ki sem ga uporabil, zahteva privilegije Sudo, lahko pred dvojnikom klicajev pred ukazom Sudo dobim enak pričakovani rezultat.
sudo !!
En klicni klic v kombinaciji z ID-jem dogodka bo izvedel prikazani ukaz, vezan na ta ID. Dvojni klicaj vam omogoča, da izvedete svoj zadnji uporabljeni ukaz z možnostjo predpona ukaza pred Sudo, če za izvajanje zahteva uporabnika sudoer.
Morda boste svojo nergavost dvignili na naslednjo stopnjo in želeli način, kako ponoviti svoje trird ali 6th prejšnji ukaz. V tem primeru si boste morali zabeležiti ID dogodka, povezan z ukazom. Nato boste ID dogodka združili z vezajem in enim klicajem, kot sledi.
!-21
Po mojem koncu sem se želel vprašati o svojih 21 letihst prejšnji ukaz in izkazalo se je, da gre za zahtevo za ping za moj IP naslov localhost. Uporaba tega zaporedja ukazov je koristna, če želite preveriti predhodno izveden ukaz in ugotoviti, ali so parametri, s katerimi ste ga izvedli, še vedno veljavni ali ne pristranski.
Ukazni nizi
Recimo, da ste na terminalu izvedli nekaj ukaza, vendar ga niste popolnoma zapomnili. Ste pa prepričani v učinkovitost ukaza in kako vam je pomagal. Poznavanje dela niza, ki sestavlja ta ukaz, je zelo koristno. V mojem primeru sem zelo prepričan, da sem enkrat zagnal ukaz za posodobitev sistema. Recimo, da si tega ukaza za posodobitev sistema še ne moram zapomniti v celoti, vendar vem, da del ukaza vsebuje niz 'apt' kot začetno besedilo ukaza. Če želite ponovno uporabiti ta ukaz, vtipkam v svoj terminal naslednji ukaz. Ker pa je za večino ukazov za posodobitev sistema potrebno pooblastilo uporabnika sudoerja, pred ukazni niz, ki ga želim uporabiti, pred Sudom dodam Sudo.
sudo !apt
Kot lahko vidite, sem sistem Linux uspešno posodobil iz ukazne vrstice, ne da bi uporabil celoten ukaz 'sudo apt update'. Ta kramp iz ukaznega priročnika za zgodovino Linuxa je koristen pri obravnavi daljših ukazov, ki bi jih bilo morda dolgočasno vnašati ali bi lahko povzročili mučno tipkarsko napako. Morda urejate datoteko, katere relativna pot ustvari daljši ukaz, ali samo kopirate datoteke. Kakor koli že, za recikliranje ponavljajočih se ukazov potrebujete pristop brez stresa.
Ker smo se dotaknili vidika avtorizacije uporabnikov sudoer, bomo morda na koncu udarili v zid, če nismo previdni. Za izvedbo večine ukazov privilegiranih uporabnikov sudoer bo potrebna predpona Sudo. Zato vnesite nizni ukaz, na primer '!sudo 'za ukaze, ki se začnejo s Sudo, morda ne bo dovolj, saj lahko vodi do izvajanja neželenega zaporedja ukazov. Vendar lahko varnostno mrežo zagotovimo z uporabo parametra: p, ki je modifikator tiskanja. Zato bi združevanje našega ukaza string z njim prineslo rezultate, kot so naslednji.
!sudo: str
Ukaz je natisnil razpoložljive ukaze Sudo, ki sem jih pravkar uporabil. Če želite ponovno uporabiti ta ukaz, bom uporabil tipko s puščico navzgor in za njegovo izvajanje pritisnil enter. Če bi na seznamu bilo več kot en ukaz Sudo, bi še vedno uporabil tipko s puščico navzgor za navigacijo do določenega ukaza Sudo, ki sem ga želel ponovno uporabiti.
To niso vse možnosti, ki jih imamo pri obravnavanju nizov. Obstaja tudi primer, ko poznate samo določen niz, definiran v ukazu, ki ga želite uporabiti. To je primer, ko niste prepričani v prve nize, ki definirajo ukaz, ki ste ga prej uporabili. Tu boste uporabili klicaj in vprašaj, da boste našli svoj ukaz.
!?ping
Uporabil sem!?ping 'zaporedje ukazov, ki je takoj izvršilo mojo prejšnjo zahtevo za ping. To zaporedje lahko uporabite za izvajanje prejšnjih ukazov na terminalu, ki so edinstveni za druge.
Interaktivno iskanje
Predpostavimo, da imate več prejšnjih ukazov, ki ste jih izvedli, in imajo podobna ali ujemajoča se zaporedja nizov. Od vseh teh ujemajočih se znakov boste morda želeli v tem pregibu izvršiti samo določeno zaporedje ukazov. Interaktivno iskanje vam omogoča, da pridete do tega enega ukaza, ki ga želite izvršiti. Za začetek interaktivnega iskanja kombinirajte tipki Ctrl + r. Zaslon vašega terminala Linux bi moral biti podoben spodnjemu.
Preprosto vnesite iskalni namig za ukaz, ki ga morate izvesti. V mojem primeru sem vtipkal 'apt' in kot vidite, se je pojavilo med apostrofom in backtick-om. Vnesete lahko več namigov o iskanem ukazu in interaktivno iskanje bo nenehno posodabljalo povezane rezultate. S pritiskom na tipko takoj najdete najdeni ukaz.
posodobitev sudo apt
Poleg tega boste morda želeli najden ukaz urediti, preden ga izvedete. Za to uporabite puščici leve in desne tipkovnice. Najdeni ukaz se bo zdaj prikazal na terminalu, kjer boste lahko izvedli potrebne spremembe.
posodobitev sudo apt && cd FOSSLinux
Brisanje zgodovinskih ukazov
Do zdaj lahko iz zgodovinske datoteke pridobivate, poizvedujete, posodabljate in izvajate ukaze. Morda pa iščete način, kako izprazniti seznam zgodovine nekaterih ali vseh njegovih ukazov. Mogoče ste tisti tip uporabnika, ki ne želi, da bi kdo spremljal, kako je uporabljal svoj sistem Linux. Parameter -d vam pomaga, da se znebite nekaterih neželenih ukazov v zgodovinski datoteki. V mojem primeru moja zgodovinska datoteka vsebuje napačno črkovan ukaz s številko id 44.
Da se znebim tega napačno črkovanega ukaza, bom na svojem terminalu naredil naslednje.
zgodovina -d 44
Ponovni zagon ukaza 'history' kaže, da je bil napačno črkovan ukaz izbrisan.
Možnost brisanja ne velja samo za en ukaz, saj zajema tudi vrsto ukazov. Na primer, upoštevajte naslednji ukaz.
zgodovina -d 10 20
Ta ukaz bo izbrisal vnose v datoteko zgodovine iz ID-ja dogodka 10 v ID dogodka 20. Še en zgodovinski ukaz, ki ga je treba upoštevati, je naslednji.
zgodovina -d -6
Ta ukaz se bo znebil zadnjih šestih ukazov, ki ste jih vnesli na terminalu, shranjenem v zgodovinski datoteki.
Če želite počistiti vse s seznama datotek z zgodovino, se lahko posmehujete temu ukazu.
zgodovina -c
Zaključek
Zdaj imate vse potrebne informacije za odločitev, ali se zgodovina terminala ponavlja ali ne. Za napredne uporabnike obstajajo primeri, ko lahko aplikacijo zaženete prek terminala in boste pozvani, da za seboj pustite sled občutljivih informacij. Datoteka z zgodovino hrani tudi tako občutljive podatke. Zato je dobra praksa, da svojo zgodovinsko datoteko vedno izbrišete pred izhodom iz ukazne vrstice, zlasti v primerih, ki vodijo do shranjevanja občutljivih podatkov. Ukaz history vam daje moč, da podoživite lepe trenutke na terminalu in popravite tudi svoje pretekle napake ukazne vrstice.