logo rss

Quelques commandes GNU/Linux utiles

Je vais mettre ici quelques commandes GNU/Linux en vrac, que je considère comme utiles.

Système

  • Connaitre quel MTA se cache derrière sendmail
user@host:~$ ls -al /usr/sbin/sendmail
    • Ou
user@host:~$ ls -al `which sendmail`
  • Modifier un compte utilisateur :
root@host:~# usermod -g GROUP -d USER_DIRECTORY -s USER_SHELL
  • Se connecter a Windows Server via RDP et activer le partage d'un dossier local avec les logiciels rdesktop ou xfreerdp :
user@host:~$ rdesktop 192.168.1.200 -g1900x1024 -u domain\\administrator -p password -r disk:docs=/share -0 -r sound:remote
user@host:~$ xfreerdp /v:192.168.1.200 /w:1900 /h:1024 /u:"administrator" /p:"password" /cert-ignore /drive:share,/share /audio-mode:1
  • rsync 30 gros fichiers de façon aléatoire à travers ssh :
user@host:~$ for i in:~$(find /data/videos/ -size +1200M | grep -v "Name.That.I.Dont.Share" | sed "s/\s/__@__/g" | sort -R | head -n 30); do b=$(echo "$i" | sed 's/__@__/\ /g'); rsync -av "$b" root@host:/var/www/www.shebangthedolphins.net/shebangflix/; done
  • Afficher une liste des derniers utilisateurs qui se sont connectés :
user@host:~$ last
  • Afficher une liste des dernières tentatives de connexion utilisateurs qui ont échoué :
user@host:~$ lastb
  • Afficher la liste des shells disponibles :
user@host:~$ cat /etc/shells
  • Supprimer les fichiers de plus d'un an du dossier .cache :
user@host:~$ find ~/.cache -type f -mtime +365 -delete

Debian/Ubuntu

  • Afficher la version de Debian :
user@host:~$ lsb_release -ds
  • Rechercher dans les paquets installés un nom :
user@host:~$ dpkg -S courier-imap
  • Afficher les fichiers présents dans un paquets :
user@host:~$ dpkg -L courier-imap
  • backup à travers ssh avec la command tar et compresser à l'aide de lzip :
root@host:~# apt-get install lzip; tar --lzip -cvf - /my/fodler/ | ssh root@10.0.0.124 "cat > /backup/$(date +%Y.%m.%d)backup.tar.lz"

Matériel

  • Obtenir des informations matérielles :
root@host:~# dmidecode -t chassis -t system
root@host:~# lshw

Multimédia

  • Jouer aléatoirement tous les fichiers audio et video d'un répertoire avec vlc :
user@host:~$ find /tmp/ppp/ -type f | sed "s/\\s/\\\ /g" | sed "s/\x27/\\\&/g" | sort -R |  xargs -t vlc
  • Jouer aléatoirement tous les fichiers audio et video d'un répertoire avec vlc et à une heure précise :
user@host:~$ echo export DISPLAY=$DISPLAY \&\& 'find /mon/dossier/audios/ou/videos -type f | sed "s/\\s/\\\ /g" | sed "s/\x27/\\\&/g" | sort -R |  xargs -t vlc' | at 7h50
  • Jouer aléatoirement tous les fichiers audio et video d'un répertoire avec vlc et pour une période de temps bien précise :
user@host:~$ touch --date=20150601 /tmp/begin; touch --date=20151231 /tmp/end; find /musics/ -newer /tmp/begin -not -newer /tmp/end -type f | sed "s/\\s/\\\ /g" | sed "s/\x27/\\\&/g" | sort -R |  xargs -t vlc
    • Ou, si la version de la commande find est compatible avec le paramètre newermt :
user@host:~$ find /musics/ -newermt 20150601 -not -newermt 20151231 -type f | sed "s/\\s/\\\ /g" | sed "s/\x27/\\\&/g" | sort -R |  xargs -t vlc
  • Augmenter/normaliser le volume de fichiers audio (ici avec des fichiers ogg) :
user@host:~$ for i in *ogg; do a=$(ffmpeg -i "$i" -af volumedetect -f null - 2>&1| grep "max_volume:" | cut -d " " -f 5 | sed 's/-//'); i="${i%.ogg}"; ffmpeg -i "$i".ogg -af volume="$a"dB "$i"INCREASED.ogg; done
  • Convertir les fichiers ogg en mp3 avec ffmpeg :
user@host:~$ for i in *ogg; do a="${i%.ogg}"; ffmpeg -i "$i" -aq 1 "$a".mp3; done
  • Renommer automatiquement ses fichiers ogg au format yyyy.mm.dd_hh.mm.ss.jpg (nécessite mediainfo) :
user@host:~$ mkdir NEW; for i in *.ogg; do new=$(mediainfo -f "$i" | grep "File last modification date (local)" | tr -s " " | cut -d " " -f 7,8 | tr "-" "." | tr " " "_" | tr -d ":" | sed 's/$/.ogg/'); cp -a "$i" NEW/"$new"; done

Réseau

  • Obtenir son adresse IP publique :
user@host:~$ host myip.opendns.com resolver1.opendns.com
user@host:~$ dig TXT +short o-o.myaddr.l.google.com @ns1.google.com
  • Obtenir des informations sur l'utilisation réseau des processus :
root@host:~# nethogs
  • Lister les sessions ouvertes par un programme :
root@host:~# lsof -i -p <pid-proc>

Autres

  • Demander les numéros de loto à son système (ça n'a jamais marché pour moi...)
user@host:~$ i=0; while [ "$i" -ne 5 ] ; do test=$RANDOM; let 'test %= 50'; echo "$test"; let i="$i"+1; done ; test=$RANDOM;let 'test %= 11';echo "$test"
  • Utiliser son terminal comme une calculatrice :
user@host:~$ let "i = 360 / 12"; echo:~$i
  • Utiliser son terminal comme une calculatrice avec une précision de deux chiffres après la virgule :
user@host:~$ echo "scale=2; 23 / 7" | bc
  • Afficher tous les caractères d'un fichier :
user@host:~$ cat file | od -c

Photos

  • Exporter la Miniature d'une image avec exiftool :
user@host:~$ exiftool -b -ThumbnailImage IMG_0605.jpg > thumbnail.jpg
  • Renommer automatiquement ses photos au format yyyy.mm.dd_hh.mm.ss.jpg (nécessite imagemagick) :
user@host:~$ mkdir NEW; for i in *.jpg; do new=$(identify -format %[exif:*]  "$i" | grep DateTimeDigitized | sed 's/=/ /' | cut -d " " -f 2,3 | tr ":" "." | tr " " "_"| sed 's/$/.jpg/'); cp -a "$i" NEW/"$new"; done
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Contact :

adresse mail de contact