UE Libre Scrips Unix: extraits/adaptation
de l'examen S1 2005-2006
Exercice 1
- donnez une ligne de commande permettant de connaître le
nombre de ligne du fichier /etc/passwd
- donnez une ligne de commande permettant d'afficher les lignes 5
à 12 du fichier /etc/passwd
- le fichier /etc/passwd est constitué de champs
séparés par le caractère ":". Le dernier champ (a
priori, le 7e champ, cf "man 5 passwd" pour plus d'informations)
contient le shell de l'utilisateur. Donnez une commande permettant de
connaitre le nombre de shells différents utilisés par ls
utilisateurs présents dans /etc/passwd. Un même shell
utilisé par plusieurs utilisateurs ne doit être
compté qu'une seule fois.
- qu'affiche la commande : date '+%Y'
- donnez une commande permettant d'obtenir la date sous la forme
2006-0123 (01: le mois; 23: le jour dans le mois; 2006: l'année)
- affichez la liste des tailles
par ordre croissant des fichiers (dossiers inclus) de /etc/ et de ses
sous-dossiers. Vous ferez en sorte que l'affichage ne soit pas
perturbé par l'affichage d'éventuels message d'erreurs
des commandes utilisées (par exemple en cas d'interdiction
d'accès à certains fichiers).
Exercice 2
- ex2-0: écrire un script tailhead.sh ayant 3 arguments: n1,
n2 et nom qui affiche les lignes du fichier nom dont les numéros
de lignes vont de n1 à n2.
- ex2-1: écrire un script ex2-1.sh qui affiche tous les
fichiers du dossier courant dont le nom
contient une chaîne
donnée. Exemple:
petit@asr270-04:/usr/bin$ /tmp/ex2-1.sh zip
bunzip2
bzip2
bzip2recover
funzip
mzip
unzip
unzipsfx
zip
zipcloak
zipgrep
zipinfo
zipnote
zipsplit
- ex2-2 : écrire un script ex2-2.sh qui affiche tous les
fichiers du dossier courant dont le nom commence par une chaîne
donnée. Le script indiquera le nombre de fichier trouvés
et le nombre total de fichiers (cf exemple ex 2-3 ci-dessous)..
petit@asr270-04:/usr/bin$ /tmp/ex2-2.sh zip
zip
zipcloak
zipgrep
zipinfo
zipnote
zipsplit
6 fichiers trouvés pour un total de 1823 fichiers
- ex2-4: écrire un script nommé ex2-4.sh qui renomme
les fichiers *.log du dossier courant en ajoutant la date courante sous
la forme AAAA-mmjj. Exemple: kern.log.2006-0123
- ex2-5: idem avec ex2-5.sh mais on souhaite garder l'extension
à l afin du nom. Exemple: kern.2006-0123.log (conseil: regarder
basename/dirname)
- ex2-6: écrire un script qui réalise le même
travail mais qui prenne le dossier auquel il doit s'appliquer comme
argument.