Académique Documents
Professionnel Documents
Culture Documents
Tous Les Serveurs Linux + Script (Resume)
Tous Les Serveurs Linux + Script (Resume)
COM
WWW.COURSNET.COM 1
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
WWW.COURSNET.COM 2
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
I. Configuration DNS
1. Fichier de Configuration DNS PRIMAIRE :
Options {
listen-on port 53;{127.0.0.1;192.168.1.10 ;192.168.1.20;};
allow-query{127.0.0.1 ;192.168.1/24;}
Zone “1.168.192.in-addr.arpa “ IN {
Type master;
File “ inverse.ma.db”;
Allow-transfer{192.168.1.20;};
Allow-update { none ;} ;
@ NS tri.ista.ma.
tri.ista.ma. IN A 192.168.1.1
gopher IN CNAME mail.mydomain.name.
ftp IN CNAME mail.mydomain.name.
WWW.COURSNET.COM 3
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
@ IN NS tri.ista.ma.
1 IN PTR tri.ista.ma.
Zone “1.168.192.in-addr.arpa “ IN
Type slave;
masters{192.168.1.1;};
File “ inverse.ma.db”;};
5. Fichier Resolv.conf
search axius-1.fr
nameserver 172.16.11.1
WWW.COURSNET.COM 4
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
9. Configuration de rndc :
BIND contient un utilitaire appelé rndc qui permet d'utiliser des lignes de
commande pour administrer le démon named à partir de l'hôte local ou d'un
hôte distant .
Pour que rndc puisse se connecter à un service named, une déclaration controls
doit être présente dans le fichier /etc/named.conf du serveur BIND. La
déclaration controls montrée dans l'exemple qui suit, permet à rndc de se
connecter à partir d'un hôte local.
controls {
inet 127.0.0.1 allow { localhost; } keys { <nom-clé>; };
WWW.COURSNET.COM 5
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
};
Cette déclaration indique à named de se mettre à l'écoute du port TCP 953 par
défaut de l'adresse inversée et d'autoriser les commandes rndc provenant de
l'hôte local, si la clé adéquate est présentée. Le <nom-clé> fait référence à la
déclaration key, qui se trouve aussi dans le fichier /etc/named.conf. L'exemple
suivant illustre une déclaration key.
key "<nom-clé>" {
algorithm hmac-md5;
secret "<valeur-clé>";
};
Dans ce cas, la <valeur-clé> est une clé HMAC-MD5. Afin de créer des clés
HMAC-MD5, utilisez la commande suivante :
dnssec-keygen -a hmac-md5 -b <longueur-bits> -n HOST <nom-fichier-
clé>
Configuration de /etc/rndc.conf
Option :
WWW.COURSNET.COM 6
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
rndc status
rndc: connection to remote host closed
This may indicate that
* the remote server is using an older version of the
command protocol,
* this host is not authorized to connect,
* the clocks are not synchronized, or
* the key is invalid
pkill named
pkill lwresd
/etc/init.d/bind9 start
WWW.COURSNET.COM 7
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
# on définit également quel DNS doit être mis à jour pour ces
zones :
zon ista.ma. {
primary 127.0.0.1; }
zone 10.168.192.in-addr.arpa. {
primary 127.0.0.1; }
WWW.COURSNET.COM 8
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
/etc/hosts
/etc/networks
/etc/hosts.conf
# /etc/hosts.conf
#
order hosts, bind
multi on
nosproof on alert on/off
trim ista.ma
WWW.COURSNET.COM 9
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
/etc/sysconfig/network
Le Chemin : /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes #Ce périphérique devrait être activé au démarrage
BOOTPROTO=static #none/dhcp/bootp
IPADDR=192.168.1.10
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=192.168.1.100
NETWORK=208.164.186.0
BROADCAST=192.168.1.255
USERCTL=no #Les utilisateurs autres que le super-utilisateur sont
autorisés à contrôler ce périphérique
Gérer la configuration dans le fichier interfaces :
# cat /etc/network/interfaces
WWW.COURSNET.COM 10
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
#POUR DHCP
auto lo eth0
iface lo inet loopback
iface eth0 inet dhcp
#Pour une station WI-FI
auto lo
iface lo inet loopback
# l’interface eth1 correspond ici à la carte wifi
auto eth1
iface eth1 inet dhcp
wireless-essid mon_essid
wireless-mode managed
wireless-key AF32852BE7A39B522BG60C4353
# Reservation
host pc1 {
hardware ethernet 00:20:18:B8:A9:97;
fixed-address 192.168.0.15;
filename "/lts/vmlinuz-2.4.26-ltsp-2";
}
Lancer la service dhcp au démmarage : chkconfig dhcpd on
Nous allons par exemple déclarer une option serveur_ftp ayant pour code
d'option 161 et une autre chemin_ftp avec le code 162.
# Définition des options
option serveur_ftp code 161 = string ;
option chemin_ftp code 162 = string
option serveur_ftp "10.1.1.12" ;
option chemin_ftp "/pub/updates" ;
WWW.COURSNET.COM 11
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
Déclaration de groupe
group {
option routers 192.168.1.254;
option subnet-mask 255.255.255.0;
host apex {
option host-name "apex.example.com";
hardware ethernet 00:A0:78:8E:9E:AA;
fixed-address 192.168.1.4;
}
host raleigh {
option host-name "raleigh.example.com";
hardware ethernet 00:A1:DD:74:C3:F2;
fixed-address 192.168.1.6; }}
Chemin : /etc/sysconfig/dhcrelay
Fichier dhcpd.leases
1. Installation TelNet :
Rpm –i telnet-server-0.17-31.EL4.3.i386.rpm
2. Configuration TelNet:
service telnet
{
disable = no
instances = 60
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
no_access = 10.0.1.0/24
log_on_success += PID HOST EXIT
access_times = 09:45-16:15}
instances : Détermine le nombre maximal de requêtes qu'un service xinetd peut gérer à un
moment donné .
log_on_failure - Configure xinetd de façon à ce qu'il effectue la journalisation si la connexion
échoue ou si elle n'est pas autorisée.
includedir /etc/xinetd.d/ - Inclut des options stipulées dans les fichiers de configuration
spécifiques aux services qui se trouvent dans le répertoire /etc/xinetd.d/ .
WWW.COURSNET.COM 13
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
>ServiceXinetd start
>#user1# telnet -L user2 -a localhost
TCP WRAPPER
L'administrateur réseau va pouvoir utiliser 2 fichiers: /etc/hosts.allow et
/etc/hosts.deny pour filtrer les accès à sa machine.
# Fichier /etc/hosts.deny
# interdit tous les accès ftp à la machine
in.ftpd:ALL
# Fichier /etc/hosts.allow
# autorise les accès ftp venant de cli1
in.ftpd :cli1.archinet.edu
Extrait de /etc/syslog.conf:
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages
Extrait de /var/log/syslog
Feb 3 18:02:52 ns1 ftpd[1051]: FTP session closed
Feb 3 18:03:31 ns1 syslogd 1.3-3: restart.
Feb 3 18:07:34 ns1 in.ftpd[1057]: refused connect from
cli1.archinet.edu
Feb 3 18:07:46 ns1 in.ftpd[1058]: connect from ns1.archinet.edu
Feb 3 18:10:57 ns1 login[1063]: LOGIN ON ttyp3 BY mlx FROM puce
Fichier de configuration :
/etc/smb.conf
Création d’un compte SAMBA !
WWW.COURSNET.COM 14
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
[global]
writable = yes
create mask = 0777
WWW.COURSNET.COM 15
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
WWW.COURSNET.COM 16
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
$ Vi sshd_config
- Pour modifier votre "passphrase" sur une clé privée DSA, utilisez la
commande : ssh-keygen -p -f ~/.ssh/id_dsa
WWW.COURSNET.COM 17
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
5. L’agent SSH
L'utilisation d'un agent, évite d'avoir à retaper la "passphrase" à chaque
fois que l'on sollicite l'utilisation de la clé privée. Un agent stocke en
mémoire les clés privées. Voici comment activer un agent :
-Lancer la commande ssh-agent
-La commande met sur la sortie standard des variables
environnement à déclarer et à exporter. Faites le.
-exportez les clés. Cela consiste à les mettre dans le cache de
l'agent avec la commande ssh-add. La commande
demandera la "passphrase"..
Pour supprimer une clé (ici RSA) de l'agent, utilisez l'option "-d"
$ ssh-add -d ~/.ssh/id_rsa
Nous allons sur ce point générer les certificats et les clés qui vont
permettre aux clients et au serveur de s'authentifier mutuellement
de telle sorte que personne d'autres que vous ne puisse se connecter
au VPN.
Pour ça nous allons se déplacer dans le répertoire easy-rsa
d'openvpn :
$ cd /usr/share/openvpn/easy-rsa/
WWW.COURSNET.COM 18
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
Voilà nous avons les outils nécessaires qui vont nous permettre de
générer les clés et les certificats pour les clients et serveur.
Première chose, nous allons modifier les valeurs des variables
d'environnement afin de ne pas avoir à répéter les renseignements à
fournir à la génération des clés, Pour cela nous allons éditer le fichier «
vars » ci-dessus :
Voici la liste des paramètres par défaut à modifier, ils sont généralement
en bas du fichier sous fedora .
export KEY_COUNTRY="US"
export KEY_PROVINCE="CA"
export KEY_CITY="SanFrancisco"
export KEY_ORG="Fort-Funston"
export KEY_EMAIL="me@myhost.mydomain"
WWW.COURSNET.COM 19
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
WWW.COURSNET.COM 20
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
Voilà vous remarquerez que vous aviez déjà les valeurs mémorisées dans
le fichier « vars ».
Il ne s'agira que de renseigner le nom de la CA (Certification Authority),
pour les valeurs entre crochets appuyé sur Entrée et il prendra la valeur
par défaut.
A présent nous venons de créer l'autorité de certification qui est dans le
répertoire « keys ». Ce certificat est le certificat racine qui va ensuite nous
permettre de créer le certificat serveur et les certificats clients.
Donc la partie publique de ce certificat devrait être déposé au niveau des
clients pour qu'ils puissent s'authentifier au niveau du serveur pour qu'ils
reconnaissent tous les certificats qui seront créés à partir de cette autorité.
Là nous allons créer le certificat pour le serveur (cette machine même que
je dénomme bonal).
Ce certificat nous allons l'appeler « srvrdimi », nous allons le signer nous-
même et ensuite, nous allons le générer comme va le montrer cette
manipulation.
Nous n'allons pas donner un challenge password ni optional .....Pour la
création des certificats.
WWW.COURSNET.COM 21
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
WWW.COURSNET.COM 23
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
A noter également que nous pouvons avoir des clients Linux et c'est
pratiquement la même manipulation.
WWW.COURSNET.COM 24
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
Une fois cette modification faite, vous pourrez monter toutes les
partitions contenues dans fstab en tapant la commande :
# mount -a
WWW.COURSNET.COM 25
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
1. La table filter
À cette table peut être affecté quatre politiques (policy) : DROP, LOG,
ACCEPT et REJECT.
2. Configuration du pare-feu
WWW.COURSNET.COM 26
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
sudo iptables -F
sudo iptables -X
# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere state
RELATED,ESTABLISHED
ACCEPT tcp -- anywhere anywhere tcp
dpt:ssh
Bloquer le trafic
WWW.COURSNET.COM 27
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
# iptables -L -v -n
iptables -L --line-numbers
Chain INPUT (policy DROP)
num target prot opt source destination
1 DROP icmp -- anywhere anywhere
2 ACCEPT tcp -- anywhere anywhere
tcp dpt:ssh
3 ACCEPT tcp -- anywhere anywhere
tcp dpt:www
4 ACCEPT tcp -- anywhere anywhere
tcp dpt:webmin
WWW.COURSNET.COM 28
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
sudo -s iptables-save -c
1. installer le paquage :
yum install httpd
2. configuration APPATCH
cd /var/www/html
nano /etc/conf/httpd.conf
3. Démarrage de http :
désactiver le parfeu
WWW.COURSNET.COM 29
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
# cd /etc/vsftpd/vsftpd.conf
annonymous-enable=YES | no (no pour se connecter avec un login et
m.d.p)
local_enable=YES
write_enable=YES
local_umask=022 les droits
ftpd_banner=Bienvenue
# useradd client-1
# passwd client-1
WWW.COURSNET.COM 30
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
access to attrs=userPassword
by self write
by dn="cn=Manager,dc=domain,dc=local" write
by anonymous auth
by * none
access to *
by dn="cn=Manager,dc=domain,dc=local" write
by self write
by * read
modifier :
suffix "dc=domain,dc=local"
rootdn "cn=Manager,dc=domain,dc=local"
rootpw {SSHA}WpQkjz32Ff+AuZF93ggxt2Vt/n+kHtMU
(mot de passe generer au debut avec slappasswd)
# LDAP Defaults
# This file should be world readable but not world writable.
#
BASE dc=network,dc=ma
WWW.COURSNET.COM 31
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
URI ldap://Serv-ldap.network.ma
#SIZELIMIT 12
#TIMELIMIT 15
#DEREF never
6. Tester de la configuration
[root@Serv-ldap ~]# slaptest -u
config file testing succeeded
7. Utilisation de chiffrementTLS
[root@Serv-ldap ~]# slaptest -u
config file testing succeeded
4-Utilisation de chiffrementTLS
[root@Serv-ldap ~]# vi /etc/sysconfig/ldap
WWW.COURSNET.COM 32
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
Cela va créer deux clés requises dans le répertoire / etc / openldap / ssl
/, mais nous devons faire en sorte que l'utilisateur ldap puisse les lire.
[root@Serv-ldap ~]# chown -Rf root:ldap /etc/openldap/ssl
[root@Serv-ldap ~]# chmod -Rf 750 /etc/openldap/ssl
dn: ou=People,dc=network,dc=ma
ou: People
objectClass: top
objectClass: organizationalUnit
dn: ou=Group,dc=network,dc=ma
ou: Group
objectClass: top
objectClass: organizationalUnit
WWW.COURSNET.COM 33
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
# Default base
$DEFAULT_BASE = "dc=network,dc=ma";
WWW.COURSNET.COM 34
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
Appliqué le scripte
[root@Serv-ldap ~]#
/usr/share/migrationtools/migrate_passwd.pl
/etc/openldap/users-list /etc/openldap/people.ldif
Accéder aux deux fichier et assurer vous que les gid sont tous
identiques
Dès qu’on a les fichiers LDIF, nous allons les ajouter dans la
base LDAP :
[root@Serv-ldap ~]$ ldapadd -x -W -D
"cn=Manager,dc=network,dc=ma" -f /etc/openldap/people.ldif
[root@Serv-ldap ~]$ ldapadd -x -W -D
"cn=Manager,dc=network,dc=ma -f /etc/openldap/group.ldif
WWW.COURSNET.COM 35
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
WWW.COURSNET.COM 36
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
# LDAP Defaults
# This file should be world readable but not world writable.
#
BASE dc=network,dc=ma
URI ldap://192.168.2.1 --> ici vous tapez l@ de votre serv
#SIZELIMIT 12
#TIMELIMIT 15
#DEREF never
Les Syntaxe:
Boucle while
# !/bin/bash
While [ -eq | -ne |-gt | - lt ]
do
Break ( pour stoper la boucle )
Done
Case + boucle
While [ true ] ; Do
Echo ‘’ entrer un nbr svp ’’
Read nbr
case $nbr in
Val1) Echo ‘’ test1 ’’break ;;
Val2) Echo ‘’ test2’’ break ;;
WWW.COURSNET.COM 37
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
case $nbr in
Val1) Echo ‘’ test1 ’’ ;;
Val2) Echo ‘’ test2’’ ;;
*) (ni val1 ni val2)
Echo ‘’ test3 ’’
Esac
1. REGLES IMPORTANTES :
Les Arguments :
la commande set: permet d’affecter des valeur à ces parametres
la commande unset : permet la suppression des valeurs contenues dans ces
paramètres.
• Exemple:
set Maroc Espagne France
echo $1 $2 $3
Maroc Espagne France
** Il existe deux autres variables automatiques:
$# :qui est le nombre de paramètres ;
$0 :qui est le nom du programme.
$* L'ensembles des paramètres sous la forme d'un seul argument
$@ L'ensemble des arguments, un argument par paramètre
$? Le code retour de la dernière commande
$$ Le PID su shell qui exécute le script
$! Le PID du dernier processus lancé en arrière-plan
Les Variables :
Les Variables les plus utilies :
WWW.COURSNET.COM 38
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
Exemple :
Commande Echo
echo –e : autoriser l’interprétation des caractères spéciaux telles que:
\n : saut de ligne; équivalent à echo ‐ n
\c : éviter le saut de la ligne
\t : Tabulation
\b : retour arrière
echo ‘$ message’ et echo ‘’ $ message’’
Commande Read
read –p : permetd’afficher un message avant d’entrer un argument
d’une variable.
readonly: Pour empêcher la modification d'une variable;
read –p ‘’Entrer
message’’message � Bonjour à tous !
readonly message
Echo $message � Bonjour à tous !
Chaine de caractères
Longueur d'une chaîne de caractères :
Si l'on veut obtenir la longueur d'une chaîne
de caractères contenue dans une variable, on
utilisera la syntaxe suivante : ${#variable}
WWW.COURSNET.COM 39
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
VAR =‘’abbbc’’
echo ${VAR#a*b} == bbc,
(car le plus petit préfixe correspondant au motif a*b soit ab).
echo ${VAR##a*b} == c
(## utilisera le préfixe le plus long à savoir abbb).
Les suffixes :
Exemple :
VAR=abbbc
echo ${VAR%b*c} =========== abb
echo ${VAR%%b*c} ==========a
Substitution et remplacement :
remplacer une chaîne de
caractères contenues dans des variables :
/
${variable motif/remplacement}
Exemple :
VAR= abab
echo ${VAR/b/d} =========== adab.
OU
echo ${VAR//b/d} =========== adab. ( toutes les occurrences du motif soient
remplacées )
TEST :
Test –r fichier Testez les fichiers qui possèdent le droit de lecture
SCRIPT + CORRECTION :
Script 1
Créer un script shell nommé "change" qui affichera la date de dernière
modification d'un fichier puis la modifiera avec l'heure actuelle et enfin
WWW.COURSNET.COM 40
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
Script 2 :
Créer un script shell nommé "nombreJours" qui affichera le nombre de
jours du mois courant.
WWW.COURSNET.COM 41
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
if [ $BISSEXTILITE != 0 ]
then
echo "29 jours en "$NOM" "*ANNEE
else
BISSEXTILITE=$(expr $ANNEE % 400)
if [ $BISSEXTILITE != 0 ]
then
echo "28 jours en "$NOM" "$ANNEE
else
echo "29 jours en "$NOM" "$ANNEE
fi
fi
fi;;
esac
Script 3 :
Créer un script shell réalisant la création d'un répertoire "Exo3" contenant
10 fichiers nommés "Un" à "Dix". Chaque fichier contient une seule
ligne:
Script 4 :
Créer un script shell qui réalise les opérations suivantes:
Création sous votre répertoire "TP2" d'un sous répertoire nommé
"annéemoisjour" (20070202 pour le 2 février 2007).
WWW.COURSNET.COM 42
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
Copie des fichiers de "Exo3" sous ce répertoire puis effacement de ces mêmes
fichiers de "Exo3".
Création de deux fichiers sous le répertoire d'accueil (HOME) de la personne qui a
lancé le shell:
o un fichier nommé "Gros_fichier.numero_du_shell" dans lequel se trouvera
le contenu concaténé des fichiers traités
o un fichier nommé "Nom_du_script.numero_du_shell" dans lequel se
trouvera le nom des fichiers traités.
REP=$(date +"%Y%m%d")
test -e $REP
if [ $? != 0 ]
then
mkdir $REP
fi
cp Exo3/* $REP
rm Exo3/*
for file in $REP/*
do
cat $file >> ~/Gros_fichier.$$
echo $file >> ~/$0.$$
done
ps | grep "[0-9]"|wc –l
WWW.COURSNET.COM 43
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
la date en français
set ‘date‘
case $1 in
Mon) Jour=Lun;;
Thu) Jour=Mar;;
Wed) Jour=Mer;;
Tue) Jour=Jeu;;
Fri) Jour=Ven;;
Sat) Jour=Sam;;
Sun) Jour=Dim;;
esac
case $2 in
Feb) Mois="Fev ";;
Apr) Mois="Avr ";;
May) Mois="Mai ";;
Jun) Mois="Juin";;
Jul) Mois="Juil";;
Aug) Mois="Aout";;
*) Mois="$2 "
esac
echo "$Jour $3 $Mois $6 $4"
WWW.COURSNET.COM 44
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
WWW.COURSNET.COM 45
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
WWW.COURSNET.COM 46
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
done
else echo il faut 2 catalogues en argument; exit 3;
fi
echo tous les fichiers sont identiques
#!/bin/bash
for fichier in .* *
do
set `ls -idl $fichier`
echo "$fichier $6"
done
WWW.COURSNET.COM 47
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
n=$1
while test $n -ne 2
do
produit=`expr $produit \* $n`
n=`expr $n - 1`
done
echo $produit
fi
WWW.COURSNET.COM 48
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
#!/bin/bash
para=""
option=""
while test "$1" != ""
do
if test "$1" = "-v"
then
option="-v"
else
para="$para $1"
fi
shift
done
set $para
if test "$option" = "-v"
then
while test "$1" != ""
do
echo `ls -ld $1`
shift
done
else
while test "$1" != ""
do
mv $1 ${1}.old
shift
done
fi
Script 20 : Mathématique
Ecrire un script qui sort les valeurs successives de la suite
définie par :
u_n+1 = u_n /2 si u_n est pair,
3 * u_n +1 si u_n est impair.
La valeur de u_0 est donnée en argument, le programme s'arrête
lorsque la valeur à afficher est 1.
#! /bin/bash
u0=$1
un=$u0
while test $un -ne 1
do
echo $un
if test `expr $un % 2` -eq 0
then
un=`expr $un / 2`
else
un=`expr \( $un \* 3 \) + 1`
fi
done
echo $un
WWW.COURSNET.COM 49
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
if test ! -d $POUBELLE
then
mkdir $POUBELLE
fi
case $1 in
-l) echo "$POUBELLE :"
ls $POUBELLE;;
-r) echo "la poubelle se vide..."
rm -r $POUBELLE/*;;
*) mv $@ $POUBELLE;;
esac
#!/bin/bash
WWW.COURSNET.COM 50
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
case $jour in
1) Jour=Lun;;
2) Jour=Mar;;
3) Jour=Mer;;
4) Jour=Jeu;;
5) Jour=Ven;;
6) Jour=Sam;;
7) Jour=Dim;;
Esac
Echo ‘’ entrer un nombre entre 1 et 12 qui indique un jour ‘’
Echo mois
case $mois in
1) Mois="Fev ";;
2) Mois="Avr ";;
3) Mois="Mai ";;
4) Mois="Juin";;
5) Mois="Juil";;
6) Mois="Aout";;
*) Mois="$2 "
esac
echo "$Jour / $Mois "
WWW.COURSNET.COM 51
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
WWW.COURSNET.COM 52
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
La commande netsat –nr ou –r permet aussi d’affiche l’état des tables de routage à
l’instar de la commande route -n .
WWW.COURSNET.COM 53
COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM
Commande CUT
WWW.COURSNET.COM 54