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/
- cd
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é
- ls -a
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
- grep -n montexte 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
- cat -n monFichier
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