Linuxon számos parancs található szokatlan funkcionalitással. Az egyik ilyen parancs a seq, amely a megadott argumentumoktól függően számsort ad ki.
De mit tehet egy parancssori segédprogrammal, amely egy csomó számjegyet dob feléd? Megtudhatja ebben az útmutatóban.
Mi a seq parancs?
Mint fent említettük, a seq parancs Linux alatt gyorsan generál numerikus karakterek sorozatát. A felhasználók argumentumokat adhatnak át a parancsnak, hogy különböző számkombinációkat hozzanak létre. Például egy növekményes listát kaphat, ha egyszerűen továbbad egy további argumentumot a szekvenciának.
Mi a gyakorlati haszna a parancsnak? Bár a seq teljes egészében nem tűnik hatékony eszköznek, a parancs előnyeit élvezheti, ha más Linux segédprogramokkal hajtja végre. Használhatja a seq in szót is bash szkriptek hogy leleplezze valódi erejét.
A seq használata Linux alatt
A Seq csak néhány érvet vesz igénybe, ezáltal bárki számára könnyen megtanulható eszköz.
Alapszintaktika
A parancs alapvető szintaxisa:
seq opciók száma
...hol opciók azok a zászlók, amelyeket megadhat a parancs különböző metódusainak meghívására számok azok az érvek, amelyeket átad a numerikus sorrend létrehozásához.
Készítsen számok listáját
A Seq argumentumok az alább megadott bemeneti formátumot követik:
utolsóként
első utolsóként
első lépcső utolsó
Ha csak egy számot ad meg, akkor a seq a lista felső határaként értelmezi, és az egytől a megadott számig kezdődő szekvenciát generál.
5. sz
A fent említett parancs a következőket adja ki:
1
2
3
4
5
Amikor a seq két számot kap bemenetként, akkor azokat a szekvencia alsó és felső határaként értelmezi. Négy és nyolc közötti számlista létrehozása:
folytatás 4 8.
Kimenet:
4
5
6
7
8
De amikor három számot ad át a parancsnak, a második argumentumot növekményszámként értelmezi. Például:
3 2 13. sz
A fent említett parancs háromtól 13-ig kezdődő számok listáját adja ki, két lépéssel.
3
5
7
9
11
13
Vegyen be egy elválasztót a számok közé
Alapértelmezés szerint a seq új sor karaktert használ a lista elválasztóként. Ez az oka annak, hogy a listában szereplő egyes számok külön sorban vannak.
Megváltoztathatja ezt az alapértelmezett viselkedést, és egyéni elválasztót használhat a -s zászló. A Időszak (.) karakter elválasztóként:
seq -s. 3 7
Kimenet:
3.4.5.6.7
Ne feledje, hogy néhány karakternek tetszik Tilde (~) idézőjelek közé kell tenni. A terminál ugyanis a Tilde karakter a /home könyvtár, és ez tükröződik a kimenetben, ha nem ad hozzá idézőjeleket.
seq -s ~ 3 7
Kimenet:
3 / home / 4 / home / 5 / home / 6 / home / 7
Másrészt, amikor az elválasztót idézőjelekkel csomagolja:
seq -s '~' 3 7
Kimenet:
3~4~5~6~7
Csípje meg a kimeneti formátumot
A kimenet sorozatának formátumát a gombbal is módosíthatja -f zászló. Alapértelmezés szerint a seq kivonja a formátumstílust a felhasználói bevitelből. Például, ha megadja a 0,1 és a 0,5 számokat, az alapértelmezett kimenet lebegőpontos formátumú lesz.
szekvencia 0,1 0,5
Kimenet:
0.1
0.2
0.3
0.4
0.5
Megadhat egyéni kimeneti formátumot a különféle átalakítási specifikációk, például% a,% e,% f,% g,% A,% E,% F és% G használatával.
Használhatja a % f specifikáló, ha azt szeretné, hogy a kimenő lebegőpontos számformátumot kövessen.
seq-f% f 4 7
Kimenet:
4.000000
5.000000
6.000000
7.000000
A pontosság módosításához két tizedesjegyig:
szekvencia -f% 0,2f 4 7
Kimenet:
4.00
5.00
6.00
7.00
A kimenetet teljesen átalakíthatja egy kimeneti sablon megadásával is. Például az összes kezdő IP-cím listájának megszerzéséhez 192.168.5.x:
-f 192,168,5%.% g 1 233
Kimenet:
A kitöltéshez a kitöltést használhatja a -w zászló. A -w flag megőrzi a kimenet szélességét a megadott legnagyobb számnak megfelelően.
Egy és 1000 közötti számsorozat létrehozása 100-as lépésekben, állandó szélesség fenntartása mellett:
sew -w 1 100 1000
Kimenet:
0001
0101
0201
0301
0401
0501
0601
0701
0801
0901
Kérjen seq parancssori súgót
Míg a seq könnyen használható, néha a felhasználók szükségét érezhetik ellenőrizze a parancs kézi oldalát. A --Segítség zászló megjeleníti a seq man oldalt:
seq --help
Kimenet:
Gyakorlati példák
Mint már említettük, a seq-et elsősorban más Linux-parancsokkal, például az érintéssel és a kifejezéssel együtt használják.
Matematikai műveletek végrehajtása
Ha gyorsan hozzá akar adni vagy kivonni egy adott számtartományt, akkor ezt könnyedén megteheti a belső szekvencia használatával kifejez, amely egy Linux parancs, amely az inputot kifejezésként kezeli, és megjeleníti a megfelelő kimenetet.
Az összes szám hozzáadása egy és 100 között:
expr `(seq -s" + "1 100)"
A seq parancs a következőképpen generál kimenetet:
1 + 2 + 3 + 4 + 5 + 6...
Az Expr bemeneti kifejezésként kezeli, és kimeneti megoldást ad ki.
5050
Más matematikai műveleteket is elvégezhet, ha egyszerűen leválasztja a szeq parancs elválasztóját más operátorokra.
Gyorsan létrehozhat több fájlt
Ha több fájlt szeretne létrehozni Linuxon, amelyek neve hasonló mintát követ, akkor ezt egyszerűen megteheti a használatával az érintés parancs és azt követő
Például 10 fájl létrehozása névvel file-x.txt, hol x egy és 10 közötti szám:
érintse meg a $ (seq -f "fájlt% g.txt" 1 10)
Az érintéssel egy pillanat alatt létrehozza a fájlokat az Ön számára.
Seq megvalósítása a szkriptekben
Fontolja meg, hogy a hálózati szkenner eszköz, mint például az Nmap a bash-ban érdemes megkeresni a hálózat összes nyitott portjának listáját. Ehhez azonban meg kell pingelnie minden portot (összesen 65535) és elemeznie kell a választ.
Időmegtakarítás érdekében választhatja a seq használatát, és létrehozhat egy listát az IP-címekről és portkombinációkról, amelyeket a szkriptben használhat.
Tegyük fel, hogy meg akarja szerezni az eszköz összes portjának listáját az IP-címmel 1.2.3.4. Itt van egy gyors parancs a kívánt kimenet előállításához:
-f 1.2.3.4:%g 1 65535
Kimenet:
Ezután felhasználhatja ezt a kimenetet listaként, és átmehet rajta, ellenőrizve az egyes portokat a szkript segítségével, és elemezheti, hogy nyitottak-e vagy sem.
Milyen gyorsan generálja a seq a számokat?
Gondolhat arra, ha hasonló eredményeket érhet el a bash for ciklus használatával, miért válassza a következőt a feladathoz? Ennek oka, hogy a seq valódi ereje a sebességében rejlik. A Seq gyorsabb, mint bármely más parancs, amely számsort generál a Linuxon.
Még a sebességét is tesztelheti a Linux segédprogrammal. Lássuk, mennyi idő telik el a szekvenciákhoz, hogy egymillió számot tartalmazó listát generáljanak.
idő szekvencia 1000000
Az alábbi kimenetet megnézve láthatja, hogy csak egymillió számot kellett felsorolni négy másodperc alatt.
A Linux parancssor hatalma
A Seq nem az egyetlen olyan eszköz a Linuxban, amely nagy hangsúlyt fektet a gyors és pontos eredmények elérésére. Miközben a számgombok segítségével létrehozhat egy listát a for hurok a bash-ban, ez nem ajánlott gyakorlat annak figyelembevételével, hogy valójában mennyire lángoló a gyors.
A Linux parancssora lehetővé teszi az operációs rendszer és annak funkcionalitásának jobb ellenőrzését, emiatt ma is el kell kezdenie a terminál használatát a grafikus felületen keresztül.
A Linux parancssorának nagy szerepe van a teljesítmény, az irányítás és az egyszerű használat terén.
Olvassa el a következőt
- Linux
Deepesh a MUO Linux junior szerkesztője. Több mint 3 éve ír információs tartalmat az interneten. Szabadidejében szívesen ír, zenét hallgat és gitározik.
Iratkozzon fel hírlevelünkre
Csatlakozzon hírlevelünkhöz, amely műszaki tippeket, véleményeket, ingyenes e-könyveket és exkluzív ajánlatokat tartalmaz!
Még egy lépés…!
Kérjük, erősítse meg e-mail címét az imént elküldött e-mailben.