GNU/Linux >> Znalost Linux >  >> Linux

Jak používat rozšíření shellu pro generování tokenů shellu pod Linuxem

Rozšíření prostředí

Při práci v shellu se sady nebo rozsahy informací často opakují. Rozšíření shellu pomáhá generovat velké množství tokenů shellu pomocí kompaktní syntaxe. Rozšíření se provádí na příkazovém řádku po rozdělení příkazu na tokeny. Z mnoha dostupných rozšíření je název cesty, název souboru a rozšíření složených závorek vysvětlen výše.

Rozšíření názvu cesty

Rozšíření názvu cesty zjednodušuje změny umístění v hierarchii adresářů. Rozšíření názvu cesty zahrnuje:
tildu (~) znak, který představuje absolutní cestu k domovskému adresáři aktuálního uživatele
– Znak vlnovky (~) s uživatelským jménem, ​​které představuje domovský adresář zadaného uživatele
pomlčka ( -) znak, který představuje předchozí pracovní adresář

Poznámka :Znak vlnovky (~) je dostupný ve všech shellech kromě Bourne shellu.

Zvažte následující příklady pro každý znak rozšíření:
1. Změňte adresáře na dir1 pomocí znaku tilda (~).

$ cd ~/dir1
$ pwd 
/home/user/dir1/

2. Změňte adresáře na domovský adresář uživatele pomocí znaku tilda (~) následovaného uživatelským jménem.

$ cd ~user
$ pwd 
/home/user

3. Přepínejte mezi uživatelským a tmp adresářem pomocí rozšiřujícího znaku –.

$ cd
$ pwd
/home/user
$ cd /tmp
$ pwd
/tmp
$ cd -
/export/home/user1
$ cd -
/tmp

Rozšíření názvu souboru

Rozšíření názvu souboru jsou:

  • Hvězdička (*)
  • Znak otazníku (?)
  • Znaky hranatých závorek ([])

1. Hvězdička (*) Znak

Rozšiřující znak hvězdička (*) se také nazývá zástupný znak a představuje nula nebo více znaků, kromě úvodní tečky (.) skrytého souboru. Například vypište všechny soubory a adresáře, které začínají písmenem f následovaným nulou nebo více dalšími znaky.

$ ls f*
file.1 file.2 file.3 file4

Dalším příkladem je vypsání všech souborů a adresářů, které končí číslem 3, kterému předchází nula nebo více znaků.

$ ls *3
file.3 file3

2. Otazník (?) Znak

Znak otazníku (?) se také nazývá zástupný znak a představuje libovolný jednotlivý znak kromě úvodní tečky (.) skrytého souboru. Například vypište všechny soubory a adresáře, které začínají řetězcem dir a za kterým následuje jeden další znak.

 $ ls dir?
dir1:
coffees fruit trees
dir2:
beans notes recipes

Pokud žádné soubory neodpovídají položce se znakem otazníku (?), zobrazí se chybová zpráva.

$ ls z?
z?: No such file or directory

3. Hranatá závorka ([]) Znaky

Hranatá závorka ([] ) znaky představují sadu nebo rozsah znaků pro jednu pozici znaku.
– Sada znaků je libovolný počet konkrétních znaků, například [acb]. Postavy v sadě nemusí být nutně v libovolném pořadí. Například [abc] je totéž jako [cab].
– Rozsah znaků je řada uspořádaných znaků.

  • Rozsah uvádí první znak následovaný pomlčkou (-) a poté poslední znak, například [a–z] nebo [0–9].
  • Při zadávání rozsahu uspořádejte znaky v pořadí, v jakém se mají objevit ve výstupu.
  • Například použijte [A–Z] nebo [a–z] k vyhledání jakýchkoli velkých nebo malých písmen abecedy.

Například vypište všechny soubory a adresáře, které začínají písmeny a až f.

$ ls [a-f]*
brands    dante_1    file.1    file2    file4 
celery    feathers    file1    file.3   fruit 
dante    feathers_6    file.2    file3     fruit2

Například vypište všechny soubory a adresáře, které začínají písmeny f nebo p.

$ ls [fp]*
perm    file.1    file.2    file.3    file4    fruit2
feathers_6   file1    file2     file3     fruit

Rozšíření závorky

Expanze složená závorka {} je mechanismus, kterým lze generovat libovolné řetězce. Vzory, které mají být rozbaleny složenými závorkami, mají formu volitelné preambule, po níž následuje buď řada řetězců oddělených čárkami, nebo sekvenční výraz mezi párem složených závorek, za kterým následuje volitelný postscript. Preambule „a“ je uvedena před každým řetězcem obsaženým ve složených závorkách a ke každému výslednému řetězci se pak připojí postscriptum „e“ s rozšířením zleva doprava.

$ echo a{d,c,b}e
ade ace abe


Linux
  1. Jak používat pokročilý rsync pro velké zálohy Linuxu

  2. Jak používat systemd-nspawn pro obnovu systému Linux

  3. Jak používat Su Command v Linuxu

  1. Jak používat BusyBox na Linuxu

  2. Jak změnit Shell v Linuxu

  3. Jak používat aliasy shellu v Linuxu

  1. Jak používat FTP pod Linuxem k přenosu souborů

  2. Jak používat příkaz tar pod Linuxem

  3. Jak používat funkce shellu příkazového řádku v Linuxu