Un système d'exploitation réunissant le noyau Linux et le système GNU
Un système Libre, basé sur UNIX
Massivement utilisé en embarqué, sur les super-calculateurs ou les serveurs
Créé en 1991 par Linus Torvalds
Propose de nombreuses déclinaisons sous forme de "distributions"
Pourcentage de serveurs sous Linux...(Statistiques "The Cloud Market" via Amazon EC2)
Si vous voulez faire du développement web, vous devez connaître Linux !
+ Simple
- Change selon les distributions, pas toujours disponible, moins puissante
+ Puissante, rapide, permet de comprendre, toujours disponible, change peu
- Plus complexe au début
Changer de répertoire
Ex : cd /home/username
Lister un répertoire
Ex : ls /home/username
Supprimer un fichier
Ex : rm /home/username/filename
Créer un dossier
Ex : mkdir /home/username/new_dir
Copier un fichier
Ex : cp /tmp/file /etc/file_copy
Déplacer un fichier
Ex : mv /old/dir/file /new/dir/file_copy
Chaque commande peut prendre des arguments :
Un argument peut être soit une simple lettre, soit une lettre et une valeur.
Ex : Se connecter à mysql avec l'utilisateur root (demande le pass) : mysql -u "root" -p
Ex : Lister un répertoire avec ses fichiers invisibles : ls -a
Un argument est précédé d'un tiret, parfois deux.
Un doute sur une commande ? Deux possibilités :
Aide rapide, -h ou --help
Aide poussée, man
ls --help ou man ls
Exemple, obtenir des informations sur la commande "ls" :
Comment auto-compléter ?
Tapez le début de votre commande, appuyez sur "tab" !
Le principe ? Utiliser la sortie d'une commande comme entrée d'une autre commande !
Toute la philosophie Unix tient dans le pipe !
Petit exemple :
grep : permet de vérifier des expressions régulières
ls : permet de lister un dossier
Donc, on peut trouver les fichiers du répertoire courant et qui contiennent "text" dans leur nom avec la commande suivante :
ls -al | grep "text"
Faire un lien symbolique
Ex : ln -s /path/file /path/link
Lire le contenu d'un fichier
Ex : cat home/username/filename
Créer un fichier vide
Ex : touch /home/username/new_file
Changer d'utilisateur
Ex : su new_user
Trouver les fichiers qui contiennent une chaîne
Ex : grep -r 'chaine' /path/to/repository
Remplacer une chaîne "search" par "replace" dans tous les fichiers ".php" d'un répertoire
Ex : find ./ -type f -exec sed -i '' 's#search#replace#' *.php {} \;
Télécharger un fichier ou une page via http
Ex : wget http://example.com/example.zip
Plusieurs personnes peuvent utiliser l'ordinateur en-même temps
Gestion des droits
+
Gestion des propriétés
Gestion des utilisateurs
+
Gestion des groupes
Lire - R(ead)
Écrire - W(rite)
Exécuter - X(ecute ?)
4
2
1
Exemples :
Lire et exécuter, soit 4 + 1 = 5
Lire, écrire et exécuter, soit 4 + 2 + 1 = 7
Dans l'ordre :
Propriétaire - Groupe - Tous les autres
Les droits sont définis pour chaque catégorie, de gauche à droite !
Exemples :
Propriétaire, lire, écrire et exécuter
Groupe, lire et exécuter
Autres, aucun
750
Propriétaire, lire et écrire
Groupe, lire
Autres, lire
644
La commande s'utilise de la façon suivante :
chmod droits /path/to/target_file
Note : L'option -R avant les droits permet d'appliquer les droits au contenu d'un dossier et de ses sous-dossiers
Exemple, modifier droits du fichier "/home/test/file" :
Lire, écrire, exécuter pour le propriétaire
Lire, exécuter pour le groupe
Lire pour les autres
chmod 754 /home/test/file
Droit pour une seule personne
Droit pour plusieurs personnes
La commande s'utilise de la façon suivante :
chown proprietaire:groupe /path/to/target_file
Note : L'option -R avant propritaire:groupe permet d'appliquer la modification au contenu d'un dossier et de ses sous-dossiers
Exemple, modifier appartenance "/home/test/file" :
On donne le fichier à l'utilisateur toto
On donne le fichier au groupe toto_group
chown toto:toto_group /home/test/file
Un login
Un mot de passe
Un groupe, parfois plusieurs
Éventuellement un dossier
Un utilisateur peut appartenir à un, ou plusieurs groupes !
Les groupes permettent souvent de gérer facilement des droits sur un fichier pour plusieurs utilisateurs !
Ajouter un utilisateur
Ex : useradd new_user
Ajouter un groupe
Ex : groupadd new_group
Modifier le groupe principal d'un utilisateur
Ex : usermod -g new_group user
Supprimer un utilisateur
Ex : deluser user
Ajouter un groupe secondaire à un utilisateur
Ex : usermod -a -G new_group user
Supprimer un groupe
Ex : delgroup group
Tous les droits sur tous les fichiers !
N'utiliser qu'en cas de besoin !
Dossier personnel séparé, dans /root
En ligne de commande, le fait d'être root est symbolisé par le signe #
Permet d’exécuter une commande avec les privilèges "root" en la préfixant avec "sudo"
Seulement pour les utilisateurs du groupe "sudo" ou ceux définis dans le fichier /etc/sudoers
Exemple, lister les fichiers dans "/root/" :
ls /root → Permission non accordée
sudo ls /root
Téléchargement et désarchivage
Paquets et dépots
Compilation du
code
Ils regroupent des paquets (logiciels près à être installés) !
Chaque distribution à ses propres dépôts, souvent plusieurs !
Il est possible d'ajouter d'autres dépôts !
Les dépôts gèrent aussi les mises à jour !
Pour employer les dépôts, on utilise un gestionnaire de paquets, APT
On utilise le gestionnaire de paquets APT
Le gestionnaire APT demande des droits administrateur (root ou sudo)
Mettre à jour la liste des logiciels disponibles dans les dépôts, apt-get update
Mettre à jour les logiciels installés, apt-get upgrade
Chercher un logiciel (à partir d'une partie de son nom par exemple), apt-cache search bout_nom_logiciel
Installer un logiciel (APT installera aussi ses dépendances), apt-get install nom_logiciel
Désinstaller un logiciel, apt-get remove nom_logiciel
Désinstaller un logiciel en supprimant les fichiers de configuration, apt-get purge nom_logiciel
Désinstaller un logiciel et ses dépendances, apt-get autoremove nom_logiciel
VIM
NANO
Vi iMproved
Basé sur le logiciel Vi, créé en 1976
Il repose sur un système de mode (normal, commande, édition)
Un éditeur plutôt à destination des programmeurs
Ultra puissant
Hautement personnalisable
Extrêmement léger
+
Optimisé pour rester sur le clavier
Difficile à prendre en main
Long à apprendre
-
GNU Nano
Partie du projet GNU, créé en 1999
Pas de système de mode, utilise plutôt des combinaisons de touches
Un éditeur pour débuter ou faire de l'édition occasionnelle
Simple à apprendre
Relativement intuitif
Pensé pour intéragir avec la souris
+
Peu puissant
Atteint rapidement ses limites
-
Richard Stallman (rms), 1953 :
Fondateur du projet GNU, créateur de Emacs, président de la Free Software Foundation.
Linus Torvalds, 1969 :
Créateur du noyau Linux, créateur du logiciel Git. A été (cruellement) mordu par un manchot !
Analyse des avantages de l'open source :
La cathédrale et le bazar - http://framasoft.net/IMG/cathedrale-bazar.pdf
Pourquoi le libre est différent (mieux) que l'open source :
En quoi l'open source... - http://www.gnu.org/philosophy/open-source-misses-the-point.html
La licence GNU/GPL3, intéressante à connaître :
Licence GNU/GPL3 - http://www.linux-france.org/article/these/gpl.html
Forum, doc, wiki Ubuntu (fr) :
http://ubuntu-fr.org/
Wiki de très bonne qualité (fr) : http://lea-linux.org/
Actualités et articles (fr) :
http://linuxfr.org/
Nicolargo, bon blog Linux (fr) : http://blog.nicolargo.com/
Des tutos complets Debian (fr) : http://raspbian-france.fr/