„Linux“ sistemoje galite rasti keletą komandų su neįprastomis funkcijomis. Viena iš tokių komandų yra sek, kuri pateikia skaičių seką, priklausomai nuo nurodytų argumentų.
Bet ką jūs galite padaryti naudodami komandinės eilutės įrankį, kuris į jus numeta daugybę skaitmenų? Sužinosite šiame vadove.
Kas yra seq komanda?
Kaip minėta pirmiau, „seq“ komanda „Linux“ greitai sugeneruoja skaitinių simbolių seką. Vartotojai gali perduoti argumentus komandai, kad sugeneruotų skirtingus skaičių derinius. Pvz., Galite gauti padidintą sąrašą paprasčiausiai perduodami papildomą argumentą sek.
Vis dėlto koks yra komandos naudojimas? Nors „seq“ gali atrodyti ne visai kaip galingas įrankis, galite pasinaudoti komanda naudodami ją naudodami kitas „Linux“ paslaugas. Taip pat galite naudoti sek bash scenarijus atskleisti tikrąją jos galią.
Kaip naudoti „Linux“ seką
Seq pateikia tik keletą argumentų, todėl tai yra lengvai išmokstama priemonė visiems.
Pagrindinė sintaksė
Pagrindinė komandos sintaksė yra:
seq parinkčių numeriai
... kur galimybės yra vėliavos, kurias galite nurodyti norėdami pasinaudoti skirtingais komandos metodais ir numeriai yra argumentai, kuriuos pateikiate, kad sugeneruotumėte skaitinę seką.
Sukurkite skaičių sąrašą
Seq argumentai atitinka toliau nurodytą įvesties formatą:
sek paskutinis
sek pirmas paskutinis
seq pirmasis prieaugis paskutinis
Kai nurodote tik vieną skaičių, seq interpretuoja jį kaip viršutinę sąrašo ribą ir sukuria seką pradedant nuo vieno iki nurodyto skaičiaus.
5 seka
Minėta komanda pateiks:
1
2
3
4
5
Kai seq gauna du skaičius kaip įvestį, jis juos aiškina kaip apatinę ir viršutinę sekos ribą. Norėdami sukurti skaičių nuo keturių iki aštuonių sąrašą:
seka 4 8
Išvestis:
4
5
6
7
8
Bet kai komandai perduodate tris skaičius, antrasis argumentas aiškinamas kaip prieaugio skaičius. Pavyzdžiui:
3 2 13 seka
Minėta komanda išves skaičių skaičių nuo trijų iki 13, padidindama du.
3
5
7
9
11
13
Pridėkite skyriklį tarp skaičių
Pagal numatytuosius nustatymus sek naudojamas sąrašo skiriamuoju simboliu naujos eilutės simbolis. Tai yra priežastis, kodėl kiekvienas sąrašo numeris yra atskiroje eilutėje.
Galite pakeisti šį numatytąjį elgesį ir naudoti pasirinktinį skyriklį naudodami -s vėliava. Norėdami naudoti Laikotarpis (.) simbolis kaip skyriklis:
seq -s. 3 7
Išvestis:
3.4.5.6.7
Atminkite, kad kai kuriems personažams patinka Tildė (~) turi būti kabutėse. Taip yra todėl, kad terminalas naudoja Tildė simbolis žymėti /home katalogą, ir tai atsispindės išvestyje, jei nepridėsite kabučių.
seq -s ~ 3 7
Išvestis:
3 / namai / 4 / namai / 5 / namai / 6 / namai / 7
Kita vertus, kai apvyniojate separatorių kabutėmis:
seq -s '~' 3 7
Išvestis:
3~4~5~6~7
Patikslinkite išvesties formatą
Taip pat galite pakeisti išvesties sekos formatą naudodami -f vėliava. Pagal numatytuosius nustatymus seq išskiria formato stilių iš vartotojo įvesties. Pvz., Jei nurodysite skaičius 0,1 ir 0,5, numatytasis išvesties formatas bus slankiojo kablelio.
seka 0,1 0,5
Išvestis:
0.1
0.2
0.3
0.4
0.5
Galite nurodyti pasirinktinį išvesties formatą naudodami įvairias konversijos specifikacijas, tokias kaip% a,% e,% f,% g,% A,% E,% F ir% G.
Galite naudoti % f specifikatorius, jei norite, kad išvestis atitiktų slankiojo kablelio skaičiaus formatą.
seq-f% f 4 7
Išvestis:
4.000000
5.000000
6.000000
7.000000
Norėdami pakeisti tikslumą iki dviejų skaičių po kablelio:
seka -f% 0,2f 4 7
Išvestis:
4.00
5.00
6.00
7.00
Taip pat galite visiškai transformuoti išvestį, nurodydami išvesties šabloną. Pavyzdžiui, norėdami gauti visų pradedančių IP adresų sąrašą 192.168.5.x:
seka -f 192.168.5.% g 1 233
Išvestis:
Norėdami pridėti išvestį užpildą, galite naudoti -w vėliava. -w vėliava išlaiko išvesties plotį pagal didžiausią nurodytą skaičių.
Norėdami sukurti skaičių seką nuo vieno iki 1000, padidindami 100, išlaikydami pastovų plotį:
sek-w 1 100 1000
Išvestis:
0001
0101
0201
0301
0401
0501
0601
0701
0801
0901
Gaukite sekančią komandų eilutės pagalbą
Nors seką lengva naudoti, kartais vartotojai gali jausti poreikį patikrinkite komandos vadovą rankiniame puslapyje. --pagalba vėliavoje bus rodomas seq žmogaus puslapis:
sek - pagalba
Išvestis:
Praktiniai pavyzdžiai
Kaip jau minėta, seq pirmiausia naudojamas su kitomis „Linux“ komandomis, pavyzdžiui, „touch“ ir „expr“.
Atlikti matematines operacijas
Jei norite greitai pridėti arba atimti tam tikrą skaičių diapazoną, galite tai padaryti lengvai naudodami seką viduje išr, kuri yra „Linux“ komanda, kuri įvestį traktuoja kaip išraišką ir rodo atitinkamą išvestį.
Norėdami pridėti visus skaičius nuo vieno iki 100:
expr "(sekq -s" + "1 100)"
Seq komanda sukuria išvestį taip:
1 + 2 + 3 + 4 + 5 + 6...
„Expr“ traktuoja tai kaip įvesties išraišką ir pateikia sprendimą.
5050
Galite atlikti kitas matematines operacijas paprasčiausiai pakeisdami sekos komandos skyriklį kitais operatoriais.
Greitai sukurkite kelis failus
Jei norite sukurti kelis „Linux“ failus, kurių pavadinimai yra panašūs, galite tai padaryti lengvai naudodami palieskite komandą ir sek.
Pavyzdžiui, norint sukurti 10 failų su pavadinimu file-x.txt, kur x yra skaičius nuo 1 iki 10:
palieskite $ (seq -f "failas% g.txt" 1 10)
„Touch“ padės jums greitai sukurti failus.
Sekų įgyvendinimas scenarijuose
Apsvarstykite, ar rašote tinklo skaitytuvo įrankis, pvz., „Nmap“ bash, galbūt norėsite gauti visų atvirų tinklo prievadų sąrašą. Bet tam reikia pinguoti kiekvieną prievadą (iš viso 65535) ir išanalizuoti atsakymą.
Norėdami sutaupyti šiek tiek laiko, galite pasirinkti naudoti seką ir sugeneruoti IP adresų bei prievadų derinių, kuriuos galite naudoti savo scenarijuje, sąrašą.
Tarkime, kad norite gauti visų įrenginio, kuriame yra IP adresas, prievadų sąrašą 1.2.3.4. Štai greita komanda norimam išėjimui sugeneruoti:
seka -f 1.2.3.4:%g 1 65535
Išvestis:
Tada galite naudoti šį išvestį kaip sąrašą ir pereiti per jį, patikrindami kiekvieną prievadą naudodami scenarijų ir analizuodami, ar jis atidarytas, ar ne.
Kaip greitai generuojami skaičiai?
Galbūt galvojate, jei galite pasiekti panašių rezultatų naudodami „for loop“ bash, kodėl užduočiai pasirinkti seką? Taip yra todėl, kad tikroji seko galia slypi jo greityje. Seq yra greitesnis nei bet kuri kita komanda, generuojanti skaičių seką sistemoje „Linux“.
Jūs netgi galite išbandyti jo greitį naudodami laiko įrankį „Linux“. Pažiūrėkime, kiek laiko reikia sekoms sukurti milijono skaičių sąrašą, pradedant nuo vieno.
laiko seka 1000000
Pažvelgus į žemiau pateiktą išvestį, galite pamatyti, kad užtruko tik keturias sekundes, kad sugeneruotumėte milijono skaičių sąrašą.
„Linux“ komandinės eilutės galia
„Seq“ nėra vienintelis „Linux“ įrankis, kuriame daug dėmesio skiriama greitiems ir tiksliems rezultatams pateikti. Nors galite sukurti skaičių sąrašą naudodami a už kilpą bash, tai nėra rekomenduojama praktika, turint omenyje tai, koks iš tikrųjų yra greitai plintantis.
„Linux“ komandinė eilutė suteikia jums daugiau galimybių valdyti operacinę sistemą ir jos funkcijas, o tai taip pat yra priežastis, kodėl turėtumėte pradėti naudoti terminalą per GUI jau šiandien.
„Linux“ komandinė eilutė turi aukštą našumą, valdymą ir paprastą naudojimą.
Skaitykite toliau
- „Linux“
Deepesh yra MUO „Linux“ jaunesnysis redaktorius. Jis daugiau nei 3 metus rašė informacinį turinį internete. Laisvalaikiu jam patinka rašyti, klausytis muzikos ir groti gitara.
Prenumeruokite mūsų naujienlaiškį
Prisijunkite prie mūsų naujienlaiškio, kuriame rasite techninių patarimų, apžvalgų, nemokamų el. Knygų ir išskirtinių pasiūlymų!
Dar vienas žingsnis…!
Prašome patvirtinti savo el. Pašto adresą el. Laiške, kurį jums ką tik išsiuntėme.