Maison  >  Article  >  Opération et maintenance  >  Comment exécuter des fichiers sous Linux

Comment exécuter des fichiers sous Linux

藏色散人
藏色散人original
2019-11-13 10:03:0512390parcourir

Comment exécuter des fichiers sous Linux

Comment exécuter un fichier .sh sous Linux

Comment exécuter un fichier .sh sous Linux

1. Le fichier .sh est un fichier texte Si vous souhaitez l'exécuter, vous devez utiliser chmod a+x xxx.sh pour donner les autorisations exécutables.

Est-ce un script bash

Vous pouvez utiliser touch test.sh # pour créer le fichier test.sh

vi test.sh # Editez le fichier test.sh

Ajouter du contenu

#! /bin/bash
mkdir test

Enregistrez et quittez.

chmod a+x test.sh #Donner des autorisations à l'exécutable test.sh

Par exemple, le fichier test,sh se trouve sous le fichier /home/work

Exécuter

Méthode 1 : Exécutez

dans son propre répertoire. Entrez le fichier cd /home/workwen

et exécutez ./test.sh

.

La commande sera dans le répertoire courant Créez un répertoire "test" sous le répertoire.

Méthode 2 : Courir avec une force absolue

Exécuter /home/work/test.sh

Méthode 3 : Courir seul répertoire

sh test.sh

Suggestion finale : utiliser

Code C

1.man sh

man sh Jetons un coup d'œil à l'introduction de sh~

Recommandé : "Tutoriel Linux"

linux Syntaxe .sh

Introduction :

1 Début

Le programme doit commencer par la ligne suivante (doit être placé sur la première ligne du fichier ):

# !/bin/sh

Le symbole #! est utilisé pour indiquer au système que les paramètres derrière lui sont les programmes utilisés pour exécuter le fichier. Dans cet exemple, nous utilisons /bin/sh pour exécuter le programme.

Une fois l'écriture du script terminée, si vous souhaitez exécuter le script, vous devez également le rendre exécutable.

Pour rendre le script exécutable :

Compilez chmod +x filename afin de pouvoir utiliser ./filename pour exécuter

2 Notes

Faire de la programmation shell Lorsque , une phrase commençant par # représente un commentaire jusqu'à la fin de la ligne. Nous vous recommandons sincèrement d'utiliser des commentaires dans vos programmes.

Si vous utilisez des commentaires, vous pouvez comprendre la fonction et le principe de fonctionnement du script en peu de temps même si vous n'avez pas utilisé le script depuis longtemps.

3 variables

Dans d'autres langages de programmation, vous devez utiliser des variables. En programmation shell, toutes les variables sont composées de chaînes et vous n'avez pas besoin de déclarer de variables. Pour attribuer une valeur à une variable, vous pouvez écrire :

#!/bin/sh

#Attribuer une valeur à une variable :

a="bonjour tout le monde"

# Imprimez maintenant le contenu de la variable a :

echo "A est :"

echo $a

Parfois, les noms de variables sont facilement confondus avec d'autres texte, tel que :

num=2

echo « ceci est le $numnd »

Ceci n'imprime pas « ceci est le 2ème », mais imprime uniquement « c'est le " , car le shell recherchera la valeur de la variable numnd, mais cette variable n'a aucune valeur. Vous pouvez utiliser des accolades pour indiquer au shell que ce que nous voulons imprimer est la variable num :

num=2

echo "this is the ${num}nd"

Ceci affichera : ceci est la 2ème

4 Variable d'environnement

Les variables traitées par le mot-clé export sont appelées variables d'environnement. Nous ne discuterons pas des variables d'environnement car elles ne sont généralement utilisées que dans les scripts de connexion.

5 Commandes Shell et contrôle de processus

Trois types de commandes peuvent être utilisés dans les scripts shell :

1) Commandes Unix :

Bien que dans les scripts shell Vous pouvez utiliser n'importe quelle commande Unix, mais il existe des commandes relativement 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 fichier wc -w file wc -c file : Comptez le nombre de lignes dans le fichier ; comptez le nombre de mots dans le fichier ; comptez le nombre de caractères dans le fichier

cp sourcefile destfile : copiez le fichier

mv oldname newname : répéter Nommez le fichier ou déplacez le fichier

rm file : supprimez le fichier

grep 'pattern' file : recherchez une chaîne dans le fichier telle que : grep 'searchstring' file.txt

cut -b colnum file : Spécifiez la plage du contenu du fichier à afficher et envoyez-le vers le périphérique de sortie standard. Par exemple : affichez les 5e à 9e caractères de chaque ligne coupée -. b5-9 file.txt. Ne le confondez pas avec la commande cat

Ce sont deux commandes complètement différentes

cat file.txt : Sortez le contenu du fichier sur 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 : supprimer le fichier texte Les lignes en double qui apparaissent, telles que : sort file.txt | uniq

expr : effectuer des opérations mathématiques Exemple : ajouter 2 et 3 est expr 2 « + » 3

find : rechercher des fichiers tels que : basé sur la recherche du nom de fichier find .

tee : Sortie des données vers le périphérique de sortie standard (écran) et le fichier Par exemple : somecommand tee outfile

basename file : Renvoie le nom du fichier sans chemin. renverra tux

dirname file : Renvoie le chemin du fichier Par exemple : dirname /bin/tux renverra /bin

head file : Imprime les premières lignes du fichier texte <.>

tail file : Imprimer le fichier texte Les dernières lignes

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

vers 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.file

awk : awk est utilisé pour extraire des champs de 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 les premier et troisième champs en même temps. Si le contenu du fichier est le suivant : Adam Bor, 34 ans, IndiaKerryMiller, 22 ans, USA, le résultat de la commande est : Adam Bor, IndiaKerry Miller, USA

2) Concept : pipeline, redirection et backtick

Ce 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 : Afficher 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

>> Ajouter à la fin du fichier, en conservant 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 des modifications au cours des dernières 24 heures (-mtime -2 signifie les 48 dernières heures). heures) fichiers transmis. Si vous souhaitez regrouper tous les fichiers trouvés dans un package, vous pouvez utiliser le script Linux suivant :

#!/bin/sh

# Les ticks sont des backticks (`) et non des guillemets normaux ( '):

tar -zcvf lastmod.tar.gz `find -mtime -1 -type f -print`

3) Contrôle de processus

1.if

l'expression « if » exécute la partie après puis si la condition est vraie :

if ….; then

….

elif ….; then

….

else

….

fi

Dans la plupart des cas, vous pouvez utiliser des commandes de test pour tester les conditions test. Par exemple, vous pouvez comparer des chaînes, déterminer si un fichier existe et est lisible, etc...

Habituellement "[ ]" est utilisé pour représenter des tests conditionnels. Notez que les espaces ici sont importants. Assurez-vous qu'il y a des espaces entre les crochets.

[ -f "somefile" ] : Détermine s'il s'agit d'un fichier

[ -x "/bin/ls" ] : Détermine si /bin/ls existe et dispose d'autorisations exécutables

[ -n "$var" ] : Déterminer si la variable $var a une valeur

[ "$a" = "$b" ] : Déterminer si $a et $b sont égaux

Exécutez man test pour afficher tous les types qui peuvent être comparés et jugés par des expressions de test.

Exécutez directement le script suivant :

#!/bin/sh

if [ "$SHELL" = "/bin/bash" ]; 🎜 >echo "votre shell de connexion est le bash (bourne encore un shell)"

else

echo "votre shell de connexion n'est pas bash mais $SHELL"

fi

La variable $SHELL contient le nom du shell de connexion, que nous avons comparé avec /bin/bash.

Opérateurs de raccourci

Les amis qui connaissent le langage C peuvent aimer l'expression suivante :

[ -f "/etc/shadow" ] && echo "Cet ordinateur utilise shadow mots de passe »

Ici && est un opérateur de raccourci Si l'expression de gauche est vraie, l'instruction de droite sera exécutée.

Vous pouvez également y penser comme l'opération ET dans les opérations logiques. L'exemple ci-dessus indique que si le fichier /etc/shadow existe, "Cet ordinateur utilise des mots de passe fantômes" sera imprimé. La même opération OU (||) est également disponible dans la programmation shell. Voici un exemple :

#!/bin/sh

mailfolder=/var/spool/mail/james

[ -r "$mailfolder" ]' '{ echo « Impossible de lire $mailfolder » ; exit 1 ; }

echo « $mailfolder contient des messages provenant de : »

grep « ^From » $mailfolder

Le script en premier Déterminez si le dossier de messagerie est lisible. Si lisible, imprimez la ligne « De » dans le fichier. S'il n'est pas lisible, l'opération OR prend effet et le script se termine après l'impression d'un message d'erreur. Il y a un problème ici, c'est-à-dire que nous devons avoir deux commandes :

◆Imprimer le message d'erreur

◆Quitter le programme

Nous utilisons des accolades pour regrouper deux commandes en une seule commande sous la forme d'une fonction anonyme. Les fonctions générales sont mentionnées ci-dessous.

Sans les opérateurs AND et ou, nous pouvons également utiliser des expressions if pour faire n'importe quoi, mais il est beaucoup plus pratique d'utiliser les opérateurs AND ou.

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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn