Les exercices suivants sont prévus pour découvrir et utiliser les commandes ou pages de manuel suivantes:
lswcglobrmcpmvpwdtouchrmdircatmorelessfileOuvrir les pages de manuel correspondant à ces commandes est donc nécessaire pour pouvoir réaliser ces exercices.
Créer un répertoire tpfichiers et se placer dans ce
répertoire pour réaliser les exercices proposés ci-dessous.
Vous allez télécharger le fichier manipulation-fichiers.tar.gz
en utilisant la commande wget.
Pour cela cliquer bouton droit sur le lien ci-dessus et copier l’adresse du lien
Ensuite, coller cette adresse dans la commande suivante:
wget ADRESSE_DU_LIENDécompressez ce fichier avec une commande tar appropriée. Placez-vous ensuite dans le répertoire extrait: vous êtes prêt pour la suite.
Pour exécuter un script nommé exemple, plusieurs
solutions possibles:
# Première possibilité
bash exemple
# Deuxième possibilité
chmod +x exemple
./exempleLa commande ls affiche par défaut les fichiers dans le
dossier courant.
Les fichiers cachés ne sont pas affichés par défaut.
Les fichiers ou dossiers cachés sont les fichiers ou dossiers dont le
nom commence par un point .
Pour afficher les fichiers cachés avec la commande ls,
on utilise l’option -A (exemple: ls -A)
La commande ls peut être paramétrée avec les options
-d, -F, -R, -a,
-A, -l (entre autres).
Observer l’effet de ces options sur la sortie de la commande.
Regarder dans le manuel de cette commande à quoi correspondent ces options.
La commande wc permet de compter les éléments dans un
fichier ou dans l’entrée standard (stdin).
Prenons un fichier nommé nombres.txt.
Le résultat de la commande cat nombres.txt est :
Un deux trois
Quatre
Cinq Six
Vous pouvez créer ce fichier avec le contenu ci-dessus.
Le résultat de la commande cat nombres.txt | wc est:
$ cat nombres.txt | wc
3 6 30
Ceci indique que le fichier contient:
La commande wc peut être paramétrée avec les options
-c, -l, -w.
Observer l’effet de ces options sur la sortie de la commande.
Regarder dans le manuel de cette commande à quoi correspondent ces options.
L’interpréteur de commande du shell a un fonctionnement particulier: avant d’exécuter la commande, il va vérifier si certaines chaînes de caractères peuvent être remplacées par des noms de fichiers présents dans le répertoire courant.
Par exemple, créons un répertoire nommé liste et créons
quelques fichiers :
mkdir liste
cd liste
touch arbre pierre mousse herbe rocher fleur roseau r air
La commande touch permet de créer un fichier vide ou de
changer la date de modification d’un fichier (il prend alors la date
d’appel de la commande).
L’interprétation de la ligne de commande suivante donnera :
$ echo r*
r rocher roseauIci, l’interpréteur a remplacé r* par tous les fichiers
:
rLa commande suivante donnera:
$ echo *r
air fleur r rocherIci, l’interpréteur a remplacé r* par tous les fichiers
:
rLa commande suivante donnera:
$ echo *r*
air arbre fleur herbe pierre r rocher roseauIci, l’interpréteur a remplacé *r* par tous les fichiers
:
rLa commande suivante donnera:
$ echo ??r*
air herbeIci, l’interpréteur a remplacé ??r* par tous les
fichiers :
? peut être
remplacé par n’importe quel caractère)rLa commande suivante donnera:
$ echo [rm]*
mousse r rocher roseauIci, l’interpréteur a remplacé [rm]* par tous les
fichiers :
r ou la lettre
mLa commande suivante donnera:
$ echo [rm]o*
mousse rocher roseauIci, l’interpréteur a remplacé [rm]o* par tous les
fichiers :
r ou la lettre
moCette fonctionnalité du shell est connue sous le nom de
globbing.
On parle également alors d’expansion de motif, wildcard pattern expansion ou glob.
La page de manuel correspondante est accessible par la commande :
man 7 globUtiliser les wildcard avec les commandes ls
et ls -l et observer les effets
Exécutez le fichier init (qui crée un répertoire
unix et des fichiers et dossiers à l’intérieur de ce
répertoire)
Combien de fichiers ont été créés ?
On se déplace au préalable dans le répertoire unix
cd unixCombien de fichiers sont créés:
ls -A | wc -lls -A -F -d */ | wc -lF.ls -A *F*
ls -A | grep Fls -A *[0-9]*[0-9]*ls -A *[0-9][0-9]*d.rm *d1 ou
un 3 dans un sous-répertoire nommé copy (créez
le si nécessaire).mkdir -p copy
cp -r *[13]* copyPour ceux qui souhaiteraient exécuter ces deux commandes en une seule ligne, deux possibilités:
mkdir crée bien le dossier (ou
l’arborescence):mkdir -p backup/copy ; cp -r *[13]* backup/copymkdir backup/copy && cp -r *[13]* backup/copylisteComplete.txt, la
liste de tous les fichiers créés par le script
init.ls -A | grep -v copy > listeComplete.txt
ls -Ad .tmp* tmp* > listeComplete.txt
echo .tmp* tmp* > listeComplete.txtmv listeComplete.txt ~
mv listeComplete.txt $HOME
mv listeComplete.txt /home/nomutilisateurou
cd
mv tpfichiers/premiersPas/unix/listeComplete.txt .tree -a pour vérifier si vous
aviez bien vu tous les fichiers créés.file sur chaque fichier pour
vérifier à quel type il correspond.Essayer les commandes suivantes:
file unix/*/
file unix/*/*unix créé par le script
init. Fermez le terminal, et ouvrez de nouveau un terminal.
Cette partie se fait uniquement par la ligne de commande.cd ..
rm -rf unixpwdOn ne peut pas se déplacer à la racine d’un disque sans connaître les disques connectés.
Par contre la racine du système de fichier virtuel est
/
cd /cd ~
cd $HOME
cdUNIXUNIX créer un répertoire de nom
TP1mkdir -p UNIX/TP1ou
cd UNIX
mkdir TP1tmptmpvide.txttouch vide.txtUNIX en format
long# Format long => ls
ls -Rl .
tree -Dphugcd ..tmp avec la commande
rmdirrm -r tmpRetourner dans le répertoire tpfichiers.
dessus.txt et le copier dans le
répertoire de base de votre compte utilisateurcp dessus.txt ~
# Ou
cp dessus.txt $HOMEdessus.txt à l’aide de la
commande cat.more. Quelles
sont les différences ?less (pour quitter
less, appuyer sur la touche Q)less. Rechercher le mot
locataire.tmpdessus.txt dans le
répertoire tmptmp et renommer le fichier
dessus.txt en Dessous.txt.mv dessus.txt Dessous.txtmv Dessous.txt ~