S2: Rappels sur les outils de base

Transcription

S2: Rappels sur les outils de base
Licence Professionnelle A SRALL
Linux - Installation
Séance no 2 :
Commandes de base et utilisation du shell
1
Commandes de base
Cet exercice a pour objectif de vous faire réviser les commandes les plus courantes, ainsi
que leurs options les plus utilisées. Nous nous basons sur le shell bash, qui est le plus utilisé
dans le monde Linux. Il en existe d’autres, comme tcsh ou zsh, dont la syntaxe diffère plus ou
moins.
Q1. Recopiez une à une les commandes du listing ci-dessous, et vérifiez que vous en comprenez les détails (et éventuellement les causes d’erreurs !), éventuellement en utilisant les
pages de manuel.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
uname -a
id
cd /etc
ls -R
ls | more
ls | less
ls -ir
cd /tmp
ls -l
ls -la
ls -l /usr/bin | less
Commandes
cd /etc/
cat passwd
wc passwd
wc -l passwd
grep root passwd
grep ro passwd
grep ro passwd | wc -l
cd
pwd
cd /tmp
cd ~
pwd
tty
clear
touch yop
ls -l
rm yop
1
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
2
ls -l
touch yop
mv yop yopla
ls -l
chmod u-w .
rm yopla
chmod u+w .
chmod 777 yopla
ls -l
touch yopla
ln -s yopla yop
ls -il
rm yop
ls -l
rm yopla
touch yopla
ln yopla yop
ls -il
rm yop
ls -l
ln -s /tmp tmp
cd tmp
ls -l
Chemins absolus et relatifs
Pour identifier de façon non ambigüe un fichier ou un répertoire que l’on veut manipuler par
une commande du shell, il faut la désigner par son nom et par un chemin qui permet d’y accéder
au sein du système de fichiers. Pour construire ce chemin, on énumère la liste des répertoires
qu’il faut traverser au sein du SF pour atteindre l’entrée. Il y a deux points de départ possibles
pour ce chemin :
— le répertoire racine (/) : on parle alors de chemin absolu
— le répertoire courant : on parle alors de chemin relatif
Placez-vous dans le répertoire /etc, et complétez le tableau ci-dessous.
Chemin relatif
Chemin absolu
/etc/init.d/rcS
../tmp
/usr/bin/bash
Le caractère ~ désigne le HOME de l’utilisateur courant. Il peut être utilisé suivi d’un nom
d’utilisateur pour désigner le HOME d’un autre utilisateur (exemple : ~root).
Supposons que nous sommes l’utilisateur toto, que notre HOME est /home/toto, et que
nous sommes dans le répertoire /home/toto/test. Donnez 3 manières différentes de désigner
le fichier
/home/toto/tps/tp2.txt.
2
3
Caractères de substitution (wildcards)
Créez et placez-vous dans le répertoire /tmp/subst/. Tapez la commande suivante (attention, syntaxe spécifique à bash) :
touch f{a,o,i}{o,a}{,oo}
Listez le contenu du répertoire. Quels sont les fichiers désignés par les chaines suivantes ?
Chaine Fichiers désignés
*o*
*fa*
f??
foo*
f ? ?oo
f*a*o
f[ao]*
f*[ˆo]
4
Redirections des entrées/sorties
Tapez les commandes suivantes, et concluez sur le rôle des différentes redirections utilisées,
ainsi que sur celui de /dev/null.
ls -l > foo
cat foo
ls -l >> foo
cat foo
wc -l foo
wc -l < foo
find /etc
find /etc > log
cat log
find /etc > log 2> log.err
cat log.err
find /etc > log 2>/dev/null
find /etc >log 2>&1
cat log
# attention, syntaxe spécifique à bash
3
find /etc &>log
cat log
5
Filtres
Dans cette partie du TP, vous aurez à utiliser les commandes suivantes. Vérifiez que vous
connaissez leur fonction : cat grep head tail cut awk sed sort uniq wc
Q1. Récupérez les fichiers iut-passwd et iut-group à l’adresse indiquée par l’enseignant.
Ces fichiers, accessibles par exemple sur la machine charlemagne sous /etc/passwd et
/etc/group, contiennent la liste des utilisateurs et des groupes à l’IUT. Faites attention à
ne pas les diffuser (par exemple, en les publiant sur un site web public).
Q2. Combien de lignes contiennent ces deux fichiers ? Observez leur contenu. (Consultez
passwd(5) pour connaitre la signification des champs.)
Q3. Quel est le gid (Group ID) des étudiants de la licence ASRALL ? Combien d’étudiants
ont ce GID comme GID principal ? Qu’en pensez-vous ?
Q4. En observant le fichier iut-passwd, on remarque que les personnes réelles ont toutes un
GID de la forme 5XX. Créez un fichier iut-pers ne contenant que les personnes réelles.
Indication : utilisez la commande grep. Attention à la syntaxe des expression régulières !
Q5. Créez un fichier iut-noms ne contenant que le 5ème champ du fichier iut-pers.
Q6. Combien y a-t-il de personnes s’appellant MATHIEU ? GERARD ?
Q7. Quelles sont les personnes figurant plusieurs fois dans la liste ? Pourquoi, à votre avis ?
Q8. Quels sont les prénoms les plus populaires ?
Q9. Recherchez à nouveau les prénoms les plus populaires, mais sans utiliser de fichier intermédiaire.
6
Utilisation efficace du shell - raccourcis clavier
Voir tableau 1.
À l’aide de la documentation de bash, recherchez la fonction des raccourcis clavier (et
essayez-les).
7
less
less est un outil de base pour l’administrateur système.
Q1. Avec less, visualisez un fichier de log dans /var/log/
Q2. Comment pouvez-vous rechercher une chaîne particulière dans le fichier ?
Q3. Comment pouvez-vous vous déplacer page par page ?
Q4. Comment pouvez-vous aller directement à la fin du fichier ?
4
Raccourci
Fonction
C-a
C-e
M-f (ou C-flèche gauche)
M-b (ou C-flèche droite)
flèche haut
flèche bas
C-r
C-k
C-u
TAB
Notes :
C- signifie qu’il faut appuyer sur CTRL et sur la touche désignée simultanément.
M- ("Meta") signifique qu’il faut appuyer sur ALT et sur la touche désignée simultanément.
TABLE 1 – Raccourcis clavier du Shell
Q5. Comment pouvez-vous aller directement à la ligne 42 ?
Q6. Comment pouvez-vous lancer l’éditeur de texte par défaut du système directement depuis
less ?
Q7. L’outil tail est souvent utilisé avec l’option -f, qui permet de surveiller les écritures dans
un fichier : dès qu’un message de log sera ajouté au fichier, il sera affiché par tail. Quelle
commande de less permet de réaliser cette fonction ? Essayez, par exemple en visualisant
/var/log/auth.log et en vous connectant sur un terminal.
8
Aller plus loin
Q1. À quoi sert la commande find ?
Q2. Comment pouvez-vous compresser et décompresser des archives .tar.gz ou .tar.bz2 ?
Q3. Comment faire pour changer la couleur des chaines trouvées dans la sortie de grep ?
Q4. Utilisez vimtutor et apprenez VIM.
Q5. Tapez dd if=/dev/zero of=fichier bs=1K count=1 seek=10G. Comparez la taille
du fichier fichier avec ls et du. Pourquoi ?
Q6. À quoi correspond la deuxième colonne dans la sortie de ls -l ? En particulier, pourquoi
cette valeur est-elle souvent élevée pour les répertoires ?
5