Maison  >  Article  >  tutoriels informatiques  >  Manuel de commande d'exécution Linux

Manuel de commande d'exécution Linux

王林
王林avant
2024-02-18 16:42:13681parcourir

Linux exec命令手册

Description de la fonction

La commande exec est utilisée sous Linux pour appeler et exécuter des commandes spécifiées. La commande exec est généralement utilisée dans les scripts shell pour exécuter d'autres commandes. Lors de l'utilisation de la commande exec dans le terminal actuel, la commande spécifiée remplacera le processus actuel après l'exécution, au lieu de créer un nouveau processus enfant.

Syntaxe des commandes

exec [选项]

Option signifiant

Options Signification
-c Utilisez un environnement vide pour exécuter
-a Le shell transmettra le nom sans argument à la commande exécutée
-l Placez un tiret au début du shell pour passer des paramètres à la commande

Exemples de référence

Exemple 1

// 首先使用echo命令将文本“www.linuxyz.cn”进行输出:
[root@bunian ~]# echo www.bunian.cn
www.bunian.cn

// 然后再使用exec命令调用echo命令输出同样的信息,并且对输出的信息进行对比,输入指令如下所示:
[root@bunian ~]# exec -c echo www.bunian.cn
www.bunian.cn

// 通过比较两者执行后的结果来看,所实现的功能是相同的,即使用exec命令调用echo命令成功。

Exemple 2

// 查找bunian.txt 并备份为bunian.txt.bak
[root@bunian ~]# find /test -name "bunian.txt" -exec cp {} {}.bak \;

Expansion des connaissances

1. L'exécutable de l'appel système remplace le processus d'origine par un nouveau processus, mais le PID du processus reste inchangé. Par conséquent, on peut considérer que l’appel système exec ne crée pas de nouveau processus, mais remplace uniquement le contenu du contexte de processus d’origine. Le segment de code, le segment de données et le segment de pile du processus d'origine sont remplacés par le nouveau processus.

Une démarche comprend principalement les aspects suivants :

  • Un programme exécutable
  • Toutes les données associées au processus (y compris les variables, la mémoire, les tampons)
  • Contexte du programme (compteur de programme PC, enregistre l'emplacement d'exécution du programme)
  • 2. exec est un cluster de fonctions, composé de 6 fonctions, commençant par excl et execv.

    Pour exécuter l'appel système exec, c'est généralement le cas. Utilisez la fonction fork() pour créer un nouveau processus, puis laissez le processus exécuter l'appel exec. Nous savons qu'après que fork() ait créé un nouveau processus, le processus parent partage le segment de code avec le processus enfant, mais l'espace de données est séparé, mais le processus parent copiera le contenu de son propre espace de données dans le processus enfant, et le contexte sera également copié dans le processus enfant. Afin d'améliorer l'efficacité, une stratégie de copie sur écriture est adoptée, c'est-à-dire que lorsqu'un processus enfant est créé, l'espace d'adressage du processus parent n'est pas copié. Les processus parent et enfant ont un espace d'adressage commun, et uniquement. lorsque le processus enfant a besoin d'écrire des données (par exemple, pour écrire des données dans le tampon), à ce moment-là, l'espace d'adressage sera copié et le tampon sera copié dans le processus enfant. En conséquence, les processus parent et enfant disposent d’espaces d’adressage indépendants. Pour exec après fork(), cette stratégie peut grandement améliorer l'efficacité si vous copiez au début, puis après exec, les données du processus enfant seront abandonnées et remplacées par un nouveau processus.

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

    Déclaration:
    Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer