Académique Documents
Professionnel Documents
Culture Documents
RETOUR
Infos systme
Quel est le systme install?
Quelle est la distribution installe?
Quels sont les utilisateurs en cours du
systme?
Ouvrir un nouveau terminal en utilisant un
autre compte.
Fermer ce terminal.
La commande man
Tester la commande man pour obtenir de
l'aide sur man.
Quelles sont les commandes susceptibles
d'tre documentes dans man?
Contenu de rpertoires et de fichiers ascii
(texte)
Lister le contenu du rpertoire /etc.
Lister de manire dtaille le contenu du
rpertoire /etc.
Les fichiers nomms "passwd", "shadow",
"group" et "gpasswd" sont-ils prsents dans
/etc?
Lister le contenu du rpertoire /dev.
repertoire "Data".
Sous votre rpertoire de dpart, crez un lien
matriel "Mon_lien" quivalent
"Mon_fichier_2".
Lister les deux fichiers "Mon_lien" et
"Mon_fichier_2" en affichant leur numro
d'inode.
Que remarquez vous?
Supprimer "Mon_lien".
"Mon_fichier_2" a-t-il disparu?
Sous votre rpertoire de dpart, crez un lien
symbolique "Mon_nouveau_lien" sur
"Mon_fichier_2".
Lister les deux fichiers "Mon_nouveau_lien"
et "Mon_fichier_2".
Que remarquez vous?
Supprimer "Mon_fichier_2".
"Mon_nouveau_lien" a-t-il disparu?
Quelle est la taille totale des fichiers
contenus dans votre rpertoire?
Effacer tous les fichiers cres.
Mise en place d'un espace de travail pour 4
utilisateurs
Dfinir le lot de commandes excuter pour crer
4 utilisateurs en suivant les rgles suivantes:
Cration de 2 groupes.
Quel est le
systme
install?
uname -a
Quelle est la
distribution
installe?
cat /etc/issue
exit
16:25
La commande man
man man
Tester la
man is the systems manual pager. Each
commande man argument given to man is normally the
program, utility or function.
pour obtenir de
l'aide sur man.
Quelles sont
les commandes
susceptibles
d'tre
documentes
dans man?
page
name of a
ls /etc
ls -l /etc
Lister de manire
ls -la /etc
dtaille le contenu du
Tous ces fichiers sont bien prsents.
rpertoire /etc.
Les fichiers nomms
"passwd", "shadow",
"group" et "gpasswd"
sont-ils prsents
dans /etc?
Lister le contenu du ls /dev
rpertoire /dev.
Lister le contenu du
fichier /etc/passwd.
cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
...
user,,,:/var/run/hplip:/bin/false
nico:x:1000:1000:Nico,,,:/home/nico:/bin/b
ash
backup:x:34:34:backup:/var/backups:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
cupsys:x:100:106::/home/cupsys:/bin/false
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
dhcp:x:101:101::/nonexistent:/bin/false
games:x:5:60:games:/usr/games:/bin/sh
...
root:x:0:0:root:/root:/bin/bash
sync:x:4:65534:sync:/bin:/bin/sync
syslog:x:102:102::/home/syslog:/bin/false
sys:x:3:3:sys:/dev:/bin/sh
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
...
find: /tmp/kde-root: Permission non
accorde
/usr/include/bits/stdio.h
/usr/include/stdio.h
od -x monfichier.dos
A l'aide de la
0000000 6e75 0a0d 6564 7875 0a0d 7274 696f
commande "od",
0d73
0000020 710a 6175 7274 0d65 630a 6e69 0d71
illustrer la diffrence 730a
0000040 7869 0a0d 6573 7470 0a0d 0a0d 0a0d
majeure existant
0a0d
0000060 0a0d 0a0d
entre les types de
0000064
fichier ascii (texte) od -c monfichier.dos
0000000 u n \r \n d e u x \r \n t r o i
DOS, UNIX et
s \r
Macintosh. Utiliser le 0000020 \n q u a t r e \r \n c i n q \r \n
s
fichier ascii
0000040 i x \r \n s e p t \r \n \r \n
\n \r \n
Dosmontexte.dos four \r
0000060 \r \n \r \n
ni en lien et crer les 0000064
od -x monfichier.unix
fichiers ascii Unix
0000000 6e75 640a 7565 0a78 7274 696f 0a73
7571
"montexte.unix" et
ascii Macintosh
6573
"montexte.mac" avec 0000040 7470 0a0a 0a0a 0a0a
0000050
le mme contenu au
od -c monfichier.unix
0000000 u n \n d e u x \n t r o i s \n q u
moyen d'un diteur
0000020 a t r e \n c i n q \n s i x \n s e
0000040 p t \n \n \n \n \n \n
texte (Kate par
0000050
exemple) puis
od -x monfichier.mac
0000000 6e75 640d 7565 0d78 7274 696f 0d73
comparer (version
7571
Macintosh si l'diteur 0000020 7461 6572 630d 6e69 0d71 6973 0d78
6573
le permet).
0000040 7470 0d0d 0d0d 0d0d
0000050
Quelle est la
od -c monfichier.unix
diffrence?
0000000 u n \r d e u x \r t r o i s \r q u
0000020 7461 6572 630a 6e69 0a71 6973 0a78
0000020 a t r e \r c i n q \r s i x \r s e
0000040 p t \r \r \r \r \r \r
0000050
Utiliser les
commandes de
monfichier.unix monfichier.dos
sont diffrents: octet 3, ligne 1
comparaison de
fichiers de Linux pour diff monfichier.unix monfichier.dos
1,12c1,12
tester le contenu d'un < un
mme fichier texte en << deux
trois
<
quatre
version Unix et Dos.
< cinq
< six
< sept
<
<
<
<
<
--> un
> deux
> trois
> quatre
> cinq
> six
> sept
>
>
>
>
>
diff monfichier.unix
monfichier.mac
1,12c1
< un
< deux
< trois
< quatre
< cinq
< six
< sept
<
<
<
<
<
--septre
\ Pas de fin de ligne
fichier.
la fin du
pwd
aaaaaaaaaaaaaaaaaa
ls
Mon_fichier
ls -la
total 12
drwxr-xr-x 2 nico nico 4096 2007-02-01
11:28 .
drwxr-xr-x 22 nico nico 4096 2007-02-01
11:25 ..
-rw-r--r-- 1 nico nico
19 2007-02-01
11:28 Mon_fichier
Lister les
catalogues /bin et
/dev.
ls /bin
ls /dev
"Source".
total 8
drwxr-xr-x 2 nico nico 4096 2007-02-01
11:29 .
drwxr-xr-x 4 nico nico 4096 2007-02-01
11:29 ..
cd ..
Revenir sous le
rmdir Source
rpertoire de dpart
et dtruire "Source".
Crer un deuxime touch Mon_fichier_2
fichier
Mon_fichier_2.
ls -la
total 16
drwxr-xr-x 3 nico nico 4096 2007-02-01
11:31 .
drwxr-xr-x 22 nico nico 4096 2007-02-01
11:31 ..
drwxr-xr-x 2 nico nico 4096 2007-02-01
11:29 Data
-rw-r--r-- 1 nico nico
19 2007-02-01
11:28 Mon_fichier
-rw-r--r-- 1 nico nico
0 2007-02-01
11:31 Mon_fichier_2
ls -la
total 20
drwxr-xr-x 4 nico nico
11:39 .
drwxr-xr-x 22 nico nico
11:31 ..
drwxr-xr-x 2 nico nico
11:29 Data
-rw-r--r-- 1 nico nico
11:28 Mon_fichier
-rw-r--r-- 1 nico nico
11:31 Mon_fichier_2
drwxr-xr-x 2 nico nico
11:39 Old
4096 2007-02-01
4096 2007-02-01
4096 2007-02-01
19 2007-02-01
0 2007-02-01
4096 2007-02-01
du rpertoire `Data'
du rpertoire `Old'
19 2007-02-01
11:41 Mon_fichier
-rw-r--r-- 1 nico nico
11:41 Mon_fichier_2
0 2007-02-01
ls -la
total 20
drwxr-xr-x 4 nico nico
11:39 .
drwxr-xr-x 22 nico nico
11:31 ..
drwxr-xr-x 2 nico nico
11:41 Data
-rw-r--r-- 1 nico nico
11:28 Mon_fichier
-rw-r--r-- 1 nico nico
11:31 Mon_fichier_2
drwxr-xr-x 2 nico nico
11:39 Old
4096 2007-02-01
4096 2007-02-01
4096 2007-02-01
19 2007-02-01
0 2007-02-01
4096 2007-02-01
ls -lai
Lister les deux
total 20
fichiers "Mon_lien" 16457 drwxr-xr-x 4 nico
02-01 11:54 .
et "Mon_fichier_2" 868403 drwxr-xr-x 22 nico
02-01 11:43 ..
en affichant leur
16619 drwxr-xr-x 2 nico
02-01 11:41 Data
numro dinode.
16624 -rw-r--r-- 1 nico
Que remarquez vous?02-01 11:28 Mon_fichier
2007-02-01
2007-02-01
2007-02-01
2007-02-01
19 2007-
Supprimer
"Mon_lien".
22 nico
02-01 11:43 ..
16619 drwxr-xr-x 2 nico
02-01 11:41 Data
16624 -rw-r--r-- 1 nico
02-01 11:28 Mon_fichier
16597 -rw-r--r-- 1 nico
02-01 11:31 Mon_fichier_2
16632 drwxr-xr-x 2 nico
02-01 11:39 Old
Sous votre
rpertoire de
dpart, crez un lien
symbolique
"Mon_nouveau_lien"
sur "Mon_fichier_2".
19 2007-
nico
0 2007-
ls -la
Lister les deux
total 20
fichiers
drwxr-xr-x
11:57 .
"Mon_nouveau_lien" drwxr-xr-x
..
et "Mon_fichier_2". 11:43
drwxr-xr-x
Que remarquez vous?11:41 Data
Supprimer
"Mon_fichier_2".
"Mon_nouveau_lien"
a-t-il disparu?
2. Modification du profile
Exemple de script possible, dans /etc/profile pour viter de
le recopier pour chaque utilisateur:
echo "Bienvenue"
echo "entrez U pour travailler dans votre
repertoire"
echo "entrez G pour travailler dans le repertoire
de votre groupe"
read CHX
while [ $CHX != 'U' ] && [ $CHX != 'G' ]
do
echo "Entrez U ou G ..."
read CHX
done
if [ $CHX == "G" ]
then
case $USER in
"u1") export HOME=/home/group1;;
"u2") export HOME=/home/group1;;
"u3") export HOME=/home/group2;;
"u4") export HOME=/home/group2;;
esac
cd $HOME
fi
3. Choix de la valeur du umask
Les valeurs conseilles sont:
TP n2
RETOUR
Ecriture de shells
Travailler dans un rpertoire nomm "TP2" cr la
racine de votre HOME.
Exercice 1
Crer un script shell nomm "change" qui affichera
la date de dernire modification d'un fichier puis la
modifiera avec l'heure actuelle et enfin raffichera
la date de dernire modification du fichier.
Cette procdure acceptera 1 paramtre qui sera le
nom du fichier.
Lorsque vous excuterez "change mon_fic", le 8
octobre 15 heures 12 vous obtiendrez le rsultat:
avant
2001
aprs
15:12
Exercice 2
Crer un script shell nomm "nombreJours" qui
affichera le nombre de jours du mois courant.
"nombreJours" affichera pour fvrier 2007 le
message "28 jours en fvrier 2007".
Exercice 3
Exercice 4
Crer un script shell qui ralise les oprations
suivantes:
Cration sous votre rpertoire "TP2" d'un
sous rpertoire nomm "annemoisjour"
(20070202 pour le 2 fvrier 2007).
Copie des fichiers de "Exo3" sous ce
rpertoire puis effacement de ces mmes
fichiers de "Exo3".
Cration de deux fichiers sous le rpertoire
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 concatn
Exercice 5
Crer un script permettant d'afficher la liste
des fichiers du rpertoire /etc accessibles en
lecture.
Crer un script permettant d'afficher la liste
des fichiers du rpertoire /etc accessibles en
criture.
Exercice 6
Crer un script nomm "table" permettant
d'afficher des tables de multiplication.
"table 5 10" aura pour rsultat l'affichage:
0 x 5 = 0
1 x 5 = 5
2 x 5 = 10
3 x 5 = 15
4 x 5 = 20
5 x 5 = 25
6 x 5 = 30
7 x 5 = 35
8 x 5 = 40
9 x 5 = 45
10 x 5 = 50
RETOUR
Exercice 1
Crer un script shell nomm "change" qui affichera
la date de dernire modification d'un fichier puis la
modifiera avec l'heure actuelle et enfin raffichera
la date de dernire modification du fichier.
Cette procdure acceptera 1 paramtre qui sera le
nom du fichier.
Lorsque vous excuterez "change mon_fic", le 8
octobre 15 heures 12 vous obtiendrez le rsultat:
avant
2001
aprs
15:12
Exercice 2
Crer un script shell nomm "nombreJours" qui
affichera le nombre de jours du mois courant.
"nombreJours" affichera pour fvrier 2007 le
message "28 jours en fvrier 2007".
MOIS=$(date +"%m") case $MOIS in 01)
NOM="janvier";; 02)
NOM="fevrier";; 03)
NOM="mars";; 04) NOM="avril";; 05)
NOM="mai";; 06) NOM="juin";;
07) NOM="juillet";; 08)
NOM="aout";; 09) NOM="septembre";; 10)
NOM="octobre";; 11)
NOM="novembre";; 12)
NOM="decembre";; esac ANNEE=$(date +"%Y")
case $MOIS in 01|03|05|07|08|10|12)
echo "31 jours en "$NOM"
"$ANNEE;; 04|06|09|11) echo "30 jours en
"$NOM" "$ANNEE;;
02) BISSEXTILITE=$(expr
$ANNEE % 4) if [ $BISSEXTILITE != 0 ]
then echo "28 jours en "$NOM" "$ANNEE
else BISSEXTILITE=$(expr
$ANNEE % 100) 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
nombreJours.bash
Exercice 3
Crer un script shell ralisant la cration d'un
rpertoire "Exo3" contenant 10 fichiers nomms
"Un" "Dix". Chaque fichier contient une seule
ligne:
"Un" contient "Premire ligne"
"Deux" contient "Deuxime ligne"
...
"Dix" contient "Dixime ligne"
i.
Exercice 4
Exercice 5
Crer un script permettant d'afficher la liste
des fichiers du rpertoire /etc accessibles en
lecture.
Crer un script permettant d'afficher la liste
des fichiers du rpertoire /etc accessibles en
criture.
for FILE in /etc/* do if test -r $FILE
then echo $FILE fi done
script5a.bash
for FILE in /etc/* do if test -w $FILE
then echo $FILE fi done
script5b.bash
Exercice 6
Crer un script nomm "table" permettant
d'afficher des tables de multiplication.
"table 5 10" aura pour rsultat l'affichage:
0 x 5 = 0
1 x 5 = 5
2 x 5 = 10
3 x 5 = 15
4 x 5 = 20
5 x 5 = 25
6 x 5 = 30
7 x 5 = 35
8 x 5 = 40
9 x 5 = 45
10 x 5 = 50
RETOUR
TP n3
Les utilisateurs
Votre compte d'utilisateur est-il dfini dans le fichier
/etc/passwd? Pourquoi? Il y a-t-il d'autres
alternatives?
Quel est le rpertoire de connexion de lutilisateur
root?
Quel est le shell de lutilisateur root?
Quelle est la particularit de lutilisateur nobody? Et
de lutilisateur shutdown?
Quels sont les utilisateurs dfinis dans /etc/passwd
qui font partie du mme groupe que ladministrateur?
Redirections, mta-caractres
Le rpertoire /usr/include contient les fichiers dentte
standards en langage C (stdlib.h, ...).
Crer un rpertoire nomm inc dans votre rpertoire
de connexion (HOME).
En utilisant une seule commande, y copier les fichiers
du rpertoire /usr/include dont le nom commence par
std.
Afficher la liste des fichiers de /usr/include dont le
nom commence par a, b ou c.
Modifier la commande de la question prcdente pour
qu'au lieu dafficher le rsultat, celui-ci soit plac
dans un fichier nomm "Abc.list" de votre rpertoire
de connexion.
Afficher le contenu de ce fichier en utilisant la
commande cat.
rpertoire.
o Afficher le numro de tlphone (sans le nom)
du premier Dupond dans lordre alphabtique
(ordre bas sur les prnoms).
RETOUR
Droits daccs
Essayer de supprimer ou de modifier le fichier
/etc/passwd. Que se passe-t-il?
Expliquer la situation laide de la commande
ls -l.
Il est impossible de supprimer le fichier
/etc/passwd. Seul le propritaire (root) du fichier
peut le supprimer.
ls -l /etc/passwd
-rw-r--r-- 1 root root 1705 2004-12-09 09:55
/etc/passwd
ou
find
Afficher la liste des fichiers h situs sous le
rpertoire /usr/include.
Contrles d'accs
Un administrateur dsire sassurer chaque matin
que tous les fichiers placs sous $REPERTOIRE
sont lisiblespar tout le monde, mais non modifiables
except par leur propritaire.
Quel doit tre le mode de ces fichiers et
rpertoires?
fichiers: rwxr-xr-x
rpertoires: rwxr-xr-x
crire un script permettant dafficher la liste
des fichiers d'un rpertoire et le type de
chacun (utilisation de file et sort ) tri par
type.
#! /bin/bash
for i in `ls`
do
file $i >>text
done
more text| sort -t: +1
rm text