La leçon précédente du cours de base sur les scripts shell Linux a présenté le début, les commentaires, les variables et les variables d'environnement de la grammaire de base. Nous présenterons ici la première partie du processus de commande et de contrôle du shell. peut être utilisé dans les scripts shell, et laissons le processus de contrôle à la leçon suivante.
1.1.5 Commandes Shell et contrôle de processus
Trois types de commandes peuvent être utilisées dans les scripts shell :
1) Commandes Unix :
Bien que n'importe quelle commande unix puisse être utilisée dans les scripts shell, il existe encore Certaines des commandes les plus couramment utilisées. Ces commandes sont généralement utilisées pour les opérations sur les fichiers et le texte.
Syntaxe et fonctions de commande communes
echo "some text" : imprimer le contenu du texte à l'écran
ls : liste de fichiers
wc –l filewc -w filewc -c file : calculer le numéro de fichier lignes Le nombre de mots dans le fichier compte le nombre de caractères dans le fichier
cp sourcefile destfile : copier le fichier
mv oldname newname : renommer le fichier ou déplacer le fichier
rm file : supprimer le fichier
grep 'pattern' file : recherchez des chaînes dans les fichiers, par exemple : grep 'searchstring' file.txt
cut -b colnum file : spécifiez la plage du contenu du fichier à afficher et affichez-le sur la sortie standard périphérique. Par exemple : afficher la 5ème à la 5ème ligne de chaque ligne. 9 caractères coupés -b5-9 file.txt ne doivent pas être confondus avec la commande cat Ce sont deux commandes complètement différentes
cat file.txt : Afficher le. contenu du fichier vers le périphérique de sortie standard (écran)
file somefile : obtenez le type de fichier
read var : invite l'utilisateur à saisir et attribue l'entrée à la variable
sort file.txt : trie les lignes dans le fichier file.txt
uniq : Supprimez les lignes qui apparaissent dans le fichier texte Lignes et colonnes, par exemple : trier file.txt | uniq
expr : effectuer des opérations mathématiquesExemple : ajouter 2 et 3expr 2 " " 3
find : recherche de fichiers, par exemple : recherche basée sur le nom de fichier find . -name filename -print
tee : sortie des données vers le périphérique de sortie standard (écran) et le fichier Par exemple : somecommand tee outfilebasename file : Renvoie le nom du fichier sans chemin. Par exemple : basename /bin/tux renverra tux
dirname file : Return Le chemin du fichier, par exemple : dirname /bin/tux renverra /bin
head file : imprimer les premières lignes du fichier texte
tail file : imprimer les dernières lignes du fichier texte
sed : Sed est un programme de recherche et de remplacement de base. Vous pouvez lire le texte à partir d'une entrée standard (telle qu'un tube de commande) et afficher
les résultats sur la sortie standard (écran). Cette commande utilise des expressions régulières (voir référence) pour rechercher. A ne pas confondre avec les caractères génériques dans le shell. Par exemple : remplacez linuxfocus par LinuxFocus : cat text.file | sed 's/linuxfocus/LinuxFocus/' > newtext.fileawk : awk est utilisé pour extraire les champs des fichiers texte. Par défaut, le séparateur de champ est un espace. Vous pouvez utiliser -F pour spécifier d'autres séparateurs.
cat file.txt | awk -F, '{print $1 "," $3 }' Ici, nous utilisons comme séparateur de champ pour imprimer le premier et le troisième champs en même temps. Si le contenu du fichier est le suivant : Adam Bor, 34 ans, IndeKerry Miller, 22 ans, USA, le résultat de la commande est : Adam Bor, IndeKerry Miller, USA
2) Concept : pipeline, redirection et backtick
Ces ne sont pas des commandes système, mais elles sont vraiment importantes.
Pipe (|) prend la sortie d'une commande comme entrée d'une autre commande.
grep "hello" file.txt | wc -l
Recherchez les lignes contenant "hello" dans file.txt et comptez le nombre de lignes.
Ici, la sortie de la commande grep est utilisée comme entrée de la commande wc. Bien entendu, vous pouvez utiliser plusieurs commandes.
Redirection : affiche les résultats de la commande dans un fichier au lieu de la sortie standard (écran).
> Écrivez dans le fichier et écrasez l'ancien fichier
>> Ajoutez à la fin du fichier et conservez l'ancien contenu du fichier.
Barre oblique inverse
Utilisez la barre oblique inverse pour utiliser la sortie d'une commande comme paramètre de ligne de commande d'une autre commande.
Commande :
find .mtime -1 -type f -print
est utilisée pour rechercher les fichiers modifiés au cours des dernières 24 heures (-mtime –2 signifie les dernières 48 heures). Si vous souhaitez regrouper tous les fichiers trouvés dans un seul package, vous pouvez utiliser le script suivant :
#!/bin/sh
# Les graduations sont des guillemets (`) et non des guillemets normaux ('):
tar -zcvf lastmod.tar.gz `find .mtime -1 -type f -print`
C'est tout pour la deuxième leçon. Nous continuerons à parler du processus de contrôle dans la prochaine leçon sur l'apprentissage de base des scripts shell Linux.