« Le système d'exploitation GNU-Linux/Commandes de base » : différence entre les versions

Un livre de Wikilivres.
Contenu supprimé Contenu ajouté
Ligne 170 : Ligne 170 :
</source>
</source>


{{attention|Si ''le dossier n'est pas vide'', utiliser "-r".}}
{{attention|Si ''le dossier n'est pas vide'', utiliser "-f" pour forcer l'écrasement.}}


== ln (link) ==
== ln (link) ==

Version du 21 juin 2019 à 15:08



Éléments de syntaxe

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)

Affiche le répertoire courant.

 $ pwd
 /home/alex

id

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

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

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)

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

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)

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

mkdir (make directory)

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)

Supprimer un répertoire vide

 $ rmdir rep1

cp (copy)

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)

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

  • 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)

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'''

Logo

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

ln (link)

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