| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente |
| linux:commands [2024/01/09 11:23] – [lsof] add list file of a process phsw | linux:commands [2025/11/07 22:21] (Version actuelle) – [sed] add how to print nth line after a matching line phsw |
|---|
| ====== Commandes Linux ====== | ====== Commandes Linux ====== |
| |
| Certaines commandes (''grep'', ''ls'', ...) acceptent en paramètre ''--color=always'' qui permet de garder les colorations lorsque les commandes sont pipées. Utile pour piper plusieurs ''grep'', par exemple. ([[https://superuser.com/questions/923275/how-can-i-make-grep-respects-colors-on-a-pipe|Source]]) | Certaines commandes (''grep'', ''ls'', ...) acceptent en paramètre ''%%--%%color=always'' qui permet de garder les colorations lorsque les commandes sont pipées. Utile pour piper plusieurs ''grep'', par exemple. ([[https://superuser.com/questions/923275/how-can-i-make-grep-respects-colors-on-a-pipe|Source]]) |
| |
| | |
| | * [[https://shafi.ddns.net/blog/customize-nano-text-editor|Customize Nano Text Editor]] |
| |
| ==== awk ==== | ==== awk ==== |
| |
| ==== curl ==== | ==== curl ==== |
| | |
| | * [[https://jpmens.net/2025/01/23/uploading-a-message-to-an-imap-server-using-curl/|Uploading a message to an IMAP server using curl]] |
| |
| Obtenir une page web avec les en-têtes: | Obtenir une page web avec les en-têtes: |
| * ''%%--%%data "param1=value1¶m2=value2"'' ou ''%%--%%data "param1=value1" %%--%%data "param2=value2"'': préciser le contenu de champs POST. La méthode HTTP sera POST par défaut. [[https://superuser.com/a/149335|Source]] | * ''%%--%%data "param1=value1¶m2=value2"'' ou ''%%--%%data "param1=value1" %%--%%data "param2=value2"'': préciser le contenu de champs POST. La méthode HTTP sera POST par défaut. [[https://superuser.com/a/149335|Source]] |
| * ''-X <method>'': précise la méthode HTTP | * ''-X <method>'': précise la méthode HTTP |
| | * ''-F "userid=32"'' : précise un couple clé/valeur d'une requête POST |
| | * ''-F "img=@/tmp/img.png"'' : précise le fichier à envoyer via un formulaire POST |
| |
| Pour afficher les en-têtes de la requête, il faut utiliser le mode verbeux avec l'option ''-v''. | Pour afficher les en-têtes de la requête, il faut utiliser le mode verbeux avec l'option ''-v''. |
| </code> | </code> |
| Options: | Options: |
| * ''-delete'': supprimer les fichiers trouvés | * ''-delete'' : supprimer les fichiers trouvés |
| * ''-exec du -ch {} +'': connaître la taille des fichiers trouvés. S'il y a trop de fichiers, ''find'' va faire des paquets de paramètres et plusieurs appels à ''du''. La solution est d'utiliser : ''find -type f -iname *.jpg -print0 | du -ch --files0-from=-'' ([[https://unix.stackexchange.com/questions/41550/find-the-total-size-of-certain-files-within-a-directory-branch|source]]). | * ''-exec du -ch {} +'' : connaître la taille des fichiers trouvés. S'il y a trop de fichiers, ''find'' va faire des paquets de paramètres et plusieurs appels à ''du''. La solution est d'utiliser : ''find -type f -iname *.jpg -print0 | du -ch --files0-from=-'' ([[https://unix.stackexchange.com/questions/41550/find-the-total-size-of-certain-files-within-a-directory-branch|source]]). |
| * ''-type d'': cherche uniquement des dossiers | * ''-type d'' : cherche uniquement des dossiers |
| | * ''-perm -g+r,g+x'' : cherche les fichiers avec le groupe qui peut lire et exécuter |
| | * ''\! -perm -g+r'' : cherche les fichiers que l e groupe n'a pas le droit de lire |
| |
| Sources: | Sources: |
| grep -P -o "\[\[https?:\/\/.+?\]\]" | grep -P -o "\[\[https?:\/\/.+?\]\]" |
| </code> | </code> |
| | |
| | |
| | ==== htop ==== |
| | |
| | * [[https://peteris.rocks/blog/htop/|htop explained]] |
| |
| |
| * ''-i'': éditer directement les fichiers. Par défaut, ''sed'' affiche le résultat, et rediriger la commande vers le même fichier efface le contenu du fichier... | * ''-i'': éditer directement les fichiers. Par défaut, ''sed'' affiche le résultat, et rediriger la commande vers le même fichier efface le contenu du fichier... |
| |
| | |
| | === Enchaîner plusieurs commandes === |
| | |
| | Les séparer par des points-virgules : |
| | <code bash> |
| | sed -E 's/foo/bar/;/^\s*$/d' |
| | </code> |
| |
| === Remplacer du texte dans des fichiers === | === Remplacer du texte dans des fichiers === |
| <code bash> | <code bash> |
| sed '/^$/d' fichier | sed '/^$/d' fichier |
| | </code> |
| | |
| | ou les lignes qui ne contiennent rien (potentiellement uniquement des espaces) : |
| | <code bash> |
| | sed '/^\s*$/d' fichier |
| </code> | </code> |
| |
| <code bash> | <code bash> |
| sed -n 's/ \+/ /gp' | sed -n 's/ \+/ /gp' |
| | </code> |
| | |
| | |
| | === Supprimer tous les espaces au début d'une ligne === |
| | |
| | [[https://stackoverflow.com/questions/34322188/removing-all-spaces-from-the-beginning-of-lines|Source]] |
| | |
| | <code bash> |
| | sed 's/^[[:space:]]*//g' |
| </code> | </code> |
| |
| # Supprime toutes les entrée de logs antérieures au 22 avril 2021 : | # Supprime toutes les entrée de logs antérieures au 22 avril 2021 : |
| sed '1,/22\/Apr\/2021/d' nginx-access.log | sed '1,/22\/Apr\/2021/d' nginx-access.log |
| | </code> |
| | |
| | |
| | === Afficher les lignes jusqu'à atteindre un motif (inclus) === |
| | |
| | |
| | [[https://unix.stackexchange.com/questions/11305/show-all-the-file-up-to-the-match|Source]] |
| | <code bash> |
| | sed '/pattern/q' $fichier |
| </code> | </code> |
| |
| Le paramètre ''-n'' indique de n'afficher aucune ligne, c'est le flag ''p'' qui indique qu'il faut afficher la ligne. | Le paramètre ''-n'' indique de n'afficher aucune ligne, c'est le flag ''p'' qui indique qu'il faut afficher la ligne. |
| |
| | |
| | |
| | === Ne garder que des lignes délimitées === |
| | |
| | Pour ne garder que les lignes qui sont entre des lignes qui contiennent ''BEGIN'' et ''END'' [[https://unix.stackexchange.com/questions/78472/print-lines-between-start-and-end-using-sed|source]] : |
| | <code bash> |
| | sed -n -e '/^BEGIN$/,/^END$/{/^BEGIN$/d;/^END$/d;p;}' input |
| | </code> |
| | |
| | |
| | === N'affiche que les deuxièmes lignes après un motif === |
| | |
| | * [[https://www.baeldung.com/linux/show-nth-line-after-match|Source]] |
| | |
| | <code> |
| | Truc |
| | Foo: |
| | Machin |
| | Ligne à afficher |
| | Truc |
| | Foo: |
| | sdfs |
| | Ligne à afficher |
| | sdfs |
| | </code> |
| | |
| | |
| | <code bash> |
| | sed -n '/Foo:/{n;n;p}' $file |
| | </code> |
| ==== sort === | ==== sort === |
| |