###### Pour plus d'info http://juliend.github.io/linux-cheatsheet/ https://buzut.fr/101-commandes-indispensables-sous-linux/ # Linux Serveur ## <center> Commandes de bases, navigation dans les fichiers </center> #### ls : liste les fichiers d’un dossier. Options : ```-a``` pour les fichiers cachés, ```-l``` pour la liste détaillées, ```-h``` pour les tailles en unités « human readable ». #### pwd : print working directory. Cette commande affiche tout simplement le chemin absolu du dossier dans lequel on se trouve, ``` Buzut$ pwd /etc/apache2 ``` #### stty donne les valeurs des principaux paramètres liés au terminal #### du disk usage, précise l’espace disque que prend chaque fichier ou dossier (l’option ```-h``` permet d’obtenir les tailles en « human readable »), tandis que l’option ```-c```, très utile également, permet d’obtenir le total des éléments analysés. #### clear nettoie votre fenêtre de terminal en reléguant tout le texte au dessus (donc accessible avec un scroll) et vous laissant donc face à une fenêtre clean. Bien utile de temps à autre pour y voir plus clair. Le raccourci clavier ```ctrl + l``` fait la même chose. #### ctrl + r très très pratique, permet de faire une recherche dans l’historique des commandes. Habituellement, vous remontez dans les commandes déjà tapées avec la flèche du haut, eh bien avec ```ctrl + r```, vous pouvez effectuer une recherche dans cet historique, faites ```ctrl + r```, puis tapez un bout de la commande que vous voulez rechercher, magique ! ### Opération sur les fichiers #### cat lire le contenu d’un fichier texte ```cat monfichier.txt``` #### less fonctionnement similaire à ```cat``` mais affiche le fichier page par page. C’est donc plus pratique pour les longs fichiers. #### head affiche l’en-tête d’un fichier, l’option ```-n``` permet de spécifier le nombre de lignes à afficher. #### tail semblable à head mais concerne la « queue » du fichier, en d’autres termes, cette commande n’affiche que la fin. Une option très appréciable ```-f``` pour follow, permet de mettre à jour en temps réel l’affichage de la fin du fichier, ce qui est fort pratique pour suivre l’évolution d’un fichier de logs par exemple :smiley_cat: #### touch créer un fichier. Il suffit de faire ```touch nom_du_fichier``` #### mkdir créer un dossier, le fonctionnement est le même que celui de la commande touch. ```mkdir nom_du_dossier``` #### cp copy, faire une copie d’un fichier. L’option ```-R``` permet de réaliser des copies de dossiers entiers. ``` cp fichier_original copie_du_fichier # on peut aussi placer la copie directement dans un autre dossier cp fichier_original nom_du_dossier/copie_du_fichier ``` #### mv move, permet de déplacer des fichiers/dossiers. La commande mv s’utilise exactement de la même manière que la commande ````cp````. En outre, cette commande permet aussi de renommer les fichiers et dossiers en changeant simplement leur nom. ``` mv mon_fichier mon_fichier_new_name ``` #### rm remove, supprime des fichiers. ``` rm nom_du_fichier```. L’option ```-f``` force la suppression, l’option ```-i``` demande une confirmation avant suppression, enfin l’option ```-r``` permet la suppression des dossiers. #### rmdir remove directory, supprime un dossier seulement s’il est vide. #### ln link, créer un lien entre deux fichiers. L’option ```-s``` permet de créer un lien symbolique. ``` # créer un lien en dur ln fichier1 fichier2 # créer un lien symbolique ln -s fichier1 lien_vers_fichier1 ``` #### wc word count, permet de compter le nombre de lignes, de mots et de caractères dans un fichier texte. Les options sont ```-l``` pour line (nombre de ligne), ```-w``` pour word (nombre de mots) et ```-m``` pour le nombres de lettres. Il y a aussi l’option ```-c``` pour avoir la taille du fichier en bits. Pour l’utiliser, on fourni simplement en paramètre l’adresse du fichier texte : ``` Buzut$ wc -l test.rtf 33 test.rtf ``` wc permet aussi facilement de savoir combien vous avez de fichiers/dossiers un dans répertoire donné, il suffit pour cela de rediriger la sortie d’un ```ls``` vers ```wc : ls | wc``` et le tour est joué ! #### sort trier un fichier texte par ordre alphabétique. L’option ```-r``` permet d’effectuer un tri inverse, c’est à dire anti-alphabétique ou décroissant pour les nombres, et l’option ```-R``` permet un tri aléatoire, c’est le mode shuffle quoi ;) L’option -o permet de créer un nouveau fichier avec les résultats triés : ``` sort -o fichier_trie.txt fichier_en_bordel.txt ``` #### tar tar est l’utilitaire d’archivage. Il permet de regrouper des fichiers et des dossiers dans une seule archive. Les options intéressantes sont les suivantes : ```tar -cvf``` (create, verbose, file) permet de créer une archive, d’afficher tous les détails du processus (mode verbeux) et de tout mettre dans un dossier. Exemple : ``` tar -cvf nouvelle_archive.tar mon_dossier_a_archiver ``` Processus inverse, pour « détarrer » une archive, on utilise les options ```-xvf``` (eXtract, verbose, file) ```tar -xvf archive.tar```. Les options `-tf` servent à afficher le contenu d’une archive sans l’ouvrir. Il est aussi possible de compresser et décompresser à la volée les archives tar, il faut rajouter pour cela l’option `-z` lors de la création ou l’ouverture de l’archive `tar -zcvf compress.tar.gz compress/`. #### file détermine le type d’un fichier indépendamment de son extension. Il suffit de lui fournir en paramètre le fichier à évaluer. #### locate cette commande permet de localiser un fichier sur le disque dur. `locate monfichier.txt`. La commande locate est très rapide car elle retrouve le fichier en consultant une base de données. Elle ne parcourt pas directement le disque dur à la recherche du fichier en question. L’inconvénient de ce procédé est que si le fichier est tout récent, il risque de ne pas encore être indexé, et locate ne vous sera alors d’aucun secours. On peut forcer la mise à jour de la base de données avec la commande sudo updatedb. On peut aussi se tourner vers la commande find. #### grep permet d’effectuer des recherches par expressions régulières. Dans sa forme la plus simple, grep permettra d’afficher la ligne contenant un mot clef, ceci depuis un fichier ou une autre commande. Par exemple, si on veut afficher tous les processus ssh, on filtrera la commande ps aux avec `grep : ps aux | grep ssh`. grep permet également de rechercher dans le contenu de fichiers. #### source lancer le script de commande `source .monbatch salut ` ### Multitâche et programme en arriere plan #### & mettre & à la fin d’une commande permet d’en lancer une autre sans attendre la fin de la première ex : ` cp video.avi /users/buzut/desktop/copie-video.avi &`. #### ctrl + z mettre en pause le process en cours. #### bg passer le processus qui est en pause en arriere plan. #### fg reprendre un process en premier plan (si plusieurs tournent en même temps, `fg %n°`). #### atrm supprimer des jobs. #### sleep cette commande permet de faire une pause entre l’exécution de deux commandes. Exemple : `touch gt.txt && sleep 10 && rm gt.txt` La pause est exprimée en seconde par défaut, il est cependant possible de changer cela en faisant suivre le nombre d’une unité : `m, h`, ou `d` pour respectivement les minutes, heures et jours. #### uname -a pour savoir la version de linux #### crontab crontab est en fait une commande qui permet de lire et de modifier un fichier appelé la « crontab ». ###### e modifier la crontab. ###### l afficher la crontab actuelle. ###### r supprimer votre crontab. Attention, la suppression est immédiate et sans confirmation ! ### packages L'installation et la désinstallation de paquets sous Debian, Ubuntu et distribution dérivées peut se faire grâce à la commande `apt`. `apt-get update` Mettre à jour la liste des fichiers disponibles dans les dépôts APT. `apt-get install samba` Installer du paquet Samba. `apt-get install foo=2.2-1` Installer du paquet foo dans sa version 2.2-1. `apt-get remove samba` Désinstallation du paquet Samba tout en laissant les fichiers de configuration. `apt-get purge samba` Suppression complète du paquet Samba et de ses fichiers de configuration. `apt-cache policy php5` Récupération d'informations sur l'état du paquet php5 `dpkg -l | grep php` Lister tous les paquets php installés sur la machine ### archives Que ce soit pour compresser ou décompresser des fichiers ou des dossiers, cela se fait avec la commande `tar`. Quelques options : `-c`: créer `-t`: tester / lister `-x`: extraire `-v`: description des fichiers désarchivés `-j`: format de compression bzip2 `-z`: format de compression gzip `tar -cvf archive.tar fichier1` Création d’une archive nommée archive.tar contenant le fichier fichier1. `tar -cvf archive.tar fichier1 fichier2` Création d’une archive contenant deux fichiers fichier1 et fichier2. `tar -cvf archive.tar repertoire/` Création d’une archive a partir d’un répertoire. `tar -czvf archive.tar.gz repertoire/` Création d’une archive au format tar.gz. `tar -cjvf archive.tar.bz2 repertoire/` Création d’une archive au format tar.bz2. `tar -xzvf archive.tar.gz` Extraction de l’archive tar.gz. `tar -xjvf archive.tar.bz2` Extraction de l’archive tar.bz2. `tar -tf mon_fichier.tar` Liste tous les fichiers contenus dans une archive. ### espace disque `du -sh dossier1 dossier2` connaitre l'espace disque utilisé des deux répertoires (disk usage). `du -hc --max-depth=1` afficher l'espace disque utilisé des fichiers et répertoires contenu dans un répertoire. `df -h` afficher l'espace disque disponible (disk free). #### nslookup #### arp #### ------------------------------------------------------------------------- # <center> Commandes de bases, navigation dans les fichiers </center> #### ls : liste les fichiers d’un dossier. Options : ```-a``` pour les fichiers cachés, ```-l``` pour la liste détaillées, ```-h``` pour les tailles en unités « human readable ». #### pwd : print working directory. Cette commande affiche tout simplement le chemin absolu du dossier dans lequel on se trouve, ``` Buzut$ pwd /etc/apache2 ``` #### stty donne les valeurs des principaux paramètres liés au terminal #### du disk usage, précise l’espace disque que prend chaque fichier ou dossier (l’option ```-h``` permet d’obtenir les tailles en « human readable »), tandis que l’option ```-c```, très utile également, permet d’obtenir le total des éléments analysés. #### clear nettoie votre fenêtre de terminal en reléguant tout le texte au dessus (donc accessible avec un scroll) et vous laissant donc face à une fenêtre clean. Bien utile de temps à autre pour y voir plus clair. Le raccourci clavier ```ctrl + l``` fait la même chose. #### ctrl + r très très pratique, permet de faire une recherche dans l’historique des commandes. Habituellement, vous remontez dans les commandes déjà tapées avec la flèche du haut, eh bien avec ```ctrl + r```, vous pouvez effectuer une recherche dans cet historique, faites ```ctrl + r```, puis tapez un bout de la commande que vous voulez rechercher, magique ! ### Opération sur les fichiers #### cat lire le contenu d’un fichier texte ```cat monfichier.txt``` #### less fonctionnement similaire à ```cat``` mais affiche le fichier page par page. C’est donc plus pratique pour les longs fichiers. #### head affiche l’en-tête d’un fichier, l’option ```-n``` permet de spécifier le nombre de lignes à afficher. #### tail semblable à head mais concerne la « queue » du fichier, en d’autres termes, cette commande n’affiche que la fin. Une option très appréciable ```-f``` pour follow, permet de mettre à jour en temps réel l’affichage de la fin du fichier, ce qui est fort pratique pour suivre l’évolution d’un fichier de logs par exemple :smiley_cat: #### touch créer un fichier. Il suffit de faire ```touch nom_du_fichier``` #### mkdir créer un dossier, le fonctionnement est le même que celui de la commande touch. ```mkdir nom_du_dossier``` #### cp copy, faire une copie d’un fichier. L’option ```-R``` permet de réaliser des copies de dossiers entiers. ``` cp fichier_original copie_du_fichier # on peut aussi placer la copie directement dans un autre dossier cp fichier_original nom_du_dossier/copie_du_fichier ``` #### mv move, permet de déplacer des fichiers/dossiers. La commande mv s’utilise exactement de la même manière que la commande ````cp````. En outre, cette commande permet aussi de renommer les fichiers et dossiers en changeant simplement leur nom. ``` mv mon_fichier mon_fichier_new_name ``` #### rm remove, supprime des fichiers. ``` rm nom_du_fichier```. L’option ```-f``` force la suppression, l’option ```-i``` demande une confirmation avant suppression, enfin l’option ```-r``` permet la suppression des dossiers. #### rmdir remove directory, supprime un dossier seulement s’il est vide. #### ln link, créer un lien entre deux fichiers. L’option ```-s``` permet de créer un lien symbolique. ``` # créer un lien en dur ln fichier1 fichier2 # créer un lien symbolique ln -s fichier1 lien_vers_fichier1 ``` #### wc word count, permet de compter le nombre de lignes, de mots et de caractères dans un fichier texte. Les options sont ```-l``` pour line (nombre de ligne), ```-w``` pour word (nombre de mots) et ```-m``` pour le nombres de lettres. Il y a aussi l’option ```-c``` pour avoir la taille du fichier en bits. Pour l’utiliser, on fourni simplement en paramètre l’adresse du fichier texte : ``` Buzut$ wc -l test.rtf 33 test.rtf ``` wc permet aussi facilement de savoir combien vous avez de fichiers/dossiers un dans répertoire donné, il suffit pour cela de rediriger la sortie d’un ```ls``` vers ```wc : ls | wc``` et le tour est joué ! #### sort trier un fichier texte par ordre alphabétique. L’option ```-r``` permet d’effectuer un tri inverse, c’est à dire anti-alphabétique ou décroissant pour les nombres, et l’option ```-R``` permet un tri aléatoire, c’est le mode shuffle quoi ;) L’option -o permet de créer un nouveau fichier avec les résultats triés : ``` sort -o fichier_trie.txt fichier_en_bordel.txt ``` #### tar tar est l’utilitaire d’archivage. Il permet de regrouper des fichiers et des dossiers dans une seule archive. Les options intéressantes sont les suivantes : ```tar -cvf``` (create, verbose, file) permet de créer une archive, d’afficher tous les détails du processus (mode verbeux) et de tout mettre dans un dossier. Exemple : ``` tar -cvf nouvelle_archive.tar mon_dossier_a_archiver ``` Processus inverse, pour « détarrer » une archive, on utilise les options ```-xvf``` (eXtract, verbose, file) ```tar -xvf archive.tar```. Les options `-tf` servent à afficher le contenu d’une archive sans l’ouvrir. Il est aussi possible de compresser et décompresser à la volée les archives tar, il faut rajouter pour cela l’option `-z` lors de la création ou l’ouverture de l’archive `tar -zcvf compress.tar.gz compress/`. #### file détermine le type d’un fichier indépendamment de son extension. Il suffit de lui fournir en paramètre le fichier à évaluer. #### locate cette commande permet de localiser un fichier sur le disque dur. `locate monfichier.txt`. La commande locate est très rapide car elle retrouve le fichier en consultant une base de données. Elle ne parcourt pas directement le disque dur à la recherche du fichier en question. L’inconvénient de ce procédé est que si le fichier est tout récent, il risque de ne pas encore être indexé, et locate ne vous sera alors d’aucun secours. On peut forcer la mise à jour de la base de données avec la commande sudo updatedb. On peut aussi se tourner vers la commande find. #### grep permet d’effectuer des recherches par expressions régulières. Dans sa forme la plus simple, grep permettra d’afficher la ligne contenant un mot clef, ceci depuis un fichier ou une autre commande. Par exemple, si on veut afficher tous les processus ssh, on filtrera la commande ps aux avec `grep : ps aux | grep ssh`. grep permet également de rechercher dans le contenu de fichiers. #### source lancer le script de commande `source .monbatch salut ` ### Multitâche et programme en arriere plan #### & mettre & à la fin d’une commande permet d’en lancer une autre sans attendre la fin de la première ex : ` cp video.avi /users/buzut/desktop/copie-video.avi &`. #### ctrl + z mettre en pause le process en cours. #### bg passer le processus qui est en pause en arriere plan. #### fg reprendre un process en premier plan (si plusieurs tournent en même temps, `fg %n°`). #### atrm supprimer des jobs. #### sleep cette commande permet de faire une pause entre l’exécution de deux commandes. Exemple : `touch gt.txt && sleep 10 && rm gt.txt` La pause est exprimée en seconde par défaut, il est cependant possible de changer cela en faisant suivre le nombre d’une unité : `m, h`, ou `d` pour respectivement les minutes, heures et jours. #### uname -a pour savoir la version de linux #### crontab crontab est en fait une commande qui permet de lire et de modifier un fichier appelé la « crontab ». ###### e modifier la crontab. ###### l afficher la crontab actuelle. ###### r supprimer votre crontab. Attention, la suppression est immédiate et sans confirmation ! ### packages L'installation et la désinstallation de paquets sous Debian, Ubuntu et distribution dérivées peut se faire grâce à la commande `apt`. `apt-get update` Mettre à jour la liste des fichiers disponibles dans les dépôts APT. `apt-get install samba` Installer du paquet Samba. `apt-get install foo=2.2-1` Installer du paquet foo dans sa version 2.2-1. `apt-get remove samba` Désinstallation du paquet Samba tout en laissant les fichiers de configuration. `apt-get purge samba` Suppression complète du paquet Samba et de ses fichiers de configuration. `apt-cache policy php5` Récupération d'informations sur l'état du paquet php5 `dpkg -l | grep php` Lister tous les paquets php installés sur la machine ### archives Que ce soit pour compresser ou décompresser des fichiers ou des dossiers, cela se fait avec la commande `tar`. Quelques options : `-c`: créer `-t`: tester / lister `-x`: extraire `-v`: description des fichiers désarchivés `-j`: format de compression bzip2 `-z`: format de compression gzip `tar -cvf archive.tar fichier1` Création d’une archive nommée archive.tar contenant le fichier fichier1. `tar -cvf archive.tar fichier1 fichier2` Création d’une archive contenant deux fichiers fichier1 et fichier2. `tar -cvf archive.tar repertoire/` Création d’une archive a partir d’un répertoire. `tar -czvf archive.tar.gz repertoire/` Création d’une archive au format tar.gz. `tar -cjvf archive.tar.bz2 repertoire/` Création d’une archive au format tar.bz2. `tar -xzvf archive.tar.gz` Extraction de l’archive tar.gz. `tar -xjvf archive.tar.bz2` Extraction de l’archive tar.bz2. `tar -tf mon_fichier.tar` Liste tous les fichiers contenus dans une archive. ### espace disque `du -sh dossier1 dossier2` connaitre l'espace disque utilisé des deux répertoires (disk usage). `du -hc --max-depth=1` afficher l'espace disque utilisé des fichiers et répertoires contenu dans un répertoire. `df -h` afficher l'espace disque disponible (disk free). #### nslookup #### arp ## <center>Configuration DHCP</center> ### serveur * Serveur doit avoir 1 carte reseau en acces par pont et cable ethernet branché * Pareil pour les clients doivent etre en acces par pont et cable ethernet branché * reinitialisé les adresses mac pendant l'importation `apt-get install isc-dhcp-server` `nano /etc/network/interfaces` --------------------------------------- ##### fichier interfaces auto lo iface lo inet loopback auto eth0 allow-hotplug eth0 iface eth0 inet static address 192.168.1.10 netmask 255.255.255.0 network 192.168.1.0 -------------------------------------- `service isc-dhcp-server start` ou `service isc-dhcp-server restart` ### client `nano /etc/network/interfaces` --------------------------------------------- ##### fichier interfaces auto lo iface lo inet loopback allow eth0 allow-hotplug eth0 iface eth0 inet dhcp ------------------------------------------------ * Changer les hostnames * le serveur et les clients doivent pas avoir le même hostname `nano /etc/hostname` * relancer le serveur `/etc/init.d/networking restart` ou `ifdown -a` `ifup -a` Tout marche bien ,merci Iyad ## <center> Configuration DNS </center> ### Serveur * à modifer `fichier /etc/host.conf fichier /etc/resolv.conf` ![](https://i.gyazo.com/66cf1408d29a804ad30716cf6c5529dd.png) `