GNU/Linux >> Tutoriels Linux >  >> Linux

Comment utiliser les extensions de shell pour générer des jetons de shell sous Linux

Extensions du shell

Lorsque vous travaillez dans un shell, des ensembles ou des plages d'informations sont souvent répétés. L'expansion du shell permet de générer un grand nombre de jetons de shell à l'aide de syntaxes compactes. L'expansion est effectuée sur la ligne de commande après que la commande a été divisée en jetons. Parmi les nombreuses extensions disponibles, les extensions de nom de chemin, de nom de fichier et d'accolade sont expliquées ci-dessous.

Extension du nom de chemin

L'expansion du nom de chemin simplifie les changements d'emplacement dans la hiérarchie des répertoires. L'extension du nom de chemin comprend :
– Le tilde (~) caractère, qui représente le chemin absolu du répertoire personnel de l'utilisateur actuel
– Le caractère tilde (~) avec un nom d'utilisateur, qui représente le répertoire personnel de l'utilisateur spécifié
– Le tiret ( -) caractère, qui représente le répertoire de travail précédent

Remarque :Le caractère tilde (~) est disponible dans tous les shells à l'exception du shell Bourne.

Considérez les exemples suivants pour chacun des caractères d'extension :
1. Remplacez les répertoires par dir1 en utilisant le caractère tilde (~).

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

2. Modifiez les répertoires vers le répertoire d'accueil de l'utilisateur en utilisant le caractère tilde (~) suivi d'un nom d'utilisateur.

$ cd ~user
$ pwd 
/home/user

3. Basculez entre les répertoires user et tmp à l'aide du caractère d'extension –.

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

Extension du nom de fichier

Les extensions de nom de fichier sont :

  • Le caractère astérisque (*)
  • Le point d'interrogation (?)
  • Les caractères crochet ([])

1. Caractère astérisque (*)

Le caractère d'extension astérisque (*) est également appelé caractère générique et représente zéro ou plusieurs caractères, à l'exception du point (.) de début d'un fichier masqué. Par exemple, répertoriez tous les fichiers et répertoires commençant par la lettre f suivie de zéro ou de plusieurs autres caractères.

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

Un autre exemple consiste à répertorier tous les fichiers et répertoires qui se terminent par le chiffre 3, précédés de zéro caractère ou plus.

$ ls *3
file.3 file3

2. Caractère point d'interrogation (?)

Le caractère point d'interrogation (?) est également appelé caractère générique et représente n'importe quel caractère unique à l'exception du point (.) de début d'un fichier masqué. Par exemple, répertoriez tous les fichiers et répertoires commençant par la chaîne dir et suivis d'un autre caractère.

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

Si aucun fichier ne correspond à une entrée utilisant le caractère point d'interrogation (?), un message d'erreur s'affiche.

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

3. Caractères crochet ([])

Le crochet ([] ) représentent un ensemble ou une plage de caractères pour une position de caractère unique.
– Un ensemble de caractères est un nombre quelconque de caractères spécifiques, par exemple, [acb]. Les caractères d'un ensemble ne doivent pas nécessairement être dans n'importe quel ordre. Par exemple, [abc] est identique à [cab].
– Une plage de caractères est une série de caractères ordonnés.

  • Une plage répertorie le premier caractère suivi d'un trait d'union (-), puis le dernier caractère, par exemple, [a–z] ou [0–9].
  • Lorsque vous spécifiez une plage, organisez les caractères dans l'ordre dans lequel vous souhaitez qu'ils apparaissent dans la sortie.
  • Par exemple, utilisez [A–Z] ou [a–z] pour rechercher respectivement un caractère alphabétique majuscule ou minuscule.

Par exemple, répertoriez tous les fichiers et répertoires commençant par les lettres 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

Par exemple, répertoriez tous les fichiers et répertoires commençant par les lettres f ou p.

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

L'extension Brace

L'expansion des accolades {} est un mécanisme par lequel des chaînes arbitraires peuvent être générées. Les modèles à développer par des accolades prennent la forme d'un préambule facultatif, suivi soit d'une série de chaînes séparées par des virgules, soit d'une expression de séquence entre une paire d'accolades, suivie d'un post-scriptum facultatif. Le préambule "a" est préfixé à chaque chaîne contenue dans les accolades, et le post-scriptum "e" est ensuite ajouté à chaque chaîne résultante, se développant de gauche à droite.

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


Linux
  1. Comment utiliser BusyBox sous Linux

  2. Comment utiliser rsync avancé pour les sauvegardes Linux volumineuses

  3. Comment utiliser systemd-nspawn pour la récupération du système Linux

  4. Comment utiliser la commande Su sous Linux

  5. Comment utiliser FTP sous Linux pour transférer des fichiers

Comment j'utilise Cockpit pour la gestion du serveur Linux de ma maison

Comment vérifier les ports d'écoute sous Linux (ports utilisés)

Comment utiliser la commande Declare dans Linux Bash Shell

Comment installer et utiliser ZSH Shell sous Linux

Comment installer et utiliser Nu Shell sous Linux

Comment utiliser Linux Bash Shell dans Windows 10 ?