debian:tips

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
debian:tips [2020/04/10 15:24] erreur32debian:tips [2022/11/08 16:43] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
-=====  chkconfig ===== 
  
-Moyen simple pour libérer des ressources est de désactiver les services inutiles qui se lancent automatiquement au démarrage.+====== Supprimer les ^M d'un fichier texte de Windows======
  
  
-<code> + Il peut arriver que vous ayez les caractères ^M affichés en fin de ligne d'un fichier texte écrit sous Windows. Pour les enlever, tapez : 
- chkconfig +
-</code>+
  
-===== Liste IP connected / port =====+    $ tr -d 'r' < fichier_windows.txt > fichier_windows_converti.txt 
  
  
-   netstat -ntu | tail -n+| awk '{print $5}' | cut -d: -f1 | sort | uniq -c+Recherche de fichiers modifié jours avant
  
-    * n : Afficher les ip en numérique +   find . -mtime -3 -print 
-    * t : Afficher le traffic tcp +
-    * u : Afficher le traffic udp +
-   +
-   +
-   +
- netstat -laputen+
  
- +{{tag>bash windows ^M }}
- +
-===== Lister dossiers et sous dossiers find ===== +
- +
-<code bash> +
- +
- DOSSIER_MUSIQUE="/home/user/direction/dossier" +
- find "$DOSSIER_MUSIQUE" -maxdepth 2 -type d | sed "1d;s@$DOSSIER_MUSIQUE@@;s@/.*/@ -@" +
-</code> +
- +
- +
- +
-===== Trier dossiers par Taille ===== +
- +
-<code bash> +
-  +
-du -h --max-depth=2 | sort -n +
- +
-du -sh * | sort -rn +
- +
-Meilleur lecture +
- +
-du -sk * | sort -rn  +
-  +
-.bashrc +
- +
-alias dus="du -sk $* | sort -rn | sed -e 's=.*\t\(.*\)=\"\1\"=' | xargs du -sh" +
- +
-function dirsize() +
-{ +
-if [ -z $1 ]; then +
-dir="." +
-else +
-dir=$1 +
-fi +
-find $dir -type d -maxdepth 1 -mindepth 1 -exec du -sh '{}' \; 2>/dev/null \ | perl -pe "s/\t.*\/(.*)$/\t$(echo '\033[01;32m')\1$(echo '\033[0m')/gi" +
-echo +
-echo "Total: " $(du -sh $dir 2>/dev/null | awk '{print $1}'+
-+
- +
-</code> +
- +
-=====  purger  ===== +
- +
- tous les fichiers de configuration qui restent sur votre système une fois certains logiciels désinstallés : +
- +
-     # dpkg -l | grep  "^rc" | awk '{ print $2 }' | xargs dpkg --purge   +
-     +
-     +
- +
-===== Connaitre la taille des répertoires utilisateurs de son système ===== +
- +
- +
-Pour savoir combien les utilisateurs de votre système consomment d'espace disque, il suffit de faire une boucle for : +
- +
-     for dir in $(ls /home); do du -sh /home/$dir; done +
- +
- +
- +
-La ligne de commande nous offre différents outils pour afficher la taille de vos fichiers. +
- +
- Nous avons par exemple la commande du (disk usage) qui dispose de différentes options pour afficher la taille des fichiers : +
- +
-<code> +
-  +
-  du -shc -- * +
-16M     Desktop +
-248K    documents +
-40G     media +
-8.0K    nohup.out +
-560M   projects +
-94M     security.docs +
-</code> +
- +
-taille supérieure à 4000Ko ou 4Mo, utiliser la commade find l'avantage recherche récursive dans tous les sous répertoires : +
- +
-   find ~/  -type f -size +4000k -exec ls -lh {} \; +
-  +
-fichiers de moins de 4000Ko : +
- +
-  find ~/ -type f -size -4000k -exec ls -lh {} \; +
- +
-L'option -type f indique que nous recherchons des fichiers de type régulier et ~/ indique que c'est notre répertoire personnel. La commande find dispose de nombreuses options que vous trouverez dans le man. +
- +
-Pour trouver la taille des répertoires, nous devons utiliser : +
- +
-  find ~/ -type d -exec du -sh {} \; +
- +
-Nous aurions pu utiliser aussi xargs : +
- +
-  find ~/ -type d | xargs du -sm | sort -g  +
- +
- même résultat sauf que l'utilisation des "pipes" ("|") ralenti l'exécution de la commande. +
- +
-Trier par date de modification  +
- +
-<xterm2> +
-   00:50:22-[root@echosystem:/var/log] $ ls -lct  apache2/ +
-   total 470668 +
-  -rwxrwxrwx 1 www-data adm  30837415 20 nov.  00:51 blackbox_test2.log.1 +
-  -rwxrwxrwx 1 www-data adm  60615893 20 nov.  00:51 www.echosystem.fr-access.log.1 +
-  -rwxrwxrwx 1 www-data adm  38934346 20 nov.  00:51 blackbox.log +
-  -rwxrwxrwx 1 www-data adm   1411028 20 nov.  00:50 ssl_access.log.1 +
-  -rwxrwxrwx 1 www-data adm   1075185 20 nov.  00:45 www.echosystem.fr-error.log.1 +
-  -rwxrwxrwx 1 www-data adm     12706 20 nov.  00:41 error.log.1 +
-  -rwxrwxrwx 1 www-data adm  35931153 20 nov.  00:02 blackbox.log.1 +
- +
-</xterm2> +
-    +
-===== find + grep ===== +
-  +
-Rechercher un mot dans un fichier avec un path +find +
- +
-     +
-    grep "managed-keys" `file * | egrep 'script|text' | awk -F: '{print $1}'+
-     +
-     +
-     +
-===== rechercher un fichier de plus de 1 MO via l'option size ===== +
- +
- +
-#find /tmp -xdev -size +2000 -type f -exec ls -l {} \; +
- +
--rw-r--r--   1 root     system  1091846 02 nov 17:37 /tmp/toto +
- +
- +
-===== grep ===== +
- +
-La commande 'grep' est ce qu'on appelle une commande "filtre". C'est à dire qu'elle permet de retrouver un contenu précis dans un fichier, ou dans le retour d'une commande. +
- +
-Par exemple, pour retourner à l'écran toutes les lignes du fichier "smb.conf" qui contiennent le mot "path", on procedera d'une de ces deux manières : $ +
-     +
-    root@coteobscur.net:~# grep "path" /etc/samba/smb.conf root@coteobscur.net:~# cat /etc/samba/smb.conf | grep "path" +
-     +
-'grep' permet également de rechercher les lignes qui commencent ou finissent par une chaîne donnée. Pour rechercher des lignes qui commencent par "ii" dans le retour de 'dpkg -l" : +
-  +
- root@coteobscur.net:~# dpkg -l | grep "^ii" Recherche des lignes du fichier "smb.conf" qui finissent par "yes" :  +
- +
-  root@coteobscur.net:~# grep "yes$" /etc/samba/smb.conf Enfin, on peut également demander à 'grep' de rechercher les lignes ne contenant pas la chaîne renseignée :  +
-   +
-  root@coteobscur.net:~# grep -v "/bin/bash" /etc/passwd (option "-v" pour reverse). On obtiendra ici la liste des utilisateurs du système ne disposant pas d'une session utilisant le shell "bash"+
- +
-Un autre usage courant de 'grep' est l'option "-i" (ignore), qui permet d'ignorer la casse de la chaîne recherchée.  +
- +
-   gael@twelve:+
- +
-   tree /home/ | grep -i firefox +
-  +
-   |-- Firefox_wallpaper.png +
-  +
-  +
-Les options de 'grep' et de ses dérivés sont très nombreuses, mais nous avons vu ici les cas d'utilisation les plus fréquents. Bien entendu, toutes les options présentées ici sont cumulables, par exemple dans la commande suivante : gael@twelve:$ grep -vi "^Gael" **/etc/passwd** qui retournera toutes les lignes du fichier **/etc/passwd** ne commençant pas par "gael", "Gael", "GAEL", ... etc. +
- +
-La commande 'man grep' est à consulter pour plus de détails. +
- +
-===== find ===== +
- +
- +
-La commande 'find' permet de rechercher un/des fichier(s), un/des dossier(s). La syntaxe d'une recherche classique (recherche d'un fichier dans une branche d'arborescence) est la suivante : +
- +
-   gael@twelve:/$ find /home/ -name *.pdf +
-   /home/gael/factures/juillet/15.07.09-facture_78.pdf +
-   gael@twelve:/$ Ce qui revient à dire : find (où) -name (quoi) +
- +
-Outre les recherches classiques, on peut également rechercher les objets appartenant à un utilisateur :  +
- +
-<code> +
-gael@twelve:/$ find /datas/ -user gael +
-/datas/perso/gael/ +
-/datas/perso/gael/my_pensebete.txt +
-/datas/perso/gael/repondeur.ogg +
-</code> +
- +
- +
- Ici encore, la page man de 'find' est à consulter pour connaître toutes les (nombreuses) possibilités offertes par cette commande. +
-    +
-   find | xargs grep +
- +
-En combinant les deux commandes '**grep**' et '**find**' vues précédemment, on peut obtenir des résultats étonnement efficaces. +
- +
-Par exemple, on peut rechercher dans la totalité de l'arborescence les fichiers qui contiennent, en majuscules ou minuscules, le mot "passwd" :  +
-       gael@twelve:$ find / -type f | xargs grep -i passwd  +
-        +
-       Cette commande recherche dans le système tous les objets de type "**fichier**", et recherche ensuite dans chacun d'eux la chaîne de caractères "**passwd**"+
- +
-La commande 'xargs', après le pipe, est indispensable pour appliquer le 'grep' sur chaque fichier renvoyé par 'find'. Sans 'xargs', la recherche de la chaîne de caractère ne se ferait que sur la sortie standard de la commande 'find', donc la liste des noms des fichiers, et non leur contenu.  +
- +
- +
- +
- +
-    Équivalent MS-DOS/MS Windows : find +
-    Signification : rechercher +
-    Permet de chercher des fichiers et éventuellement d'exécuter des commandes sur ceux-ci ; la recherche est ré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 …) +
-     +
-====== 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 +
- +
- +
-====== IP debian 9 ====== +
- +
-<code> +
-$  hostname --ip-address +
-</code> +
- +
- +
-====== Supprimer les ^M d'un fichier (Windows). ====== +
- +
-Il peut arriver que vous ayez les caractères ^M affichés en fin de ligne d'un fichier texte écrit sous Windows. Pour les enlever, tapez :  +
- +
-<code> +
-$ tr -d 'r' < fichier_windows.txt > fichier_windows_converti.txt +
- +
-</code> +
-====== Recherche de fichiers modifié 3 jours avant ====== +
- +
-<code> +
-$ find . -mtime -3 -print +
-</code> +
-     +
-{{tag>shell tips bash nano}}+
  • debian/tips.1586525085.txt
  • Dernière modification : 2020/04/10 15:24
  • de erreur32