210 likes | 358 Views
Utilisation avancée de linux. Rappel des commandes et scripts shell. Quelques commandes linux. Touch , cp , mv , rm Mkdir , rmdir , rm Cat, ls , tail , head , nano, vi, wc Su, passwd , who , whoami Whatis , whereis , find Adduser , deluser , chmod, chown.
E N D
Utilisation avancée de linux Rappel des commandes et scripts shell
Quelques commandes linux • Touch, cp, mv, rm • Mkdir, rmdir, rm • Cat, ls, tail, head, nano, vi, wc • Su, passwd, who, whoami • Whatis, whereis, find • Adduser, deluser, chmod, chown
Quelques fichiers et répertoires de configuration • Le répertoire /var • Le répertoire /etc • Le répertoire skel • Le répertoire initX.d • Le fichier passwd • Le répertoire /home • Le fichier .bashrc
Commandes et tubes • Cat, Grep, cut • Le fichier toto Tutu:1:2:Bonjour Turllttuti:3:9:Hello • Cat toto|grep tutu|cut –d’:’ –f2 Tutu:1:2:Bonjour Turllttuti:3:9:Hello
Commandes et tubes • Cat, Grep, cut, tr –s • Le fichier toto Tutu 1 2 Bonjour Turllttuti 3 9 Hello • Cat toto|greptutu|tr –s ‘ ‘ ‘:‘|cut –d’:’ –f4 Tutu 1 2 Bonjour Turllttuti 3 9 Hello • Tutu:1:2:Bonjour
Le Script Shell • Permet de lancer une succession de commandes • Peut être lancé au démarrage de la machine ou par une tâche planifier • Permet d’automatiser des procédures en fonction de l’utilisateur qui lance le script
Faire un script shell • Commencez par le type de shell • #!/bin/bash • Puis expliquer par un commentaire ce que fait le script • # --- Script renvoyant le login d’un utilisateur en fonction de son UID • Ecrire le script en ajoutant un maximum de commentaires
Faire un script shell • Pensez à ajouter le droit d'exécution ! • Ne jamais oublier de deboguer le script • /bin/bash –x monscript • Bien vérifier tous les cas de bogues possible par un autre collègue
Exemples de script #!/bin/bash #-- script permettant de connaitre la liste des fichiers m’appartenant dans le repertoire #Nb : variable qui recupere le nombre de fichiers Nb=$(ls –l|grep –e "^-.{9} [0-9]+ $USER "|wc –l) Echo "$USER a $Nb fichiers dans le repertoire $PWD : " ls –l|grep –e "^-.{9} [0-9]+ $USER" Exit 1
Les tests en Shell • La commande IF permet de tester une variable • Elle a deux réponse possible : Oui ou Non • Exemple : Mon test est défini par #!/bin/bash i=3 If [ $i -lt 3 ] thenecho " i < 3 " elseecho " i >= 3 " fi ! PENSER AUX ESPACES
Les tests en Shell • Test sur variable numérique < lt = eq > gt != ne >= ge <= le • Test sur chaine de caractere -z vide = identique != différent
Les tests en Shell • Test sur fichier -e existe -r/w/x a le droit r/w/x -d est repertoire -s non vide -f est un fichier if [ -f /etc/passwd ] EXEMPLE then cat /etc/passwd else if [ -d /etc/passwd ] thenls /etc/passwd elseecho "Erreur : type inconnu" fi fi
Les boucles • Une boucle permet d'exécuter une action sur un ensemble de données • Il existe plusieurs types de boucles , en fonction du type d'éléments • For -> début et fin connu • While -> fin défini par un test • Until -> fin défini par la fin d'une condition
Exemples de boucle FOR • #!/bin/bash #compte les rep. dans / j=1 for i in $(ls /) do echo "$j" "$i" ((j++)) done Echo "$j objets" #!/bin/bash For i in 1 2 3 Do echo $i done • #!/bin/bash For i in * Do echo $i done
Exemples de boucle WHILE • #!/bin/bash j=1 cat toto|whileread ligne do ((j++)) done echo "$j ligne dans toto" #!/bin/bash i=0 While [ $i –lt 3 ] Do echo $i ((i++)) done #!/bin/bash For i in 0 1 2 Do echo $i done
Les tests en Shell ( suite ) • Permettre de tester plusieurs conditions sur une variable • Pour chaque condition , on exécute un programme différent • Exemple de cas : • Le programme permet de : • Sauvegarder ses données • Récupérer ses données • Supprimer une sauvegarde • Lister ses données • Quitter sa session
Les tests en Shell ( suite ) • Le test CASE • En fonction de la valeur, on execute tel programme
#!/bin/bash Echo "entrez un chiffre entre 0 et 99" read test case $test in [0-9])echo "vous avez écrit un chiffre" ;; [1-9][0-9]) echo "vous avez écrit un nombre" ;; *)echo "vous n'avez fait une erreur" esac
Les paramètres des scripts • Un script peut prendre des paramètres d'entrée • On récupère ses paramètres avec $1, $2 etc … Exemple: appel du programme test.sh user@toto:~$./test.sh rep1 toto1 cat $# : nombre de paramètres : ici 3 $0 $1 $2 $3
A quoi servent les redirections ? • A éviter d'avoir des messages lors de l'exécution du script • A créer un fichier de log au fur et à mesure des informations • A sauvegarder le résultat d'une commande et d'une succession de tubes
Les redirections 1 Sortie standard TERMINAL Entrée standard 0 Sortie d'erreur 2 • Utilisation des redirections : • ls –l > toto.txt == ls –l 1>toto.txt • Cat /etc/passwd| grep user 2 > error.log