Le système d'exploitation GNU-Linux/Commandes de base

Un livre de Wikilivres.
Sauter à la navigation Sauter à la recherche


  1. Qu'est-ce qu'un système d'exploitation ?
  2. Unix et Linux
  3. Partitionnement du disque
  4. Installation
    1. Installer Debian via le réseau
  5. Utilisateur Unix, l'interface console
    1. Le login
    2. Commandes de base
    3. L'aide en ligne man
    4. L'éditeur de texte vi
    5. Les shells
    6. La complétion
    7. Les jokers
    8. Les répertoires importants
    9. Redirection des entrées/sorties
    10. Invoquer un programme en tâche de fond
    11. Propriétaires et droits d'accès
    12. Processus
    13. Locale
  6. Administration du système
    1. Configuration du réseau
    2. Les utilisateurs et groupes
    3. Le processus d'initialisation
    4. Les systèmes de fichiers
    5. Le système virtuel /proc
    6. Les périphériques /dev
    7. L'ordonnanceur de travaux cron
    8. Le backup : tar et gzip
    9. ghost avec partimage
    10. sauvegarde de fichiers avec rsync
    11. Les fichiers journaux syslog
    12. Installation de nouveaux logiciels
    13. Le noyau Linux et les modules
    14. Autres commandes utiles
    15. Installation RAID1 logiciel + LVM + XFS
    16. Scripts de surveillance
    17. Réseaux sans fil
  7. Administration des services réseaux
    1. telnet
    2. Le serveur de noms BIND
    3. Le serveur de configuration réseau DHCP
    4. Le serveur de shell distant SSH
    5. Le partage de fichiers Samba
    6. Le partage de fichiers NFS
    7. Le serveur d'impression CUPS
    8. Le serveur de fichiers FTP
    9. Le serveur Web Apache
    10. La base de données MySQL
    11. Le serveur de mails Postfix
    12. Les annuaires LDAP
    13. L'outil d'administration Webmin
    14. La supervision
  8. Sécurisation d'un serveur Linux
    1. Installation d'un service en mode chroot
    2. Protection avec iptables
  9. Médiagraphie
  10. Auteurs


Éléments de syntaxe[modifier | modifier le wikicode]

Les commandes présentées dans les sections qui suivent sont introduites juste après un message d'invite qui dépend de la configuration du shell utilisé. Celui-ci est représenté par un signe dollar $. Il ne doit donc pas être tapé.

Le caractère dièse # marque le début d'un commentaire qui se termine en fin de ligne. Il n'est pas nécessaire de le recopier pour exécuter la commande.

Exemple :

$ pwd   # affiche le répertoire courant

Pour tester cette commande, il suffit d'entrer p w d .

Les lignes qui ne sont pas marquées du signe dollar indiquent ce que la commande précédente doit/peut afficher.

Par ailleurs, il existe deux opérateurs de concaténation des commandes :

  • ";" : qui enchaine les commandes quelques soient leurs résultats. Exemple : pwd ; pwd.
  • "&" : qui stoppe l'enchainement si une commande renvoie une erreur. Exemple : pwd & pwd. De plus, si aucune commande ne figure après le "&", le terminal redonne le focus avant la fin de la première commande, de sorte que l'on peut en taper d'autres si elle est longue.

pwd (print working directory)[modifier | modifier le wikicode]

Affiche le répertoire courant.

 $ pwd
 /home/alex

id[modifier | modifier le wikicode]

Affiche les informations relatives à l'utilisateur connecté.

 $ id
 uid=1000(alex) gid=1000(alex) groupes=20(dialout), 24(cdrom), 25(floppy), 29(audio), 44(video), 46(plugdev), 106(netdev), 109(powerdev), 1000(alex)
 

passwd[modifier | modifier le wikicode]

Permet de changer son mot de passe

  $ passwd
  Changing password for alex
  (current) UNIX password:
  Enter new UNIX password:
  Retype new UNIX password:
  passwd : le mot de passe a été mis à jour avec succès
Attention !

Logo Ne pas utiliser le symbole euros () dans les mots de passe, car il est potentiellement mal géré par Linux et pourrait se voir systématiquement refusé.


cd (change directory)[modifier | modifier le wikicode]

Pour se placer dans un répertoire

 $ cd .                    # . désigne le répertoire courant
 $ cd ..                   # .. désigne le répertoire parent
 $ cd /                    # / désigne le répertoire racine
 $ cd /tmp                 # désigne le répertoire tmp appartenant à la racine
 $ cd tmp                  # désigne le répertoire tmp du répertoire courant
 $ cd ../tmp               # désigne le répertoire tmp du répertoire parent du répertoire courant
 $ cd ~                    # permet de revenir dans son répertoire de travail (home directory)
 $ cd                      # idem

Connecté en root, la commande cd m'amène au répertoire /root qui est le répertoire de travail de l'utilisateur root.

Connecté avec l'utilisateur alex, cd m'amène au répertoire de travail de l'utilisateur alex, à savoir /home/alex.

ls[modifier | modifier le wikicode]

Liste les fichiers d'un répertoire

 $ ls                      # liste les fichiers non cachés du répertoire courant  
 $ ls -l                   # (l : long) : liste détaillée des fichiers du répertoire courant 
 $ ls -a                   # (a : all) : liste tous les fichiers, y compris les fichiers cachés

On peut combiner plusieurs options, l'ordre n'est pas important. Les quatre commandes suivantes sont identiques :

 $ ls -a -l
 $ ls -l -a
 $ ls -la
 $ ls -al

Lister de façon détaillée (-l) tous les fichiers, même cachés (-a), les plus récents (-t) en derniers (-r), avec leur taille en kilo-octets (-k) lisible facilement avec les unités K pour Kilo, M pour Mega, G pour Giga(-h).

$ ls -lartkh

cat (concatenate)[modifier | modifier le wikicode]

Affiche le contenu d'un fichier ou de plusieurs fichiers concaténés sur la sortie standard (l'écran)

 $ cat /etc/crontab                      # affiche le contenu du fichier /etc/crontab
 $ cat /etc/cron.daily /etc/cron.weekly  # concatène les deux fichiers et affiche leur contenu

Pour que les modifications de fichiers s'ajoutent en temps réel sur la sortie standard, utiliser :

tail -f /etc/crontab

mkdir (make directory)[modifier | modifier le wikicode]

Permet de créer un répertoire

 $ mkdir rep1              # crée un répertoire rep1 dans le répertoire courant
 $ mkdir /rep1             # tente de créer un répertoire rep1 à la racine,
                           # le système refuse car je ne suis pas connecté en root

Exercice : je suis dans le répertoire /var/log, je souhaite créer un répertoire rep2 dans le répertoire /home/alex, comment faire ?

J'ai 3 possibilités:

 $ mkdir ../../home/alex/rep2    # on utilise un adressage relatif à la position où je suis : 
                                 # on remonte dans l'arborescence jusqu'à la racine puis 
                                 # on redescend jusqu'au répertoire alex)
 $ mkdir /home/alex/rep2         # on utilise un adressage absolu en partant de la racine
 $ mkdir ~/rep2                  # on utilise ~ pour désigner le répertoire de travail

l'option -p permet de créer le(s) répertoire(s) parent(s).

 $ mkdir  -p rep1/rep2           # crée un répertoire parent rep1 si il n'existe pas,
                                 # et crée dans rep1 un répertoire rep2

rmdir (remove directory)[modifier | modifier le wikicode]

Supprimer un répertoire vide

 $ rmdir rep1

cp (copy)[modifier | modifier le wikicode]

Copier un fichier

 $ cp /etc/passwd /tmp                # copie le fichier /etc/passwd dans le répertoire /tmp
 $ cp /etc/passwd /tmp/nouveaunom     # copie le fichier /etc/passwd dans le répertoire /tmp 
                                      # et le renomme en nouveaunom

Attention, si le fichier destination existe déjà, il sera remplacé sans demande de confirmation !

Options courantes :

 -i : si le fichier destination existe, demande confirmation avant de remplacer le fichier


rm (remove)[modifier | modifier le wikicode]

Effacer un fichier

 $ rm lefichier                      # efface le fichier lefichier

Attention, le fichier est effacé et sans demander confirmation !

Options courantes :

 -i : demande confirmation avant d'effacer le fichier
 -f : ne demande pas de confirmation (annule -i)
 -r : supprime les répertoires récursivement

Exemples[modifier | modifier le wikicode]

  • Pour supprimer le répertoire "tmp" et son contenu :
rm -rf tmp
  • Pour supprimer tous les fichiers de log de plus de deux jours :
find /var/log* -mtime +2 -exec rm {} \;

mv (move)[modifier | modifier le wikicode]

Déplacer ou renommer des fichiers

  $ mv [Option] Source Destination(répertoire)
  $ mv [Option] Répertoire Source

  $ mv fichier_source fichier_cible   # déplacer '''fichier_source''' dans '''fichier_cible'''
  
  $ mv fichier1 fichier2    # renomme le fichier '''fichier1''' en '''fichier2'''
                            # Attention si '''fichier2''' existe, son contenu sera écrasé et 
                            # remplacé par celui de '''fichier1'''

Par précaution, on utilise l'option -i qui permet d'être averti par le système avant l'écrasement du fichier destination si celui-ci existe.

  $ mv -i fichier1 fichier2 # demande la confirmation avant d'effacer la destination

  $ mv rep1/fic1 rep2/fic2  # déplace le fichier '''fic1''' situé dans le répertoire ''rep1''
                            # sous le nouveau nom '''fic2''' situé dans le répertoire '''rep2'''

  $ mv rep1 rep2            # déplace le répertoire '''rep1''' dans le répertoire '''rep2'''
                            # si '''rep2''' n'existe pas, renomme '''rep1''' en '''rep2'''
Attention !

Logo Si le dossier n'est pas vide, utiliser "-f" pour forcer l'écrasement.


ln (link)[modifier | modifier le wikicode]

La commande ln permet de créer des liens, c'est à dire des raccourcis vers des fichiers ou des répertoires.

 ln -s destination nom_du_lien

Exemple

 $ ln -s prog1.0 monprogramme

Cette commande crée le lien suivant :

 lrwxrwxrwx 1 alex alex   7 2007-10-26 14:25 monprogramme -> prog1.0