NOC online · 24/7Longview, TX · +1 323 412 0665
KinetikatechServers · Security · Websites
SL

Ukazi in spretnosti lupine Linux

sed: Gre za urejanje tokov brez odpiranja urejevalnika

sed ureja postrani: celi tokovi besedila gredo skozi njega, pridejo ven preoblikovani in noben urejevalnik se ne odpre. Njegov sloves izvira iz -i, ki enovrstično zamenjavo spremeni v paketno operacijo na tisoče datotek, in iz katastrofalnih zgodb o skrbnikih, ki so ga izvajali brez rezervne pripone. Varen potek dela se nikoli ne spremeni: zaženite zamenjavo vidno, potrdite izhod, nato dodajte -i s pripono in obdržite izhodno kodo.

Ključne točke

  1. Predogled pred potrditvijo: datoteka sed -n '10,20p' prikazuje obseg vrstic, ista kombinacija -n plus p pa natisne samo vrstice, ki se ujemajo z regularnim izrazom ali naslovom.
  2. Nadomestite z zastavicami, ki naredijo to, kar mislite: s/staro/novo/g za vsa ujemanja, številko, kot je 2g, samo za drugo in -E za razširjeni regularni izraz brez strani s poševnico nazaj.
  3. Urejanja na mestu dobijo pripono, brez izjem: aplikacija sed -i.bak 's/http:/https:/g' ob vsaki spremembi shrani varnostno kopijo z istim imenom; ta pripona je rešila več uvedb kot zgodovina razveljavitev katerega koli urednika.
  4. Razmejevalniki so brezplačni: s|/var/www|/srv/app|g (ali s#...#g) se izogne ​​prepirom zaradi poševnice, ko je vaš vzorec poln poti.
  5. -i ni atomičen: zrušitev ali slab regularni izraz v sredini paketa je nekoč pustil za seboj napol prepisane datoteke, tako da se množična opravila izvajajo proti kopijam ali drevesom, ki jih sledi git, nikoli edini kopiji.
  6. GNU in BSD sed se ne strinjata glede -i: BSD zahteva pripono pred skriptom (sed -i '' deluje v macOS, ni sintaksa Linuxa), kar je še en razlog več, da se skripti za prenosljivost popolnoma izogibajo -i.
  7. Izbriši in izoliraj sta poštena glagola: 'd' odstrani ujemajoče se vrstice (sed '/^#/d' odstrani komentarje), -n z obsegom pa izolira razdelek; oba se bereta bolje kot pametne zamenjave.
  8. Karkoli mimo enovrstičnih urejanj, dobesednih večvrstičnih blokov ali združevanj s stanjem spada v awk ali pravi skript; prisiljevanje seda, da opravlja programersko delo, je način, kako se rodijo neberljive enovrstične besede.

Terenska beležka

Moj prvi sed -i brez pripone .bak je zadel produkcijsko konfiguracijo nginx tik pred popoldansko prometno konico. Od takrat vsako urejanje na mestu nosi rezervno pripono in preberem izpis suhega zagona, še preden se -i približa ukazu.

Pogosta vprašanja

Kako uredim samo vrstice, ki se ujemajo z nečim drugim?

Odpravite jih: sed '/cache/s/true/false/' obrne true v false samo v vrsticah predpomnilnika in obsege, kot je '/<VirtualHost>/,/<\/VirtualHost>/s/Old/New/g' urejanje obsega blokov; naslov je prvi, ukaz pa drugi.

Zakaj se sed ne ujema s konci vrstic v datoteki, ki jo ureja Windows?

Te vrstice se končajo z znaki za vrnitev na začetek, ki jih sidra '$' ne pričakujejo; najprej jih odstranite s tr ali normalizirajte na poti in večvrstična vsebina še vedno sodi v awk ali Perl z -0777.

Je sed hitrejši od awk za preproste zamenjave?

Obrobno in nepomembno; oba se končata v milisekundah na datotekah velikosti konfiguracije. Izbirajte po berljivosti, saj vam mora kolega v šestih mesecih razvozlati enovrstičnico.

Ali lahko s sed vstavim cele konfiguracijske bloke?

Da: 'a' doda za, 'i' vstavi pred in 'c' nadomesti vrstico, vendar naj bo vstavljeno besedilo preprosto in enonamensko; dejanski bloki spadajo v datoteko predloge ali ustrezen korak zagotavljanja.

Kako Kinetikatech pomaga s ukazi in spretnosti lupine linux

Ne morete postati eksperta za ukazi in spretnosti lupine linux: Ukazi in skriptne navade, ki odločajo, ali skrbnik upravlja strežnik ali se bori proti njemu: iskanje, preoblikovanje, prenos in nadzorovanje besedila in procesov z orodji, ki živijo v vsaki osnovni namestitvi. Nekatere za to obstaja Varnost strežnikov Linux in Upravljanje strežnikov: nastavitev, krepitev, monitoring in osebna strega dne in noči.

Pogovorite z inženirjem

Problem z strežnikom? Napadena spletna stran? Dolgo se naloži?

Kritični problemi rešeni v 30 minutah — nonstop, 7 dni v tednu.

Zahtevajte hitno podporo support@kinetikatech.com