Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
utilisateurs:lagrenouille:tutos:votre-ordinateur-en-ligne-de-commande-deuxieme-partie [08/02/2020 00:52] lagrenouille [commandes utiles et quelques utilitaires pratiques] |
utilisateurs:lagrenouille:tutos:votre-ordinateur-en-ligne-de-commande-deuxieme-partie [12/02/2020 11:16] lagrenouille [les droits et les acl sous linux] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== votre ordinateur et la ligne de commande (deuxième partie) ====== | + | ====== une approche de la ligne de commande: La CLI(deuxième partie) ====== |
Ligne 9: | Ligne 9: | ||
* Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | ||
+ | | ||
===== Introduction ===== | ===== Introduction ===== | ||
+ | |||
+ | |||
+ | {{https://debian-facile.org/images/file-Rab359a922a49699623b7583e8ccca504.png}} | ||
Il existe déjà sur ce wiki plusieurs tutos consacrés aux commandes linux, voir: | Il existe déjà sur ce wiki plusieurs tutos consacrés aux commandes linux, voir: | ||
Ligne 112: | Ligne 116: | ||
| rmdir | supprime un répertoire vide | | | rmdir | supprime un répertoire vide | | ||
- | ==== quelques commandes réseau ==== | + | |
+ | Les liens symbolique :La commande ln:il faut commencer par le nom du dossier qu’on veut lier, et ensuite mettre le nom du lien. | ||
+ | |||
+ | je fais un site web sur mon serveur et je ne veux pas prendre toute la place dans /var/www/html. | ||
+ | |||
+ | Je vais donc créer et développer mon site dans un DD de 2 Terras fait pour ça. Les données seront donc stockées dans le DD et non dans html, et je fais le lien . | ||
+ | <code root>ln -s /home/chemin/mon_DD/mon_site /var/www/html/</code> | ||
+ | |||
+ | maintenant si je fais un ls -lha /home/chemin/mon_DD/mon_site, et que mon site se nomme sitesting, je verrais le liens comme ceci | ||
+ | <code>mon_DD/spidtesting -> /var/www/html/spidtesting/</code> | ||
+ | |||
+ | alors que dans /var/www/html | ||
+ | <code user>ls -lha /var/www/html/ | ||
+ | -rw-r--r-- 1 root root 11K août 24 17:27 index.html | ||
+ | -rw-r--r-- 1 root root 21 août 31 16:41 phpinfo.php | ||
+ | drwxrwxrwx 13 momo momo 4,0K sept. 18 15:05 spidtesting</code> | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== quelques commandes réseau ===== | ||
on trouve tous les protocoles supportés de niveau réseau dans le fichier /etc/protocols | on trouve tous les protocoles supportés de niveau réseau dans le fichier /etc/protocols | ||
Ligne 319: | Ligne 346: | ||
</code> | </code> | ||
- | Voir aussi : | + | Voir aussi wput qui est un programme en ligne de commande de chargement (envoi) de fichiers sur le réseau. Il supporte le protocole FTP. : |
+ | <code user>wput monFichier ftp://login:password@serveur/</code> | ||
<code root> | <code root> | ||
Ligne 387: | Ligne 415: | ||
<code user>htop</code> | <code user>htop</code> | ||
+ | bmon pour une surveillance réseau et bande passante | ||
<code user>bmon</code> | <code user>bmon</code> | ||
+ | nmon est un outils de surveillance, permettant de monitorer les ressources physiques des machines qui sont sous Linux | ||
+ | nmon peut générer un fichier nmon (ressemblant un peu à du CSV | ||
<code user>nmon</code> | <code user>nmon</code> | ||
+ | Essayez par exemple de lancez nmon pour capturer les données pendant une heure en faisant une snapshot.(instantané en français) toutes les 30 secondes, en utilisant : | ||
+ | <code user>nmon -f -s 30 -c 120</code> | ||
+ | iptraf. pour voir votre réseau, en temps réel, pour diagnostiquer et vérifier vos le trafic de votre réseau, amusez vous, le menu et ses sous-menu sont plein de petites choses sympa. | ||
+ | <code root>iptraf-ng</code> | ||
tload- représentation graphique de la charge moyenne du système | tload- représentation graphique de la charge moyenne du système | ||
Ligne 415: | Ligne 450: | ||
=====ssh et rsync ==== | =====ssh et rsync ==== | ||
+ | |||
+ | <code root>apt install openssh-client openssh-server rsync</code> | ||
+ | |||
+ | Ce qui va créer un dossier .ssh et à l'interieur un fichier known_hosts . Si vous avez des clés rsa, elles seront aussi dans ce dossier, vos clés publiques se terminent par .pub. | ||
+ | |||
+ | connexion à un serveur: | ||
+ | <code user>ssh nom@ip | ||
+ | ou | ||
+ | ssh nom@serveur</code> | ||
+ | ou si le port est spècifique | ||
+ | ssh -P6678 nom@serveur</code> | ||
+ | |||
+ | envoyé un fichier : | ||
+ | <code user>scp -P2289 monfichier.odt nom@serveur</code> | ||
+ | |||
+ | |||
+ | rsync est une commande à rallonge, pleine d'options | ||
+ | |||
+ | <code user>rsync -pavz nom@hometoto87654.1and1-data.host: /chemin/dossier/machin/</code> | ||
+ | |||
+ | [[https://linux.die.net/man/1/rsync]] | ||
+ | |||
+ | [[https://man.developpez.com/man1/rsync/]] | ||
+ | |||
+ | |||
+ | |||
+ | |||
===== commandes utiles et quelques utilitaires pratiques ===== | ===== commandes utiles et quelques utilitaires pratiques ===== | ||
Ligne 554: | Ligne 616: | ||
</code> | </code> | ||
+ | Le PID d’un processus peut se récupérer avec la commande “ps -edf | grep “processus“. Par exemple pour le processus “apache” | ||
+ | <code user>ps -edf | grep apache | ||
+ | www-data 6904 10269 0 07:41 ? 00:00:02 /usr/sbin/apache2 -k start | ||
+ | www-data 6905 10269 0 07:41 ? 00:00:02 /usr/sbin/apache2 -k start | ||
+ | www-data 6906 10269 0 07:41 ? 00:00:03 /usr/sbin/apache2 -k start | ||
+ | www-data 6908 10269 0 07:41 ? 00:00:04 /usr/sbin/apache2 -k start | ||
+ | www-data 6909 10269 0 07:41 ? 00:00:03 /usr/sbin/apache2 -k start | ||
+ | www-data 6915 10269 0 07:42 ? 00:00:03 /usr/sbin/apache2 -k start | ||
+ | www-data 6924 10269 0 07:45 ? 00:00:03 /usr/sbin/apache2 -k start | ||
+ | lagreno+ 7112 7092 0 08:31 pts/2 00:00:00 grep apache | ||
+ | root 10269 1 0 févr.03 ? 00:00:10 /usr/sbin/apache2 -k start | ||
+ | |||
+ | |||
+ | </code> | ||
+ | |||
+ | |||
+ | Le PID du processus Apache est le premier numéro (2ème colonne). Nous pourrons donc spécifier ce numéro comme suivant à la commande lsof pour avoir les fichiers ouverts par apache: | ||
+ | <code user>lsof -p 6904 | ||
+ | COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME | ||
+ | apache2 6904 www-data cwd DIR 8,2 4096 2 / | ||
+ | apache2 6904 www-data rtd DIR 8,2 4096 2 / | ||
+ | apache2 6904 www-data txt REG 8,2 687944 1184619 /usr/sbin/apache2 | ||
+ | apache2 6904 www-data mem REG 8,2 337024 1183204 /usr/lib/locale/aa_DJ.utf8/LC_CTYPE | ||
+ | apache2 6904 www-data mem REG 8,2 200752 1179422 /usr/lib/locale/C.UTF-8/LC_CTYPE | ||
+ | apache2 6904 www-data mem REG 8,2 1517626 1179421 /usr/lib/locale/C.UTF-8/LC_COLLATE | ||
+ | apache2 6904 www-data mem REG 8,2 282752 1178637 /usr/lib/x86_64-linux-gnu/libnss_systemd.so.2 | ||
+ | apache2 6904 www-data DEL REG 0,5 972876 /dev/zero | ||
+ | apache2 6904 www-data DEL REG 0,5 972875 /dev/zero | ||
+ | apache2 6904 www-data mem REG 8,2 105672 1210245 /usr/lib/x86_64-linux-gnu/libzip.so.4.0 | ||
+ | apache2 6904 www-data mem REG 8,2 67688 1183384 /usr/lib/php/20180731/zip.so | ||
+ | apache2 6904 www-data mem REG 8,2 264320 1195499 /usr/lib/x86_64-linux-gnu/libxslt.so.1.1.32 | ||
+ | |||
+ | </code> | ||
du et df: | du et df: | ||
Ligne 590: | Ligne 685: | ||
</code> | </code> | ||
- | la commande who -b affiche la date du dernier démarrage du système | + | la commande who -b affiche la date du dernier démarrage du système. |
- | **la commande find** | + | Certaines commandes tel que : **la commande find** **la commande sed** **les commandes grep/egrep** et **la commande awk** possendent tellement de possibilités que je me contente de les cités.. la commande awk est un véritable langage de programmation à lui seul, vous trouverez un grand nombre de doc sur le web.Ce langage est asé ou inspiré par le langage C. |
- | **la commande sed** | + | Syntaxe |
+ | awk [-Fs] [-v variable] [-f fichier de commandes] 'program' fichier | ||
- | **les commandes grep/egrep** | + | -F Spécifie les séparateurs de champs |
+ | |||
+ | -v Définie une variable utilisée à l'intérieur du programme. | ||
+ | |||
+ | -f Les commandes sont lu à partir d'un fichier. | ||
+ | |||
+ | Je ne mettrai pas d'exemple de cette puissante commande, pour la simple raison que je la connais pas : :o) Je vous abandonne à RTFM. | ||
+ | |||
+ | |||
+ | |||
+ | Quelques exemples avec find et grep: | ||
+ | |||
+ | Supprimer une ligne selon son numéro. Attention les lignes vides sont comptées, ici les lgnes 1,4 et 7 sont supprimées | ||
+ | Il faut utiliser l’option d. | ||
+ | sed '1d;4d;7d' fichier.txt | ||
+ | |||
+ | Supprimer une ligne selon une REGEX (en faites une"Expressions Regulieres") | ||
+ | |||
+ | Toujours avec l’option d : va supprimer toutes les lignes qui commencent par # | ||
+ | <code user>sed '/^#/d' fichier.txt</code> | ||
+ | |||
+ | Afficher seulement les lignes commentées qui commencent par # | ||
+ | <code user>sed -n '/^#/p' fichier.txt</code> | ||
+ | |||
+ | pour avoir tous les répertoires et sous répertoires | ||
+ | <code user>find /home -type d</code> | ||
+ | |||
+ | nombre de fichiers et répertoires en chiffre : (en root pour tout avoir) | ||
+ | <code root>find ./ -type f | wc -l</code> | ||
+ | |||
+ | nombre de dossiers : | ||
+ | <code root>find ./ -type d | wc -l</code> | ||
+ | |||
+ | pour avoir le nombre de fichier en chiffres dans le répertoire courant | ||
+ | <code root> find . -name \* | wc -l</code> | ||
+ | |||
+ | de fichier en chiffres dans le répertoire WEB | ||
+ | <code root>find /home/momo/WEB -type d | wc -l</code> | ||
+ | |||
+ | autres exemples avec find et grep : | ||
+ | |||
+ | rechercher tous vos fichiers .odt | ||
+ | <code user>find -name "*.odt" -print</code> | ||
+ | |||
+ | cherche tous les répertoires dont le nom se termine par B | ||
+ | <code user>find . -type d -name "*B" -print</code> | ||
+ | |||
+ | tous les .jpg dont le nom comporte oiseaux | ||
+ | <code user>find -name "*.jpg" -print | grep oiseaux</code> | ||
+ | |||
+ | Pour afficher tous les fichiers ayant une permission 444 | ||
+ | <code root>find . -perm 444 -print</code> | ||
+ | |||
+ | voir les droits de tous les fichiers dont le nom contient conf | ||
+ | find . -type f -exec ls -lha {} \; | less | grep conf | ||
+ | |||
+ | ce grep affichera que les fichiers dont le nom se termine par conf dans /etc/apache2 | ||
+ | ls /etc/apache2/ | grep "conf$" | ||
- | **la commande awk** | ||
=== utilitaires === | === utilitaires === | ||
+ | |||
+ | nano: un éditeur installé d'office sur debian:Le menu s'affiche en bas de page de l’éditeur | ||
+ | commande | explication| | ||
+ | |Ctrl + O | enregistrer le fichier (écrire)| | ||
+ | |Ctrl + X | quitter Nano.| | ||
+ | |Ctrl + W | rechercher dans le fichier| | ||
+ | |Ctrl + U | coller la ligne de texte que vous venez de couper | | ||
+ | |||
+ | Écoutez vos ziques ♪ ♫ ♪ ♬ ♩♪♫♬♩♪♫I | ||
+ | <code root>apt install moc</code> | ||
+ | |||
+ | |commande moc| explications| | ||
+ | |mocp | pour lancer l'appli | | ||
+ | | h | pour l’aide | | ||
+ | | q |pour quitter | | ||
+ | |||
+ | dans ce répertoire | ||
+ | |||
+ | |touches dans moc | explications | | ||
+ | |flèche BAS |Déplacer vers le bas dans le menu | | ||
+ | |flèche UP | Déplacez-vous dans le menu | | ||
+ | |s ou p | pour arrêter la musique | | ||
+ | |n |lire le fichier suivant | | ||
+ | |b | ESPACE p Pause | ||
+ | la touche , réduit le son | ||
+ | |||
+ | la touche maj + ; augmente le son | ||
+ | |||
+ | AVEC D’AUTRES CLAVIERS | ||
+ | |||
+ | la touche > augmente le son (touche , ; pour clavier bépo) | ||
+ | |||
+ | la touche < réduit le son (touche . pour clavier bépo) | ||
+ | |||
+ | |||
**compression extraction** | **compression extraction** | ||
Ligne 720: | Ligne 907: | ||
Statistiques périodiques sur l’utilisation du CPU (commande root), cpustat doit être installé | Statistiques périodiques sur l’utilisation du CPU (commande root), cpustat doit être installé | ||
<code root>cpustat</code> | <code root>cpustat</code> | ||
+ | |||
+ | dstat pour savoir à chaque fois quel processus à utilisé le plus de ressources mémoire et disque, | ||
+ | <code root>dstat --io --top --mem</code> | ||
+ | |||
+ | Surveiller son disque dur avec sysstat | ||
+ | <code root>iostat -tmdx 1</code> | ||
+ | |||
+ | vmstat : commande permettant d’afficher des statistiques concernant la charge du système, en particulier l’utilisation de la mémoire virtuelle. donc des statistiques de mémoire virtuelle. | ||
+ | |||
+ | Il est possible de collecter périodiquement en tâche de fond ces mesures via un script | ||
+ | vous en trouverez des exemples sur le web | ||
+ | |||
+ | Ces rapports ont pour but d’aider à identifier les goulots d’ étranglement du système. Linux vmstat ne se compte pas comme un processus en cours d’exécution, process qui bouffent trop de mémoire ou qui en perdent... | ||
+ | |||
+ | exemple : avec -w 1 : une nouvelle ligne de rapport est affichée par vmstat toutes les secondes (le 1 ). le paramètre -w permet d’élargir les colonnes pour éviter un décalage des informations avec de grandes valeurs.. | ||
+ | |||
+ | [[http://www.delafond.org/traducmanfr/man/man8/vmstat.8.html]] | ||
+ | <code root>vmstat -w 1 | ||
+ | ou | ||
+ | vmstat -at</code> | ||
Pour récupérer des informations sur le matériel de votre -ordinateur en les collectant depuis le BIOS. | Pour récupérer des informations sur le matériel de votre -ordinateur en les collectant depuis le BIOS. | ||
Ligne 737: | Ligne 944: | ||
<code user>apt-cache show apt</code> | <code user>apt-cache show apt</code> | ||
- | <code>Package: apt | + | //Package: apt |
Version: 1.8.2 | Version: 1.8.2 | ||
Installed-Size: 4064 | Installed-Size: 4064 | ||
Ligne 776: | Ligne 983: | ||
Size: 1418108 | Size: 1418108 | ||
MD5sum: 0e80dedab6ec1e66a8f6c15f1925d2d3 | MD5sum: 0e80dedab6ec1e66a8f6c15f1925d2d3 | ||
- | SHA256: 80e9600822c4943106593ca5b0ec75d5aafa74c6130ba1071b013c42c507475e</code> | + | SHA256: 80e9600822c4943106593ca5b0ec75d5aafa74c6130ba1071b013c42c507475e// |
affiché votre source.list | affiché votre source.list | ||
Ligne 804: | Ligne 1011: | ||
installé un paquet deb | installé un paquet deb | ||
<code root>apt install vim-nox</code> | <code root>apt install vim-nox</code> | ||
+ | |||
+ | **vim**commandes de l'éditeur: | ||
+ | |||
+ | |||
+ | |commande| explication| | ||
+ | |i | Passer dans le mode insertion| | ||
+ | |A | Ajouter en fin de ligne| | ||
+ | |:q | Quitter| | ||
+ | |:q! | Quitter sans enregistrer| | ||
+ | |:w | Enregistrer le fichier| | ||
+ | |:wq | Enregistrer et quitter| | ||
+ | |:x | Enregistrer (seulement en cas de modification) et quitter| | ||
+ | |:set paste | Passer en mode "collage"| | ||
+ | |||
+ | |||
+ | |Exemples | Action| | ||
+ | |u | Annuler la dernière opération| | ||
+ | |<control>-r | Rétablir la dernière opération annulée| | ||
+ | |. | Répéter la dernière opération d'édition| | ||
+ | |yy | Copier la ligne (4yy = 4 lignes)| | ||
+ | |dd | Couper la ligne (4dd = 4 lignes)| | ||
+ | |p | Coller après (P = insérer avant)| | ||
+ | |x | Effacer le caractère| | ||
+ | |dw | Effacer le texte jusqu'à la fin du mot| | ||
+ | |diw | Effacer le mot sous le curseur| | ||
+ | |/ | Rechercher du texte| | ||
+ | |n | Rechercher l'occurence suivante| | ||
+ | |N | Rechercher l'occurence précédente| | ||
+ | |cw | Remplacer le texte jusqu'à la fin du mot| | ||
+ | |ciw | Remplacer le mot| | ||
+ | |C | Remplacer jusqu'en fin de ligne| | ||
+ | |:%s/A/B/g | Remplacer tous (g) les A par des B| | ||
+ | |<control-w>-s | Diviser horizontalement| | ||
+ | |<control-w>-v | Diviser verticalement| | ||
+ | |<control-w>-w | Passer à la fenêtre suivante| | ||
+ | |<control-w>-n | Ouvrir un fichier vierge dans une nouvelle fenêtre| | ||
+ | |: tabnew nom_fichier | Ouvrir le fichier nom_fichier dans un onglet| | ||
+ | |<control-w>-q | Fermer la fenêtre| | ||
+ | |||
+ | |||
si un paquet est mal installé ou si l'on a un doute, on peut tenté«: | si un paquet est mal installé ou si l'on a un doute, on peut tenté«: | ||
Ligne 1249: | Ligne 1496: | ||
+ | === Le sticky bit === | ||
+ | |||
+ | le droit d’écriture signifie que l’on peut créer et supprimer les fichiers de ce répertoire. Le sticky bit permet de faire la différence entre les deux droits. | ||
+ | Lorsque ce droit est positionné sur un répertoire, il interdit la suppression des fichiers qu’il contient à tout utilisateur autre que le propriétaire. | ||
+ | |||
+ | il est représenté par la lettre t ou T, qui vient remplacer le droit d’exécution x, des autres utilisateurs que le propriétaire et ceux appartenant au groupe du fichier. | ||
+ | |||
+ | ---------t dans le cas ou t remplace un - ou ---------T, dans le cas ou t cache un x. | ||
+ | |||
+ | Ce droit indique que le fichier doit rester en mémoire vive, même si l’on en a plus besoin | ||
+ | |||
+ | Le sticky bit empêche de supprimer des fichiers, il n’empêche pas de les vider de leur contenu | ||
+ | |||
+ | <code user>ls -la / |grep tmp</code> | ||
+ | drwxrwxrwt 15 root root 4096 août 15 17:23 tmp | ||