V systému Linux najdete několik příkazů s neobvyklými funkcemi. Jedním z takových příkazů je seq, který vydává posloupnost čísel v závislosti na zadaných argumentech.

Ale co můžete udělat s nástrojem příkazového řádku, který na vás hodí spoustu číslic? Dozvíte se v této příručce.

Co je příkaz seq?

Jak již bylo zmíněno výše, příkaz seq v Linuxu rychle vygeneruje posloupnost číselných znaků. Uživatelé mohou předat argumenty příkazu a vygenerovat různé kombinace čísel. Například můžete získat zvětšený seznam jednoduše předáním dalšího argumentu seq.

Jaké je praktické použití příkazu? Zatímco seq nemusí vypadat jako mocný nástroj v plném rozsahu, můžete těžit z příkazu implementací s jinými nástroji Linux. Můžete také použít seq v bash skripty odhalit jeho skutečnou sílu.

Jak používat seq v Linuxu

Seq trvá jen několik argumentů, což z něj činí snadno naučitelný nástroj pro kohokoli.

Základní syntaxe

Základní syntaxe příkazu je:

čísla možností seq

...kde možnosti jsou příznaky, které můžete určit pro vyvolání různých metod příkazu a

instagram viewer
čísla jsou argumenty, které předáte k vygenerování číselné posloupnosti.

Vygenerujte seznam čísel

Argumenty Seq se řídí níže uvedeným vstupním formátem:

seq poslední
seq první poslední
seq první přírůstek poslední

Když zadáte pouze jedno číslo, seq jej interpretuje jako horní limit pro seznam a vygeneruje sekvenci od jednoho do zadaného čísla.

seq 5

Výše uvedený příkaz vygeneruje následující:

1
2
3
4
5

Když seq dostane jako vstup dvě čísla, interpretuje je jako dolní a horní limit pro posloupnost. Generování seznamu čísel od čtyř do osmi:

seq 4 8

Výstup:

4
5
6
7
8

Ale když předáte příkazu tři čísla, interpretuje druhý argument jako přírůstkové číslo. Například:

č. 3 2 13

Výše uvedený příkaz vygeneruje seznam čísel začínajících od tří do 13 s přírůstkem dvou.

3
5
7
9
11
13

Přidejte oddělovač mezi čísla

Ve výchozím nastavení seq používá jako oddělovač seznamu znak nového řádku. Z tohoto důvodu je každé číslo v seznamu na samostatném řádku.

Toto výchozí chování můžete změnit a použít vlastní oddělovač pomocí -s vlajka. Chcete-li použít Doba (.) znak jako oddělovač:

násl. 3 7

Výstup:

3.4.5.6.7

Mějte na paměti, že některé postavy jako Vlkodlak (~) musí být uzavřeny v uvozovkách. Je to proto, že terminál používá Vlkodlak znak pro označení /home adresář, a to se projeví ve výstupu, pokud nepřidáte uvozovky.

seq -s ~ 3 7

Výstup:

3 / domů / 4 / domů / 5 / domů / 6 / domů / 7

Na druhou stranu, když zalomíte oddělovač uvozovkami:

seq -s '~' 3 7

Výstup:

3~4~5~6~7

Upravte výstupní formát

Můžete také změnit formát výstupní sekvence pomocí -F vlajka. Ve výchozím nastavení seq extrahuje styl formátu ze vstupu uživatele. Například pokud zadáte čísla 0,1 a 0,5, bude mít výchozí výstup formát čísla s plovoucí desetinnou čárkou.

0,1 0,1 0,5

Výstup:

0.1
0.2
0.3
0.4
0.5

Můžete zadat vlastní výstupní formát pomocí různých specifikací převodu, jako je% a,% e,% f,% g,% A,% E,% F a% G.

Můžete použít %F specifikátor, pokud chcete, aby výstup odpovídal formátu čísel s plovoucí desetinnou čárkou.

seq-f% f 4 7

Výstup:

4.000000
5.000000
6.000000
7.000000

Postup úpravy přesnosti až na dvě desetinná místa:

seq -f% 0,2f 4 7

Výstup:

4.00
5.00
6.00
7.00

Výstup můžete také zcela transformovat zadáním výstupní šablony. Například získat seznam všech adres IP, které začínají 192.168.5.x:

sekv. -f 192,168,5% g 1 233

Výstup:

Chcete-li na výstup přidat polstrování, můžete použít -w vlajka. The -w příznak udržuje šířku výstupu v souladu s největším zadaným počtem.

Chcete-li vygenerovat posloupnost čísel od jedné do 1 000 s přírůstkem 100 při zachování konstantní šířky:

seq -w 1100 1000

Výstup:

0001
0101
0201
0301
0401
0501
0601
0701
0801
0901

Získejte další nápovědu k příkazovému řádku

Zatímco seq se snadno používá, někdy uživatelé mohou cítit potřebu zkontrolujte příkaz na ruční stránce. The --Pomoc vlajka zobrazí seq manuálovou stránku:

seq - nápověda

Výstup:

Praktické příklady

Jak již bylo zmíněno, seq se primárně používá s jinými příkazy Linuxu, například touch a expr.

Proveďte matematické operace

Chcete-li rychle přidat nebo odečíst určitý rozsah čísel, můžete tak snadno udělat pomocí seq uvnitř expr, což je příkaz Linuxu, který zachází se vstupem jako s výrazem a zobrazuje odpovídající výstup.

Postup přidání všech čísel od jedné do 100:

expr `(seq -s" + "1 100)`

Příkaz seq generuje výstup následujícím způsobem:

1 + 2 + 3 + 4 + 5 + 6...

Expr s ním zachází jako se vstupním výrazem a vydává řešení.

5050

Další matematické operace můžete provádět jednoduchým nahrazením oddělovače v příkazu seq jinými operátory.

Rychle vytvářejte více souborů

Chcete-li v systému Linux vytvořit více souborů, jejichž názvy mají podobný vzorec, můžete to snadno provést pomocí dotykový příkaz a násl.

Například k vytvoření 10 souborů s názvem file-x.txt, kde X je číslo od jedné do 10:

dotkněte se $ (seq -f "soubor% g.txt" 1 10)

Touch pro vás vytvoří soubory bleskově.

Implementace seq ve skriptech

Zvažte, že píšete a nástroj pro síťový skener jako Nmap v bash možná budete chtít získat seznam všech otevřených portů v síti. Ale na to musíte provést ping na každý port (celkem 65535) a analyzovat odpověď.

Chcete-li ušetřit čas, můžete použít seq a vygenerovat seznam adres IP a kombinací portů, které můžete použít ve svém skriptu.

Předpokládejme, že chcete získat seznam všech portů zařízení s IP adresou 1.2.3.4. Zde je rychlý příkaz k vygenerování požadovaného výstupu:

seq -f 1.2.3.4:%g 1 65535

Výstup:

Tento výstup pak můžete použít jako seznam a procházet jej, kontrolovat každý port pomocí skriptu a analyzovat, zda je otevřený nebo ne.

Jak rychle seq generuje čísla?

Možná si myslíte, že pokud můžete dosáhnout podobných výsledků pomocí smyčky for v bash, proč zvolit pro úkol seq? Je to proto, že skutečná síla sekv spočívá v jeho rychlosti. Sekvence je rychlejší než jakýkoli jiný příkaz, který generuje sekvenci čísel v systému Linux.

Jeho rychlost můžete dokonce otestovat pomocí nástroje pro čas v systému Linux. Podívejme se, kolik času seq vygeneruje seznam jednoho milionu čísel počínaje od jednoho.

časové období 10 000 000

Při pohledu na výstup níže můžete vidět, že vygenerování seznamu jednoho milionu čísel trvalo seq asi čtyři sekundy.

Síla příkazového řádku systému Linux

Seq není jediným nástrojem v Linuxu, který se silně zaměřuje na poskytování rychlých a přesných výsledků. Zatímco můžete vygenerovat seznam čísel pomocí smyčka pro v bash, nejedná se o doporučený postup vzhledem k tomu, jak bleskově rychlé sekvence ve skutečnosti jsou.

Příkazový řádek Linuxu vám poskytuje větší kontrolu nad operačním systémem a jeho funkcemi, což je také důvod, proč byste dnes měli začít používat terminál přes GUI.

E-mailem
5 důvodů pro výběr terminálu Linux přes grafické uživatelské rozhraní

Příkazový řádek Linuxu má vysoké postavení, pokud jde o výkon, ovládání a snadné použití.

Přečtěte si další

Související témata
  • Linux
O autorovi
Deepesh Sharma (Publikováno 65 článků)

Deepesh je Junior Editor pro Linux na MUO. Píše informační obsah na internetu již více než 3 roky. Ve volném čase rád píše, poslouchá hudbu a hraje na kytaru.

Více od Deepesh Sharma

Přihlaste se k odběru našeho zpravodaje

Připojte se k našemu zpravodaji s technickými tipy, recenzemi, bezplatnými elektronickými knihami a exkluzivními nabídkami!

Ještě jeden krok…!

V e-mailu, který jsme vám právě poslali, potvrďte svou e-mailovou adresu.

.