10 Fév

Bases Linux

Linux et ses multiples distributions fait souvent peur. Malgré des interfaces aujourd’hui très ‘user friendly’,

Il reste le plus rapide pour gérer les systèmes avec la ligne de commande.

La logique de Linux repose sur le système de fichiers. Pour gérer un service il faut modifier le fichier de configuration.

Quelques infos simples :

Pour ouvrir l’invite de commande, il faut prendre un ‘terminal’. Pour éditer les fichiers de configuration, on a à disposition un éditeur ‘vi’ – pratique pour les férus de Linux mais plus compliqué). Sinon, il y a généralement Nano. Ou vous pouvez l’installer.

  • Pour installer un programme il faut télécharger un paquet, un ensemble de fichiers que l’on modifiera pour personnaliser la configuration parfois.
    Ce sont les commandes apt (pour paquet sous debian). Apt-upgrade /  apt-update / apt-get nom du paquet ( ex apt-get nano)

A un programme est associé un daemon. Pour lancer un programme, il faut lancer son démon.http://www.informatix.fr/articles/unix-linux-bsd/qu-est-ce-qu-un-demon-111

Les commandes de bases pour gérer les fichiers.

Attention, certaines commandes nécessitent des droits de « super-utilisateur », il s’appelle root sous Linux, administrateur sous Windows.

Pour effectuer certaines commandes vous devez tapez la commande : su, le système vous demandera alors votre mot de passe.

  • cd / :remonter à la racine
  • cd /etc/network/:aller dans le répertoire
  • ls -l :lister en détail les fichiers
  • ls -l | less : le faire page par page,(et pour terminer q)
  • vi /etc/apt/apt.conf.d/proxy crée le fichier s’il n’existe pas et le modifie dans le cas contraire

Commandes pour lister les utilisateurs :

/etc/passwd | awk -F: '{print $ 1}'

Parcourir les fichiers

Cd Se déplacer

  • Équivalent MS-DOS/MS Windows : cd
  • Signification : change directory
  • Permet de se promener dans les répertoires
  • Exemples d’utilisation :
    • cd
      permet de revenir au répertoire /home/utilisateur (identique à cd ~)
    • cd –
      permet de revenir au répertoire précedent
    • cd ..
      permet de remonter au répertoire parent (ne pas oublier l’espace contrairement à windows)
    • cd /
      permet de remonter à la racine de l’ensemble du système de fichiers
    • cd /usr/bin/
      se place dans le répertoire /usr/bin/

Autocomplétion du chemin

L’idée est simple : taper cd /usr/games/trucbidule c’est bien, mais c’est parfois un peu long de tout écrire. Alors vous allez justement demander à l’ordinateur de compléter le chemin tout seul ! L’auto complétion de chemin fonctionne de la même manière que l’auto complétion de commande : avec la touche Tab (Tabulation).

le joker

Le symbole * est appelé joker, ou encore wildcard en anglais sous Linux.Il vous permet de copier par exemple tous les fichiers image .jpg dans un sous-dossier. La commande est Identique sous windows

Pwd : Afficher le répertoire en cours

  • Équivalent MS-DOS/MS Windows : chdir
  • Signification : print working directory
  • Affiche le répertoire en cours

Ls : Lister les fichiers

  • Équivalent MS-DOS/MS Windows : dir
  • Signification : list segment
  • Permet de lister un répertoire
  • Options les plus fréquentes :
    • -l: Permet un affichage détaillé du répertoire (permissions d’accès, le nombre de liens physiques, le nom du propriétaire et du groupe, la taille en octets, et l’horodatage)
    • -h: Associé avec -l affiche la taille des fichiers avec un suffixe correspondant à l’unité (K, M, G)
    • -a: Permet l’affichage des fichiers et répertoires cachés (ceux qui commencent par un . (point))
    • -lct: Permet de trier les fichiers et répertoires par date de modification décroissante
  • Exemples d’utilisation :
    • ls -a
      affiche tous les fichiers et répertoires cachés du répertoire courant
    • ls /etc/
      affiche le contenu du répertoire /etc/
    • lspciou lsusb
      affiche les périphériques PCI ou USB connectés.
    • Ls –al affiche tous les dossiers de facon detaillé

less : afficher le fichier page par page

less nomdufichier.

La commande cat est rapide. Trop rapide. Tout le fichier est lu et affiché d’un coup dans la console, ce qui fait que l’on n’a pas le temps de le lire s’il est très gros.

C’est là qu’une autre commande comme less devient vraiment indispensable. La grosse différence entre less et cat, c’est que less affiche progressivement le contenu du fichier, page par page.

Notez qu’il existe aussi une commande très proche : more. Pour faire simple, la différence entre more et less c’est que more est vieux et possède peu de fonctionnalités, tandis que less est beaucoup plus puissant et rapide. Bref, utilisez less, mais si vous voyez un jour quelqu’un utilisermore, ne soyez pas surpris.

 

Commençons par les quelques raccourcis clavier les plus indispensables, à connaître absolument.

  • Espace: affiche la suite du fichier. La touche Espace fait défiler le fichier vers le bas d’un « écran » de console. C’est celle que j’utilise le plus souvent.
  • Entrée: affiche la ligne suivante. Cela permet donc de faire défiler le fichier vers le bas ligne par ligne.
  • Vous pouvez aussi utiliser la toucheFlèche vers le bas.
  • d: affiche les onze lignes suivantes (soit une moitié d’écran). C’est un peu l’intermédiaire entreEspace (tout un écran) et Entrée (une seule ligne).
  • b: retourne en arrière d’un écran.
  • Vous pouvez aussi appuyer sur la touchePage Up.
  • y: retourne d’une ligne en arrière.
  • Vous pouvez aussi appuyer sur la toucheFlèche vers le haut.
  • u: retourne en arrière d’une moitié d’écran (onze lignes).
  • q: arrête la lecture du fichier. Cela met fin à la commande less.

 

find: Chercher

  • Permet de chercher des fichiers et éventuellement d’exécuter des commandes sur ceux-ci ; la recherche estrécursive c’est-à-dire qu’elle concerne le répertoire de départ et toute sa descendance (sous-répertoires ainsi que toute leur descendance …)
  • Équivalent MS-DOS/MS Windows :find
  • Options les plus fréquentes :
    • -name: Recherche d’un fichier par son nom
    • -iname: Même chose que -name mais insensible à la casse
    • -type: Recherche de fichier d’un certain type
    • -atime: Recherche par date de dernier accès
    • -mtime: Recherche par date de dernière modification
    • -link: Recherche du nombre de liens au fichier
    • -user: Recherche de fichiers appartenant à l’utilisateur donné
    • -group: Recherche de fichiers appartenant au groupe donné
  • Actions les plus fréquentes :
    • -exec: Exécute la commande donnée aux fichiers trouvés
    • -ok: Même chose que -exec mais demande une confirmation
    • -ls: exécute la commande ls à chaque fichier trouvé
  • Opérateurs les plus fréquents :
    • -a: Opérateur ET
    • -o: Opérateur OU
    • !ou -not : Opérateur NOT
  • Exemples d’utilisation :

simple

Placez-vous dans le répertoire à partir duquel la recherche récursive doit être effectuée et faites :

  • find monfichier*
    Recherche un fichier commençant par « monfichier »
  • find -name *monfichier*.ogg
    Recherche un fichier contenant « monfichier » et ayant pour extention « .ogg »

avancé

  • find /home/ -name monfichier
    Recherche le fichier monfichier dans toute la descendance de /home/
  • find . -name « *.c »
    Recherche tous les fichiers ayant une extension .c
  • find . -mtime -5
    Recherche les fichiers du répertoire courant qui ont été modifiés entre maintenant et il y a 5 jours
  • find /home/ -mtime -1 \! -type d
    Recherche uniquement les fichiers (! -type d signifie n’était pas un répertoire) ayant été modifiés ces dernières 24h
  • find . ! -user root
    Affiche tous les fichiers n’appartenant pas à l’utilisateur root
  • find . \( -name ‘*.wmv’ -o -name ‘*.wma’ \) -exec rm {} \;
    Recherche et supprime tous les fichiers WMA et WMV trouvés
  • find . \( -type f -exec sudo chmod 664 « {} » \; \) , \( -type d -exec sudo chmod 775 « {} » \; \)
    Modifie récursivement les droits en 664 sur les fichiers et en 775 sur les répertoires en une seule instruction

grep Recherche dans des fichiers

  • Souvent utilisé en filtre avec d’autres commandes.
  • Équivalent MS-DOS/MS Windows : find
  • Signification : global regular expression print
  • Options les plus fréquentes :
    • -c: Retourne le nombre de lignes au lieu des lignes elles mêmes
    • -n: Retourne les lignes préfixées par leur numéro
    • -i: Insensible à la casse
    • -r: Recherche récursivement dans tous les sous-répertoires ; On peut utiliser la commande rgrep
    • -G: Recherche en utilisant une expression rationnelle basique (option par défaut)
    • -E: Recherche en utilisant une expression rationnelle étendue ; On peut utiliser la commandeegrep
    • -F: Recherche en utilisant une chaîne fixe ; On peut utiliser la commande fgrep
  • Exemples d’utilisation :
    • grep -n montexte monfichier
      Retourne toutes les lignes ainsi que leur numéro où montexte apparait dans monfichier

cat Affiche le contenu d’un fichier

  • Équivalent MS-DOS/MS Windows : type
  • Signification : concatenate
  • Options les plus fréquentes :
    • -n: Affiche les numéros de ligne
    • -v: Affiche les caractères de contrôles
  • Exemple d’utilisation :
    • cat -n monFichier
      Affiche monFichier en numérotant les lignes à partir de 1

Editer / créer un fichier

Pour créer un fichier il suffit d’appeler un éditeur en spécifiant un nom qui n’existe pas ; sinon le nom existe le fichier sera edité

  • Editeur vi (peu pratique car demandant de se rappeler toutes les comandes) mais cet éditeur existe de base dans toutes les versions de Linux
  • Gedit : beaucoup plus pratique et simple que vi.
  • Nano : entre vi et gedit.

 

mkdir Créer un répertoire

Identique sous windows

rm /rmdir Supprimer un fichier ou un répertoire

Attention ces commandes sont dangereuses : elles peuvent avec les options détruire tout un système

A ne pas faire : rm -rf /*

  • rm: commande la suppression ;
  • -r: supprime de manière récursive tous les fichiers et dossiers ;
  • -f: force la suppression sans demander la moindre confirmation ;
  • /*: supprime tous les fichiers et dossiers qui se trouvent à la racine (/) quel que soit leur nom (joker *).

cp : copier un fichier

l’option -R (un « R » majuscule !), vous pouvez copier un dossier, ainsi que tous les sous-dossiers et fichiers qu’il contient

mv : déplacer un fichier

Très proche de cp, la commande mv (MoVe, « déplacer » en anglais) a en fait deux utilités :

  • déplacer un fichier (ou un dossier) ;
  • renommer un fichier (ou un dossier).

head : afficher le début du fichier

La commande head (« tête » en anglais) affiche seulement les premières lignes du fichier. Elle ne permet pas de se déplacer dans le fichier comme less, mais juste de récupérer les premières lignes.

-n, suivi d’un nombre. Il permet d’afficher le nombre de lignes que vous voulez

tail : afficher la fin du fichier

Très intéressante aussi (voire même plus), la commande tail vous renvoie la fin du fichier, donc les dernières lignes.

Mais ce n’est pas tout ! Il y a un autre paramètre à côté duquel vous ne pouvez pas passer : -f (f pourfollow, « suivre » en anglais).

Ce paramètre magique ordonne à tail de « suivre » la fin du fichier au fur et à mesure de son évolution.
C’est extrêmement utile pour suivre un fichier de log qui évolue souvent. Vous pouvez tester sur syslog par exemple.

DU Taille des fichiers

La commande « du », pour Disk Usage (utilisation du disque) vous donne des informations sur la taille qu’occupent les dossiers sur votre disque.

-h : la taille pour les humains

-a : afficher la taille des dossiers ET des fichiers

 

Redirection

Les entrées/sorties des processus

Chaque processus possède 3 flux standards qu’il utilise pour communiquer en général avec l’utilisateur :

  • l’entrée standard nomméestdin (identifiant 0) : il s’agit par défaut du clavier,
  • la sortie standard nomméestdout (identifiant 1) : il s’agit par défaut de l’écran,
  • la sortie d’erreur standard nomméestderr (identifiant 2) : il s’agit par défaut de l’écran.

Ces flux peuvent être redirigés afin que le processus interagisse avec un autre au lieu d’interagir avec l’utilisateur.

Rediriger la sortie standard

Quand on exécute une commande, le shell affiche le résultat sur la console de sortie (l’écran par défaut). On peut rediriger cette sortie vers un fichier en utilisant le signe >.

Exemple

~$ ls>resultat_ls

Si le fichier existe déjà, il est écrasé.

Concaténation

Au lieu de créer un fichier, il est possible d’ajouter les sorties d’un processus à un fichier existant en utilisant le double signe >>.

Exemple

~$ ls>>resultat

Si le fichier résultat existe déjà, les affichages sont concaténés.

Syntaxe complète

En fait, les signes > peuvent être précédés de l’identifiant du flux à rediriger. Pour la sortie standard, on peut donc utiliser les syntaxes suivantes :

~$ ls 1>resultat~$ ls 1>>resultat

Ce qui revient au même que les deux premiers exemples ci-dessus (redirection et concaténation).

Rediriger la sortie d’erreur standard

La redirection du flux de sortie d’erreur standard utilise les même signes, mais précédés de l’identifiant du flux : 2.

Exemples

~$ ls 2>erreurs_ls~$ ls 2>>erreurs_ls

Rediriger l’entrée standard

Rediriger l’entrée standard permet d’entrer des données provenant d’un fichier au lieu du clavier.

Exemple

~$ cat < mon_fichier.txt

Le pipe (un tube)

Redirige la sortie d’une commande vers l’entrée d’une autre commande. Il s’agit donc d’une chaîne de redirection entre deux processus qui ne passe pas par un fichier, mais par une zone mémoire du système.

Exemples

  • Afficher la taille des fichiers et répertoires, et les trier du plus grand au plus petit :

$ du | sort -rn

  • Même résultat, mais affiché page par page :

$ du | sort -rn | more

  • Connaître le nombre de fichiers du répertoire /usr/bin :

$ ls -1 /usr/bin | wc -l

Explications : L’option -1 de la commande ls affiche un fichier ou répertoire par ligne. La commande wc (word count) avec l’option -l (line) compte le nombre de lignes.

 

Le pipe et la redirection fonctionnent aussi dans l’invite de commande windows !

http://windows.developpez.com/cours/ligne-commande/?page=page_3

 

Pour aller plus loin

N’hesitez pas a consulter les alias, les liens etc…

http://wiki.linux-france.org/wiki/Les_commandes_fondamentales_de_Linux#Introduction

 

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.