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
memo:unix [25/03/2021 15:47] – [Recompresser une vidéo en H264] images par secondes et résolution Arnaud Jacqueminmemo:unix [05/03/2026 11:10] (Version actuelle) – Gérer les utilisateurs Arnaud Jacquemin
Ligne 22: Ligne 22:
 ln -s cible nom_lien  ln -s cible nom_lien 
 </code> </code>
 +
 +===== Lister les fichiers =====
 +
 +  * **-l** : utiliser un format d'affichage long (càd. afficher toutes les informations de droits, taille, date...)
 +  * **-h** : pour //human-readable//, avec -l ou -s, afficher les tailles en format lisible (par exemple 1K, 234M ou 2G) 
 +
 +<code bash>
 +# Lister les fichiers et dossiers du répertoire courant, avec tous les détails, et les tailles compréhensibles par un humain
 +ls -lh
 +# Créer un alias pour cette commmande
 +alias ll="ls -lh"
 +</code>
 +
 +
 +  * **-a** : pour //all//, permet d'afficher aussi les fichiers cachés
 +  * **-R** : pour //recursive//, permet de parcourir les dossiers
 +  * **-t** : pour trier les fichier par date de modification, du plus récent au plus ancien
 +  * **-r** : pour inverser le sens de tri
 +  * **-S** : pour trier les fichier par taille, du plus gros au plus petit
 +
 +<code bash>
 +# Lister les fichiers avec un filtre sur leur nom
 +ls *.pdf
 +</code>
 +
  
 ===== Droits ===== ===== Droits =====
Ligne 64: Ligne 89:
  
 Source : https://www.quora.com/What-is-the-difference-between-mtime-atime-and-ctime Source : https://www.quora.com/What-is-the-difference-between-mtime-atime-and-ctime
 +
 +Récupérer les fichiers modifiés dans les 15 derniers jours avec leur date/heure de modification :
 +
 +<code bash>
 +find ./ -type f -mtime -15 -printf "%p;%TY-%Tm-%Td %TH:%TM\n" > fichiers-modifies.csv
 +</code>
 +
 +
 ===== Archives ===== ===== Archives =====
  
Ligne 69: Ligne 102:
  
 <code bash> <code bash>
-tar xvfz something.tar.gz +tar xvf something.tar.bz2
-tar jxf something.tar.bz2+
 unzip something.zip unzip something.zip
 unrar x "nom de fichier.rar" unrar x "nom de fichier.rar"
 +</code>
 +
 +=== Exclure un dossier ===
 +
 +<code bash>
 +tar xvf something.tar.bz2 --exclude="folder"
 +</code>
 +
 +
 +
 +=== Spécifier cible et créer un dossier ===
 +
 +<code bash>
 +# Créer dossier /var/www/nom-archive et y extraire l'archive
 +tar xvf /home/ajacquemin/nom-archive.tar.xz --directory /var/www --one-top-level
 +</code>
 +
 +<code bash>
 +# Créer dossier /var/www/nom-specifie et y extraire l'archive
 +tar xvf /home/ajacquemin/nom-archive.tar.xz --directory /var/www --one-top-level=nom-specifie
 </code> </code>
  
Ligne 78: Ligne 130:
  
 <code bash> <code bash>
-tar czvf repertoire.tar.gz repertoire/ +tar cvf repertoire.tar.bz2 repertoire/ 
-tar cjvf repertoire.tar.bz2 repertoire/ +
 </code> </code>
  
-Flags :+Paramètres :
   * ''c'' pour compresser   * ''c'' pour compresser
-  * ''z'' pour GNU Zip, ''j'' pour BZ2 
   * ''v'' pour verbose   * ''v'' pour verbose
   * ''f'' cible = un fichier   * ''f'' cible = un fichier
 +  * ''z'' pour GNU Zip, ''j'' pour BZ2 **:!: plus nécessaire**
 +
 +=== Ne pas inclure toute le hiérarchie des dossiers ===
 +
 +  * ''<nowiki>--directory=</nowiki>'' suivi du dossier racine à partir duqul archiver
 +
 +<code bash>
 +tar cvf archive.tar.bz2 --directory=/var/www dossier
 +
 +</code>
 +
 +=== Supprimer les fichiers source après compression ===
  
-Idem en supprimant les fichiers source après compression : 
 <code bash> <code bash>
 tar cjvf repertoire.tar.bz2 repertoire/ --remove-files tar cjvf repertoire.tar.bz2 repertoire/ --remove-files
Ligne 111: Ligne 172:
 <code bash> <code bash>
 find ./ -name \*.php | xargs grep "\x63\x72\x65\x61\x74\x65\x5f\x66" find ./ -name \*.php | xargs grep "\x63\x72\x65\x61\x74\x65\x5f\x66"
 +</code>
 +
 +Ou autre version plus simple, avec grep uniquement : ((https://stackoverflow.com/a/16957078))
 +<code bash>
 +# -r or -R is recursive,
 +# -n is line number, and
 +# -w stands for match the whole word.
 +# -e is the pattern used during the search
 +grep --include=\*.{php,yml} -rnw '/path/to/somewhere/' -e "pattern"
 </code> </code>
  
Ligne 117: Ligne 187:
 grep -rwl './' -e "chaine" grep -rwl './' -e "chaine"
 </code> </code>
 +
 +
 ==== Supprimer fichiers selon leur nom ==== ==== Supprimer fichiers selon leur nom ====
  
Ligne 142: Ligne 214:
 ==== Se connecter ==== ==== Se connecter ====
  
-  ssh user@host +<code bash> 
 +ssh user@host [-p port] 
 +</code>
 ==== Copier un fichier ==== ==== Copier un fichier ====
  
-  scp /source/fichier  user@host:repertoiredistant+Envoyer un fichier local vers une machine distante : 
 +<code bash> 
 +scp /source/fichier  user@host:repertoiredistant 
 +</code> 
 + 
 +Télécharger un fichier depuis une machine distante : 
 +<code bash> 
 +scp user@host:repertoiredistant/fichier /cible/ 
 +</code> 
  
 ===== MD5 ===== ===== MD5 =====
Ligne 164: Ligne 246:
 ===== Multimédia ===== ===== Multimédia =====
  
-==== Compresser en flac récursivement ====+Audio, vidéo... déplacés sur la page [[ffmpeg]]
  
-<code bash> 
-shopt -s globstar nocaseglob 
-for input in GigaSoundPack/**/*.wav 
-do 
-  indir=$(dirname "$input") 
-  outdir=${indir/#GigaSoundPack/GigaSoundFlac} 
-  [ ! -d "$outdir" ] && mkdir -p "$outdir" 
-  infile=$(basename "$input") 
-  outfile=${infile%.???}.flac 
-  ffmpeg -i "$input" "${outdir}/${outfile}" 
-done 
-</code> 
 ==== Retirer metatags de toutes les photos d'un dossier ==== ==== Retirer metatags de toutes les photos d'un dossier ====
  
Ligne 190: Ligne 260:
 find ./ -name '*.mp3' -type f -exec mp3splt -a -f {} 00.10.50 EOF -o "trim/@f" \; find ./ -name '*.mp3' -type f -exec mp3splt -a -f {} 00.10.50 EOF -o "trim/@f" \;
 </code> </code>
- 
-==== Extraire l'audio d'une vidéo ==== 
- 
-<code bash> 
-ffmpeg -ss 300 -t 180 -i "input.avi" output.flac 
-</code> 
- 
-Remplacer 
-  * 300 par la position de départ (en secondes) 
-  * 180 par la durée à capturer 
-  * input.avi par le fichier d'où extraire 
-  * output.flac par le fichier de destination 
- 
- 
-==== Concaténer deux vidéos de même format ==== 
- 
-<code bash> 
-ffmpeg -i video1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate1.ts 
-ffmpeg -i video2.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate2.ts 
-ffmpeg -i "concat:intermediate1.ts|intermediate2.ts" -c copy -bsf:a aac_adtstoasc output.mp4 
-</code> 
- 
-Source : http://trac.ffmpeg.org/wiki/Concatenate#protocol 
- 
- 
-==== Recompresser une vidéo en H264 ==== 
- 
-<code bash> 
-ffmpeg -i "source.mp4" -vcodec libx264 -crf 20 "resultat.mp4" 
-</code> 
- 
-Diminuer la valeur de CRF pour augmenter la qualité, et augmenter cette valeur pour diminuer la taille. 
- 
-Source : https://unix.stackexchange.com/questions/28803/how-can-i-reduce-a-videos-size-with-ffmpeg# 
- 
-  * Pour changer le nombre d'images par secondes : paramètre -r 
-  * Pour changer la résolution : paramètre -s 
- 
-<code bash> 
-ffmpeg -i "source.mp4" -vcodec libx264 -crf 20 -r 20 -s 360x640 "resultat.mp4" 
-</code> 
- 
  
 ===== Téléchargement ===== ===== Téléchargement =====
Ligne 312: Ligne 340:
  
 ===== Monter automatiquement NFS ===== ===== Monter automatiquement NFS =====
 +
 +==== Version intiale ====
 +
  
 Dans ''/etc/fstab'' : Dans ''/etc/fstab'' :
Ligne 321: Ligne 352:
 Source : https://help.ubuntu.com/community/SettingUpNFSHowTo#Mounts Source : https://help.ubuntu.com/community/SettingUpNFSHowTo#Mounts
  
 +==== Version 2017 (autofs) ====
  
 +Dans ''/etc/auto.eddie''
 +<file>
 +music   -fstype=nfs,rw,intr   192.168.0.42:/volume1/music
 +music-making   -fstype=nfs,rw,intr   192.168.0.42:/volume1/music-making
 +photo   -fstype=nfs,rw,intr   192.168.0.42:/volume1/photo
 +video   -fstype=nfs,rw,intr   192.168.0.42:/volume1/video
 +public   -fstype=nfs,rw,intr   192.168.0.42:/volume1/public
 +</file>
 +
 +==== Version 2021 (systemd) ====
 +
 +Créer deux fichiers dans ''/etc/systemd/system/''
 +
 +<file ini mnt-eddie-musicmaking.automount>
 +[Unit]
 +Description=Automount Eddie Music Making
 +
 +[Automount]
 +Where=/mnt/eddie/musicmaking
 +
 +[Install]
 +WantedBy=multi-user.target
 +</file>
 +
 +<file ini mnt-eddie-musicmaking.mount>
 +[Unit]
 +Description=Eddie Music Making
 +
 +[Mount]
 +What=192.168.0.42:/volume1/music-making
 +Where=/mnt/eddie/musicmaking
 +Type=nfs
 +
 +[Install]
 +WantedBy=multi-user.target
 +</file>
 +
 +=== Pour la musique : ===
 +
 +<file ini mnt-eddie-musique.automount>
 +[Unit]
 +Description=Automount Eddie Musique
 +
 +[Automount]
 +Where=/mnt/eddie/musique
 +
 +[Install]
 +WantedBy=multi-user.target
 +</file>
 +
 +<file ini mnt-eddie-musique.mount>
 +[Unit]
 +Description=Eddie Musique
 +
 +[Mount]
 +What=192.168.0.42:/volume1/music
 +Where=/mnt/eddie/musique
 +Type=nfs
 +
 +[Install]
 +WantedBy=multi-user.target
 +</file>
 +
 +Pour les vidéos :
 +
 +<file ini mnt-eddie-videos.automount>
 +[Unit]
 +Description=Automount Eddie Vidéos
 +
 +[Automount]
 +Where=/mnt/eddie/videos
 +
 +[Install]
 +WantedBy=multi-user.target
 +</file>
 +
 +<file ini mnt-eddie-videos.mount>
 +[Unit]
 +Description=Eddie Vidéos
 +
 +[Mount]
 +What=192.168.0.42:/volume1/video
 +Where=/mnt/eddie/videos
 +Type=nfs
 +
 +[Install]
 +WantedBy=multi-user.target
 +</file>
 +
 +Annoncer ces fichiers à systemd :
 +
 +<code bash>
 +systemctl daemon-reload
 +systemctl start mnt-eddie-musicmaking.automount
 +</code>
 +
 +Source : https://blog.tomecek.net/post/automount-with-systemd/
 ===== Copier stdout et stderr dans un fichier ===== ===== Copier stdout et stderr dans un fichier =====
  
Ligne 357: Ligne 486:
 -i signifie "faire la modification directement dans le fichier source". -i signifie "faire la modification directement dans le fichier source".
  
 +===== Gérer les utilisateurs =====
  
 +==== Créer un utilisateur ====
 +<code bash>
 +sudo useradd nom_utilisateur
 +</code>
 +
 +==== Créer un groupe ====
 +<code bash>
 +sudo groupadd nom_groupe
 +</code>
 +
 +==== Ajouter un utilisateur dans un groupe ====
 +
 +<code bash>
 +sudo adduser nom_utilisateur nom_groupe
 +</code>
 +
 +Il faut fermer/ré-ouvrir la session utilisateur pour que ce soit pris en compte (dommage !)
 +
 +Source : [[https://doc.ubuntu-fr.org/tutoriel/gestion_utilisateurs_et_groupes_en_ligne_de_commande#ajouter_un_utilisateur_a_un_groupe|Wiki Ubuntu-fr > Gestion des utilisateurs et groupes en ligne de commande]]
 +
 +
 +===== Reformater des fichiers SQL =====
 +
 +<code bash>
 +sudo pipx install sqlparse
 +pipx ensurepath
 +find . -type f -exec sqlformat --reindent {} -o {}.sql \;
 +</code>
  • memo/unix.1616683641.txt.gz
  • Dernière modification : il y a 5 ans
  • de Arnaud Jacquemin