Durant ces 3 jours d'introduction à Linux, nous allons voir
Le cours est disponible en ligne: 1)
Ensuite, nous ferons un module de 3 jours d'administration comprenant:
Et nous terminerons par un module réseau.
15/03/05
Fedora: vient de Red Hat (gestionnaire de paquets: RPM) Gentoo: source based Mandrake: pour end-user (desktop) Slackware: pas de gestion de dépendances
numéros de version
2.x.y 2 = version majeure x = version mineure y = corrections
On suit les instructions: <enter> à la ligne boot Partition Druid:
Créer un utilisateur, s'identifier
Pour ouvrir un terminal, dans le menu: Applications → System Tools → Terminal
Pour obtenir de l'aide sur une commande:
commande -h commande --help man commande info commande apropos commande
vi est disponible sur toutes les distributions. C'est l'éditeur que nous utiliserons, enfin presque: nous travaillerons avec vim (Vi IMproved).
Pour le lancer:
vi
vi utilise le mode de commande: c'est la ligne en bas, en commençant par deux points “:”
:q
pour quitter
:q!
pour quitter sans sauver Pour affiche les lignes:
set nu
Pour enlever l'affichage des lignes:
set nonu
N.B: on peut écrire se au lieu de set Pour se déplacer dans le texte, soit utiliser les flèches, soit utiliser j, k, h, l. Pour entrer en mode insertion, taper “i”.
Pour copier une ligne (yank): yy Pour coller la ligne en-dessous de la ligne courante (paste): p Pour rechercher le mot toto: /toto Pour aller à l'occurence suivante (next): n Pour aller à l'occurence précédente: N undo: u redo : ctrl+r aller à la dernière ligne du fichier: G
Liens:
Travailler sur /etc/passwd (après avoir fait une copie dans le répertoire home):
cp /etc/passwd ~ cd vi passwd
Remplacer la première occurence de l'id de l'utilisateur pas maison
s/forma302/maison/
Remplacer tous les sbin par brol
:%s/sbin/brol/g
Pour voir les répertoires à la racine:
ls -la /
En bleu, les répertoires. Les fichiers cachés par le système commencent par le caractère “.” (point). Pour les afficher:
ls -a
Combien de fichiers y a-t-il dans /etc/rc3.d/?
ls -l /etc/rc3.d/ > ~/liste.rc3.d | wc ~/liste.rc3.d 56 607 3978 /home/linux/liste.rc3.d
55 fichiers
Copier les fichiers dans /etc/X11 dans home
cp -r /etc/X11 ~
Effacer ~/X11/xorg.conf
rm -f ~/X11/xorg.conf
C'est presque comme les raccourcis Windows.
lien physique (hard): 2 pointeurs vers le même emplacement sur le disque dur (attention: sur une même partition) Ne prends pas de place sur le disque.
lien symbolique (sym): un raccourci qui pointe vers un fichier. Prends un peu de place sur le disque. Le lien est statique: si on change de place le fichier vers lequel il pointe, on casse le lien symbolique.
useradd nom
Sans arguments, il n'y a pas de mot de passe, ni de home, ni de login
r: read w: write x: execute
il y a les droits pour le propriétaire (owner) le groupe les autres
[linux@localhost ~]$ ls -l script.sh -rwxrwxrwx 1 linux root 24 Mar 16 12:03 script.sh
Comment interpréter: drwxr-xr-x? -: script.sh est un fichier r: le propriétaire peut lire le fichier (read) w: le propriétaire peut modifier le fichier (write) x: le propriétaire peut exécuter le fichier (par exemple, si c'est un script ou un binaire) (execute) r: le groupe peut lire le fichier -: le groupe ne peut pas modifier le fichier x: le groupe peut exécuter le fichier r: les autres peuvent lire le fichier -: les autres ne peuvent pas modifier le fichier x: les autres peuvent exécuter le fichier
Comment changer les droits? A l'aide de la commande chmod (change mode):
chmod 0754
0: s'applique au sticky bit 7: droits de l'utilisateur (propriétaire) 5: droits du groupe 4: droits des autres
Les valeurs sont: 4: r 2: w 1: x donc: 3 = wx, 5 = rx, 6 = rw et 7 = rwx
chmod 0754 donne les droits rwx au propriétaire, r-x au groupe et r– aux autres
chmod a+rwx
a: all on peut aussi mettre: u: user (owner) g: group o: others +: ajouter les droits -: retirer les droits r: read w: write x: execute
chmod a+rwx donne tous les drois à tout le monde.
ls -l > file
La sortie de l'output est déviée vers un fichier au lieu de s'afficher à l'écran (comportement par défaut)
mail user@gna.com < body.txt
mail prend comme entrée le contenu du fichier body.txt au lieu du clavier (entrée standard)
ps ax | grep sshd
pipe: la sortie du process de gauche est envoyée à l'entrée du process de droite.
mkdir `date +%a%Y%m%d`
Le shell va d'abord exécuter ce qui se trouve entres les reverse quotes avant d'exécuter ce qui est en-dehors. Dans l'exemple ci-dessus, il va créer un répertoire portant comme nom la date courante.
*: remplace tous les caractères ?: remplace un caractère [a-z]: toutes les lettres minuscules
cd mkdir rep1 touch rep1/fich1 echo "coucou" >> rep1/fich1 mkdir rep2 mkdir `date +%s` touch rep2/fich2 cp rep1/fich1 rep2 cp rep2/fich2 rep1 mv rep1/fich1 ./ mv rep1/fich2 rep1/fich3 ln rep2/fich3 lien1 ln -s rep2/fich2 lien2
su - useradd Tintin passwd Tintin useradd Haddock passwd Haddock mkdir /home/BD groupadd Lotus-bleu usermod -G Lotus-bleu Tintin usermod -G Lotus-bleu Haddock usermod -d /home/BD Tintin usermod -d /home/BD Haddock chgrp Lotus-bleu /home/BD chmod g+rwx /home/BD chmod a-r /home/forma312/rep1/fich3 chmod a+r /home/forma312/rep1/fich3 chown Haddock.Lotus-bleu /home/forma312/rep1/fich3 echo "alias rm='rm -i'" >> /etc/bashrc
En bash
if [condition] then fi
if [ $r test 0 } then echo Trop petit fi echo Trop grand
où test peut être:
-le (⇐)
-ge (>
-eq (
-lt (<)
-gt (>)
-ne (différent)
while [ $a -ne $r ] do echo Different de $r done
for mavariable in a b c d do echo $mavariable done
lister les nombres de 1 à 10 et à 5, écrire “nous sommes à la moitié”
#!/bin/bash for nombre in 1 2 3 4 5 6 7 8 9 10 do echo $nombre if [ $nombre -eq 5 ]; then echo "Nous sommes à la moitié" fi done
#!/bin/bash for nombre in 1 2 3 4 5 6 7 8 9 10 do if [ $nombre -eq 5 ] then echo "$nombre Nous sommes à la moitié" else echo $nombre fi done
#!/bin/bash for nombre in 1 2 3 4 "5 Nous sommes à la moitié" 6 7 8 9 10 do echo $nombre done
lister les additions de 1+1=2 jusque 1+10=11
#!/bin/bash for nombre in 1 2 3 4 5 6 7 8 9 10 do somme=`expr $nombre + 1` echo "1 + $nombre = $somme" done
#!/bin/bash for nombre in 1 2 3 4 5 6 7 8 9 10 do echo "1 + $nombre = $(($nombre+1))" done
afficher la table de multiplication pour un nombre donné.
#!/bin/bash echo "entrer un nombre" read n for i in 1 2 3 4 5 6 7 8 9 10 do echo $i x $n = $(($i*$n)) done
#!/bin/bash echo "entrer un nombre" read n i=1 while [ $i -lt 11 ] do echo "$n * $i" > calc echo "$n x $i = `bc < calc`" i=$(($i+1)) done
Jeu qui génère un nombre aléatoire (0-1024) et qu'il faut trouver (il dit plus petit ou plus grand).
Création des utilisateurs en masse avec mot de passe égal au nom d'utilisateur.