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.

Email
5 ok a Linux-terminál kiválasztására 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

Kapcsolódó témák
  • Linux
A szerzőről
Deepesh Sharma (65 cikk megjelent)

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.

Tovább a Deepesh Sharma-tól

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.

.