GNU/Linux >> Znalost Linux >  >> Linux

Příkaz a způsob použití sady Linux {9 příkladů}

Úvod

set command je vestavěný příkaz shellu Linux, který zobrazuje a nastavuje názvy a hodnoty proměnných prostředí shell a Linux. V operačních systémech podobných Unixu set příkazové funkce v Bourne shellu (sh ), C shell (csh ) a Korn shell (ksh ).

V tomto tutoriálu se dozvíte, co set příkaz je a jak jej používat.

Předpoklady

  • Systém se systémem Linux.
  • Přístup k terminálu/příkazovému řádku.

Syntaxe příkazů Linuxové sady

Obecná syntaxe pro set příkaz je:

set [options] [arguments]

Možnosti

V kontextu set příkaz, [options] jsou nastavení nebo příznaky, které jsou nastaveny nebo deaktivovány v prostředí prostředí Bash. Použijte jej k ovlivnění chování definovaných skriptů shellu a k pomoci při provádění požadovaných úloh.

  • Nastavte možnost pomocí znaménka mínus (- ) následovaná příslušnou možností.
  • Zrušte nastavení možnosti pomocí znaménka plus (+ ) následovanou příslušnou možností.

Argumenty

[arguments] jsou poziční parametry a jsou přiřazeny v pořadí s následujícími parametry:

  • $1
  • $2
  • ...
  • $n

Pokud nezadáte žádné volby nebo argumenty, příkaz vypíše všechny proměnné prostředí.

Výstupní hodnoty

set příkaz má tři výstupní hodnoty:

  • 0 . Označuje úspěšné dokončení.
  • 1 . Selhání způsobené neplatným argumentem.
  • 2 . Selhání má za následek zprávu o použití, obvykle proto, že chybí argument.

Možnosti příkazů sady Linux

set poskytuje rozsáhlý seznam možností, které lze kombinovat.

Většina možností má odpovídající příznak -o flag které lze použít k vyvolání volby. Níže uvedená tabulka uvádí všechny možnosti a jejich příslušnou alternativní formu pomocí parametru -o flag syntaxe.

Možnosti -o příznaky Popis
-a -o allexport Označí všechny vytvořené nebo upravené proměnné nebo funkce pro export.
-b -o notify Upozorňuje uživatele na ukončení úlohy na pozadí.
-e -o errexit Pokyne shellu k ukončení, pokud příkaz selže, tj. pokud vypíše nenulový výstupní stav.
-f -o noglob Zakáže generování souborů (globbing).
-h -o hashall Vyhledává a ukládá příkazy funkcí, když je funkce definována. -h možnost je ve výchozím nastavení povolena.
-k -o keyword Umístí všechny argumenty přiřazení do prostředí pro příkaz, nejen ty, které předcházejí názvu příkazu.
-n -o noexec Čte příkazy, ale neprovádí je.
-m -o monitor Po dokončení úkolu zobrazí zprávu.
-p -o privileged Zakáže $ENV zpracování souborů a import funkcí shellu. -p možnost je ve výchozím nastavení povolena, když se skutečné a efektivní ID uživatele neshodují. Vypnutím nastavíte efektivní uid a gid na skutečné uid a gid.
-t -o onecmd Přečte jeden příkaz a poté skončí.
-u -o nounset Považuje nenastavené nebo nedefinované proměnné za chybu při dosazování (během rozšiřování parametrů). Neplatí pro speciální parametry, jako je zástupný znak * nebo @ .
-v -o verbose Při čtení vytiskne vstupní řádky shellu.
-x -o xtrace Během provádění vytiskne argumenty příkazu.
-B -o braceexpand Provádí rozšíření výztuhy.
-C -o noclobber Zabraňuje přepsání existujících běžných souborů přesměrováním výstupu. Ve výchozím nastavení Bash umožňuje přesměrovaný výstup k přepsání existujících souborů.
-E -o errtrace Způsobuje, že funkce shellu zdědí past ERR.
-H -o histexpand Povoluje nahrazování historie stylů. Tato volba je ve výchozím nastavení zapnutá, když je shell interaktivní.
-P -o physical Zabraňuje následování symbolických odkazů při provádění příkazů.
-T -o functrace Způsobuje, že funkce shellu zdědí past DEBUG.
-- není Přiřadí zbývající argumenty pozičním parametrům. Pokud nezbývají žádné argumenty, zruší nastavení pozičních parametrů.
- není k dispozici Přiřadí všechny zbývající argumenty pozičním parametrům. Vypne -x a -v možnosti.
není k dispozici -o emacs Používá rozhraní pro úpravu řádků ve stylu emacs.
není k dispozici -o history Povolí historii příkazů.
není k dispozici -o ignoreeof Shell se při čtení konce souboru neukončí.
není k dispozici -o interactive-comments Umožňuje komentáře v interaktivních příkazech.
není k dispozici -o nolog Nezaznamenává definice funkcí do souboru historie.
není k dispozici -o pipefail Vrácená hodnota kanálu je stav posledního příkazu, který měl při ukončení nenulový stav. Pokud žádný příkaz neměl při ukončení nenulový stav, je hodnota nula.
není k dispozici -o posix Způsobuje, že Bash odpovídá standardu, když se výchozí operace liší od standardu Posix.
není k dispozici -o vi Používá rozhraní pro úpravu řádků podobné vi .

Příklady příkazů sady Linux

Tato část uvádí příklady nejběžnějších použití set příkaz.

Použití nastaveného příkazu bez možností

Spuštěním příkazu bez voleb nebo argumentů se zobrazí seznam všech nastavení - názvy a hodnoty všech proměnných a funkcí shellu. Protože je seznam velmi dlouhý, můžete jej procházet pomocí Page Up a O stránku dolů klíče.

Následuje příklad částečné set výstup příkazu:

Ladění skriptů

set příkaz je zvláště užitečný, když se pokoušíte ladit své skripty. Použijte -x pomocí set příkaz, abyste viděli, který příkaz ve vašem skriptu se provádí po výsledku, což vám umožní určit výsledek každého příkazu.

Následující příklad ukazuje, jak ladit skripty pomocí set -x . Postupujte podle následujících kroků:

1. Spusťte set -x :

set -x

2. Pomocí svého oblíbeného textového editoru (my používáme editor vi) vytvořte skript. Vytvořili jsme jednoduchou smyčku, která nám umožňuje vidět -x efekty možností:

x=10
while [ $x -gt 0 ]; do
         x=$[ $x-1 ]
         echo $x
         sleep 2
done

3. Ujistěte se, že jste skript chmodovali, aby byl spustitelný. Tento krok je vždy povinný před spuštěním skriptu . Syntaxe je:

chmod +x [script-name.sh]

4. Spusťte skript. Syntaxe je:

./[script-name.sh]

Výstup vytiskne jeden řádek po druhém, spustí jej, zobrazí výsledek, pokud nějaký existuje, a přesune se na další řádek.

Dalším způsobem, jak povolit ladění, je umístit -x příznak na řádku shebang skriptu:

#!/bin/bash -x

Export skriptu

Automaticky exportujte jakoukoli proměnnou nebo funkci vytvořenou pomocí -a volba. Export proměnných nebo funkcí umožňuje použití jiných podsložek a skriptů.

Povolte export skriptu spuštěním následujícího příkazu:

set -a

Následující příklad ukazuje, jak funguje export skriptů. Postupujte podle následujících kroků:

1. Vytvořte nový skript pomocí zvoleného editoru. Například:

one=1
two=2
three=3
four=4
/bin/bash

/bin/bash argument označuje začátek nového shellu.

2. Zkontrolujte, zda skript funguje v novém prostředí:

echo $one $two $three $four

Výstup dokazuje, že funkce, kterou jsme vytvořili, byla exportována a funguje i při spuštění nového shellu.

Ukončit, když příkaz selže

Použijte -e možnost dát pokyn skriptu k ukončení, pokud během provádění narazí na chybu. Zastavení částečně funkčního skriptu pomáhá předcházet problémům nebo nesprávným výsledkům.

Chcete-li tuto možnost otestovat, vytvořte skript s následujícím obsahem:

#!/bin/bash
set -e
cat nonexistingfile
echo "The end"

Ve výše uvedeném příkladu skript narazí na chybu, když se pokouší zobrazit obsah nonexistingfile protože tento soubor neexistuje, což způsobí jeho ukončení v tomto bodě. Tedy finální echo příkaz není proveden.

Zabránění ztrátě dat

Výchozí nastavení Bash je přepsat existující soubory. Nicméně pomocí -C volba nakonfiguruje Bash tak, aby nepřepisoval existující soubor při přesměrování výstupu pomocí > , >& nebo <> je přesměrován na tento soubor.

Například:

Bash nám nejprve umožňuje přepsat listing.txt soubor. Nicméně po spuštění set -C Bash vypíše zprávu, že nemůže přepsat existující soubor.

Nahlásit neexistující proměnné

Výchozí nastavení v Bash je ignorovat neexistující proměnné a pracovat s existujícími. Pomocí -u volba zabrání Bash v ignorování proměnných, které neexistují, a nahlásí problém.

Například následující skript neobsahuje set -u a Bash toto $var2 ignoruje není definováno.

#!/bin/bash
var1="123"
echo $var1 $var2

Výstup obsahuje pouze $var1 .

Nicméně změna skriptu a přidání set -u příkaz zabrání Bashovi ignorovat problém a nahlásí ho:

#!/bin/bash
set -u
var1="123"
echo $var1 $var2

Nastavte poziční parametry

set příkaz může také přiřadit hodnoty pozičním parametrům. Polohový parametr je proměnná shellu, na jejíž hodnotu se odkazuje pomocí následující syntaxe:

$[N]

[N] hodnota je číslice, která označuje pozici parametru. Například $1 je první poziční parametr, $2 je druhý parametr atd.

Například:

set first second third

Spuštěním výše uvedeného příkazu nastavíme first aby odpovídal $1 poziční parametr, second na $2 a third na $3 . Zkontrolujte to pomocí příkazu echo:

echo $2

Zrušte nastavení pozičních parametrů spuštěním:

set --

Rozdělit řetězce

Použijte set příkaz k rozdělení řetězců na základě mezer do samostatných proměnných. Například rozdělte řetězce v proměnné s názvem myvar , který říká „Toto je test“ .

myvar="This is a test"

set -- $myvar
echo $1
echo $2
echo $3
echo $4

Tuto možnost použijte k extrahování a odfiltrování informací z výstupu příkazu, podobně jako to dělá příkaz awk.

Nastavit allexport a upozornit příznaky

-o allexport příznak umožňuje automaticky exportovat všechny následně definované proměnné, zatímco -o notify flag instruuje shell, aby okamžitě vytiskl zprávy o dokončení úlohy.

Chcete-li nastavit příznaky, spusťte:

set -o allexport -o notify

V následujícím příkladu vidíme, že vás shell upozorní na dokončení úlohy na pozadí od exportu skriptu:


Linux
  1. Jak používat Linuxový příkaz grep

  2. Jak používat příkaz historie v Linuxu

  3. Jak používat Linux Screen Command

  1. Jak používat Su Command v Linuxu

  2. Jak používat příkaz ldconfig v Linuxu

  3. Jak používat příkaz ipset v Linuxu

  1. Jak používat příkaz Disown v Linuxu

  2. Jak používat příkaz Linux SS

  3. Jak používat příkaz Linux nohup